@chativa/ui 0.0.1

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":"index.js","sources":["../../../node_modules/.pnpm/i18next@25.8.13_typescript@5.8.3/node_modules/i18next/dist/esm/i18next.js","../../../node_modules/.pnpm/i18next-browser-languagedetector@8.2.1/node_modules/i18next-browser-languagedetector/dist/esm/i18nextBrowserLanguageDetector.js","../src/i18n/i18n.ts","../src/styles/commonStyles.ts?inline","../src/mixins/ChatbotMixin.ts","../../../node_modules/.pnpm/marked@13.0.3/node_modules/marked/lib/marked.esm.js","../src/chat-ui/DefaultTextMessage.ts","../src/chat-ui/QuickReplyMessage.ts","../src/chat-ui/ImageMessage.ts","../src/chat-ui/CardMessage.ts","../src/chat-ui/ButtonsMessage.ts","../src/chat-ui/FileMessage.ts","../src/chat-ui/VideoMessage.ts","../src/chat-ui/CarouselMessage.ts","../src/chat-ui/EmojiPicker.ts","../src/chat-ui/ChatInput.ts","../src/chat-ui/ChatMessageList.ts","../src/chat-ui/ChatHeader.ts","../src/chat-ui/ChatWidget.ts","../src/chat-ui/ChatBotButton.ts"],"sourcesContent":["const isString = obj => typeof obj === 'string';\nconst defer = () => {\n let res;\n let rej;\n const promise = new Promise((resolve, reject) => {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n};\nconst makeString = object => {\n if (object == null) return '';\n return '' + object;\n};\nconst copy = (a, s, t) => {\n a.forEach(m => {\n if (s[m]) t[m] = s[m];\n });\n};\nconst lastOfPathSeparatorRegExp = /###/g;\nconst cleanKey = key => key && key.indexOf('###') > -1 ? key.replace(lastOfPathSeparatorRegExp, '.') : key;\nconst canNotTraverseDeeper = object => !object || isString(object);\nconst getLastOfPath = (object, path, Empty) => {\n const stack = !isString(path) ? path : path.split('.');\n let stackIndex = 0;\n while (stackIndex < stack.length - 1) {\n if (canNotTraverseDeeper(object)) return {};\n const key = cleanKey(stack[stackIndex]);\n if (!object[key] && Empty) object[key] = new Empty();\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n ++stackIndex;\n }\n if (canNotTraverseDeeper(object)) return {};\n return {\n obj: object,\n k: cleanKey(stack[stackIndex])\n };\n};\nconst setPath = (object, path, newValue) => {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n if (obj !== undefined || path.length === 1) {\n obj[k] = newValue;\n return;\n }\n let e = path[path.length - 1];\n let p = path.slice(0, path.length - 1);\n let last = getLastOfPath(object, p, Object);\n while (last.obj === undefined && p.length) {\n e = `${p[p.length - 1]}.${e}`;\n p = p.slice(0, p.length - 1);\n last = getLastOfPath(object, p, Object);\n if (last?.obj && typeof last.obj[`${last.k}.${e}`] !== 'undefined') {\n last.obj = undefined;\n }\n }\n last.obj[`${last.k}.${e}`] = newValue;\n};\nconst pushPath = (object, path, newValue, concat) => {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n obj[k] = obj[k] || [];\n obj[k].push(newValue);\n};\nconst getPath = (object, path) => {\n const {\n obj,\n k\n } = getLastOfPath(object, path);\n if (!obj) return undefined;\n if (!Object.prototype.hasOwnProperty.call(obj, k)) return undefined;\n return obj[k];\n};\nconst getPathWithDefaults = (data, defaultData, key) => {\n const value = getPath(data, key);\n if (value !== undefined) {\n return value;\n }\n return getPath(defaultData, key);\n};\nconst deepExtend = (target, source, overwrite) => {\n for (const prop in source) {\n if (prop !== '__proto__' && prop !== 'constructor') {\n if (prop in target) {\n if (isString(target[prop]) || target[prop] instanceof String || isString(source[prop]) || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n }\n return target;\n};\nconst regexEscape = str => str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\nvar _entityMap = {\n '&': '&amp;',\n '<': '&lt;',\n '>': '&gt;',\n '\"': '&quot;',\n \"'\": '&#39;',\n '/': '&#x2F;'\n};\nconst escape = data => {\n if (isString(data)) {\n return data.replace(/[&<>\"'\\/]/g, s => _entityMap[s]);\n }\n return data;\n};\nclass RegExpCache {\n constructor(capacity) {\n this.capacity = capacity;\n this.regExpMap = new Map();\n this.regExpQueue = [];\n }\n getRegExp(pattern) {\n const regExpFromCache = this.regExpMap.get(pattern);\n if (regExpFromCache !== undefined) {\n return regExpFromCache;\n }\n const regExpNew = new RegExp(pattern);\n if (this.regExpQueue.length === this.capacity) {\n this.regExpMap.delete(this.regExpQueue.shift());\n }\n this.regExpMap.set(pattern, regExpNew);\n this.regExpQueue.push(pattern);\n return regExpNew;\n }\n}\nconst chars = [' ', ',', '?', '!', ';'];\nconst looksLikeObjectPathRegExpCache = new RegExpCache(20);\nconst looksLikeObjectPath = (key, nsSeparator, keySeparator) => {\n nsSeparator = nsSeparator || '';\n keySeparator = keySeparator || '';\n const possibleChars = chars.filter(c => nsSeparator.indexOf(c) < 0 && keySeparator.indexOf(c) < 0);\n if (possibleChars.length === 0) return true;\n const r = looksLikeObjectPathRegExpCache.getRegExp(`(${possibleChars.map(c => c === '?' ? '\\\\?' : c).join('|')})`);\n let matched = !r.test(key);\n if (!matched) {\n const ki = key.indexOf(keySeparator);\n if (ki > 0 && !r.test(key.substring(0, ki))) {\n matched = true;\n }\n }\n return matched;\n};\nconst deepFind = (obj, path, keySeparator = '.') => {\n if (!obj) return undefined;\n if (obj[path]) {\n if (!Object.prototype.hasOwnProperty.call(obj, path)) return undefined;\n return obj[path];\n }\n const tokens = path.split(keySeparator);\n let current = obj;\n for (let i = 0; i < tokens.length;) {\n if (!current || typeof current !== 'object') {\n return undefined;\n }\n let next;\n let nextPath = '';\n for (let j = i; j < tokens.length; ++j) {\n if (j !== i) {\n nextPath += keySeparator;\n }\n nextPath += tokens[j];\n next = current[nextPath];\n if (next !== undefined) {\n if (['string', 'number', 'boolean'].indexOf(typeof next) > -1 && j < tokens.length - 1) {\n continue;\n }\n i += j - i + 1;\n break;\n }\n }\n current = next;\n }\n return current;\n};\nconst getCleanedCode = code => code?.replace('_', '-');\n\nconst consoleLogger = {\n type: 'logger',\n log(args) {\n this.output('log', args);\n },\n warn(args) {\n this.output('warn', args);\n },\n error(args) {\n this.output('error', args);\n },\n output(type, args) {\n console?.[type]?.apply?.(console, args);\n }\n};\nclass Logger {\n constructor(concreteLogger, options = {}) {\n this.init(concreteLogger, options);\n }\n init(concreteLogger, options = {}) {\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n log(...args) {\n return this.forward(args, 'log', '', true);\n }\n warn(...args) {\n return this.forward(args, 'warn', '', true);\n }\n error(...args) {\n return this.forward(args, 'error', '');\n }\n deprecate(...args) {\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (isString(args[0])) args[0] = `${prefix}${this.prefix} ${args[0]}`;\n return this.logger[lvl](args);\n }\n create(moduleName) {\n return new Logger(this.logger, {\n ...{\n prefix: `${this.prefix}:${moduleName}:`\n },\n ...this.options\n });\n }\n clone(options) {\n options = options || this.options;\n options.prefix = options.prefix || this.prefix;\n return new Logger(this.logger, options);\n }\n}\nvar baseLogger = new Logger();\n\nclass EventEmitter {\n constructor() {\n this.observers = {};\n }\n on(events, listener) {\n events.split(' ').forEach(event => {\n if (!this.observers[event]) this.observers[event] = new Map();\n const numListeners = this.observers[event].get(listener) || 0;\n this.observers[event].set(listener, numListeners + 1);\n });\n return this;\n }\n off(event, listener) {\n if (!this.observers[event]) return;\n if (!listener) {\n delete this.observers[event];\n return;\n }\n this.observers[event].delete(listener);\n }\n emit(event, ...args) {\n if (this.observers[event]) {\n const cloned = Array.from(this.observers[event].entries());\n cloned.forEach(([observer, numTimesAdded]) => {\n for (let i = 0; i < numTimesAdded; i++) {\n observer(...args);\n }\n });\n }\n if (this.observers['*']) {\n const cloned = Array.from(this.observers['*'].entries());\n cloned.forEach(([observer, numTimesAdded]) => {\n for (let i = 0; i < numTimesAdded; i++) {\n observer.apply(observer, [event, ...args]);\n }\n });\n }\n }\n}\n\nclass ResourceStore extends EventEmitter {\n constructor(data, options = {\n ns: ['translation'],\n defaultNS: 'translation'\n }) {\n super();\n this.data = data || {};\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n if (this.options.ignoreJSONStructure === undefined) {\n this.options.ignoreJSONStructure = true;\n }\n }\n addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n }\n removeNamespaces(ns) {\n const index = this.options.ns.indexOf(ns);\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n getResource(lng, ns, key, options = {}) {\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n const ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n let path;\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n } else {\n path = [lng, ns];\n if (key) {\n if (Array.isArray(key)) {\n path.push(...key);\n } else if (isString(key) && keySeparator) {\n path.push(...key.split(keySeparator));\n } else {\n path.push(key);\n }\n }\n }\n const result = getPath(this.data, path);\n if (!result && !ns && !key && lng.indexOf('.') > -1) {\n lng = path[0];\n ns = path[1];\n key = path.slice(2).join('.');\n }\n if (result || !ignoreJSONStructure || !isString(key)) return result;\n return deepFind(this.data?.[lng]?.[ns], key, keySeparator);\n }\n addResource(lng, ns, key, value, options = {\n silent: false\n }) {\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n let path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n addResources(lng, ns, resources, options = {\n silent: false\n }) {\n for (const m in resources) {\n if (isString(resources[m]) || Array.isArray(resources[m])) this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\n }\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n addResourceBundle(lng, ns, resources, deep, overwrite, options = {\n silent: false,\n skipCopy: false\n }) {\n let path = [lng, ns];\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n let pack = getPath(this.data, path) || {};\n if (!options.skipCopy) resources = JSON.parse(JSON.stringify(resources));\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = {\n ...pack,\n ...resources\n };\n }\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n return this.getResource(lng, ns);\n }\n getDataByLanguage(lng) {\n return this.data[lng];\n }\n hasLanguageSomeTranslations(lng) {\n const data = this.getDataByLanguage(lng);\n const n = data && Object.keys(data) || [];\n return !!n.find(v => data[v] && Object.keys(data[v]).length > 0);\n }\n toJSON() {\n return this.data;\n }\n}\n\nvar postProcessor = {\n processors: {},\n addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle(processors, value, key, options, translator) {\n processors.forEach(processor => {\n value = this.processors[processor]?.process(value, key, options, translator) ?? value;\n });\n return value;\n }\n};\n\nconst PATH_KEY = Symbol('i18next/PATH_KEY');\nfunction createProxy() {\n const state = [];\n const handler = Object.create(null);\n let proxy;\n handler.get = (target, key) => {\n proxy?.revoke?.();\n if (key === PATH_KEY) return state;\n state.push(key);\n proxy = Proxy.revocable(target, handler);\n return proxy.proxy;\n };\n return Proxy.revocable(Object.create(null), handler).proxy;\n}\nfunction keysFromSelector(selector, opts) {\n const {\n [PATH_KEY]: path\n } = selector(createProxy());\n return path.join(opts?.keySeparator ?? '.');\n}\n\nconst checkedLoadedFor = {};\nconst shouldHandleAsObject = res => !isString(res) && typeof res !== 'boolean' && typeof res !== 'number';\nclass Translator extends EventEmitter {\n constructor(services, options = {}) {\n super();\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, this);\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n this.logger = baseLogger.create('translator');\n }\n changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n exists(key, o = {\n interpolation: {}\n }) {\n const opt = {\n ...o\n };\n if (key == null) return false;\n const resolved = this.resolve(key, opt);\n if (resolved?.res === undefined) return false;\n const isObject = shouldHandleAsObject(resolved.res);\n if (opt.returnObjects === false && isObject) {\n return false;\n }\n return true;\n }\n extractFromKey(key, opt) {\n let nsSeparator = opt.nsSeparator !== undefined ? opt.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n const keySeparator = opt.keySeparator !== undefined ? opt.keySeparator : this.options.keySeparator;\n let namespaces = opt.ns || this.options.defaultNS || [];\n const wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;\n const seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !opt.keySeparator && !this.options.userDefinedNsSeparator && !opt.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);\n if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\n const m = key.match(this.interpolator.nestingRegexp);\n if (m && m.length > 0) {\n return {\n key,\n namespaces: isString(namespaces) ? [namespaces] : namespaces\n };\n }\n const parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n return {\n key,\n namespaces: isString(namespaces) ? [namespaces] : namespaces\n };\n }\n translate(keys, o, lastKey) {\n let opt = typeof o === 'object' ? {\n ...o\n } : o;\n if (typeof opt !== 'object' && this.options.overloadTranslationOptionHandler) {\n opt = this.options.overloadTranslationOptionHandler(arguments);\n }\n if (typeof opt === 'object') opt = {\n ...opt\n };\n if (!opt) opt = {};\n if (keys == null) return '';\n if (typeof keys === 'function') keys = keysFromSelector(keys, {\n ...this.options,\n ...opt\n });\n if (!Array.isArray(keys)) keys = [String(keys)];\n const returnDetails = opt.returnDetails !== undefined ? opt.returnDetails : this.options.returnDetails;\n const keySeparator = opt.keySeparator !== undefined ? opt.keySeparator : this.options.keySeparator;\n const {\n key,\n namespaces\n } = this.extractFromKey(keys[keys.length - 1], opt);\n const namespace = namespaces[namespaces.length - 1];\n let nsSeparator = opt.nsSeparator !== undefined ? opt.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n const lng = opt.lng || this.language;\n const appendNamespaceToCIMode = opt.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n if (lng?.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n if (returnDetails) {\n return {\n res: `${namespace}${nsSeparator}${key}`,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(opt)\n };\n }\n return `${namespace}${nsSeparator}${key}`;\n }\n if (returnDetails) {\n return {\n res: key,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(opt)\n };\n }\n return key;\n }\n const resolved = this.resolve(keys, opt);\n let res = resolved?.res;\n const resUsedKey = resolved?.usedKey || key;\n const resExactUsedKey = resolved?.exactUsedKey || key;\n const noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n const joinArrays = opt.joinArrays !== undefined ? opt.joinArrays : this.options.joinArrays;\n const handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n const needsPluralHandling = opt.count !== undefined && !isString(opt.count);\n const hasDefaultValue = Translator.hasDefaultValue(opt);\n const defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, opt.count, opt) : '';\n const defaultValueSuffixOrdinalFallback = opt.ordinal && needsPluralHandling ? this.pluralResolver.getSuffix(lng, opt.count, {\n ordinal: false\n }) : '';\n const needsZeroSuffixLookup = needsPluralHandling && !opt.ordinal && opt.count === 0;\n const defaultValue = needsZeroSuffixLookup && opt[`defaultValue${this.options.pluralSeparator}zero`] || opt[`defaultValue${defaultValueSuffix}`] || opt[`defaultValue${defaultValueSuffixOrdinalFallback}`] || opt.defaultValue;\n let resForObjHndl = res;\n if (handleAsObjectInI18nFormat && !res && hasDefaultValue) {\n resForObjHndl = defaultValue;\n }\n const handleAsObject = shouldHandleAsObject(resForObjHndl);\n const resType = Object.prototype.toString.apply(resForObjHndl);\n if (handleAsObjectInI18nFormat && resForObjHndl && handleAsObject && noObject.indexOf(resType) < 0 && !(isString(joinArrays) && Array.isArray(resForObjHndl))) {\n if (!opt.returnObjects && !this.options.returnObjects) {\n if (!this.options.returnedObjectHandler) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n }\n const r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, resForObjHndl, {\n ...opt,\n ns: namespaces\n }) : `key '${key} (${this.language})' returned an object instead of string.`;\n if (returnDetails) {\n resolved.res = r;\n resolved.usedParams = this.getUsedParamsDetails(opt);\n return resolved;\n }\n return r;\n }\n if (keySeparator) {\n const resTypeIsArray = Array.isArray(resForObjHndl);\n const copy = resTypeIsArray ? [] : {};\n const newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n for (const m in resForObjHndl) {\n if (Object.prototype.hasOwnProperty.call(resForObjHndl, m)) {\n const deepKey = `${newKeyToUse}${keySeparator}${m}`;\n if (hasDefaultValue && !res) {\n copy[m] = this.translate(deepKey, {\n ...opt,\n defaultValue: shouldHandleAsObject(defaultValue) ? defaultValue[m] : undefined,\n ...{\n joinArrays: false,\n ns: namespaces\n }\n });\n } else {\n copy[m] = this.translate(deepKey, {\n ...opt,\n ...{\n joinArrays: false,\n ns: namespaces\n }\n });\n }\n if (copy[m] === deepKey) copy[m] = resForObjHndl[m];\n }\n }\n res = copy;\n }\n } else if (handleAsObjectInI18nFormat && isString(joinArrays) && Array.isArray(res)) {\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, opt, lastKey);\n } else {\n let usedDefault = false;\n let usedKey = false;\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n const missingKeyNoValueFallbackToKey = opt.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n const resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n const updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n if (keySeparator) {\n const fk = this.resolve(key, {\n ...opt,\n keySeparator: false\n });\n if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n }\n let lngs = [];\n const fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, opt.lng || this.language);\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (let i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(opt.lng || this.language);\n } else {\n lngs.push(opt.lng || this.language);\n }\n const send = (l, k, specificDefaultValue) => {\n const defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;\n if (this.options.missingKeyHandler) {\n this.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, opt);\n } else if (this.backendConnector?.saveMissing) {\n this.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, opt);\n }\n this.emit('missingKey', l, namespace, k, res);\n };\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(language => {\n const suffixes = this.pluralResolver.getSuffixes(language, opt);\n if (needsZeroSuffixLookup && opt[`defaultValue${this.options.pluralSeparator}zero`] && suffixes.indexOf(`${this.options.pluralSeparator}zero`) < 0) {\n suffixes.push(`${this.options.pluralSeparator}zero`);\n }\n suffixes.forEach(suffix => {\n send([language], key + suffix, opt[`defaultValue${suffix}`] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n res = this.extendTranslation(res, keys, opt, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) {\n res = `${namespace}${nsSeparator}${key}`;\n }\n if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {\n res = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? `${namespace}${nsSeparator}${key}` : key, usedDefault ? res : undefined, opt);\n }\n }\n if (returnDetails) {\n resolved.res = res;\n resolved.usedParams = this.getUsedParamsDetails(opt);\n return resolved;\n }\n return res;\n }\n extendTranslation(res, key, opt, resolved, lastKey) {\n if (this.i18nFormat?.parse) {\n res = this.i18nFormat.parse(res, {\n ...this.options.interpolation.defaultVariables,\n ...opt\n }, opt.lng || this.language || resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved\n });\n } else if (!opt.skipInterpolation) {\n if (opt.interpolation) this.interpolator.init({\n ...opt,\n ...{\n interpolation: {\n ...this.options.interpolation,\n ...opt.interpolation\n }\n }\n });\n const skipOnVariables = isString(res) && (opt?.interpolation?.skipOnVariables !== undefined ? opt.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);\n let nestBef;\n if (skipOnVariables) {\n const nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n let data = opt.replace && !isString(opt.replace) ? opt.replace : opt;\n if (this.options.interpolation.defaultVariables) data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n res = this.interpolator.interpolate(res, data, opt.lng || this.language || resolved.usedLng, opt);\n if (skipOnVariables) {\n const na = res.match(this.interpolator.nestingRegexp);\n const nestAft = na && na.length;\n if (nestBef < nestAft) opt.nest = false;\n }\n if (!opt.lng && resolved && resolved.res) opt.lng = this.language || resolved.usedLng;\n if (opt.nest !== false) res = this.interpolator.nest(res, (...args) => {\n if (lastKey?.[0] === args[0] && !opt.context) {\n this.logger.warn(`It seems you are nesting recursively key: ${args[0]} in key: ${key[0]}`);\n return null;\n }\n return this.translate(...args, key);\n }, opt);\n if (opt.interpolation) this.interpolator.reset();\n }\n const postProcess = opt.postProcess || this.options.postProcess;\n const postProcessorNames = isString(postProcess) ? [postProcess] : postProcess;\n if (res != null && postProcessorNames?.length && opt.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? {\n i18nResolved: {\n ...resolved,\n usedParams: this.getUsedParamsDetails(opt)\n },\n ...opt\n } : opt, this);\n }\n return res;\n }\n resolve(keys, opt = {}) {\n let found;\n let usedKey;\n let exactUsedKey;\n let usedLng;\n let usedNS;\n if (isString(keys)) keys = [keys];\n keys.forEach(k => {\n if (this.isValidLookup(found)) return;\n const extracted = this.extractFromKey(k, opt);\n const key = extracted.key;\n usedKey = key;\n let namespaces = extracted.namespaces;\n if (this.options.fallbackNS) namespaces = namespaces.concat(this.options.fallbackNS);\n const needsPluralHandling = opt.count !== undefined && !isString(opt.count);\n const needsZeroSuffixLookup = needsPluralHandling && !opt.ordinal && opt.count === 0;\n const needsContextHandling = opt.context !== undefined && (isString(opt.context) || typeof opt.context === 'number') && opt.context !== '';\n const codes = opt.lngs ? opt.lngs : this.languageUtils.toResolveHierarchy(opt.lng || this.language, opt.fallbackLng);\n namespaces.forEach(ns => {\n if (this.isValidLookup(found)) return;\n usedNS = ns;\n if (!checkedLoadedFor[`${codes[0]}-${ns}`] && this.utils?.hasLoadedNamespace && !this.utils?.hasLoadedNamespace(usedNS)) {\n checkedLoadedFor[`${codes[0]}-${ns}`] = true;\n this.logger.warn(`key \"${usedKey}\" for languages \"${codes.join(', ')}\" won't get resolved as namespace \"${usedNS}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n }\n codes.forEach(code => {\n if (this.isValidLookup(found)) return;\n usedLng = code;\n const finalKeys = [key];\n if (this.i18nFormat?.addLookupKeys) {\n this.i18nFormat.addLookupKeys(finalKeys, key, code, ns, opt);\n } else {\n let pluralSuffix;\n if (needsPluralHandling) pluralSuffix = this.pluralResolver.getSuffix(code, opt.count, opt);\n const zeroSuffix = `${this.options.pluralSeparator}zero`;\n const ordinalPrefix = `${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;\n if (needsPluralHandling) {\n if (opt.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(key + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n finalKeys.push(key + pluralSuffix);\n if (needsZeroSuffixLookup) {\n finalKeys.push(key + zeroSuffix);\n }\n }\n if (needsContextHandling) {\n const contextKey = `${key}${this.options.contextSeparator || '_'}${opt.context}`;\n finalKeys.push(contextKey);\n if (needsPluralHandling) {\n if (opt.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(contextKey + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n finalKeys.push(contextKey + pluralSuffix);\n if (needsZeroSuffixLookup) {\n finalKeys.push(contextKey + zeroSuffix);\n }\n }\n }\n }\n let possibleKey;\n while (possibleKey = finalKeys.pop()) {\n if (!this.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = this.getResource(code, ns, possibleKey, opt);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey,\n exactUsedKey,\n usedLng,\n usedNS\n };\n }\n isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n getResource(code, ns, key, options = {}) {\n if (this.i18nFormat?.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n }\n getUsedParamsDetails(options = {}) {\n const optionsKeys = ['defaultValue', 'ordinal', 'context', 'replace', 'lng', 'lngs', 'fallbackLng', 'ns', 'keySeparator', 'nsSeparator', 'returnObjects', 'returnDetails', 'joinArrays', 'postProcess', 'interpolation'];\n const useOptionsReplaceForData = options.replace && !isString(options.replace);\n let data = useOptionsReplaceForData ? options.replace : options;\n if (useOptionsReplaceForData && typeof options.count !== 'undefined') {\n data.count = options.count;\n }\n if (this.options.interpolation.defaultVariables) {\n data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n }\n if (!useOptionsReplaceForData) {\n data = {\n ...data\n };\n for (const key of optionsKeys) {\n delete data[key];\n }\n }\n return data;\n }\n static hasDefaultValue(options) {\n const prefix = 'defaultValue';\n for (const option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {\n return true;\n }\n }\n return false;\n }\n}\n\nclass LanguageUtil {\n constructor(options) {\n this.options = options;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n getScriptPartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return null;\n const p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n if (p[p.length - 1].toLowerCase() === 'x') return null;\n return this.formatLanguageCode(p.join('-'));\n }\n getLanguagePartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return code;\n const p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n formatLanguageCode(code) {\n if (isString(code) && code.indexOf('-') > -1) {\n let formattedCode;\n try {\n formattedCode = Intl.getCanonicalLocales(code)[0];\n } catch (e) {}\n if (formattedCode && this.options.lowerCaseLng) {\n formattedCode = formattedCode.toLowerCase();\n }\n if (formattedCode) return formattedCode;\n if (this.options.lowerCaseLng) {\n return code.toLowerCase();\n }\n return code;\n }\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n isSupportedCode(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n code = this.getLanguagePartFromCode(code);\n }\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n }\n getBestMatchFromCodes(codes) {\n if (!codes) return null;\n let found;\n codes.forEach(code => {\n if (found) return;\n const cleanedLng = this.formatLanguageCode(code);\n if (!this.options.supportedLngs || this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n if (!found && this.options.supportedLngs) {\n codes.forEach(code => {\n if (found) return;\n const lngScOnly = this.getScriptPartFromCode(code);\n if (this.isSupportedCode(lngScOnly)) return found = lngScOnly;\n const lngOnly = this.getLanguagePartFromCode(code);\n if (this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = this.options.supportedLngs.find(supportedLng => {\n if (supportedLng === lngOnly) return supportedLng;\n if (supportedLng.indexOf('-') < 0 && lngOnly.indexOf('-') < 0) return;\n if (supportedLng.indexOf('-') > 0 && lngOnly.indexOf('-') < 0 && supportedLng.substring(0, supportedLng.indexOf('-')) === lngOnly) return supportedLng;\n if (supportedLng.indexOf(lngOnly) === 0 && lngOnly.length > 1) return supportedLng;\n });\n });\n }\n if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n return found;\n }\n getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n if (isString(fallbacks)) fallbacks = [fallbacks];\n if (Array.isArray(fallbacks)) return fallbacks;\n if (!code) return fallbacks.default || [];\n let found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n if (!found) found = fallbacks.default;\n return found || [];\n }\n toResolveHierarchy(code, fallbackCode) {\n const fallbackCodes = this.getFallbackCodes((fallbackCode === false ? [] : fallbackCode) || this.options.fallbackLng || [], code);\n const codes = [];\n const addCode = c => {\n if (!c) return;\n if (this.isSupportedCode(c)) {\n codes.push(c);\n } else {\n this.logger.warn(`rejecting language code not found in supportedLngs: ${c}`);\n }\n };\n if (isString(code) && (code.indexOf('-') > -1 || code.indexOf('_') > -1)) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (isString(code)) {\n addCode(this.formatLanguageCode(code));\n }\n fallbackCodes.forEach(fc => {\n if (codes.indexOf(fc) < 0) addCode(this.formatLanguageCode(fc));\n });\n return codes;\n }\n}\n\nconst suffixesOrder = {\n zero: 0,\n one: 1,\n two: 2,\n few: 3,\n many: 4,\n other: 5\n};\nconst dummyRule = {\n select: count => count === 1 ? 'one' : 'other',\n resolvedOptions: () => ({\n pluralCategories: ['one', 'other']\n })\n};\nclass PluralResolver {\n constructor(languageUtils, options = {}) {\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n this.pluralRulesCache = {};\n }\n clearCache() {\n this.pluralRulesCache = {};\n }\n getRule(code, options = {}) {\n const cleanedCode = getCleanedCode(code === 'dev' ? 'en' : code);\n const type = options.ordinal ? 'ordinal' : 'cardinal';\n const cacheKey = JSON.stringify({\n cleanedCode,\n type\n });\n if (cacheKey in this.pluralRulesCache) {\n return this.pluralRulesCache[cacheKey];\n }\n let rule;\n try {\n rule = new Intl.PluralRules(cleanedCode, {\n type\n });\n } catch (err) {\n if (typeof Intl === 'undefined') {\n this.logger.error('No Intl support, please use an Intl polyfill!');\n return dummyRule;\n }\n if (!code.match(/-|_/)) return dummyRule;\n const lngPart = this.languageUtils.getLanguagePartFromCode(code);\n rule = this.getRule(lngPart, options);\n }\n this.pluralRulesCache[cacheKey] = rule;\n return rule;\n }\n needsPlural(code, options = {}) {\n let rule = this.getRule(code, options);\n if (!rule) rule = this.getRule('dev', options);\n return rule?.resolvedOptions().pluralCategories.length > 1;\n }\n getPluralFormsOfKey(code, key, options = {}) {\n return this.getSuffixes(code, options).map(suffix => `${key}${suffix}`);\n }\n getSuffixes(code, options = {}) {\n let rule = this.getRule(code, options);\n if (!rule) rule = this.getRule('dev', options);\n if (!rule) return [];\n return rule.resolvedOptions().pluralCategories.sort((pluralCategory1, pluralCategory2) => suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2]).map(pluralCategory => `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${pluralCategory}`);\n }\n getSuffix(code, count, options = {}) {\n const rule = this.getRule(code, options);\n if (rule) {\n return `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${rule.select(count)}`;\n }\n this.logger.warn(`no plural rule found for: ${code}`);\n return this.getSuffix('dev', count, options);\n }\n}\n\nconst deepFindWithDefaults = (data, defaultData, key, keySeparator = '.', ignoreJSONStructure = true) => {\n let path = getPathWithDefaults(data, defaultData, key);\n if (!path && ignoreJSONStructure && isString(key)) {\n path = deepFind(data, key, keySeparator);\n if (path === undefined) path = deepFind(defaultData, key, keySeparator);\n }\n return path;\n};\nconst regexSafe = val => val.replace(/\\$/g, '$$$$');\nclass Interpolator {\n constructor(options = {}) {\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n this.format = options?.interpolation?.format || (value => value);\n this.init(options);\n }\n init(options = {}) {\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n const {\n escape: escape$1,\n escapeValue,\n useRawValueToEscape,\n prefix,\n prefixEscaped,\n suffix,\n suffixEscaped,\n formatSeparator,\n unescapeSuffix,\n unescapePrefix,\n nestingPrefix,\n nestingPrefixEscaped,\n nestingSuffix,\n nestingSuffixEscaped,\n nestingOptionsSeparator,\n maxReplaces,\n alwaysFormat\n } = options.interpolation;\n this.escape = escape$1 !== undefined ? escape$1 : escape;\n this.escapeValue = escapeValue !== undefined ? escapeValue : true;\n this.useRawValueToEscape = useRawValueToEscape !== undefined ? useRawValueToEscape : false;\n this.prefix = prefix ? regexEscape(prefix) : prefixEscaped || '{{';\n this.suffix = suffix ? regexEscape(suffix) : suffixEscaped || '}}';\n this.formatSeparator = formatSeparator || ',';\n this.unescapePrefix = unescapeSuffix ? '' : unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : unescapeSuffix || '';\n this.nestingPrefix = nestingPrefix ? regexEscape(nestingPrefix) : nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = nestingSuffix ? regexEscape(nestingSuffix) : nestingSuffixEscaped || regexEscape(')');\n this.nestingOptionsSeparator = nestingOptionsSeparator || ',';\n this.maxReplaces = maxReplaces || 1000;\n this.alwaysFormat = alwaysFormat !== undefined ? alwaysFormat : false;\n this.resetRegExp();\n }\n reset() {\n if (this.options) this.init(this.options);\n }\n resetRegExp() {\n const getOrResetRegExp = (existingRegExp, pattern) => {\n if (existingRegExp?.source === pattern) {\n existingRegExp.lastIndex = 0;\n return existingRegExp;\n }\n return new RegExp(pattern, 'g');\n };\n this.regexp = getOrResetRegExp(this.regexp, `${this.prefix}(.+?)${this.suffix}`);\n this.regexpUnescape = getOrResetRegExp(this.regexpUnescape, `${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`);\n this.nestingRegexp = getOrResetRegExp(this.nestingRegexp, `${this.nestingPrefix}((?:[^()\"']+|\"[^\"]*\"|'[^']*'|\\\\((?:[^()]|\"[^\"]*\"|'[^']*')*\\\\))*?)${this.nestingSuffix}`);\n }\n interpolate(str, data, lng, options) {\n let match;\n let value;\n let replaces;\n const defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n const handleFormat = key => {\n if (key.indexOf(this.formatSeparator) < 0) {\n const path = deepFindWithDefaults(data, defaultData, key, this.options.keySeparator, this.options.ignoreJSONStructure);\n return this.alwaysFormat ? this.format(path, undefined, lng, {\n ...options,\n ...data,\n interpolationkey: key\n }) : path;\n }\n const p = key.split(this.formatSeparator);\n const k = p.shift().trim();\n const f = p.join(this.formatSeparator).trim();\n return this.format(deepFindWithDefaults(data, defaultData, k, this.options.keySeparator, this.options.ignoreJSONStructure), f, lng, {\n ...options,\n ...data,\n interpolationkey: k\n });\n };\n this.resetRegExp();\n const missingInterpolationHandler = options?.missingInterpolationHandler || this.options.missingInterpolationHandler;\n const skipOnVariables = options?.interpolation?.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;\n const todos = [{\n regex: this.regexpUnescape,\n safeValue: val => regexSafe(val)\n }, {\n regex: this.regexp,\n safeValue: val => this.escapeValue ? regexSafe(this.escape(val)) : regexSafe(val)\n }];\n todos.forEach(todo => {\n replaces = 0;\n while (match = todo.regex.exec(str)) {\n const matchedVar = match[1].trim();\n value = handleFormat(matchedVar);\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n const temp = missingInterpolationHandler(str, match, options);\n value = isString(temp) ? temp : '';\n } else if (options && Object.prototype.hasOwnProperty.call(options, matchedVar)) {\n value = '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n this.logger.warn(`missed to pass in variable ${matchedVar} for interpolating ${str}`);\n value = '';\n }\n } else if (!isString(value) && !this.useRawValueToEscape) {\n value = makeString(value);\n }\n const safeValue = todo.safeValue(value);\n str = str.replace(match[0], safeValue);\n if (skipOnVariables) {\n todo.regex.lastIndex += value.length;\n todo.regex.lastIndex -= match[0].length;\n } else {\n todo.regex.lastIndex = 0;\n }\n replaces++;\n if (replaces >= this.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n nest(str, fc, options = {}) {\n let match;\n let value;\n let clonedOptions;\n const handleHasOptions = (key, inheritedOptions) => {\n const sep = this.nestingOptionsSeparator;\n if (key.indexOf(sep) < 0) return key;\n const c = key.split(new RegExp(`${regexEscape(sep)}[ ]*{`));\n let optionsString = `{${c[1]}`;\n key = c[0];\n optionsString = this.interpolate(optionsString, clonedOptions);\n const matchedSingleQuotes = optionsString.match(/'/g);\n const matchedDoubleQuotes = optionsString.match(/\"/g);\n if ((matchedSingleQuotes?.length ?? 0) % 2 === 0 && !matchedDoubleQuotes || (matchedDoubleQuotes?.length ?? 0) % 2 !== 0) {\n optionsString = optionsString.replace(/'/g, '\"');\n }\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = {\n ...inheritedOptions,\n ...clonedOptions\n };\n } catch (e) {\n this.logger.warn(`failed parsing options string in nesting for key ${key}`, e);\n return `${key}${sep}${optionsString}`;\n }\n if (clonedOptions.defaultValue && clonedOptions.defaultValue.indexOf(this.prefix) > -1) delete clonedOptions.defaultValue;\n return key;\n };\n while (match = this.nestingRegexp.exec(str)) {\n let formatters = [];\n clonedOptions = {\n ...options\n };\n clonedOptions = clonedOptions.replace && !isString(clonedOptions.replace) ? clonedOptions.replace : clonedOptions;\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n const keyEndIndex = /{.*}/.test(match[1]) ? match[1].lastIndexOf('}') + 1 : match[1].indexOf(this.formatSeparator);\n if (keyEndIndex !== -1) {\n formatters = match[1].slice(keyEndIndex).split(this.formatSeparator).map(elem => elem.trim()).filter(Boolean);\n match[1] = match[1].slice(0, keyEndIndex);\n }\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n if (value && match[0] === str && !isString(value)) return value;\n if (!isString(value)) value = makeString(value);\n if (!value) {\n this.logger.warn(`missed to resolve ${match[1]} for nesting ${str}`);\n value = '';\n }\n if (formatters.length) {\n value = formatters.reduce((v, f) => this.format(v, f, options.lng, {\n ...options,\n interpolationkey: match[1].trim()\n }), value.trim());\n }\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n return str;\n }\n}\n\nconst parseFormatStr = formatStr => {\n let formatName = formatStr.toLowerCase().trim();\n const formatOptions = {};\n if (formatStr.indexOf('(') > -1) {\n const p = formatStr.split('(');\n formatName = p[0].toLowerCase().trim();\n const optStr = p[1].substring(0, p[1].length - 1);\n if (formatName === 'currency' && optStr.indexOf(':') < 0) {\n if (!formatOptions.currency) formatOptions.currency = optStr.trim();\n } else if (formatName === 'relativetime' && optStr.indexOf(':') < 0) {\n if (!formatOptions.range) formatOptions.range = optStr.trim();\n } else {\n const opts = optStr.split(';');\n opts.forEach(opt => {\n if (opt) {\n const [key, ...rest] = opt.split(':');\n const val = rest.join(':').trim().replace(/^'+|'+$/g, '');\n const trimmedKey = key.trim();\n if (!formatOptions[trimmedKey]) formatOptions[trimmedKey] = val;\n if (val === 'false') formatOptions[trimmedKey] = false;\n if (val === 'true') formatOptions[trimmedKey] = true;\n if (!isNaN(val)) formatOptions[trimmedKey] = parseInt(val, 10);\n }\n });\n }\n }\n return {\n formatName,\n formatOptions\n };\n};\nconst createCachedFormatter = fn => {\n const cache = {};\n return (v, l, o) => {\n let optForCache = o;\n if (o && o.interpolationkey && o.formatParams && o.formatParams[o.interpolationkey] && o[o.interpolationkey]) {\n optForCache = {\n ...optForCache,\n [o.interpolationkey]: undefined\n };\n }\n const key = l + JSON.stringify(optForCache);\n let frm = cache[key];\n if (!frm) {\n frm = fn(getCleanedCode(l), o);\n cache[key] = frm;\n }\n return frm(v);\n };\n};\nconst createNonCachedFormatter = fn => (v, l, o) => fn(getCleanedCode(l), o)(v);\nclass Formatter {\n constructor(options = {}) {\n this.logger = baseLogger.create('formatter');\n this.options = options;\n this.init(options);\n }\n init(services, options = {\n interpolation: {}\n }) {\n this.formatSeparator = options.interpolation.formatSeparator || ',';\n const cf = options.cacheInBuiltFormats ? createCachedFormatter : createNonCachedFormatter;\n this.formats = {\n number: cf((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n currency: cf((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt,\n style: 'currency'\n });\n return val => formatter.format(val);\n }),\n datetime: cf((lng, opt) => {\n const formatter = new Intl.DateTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n relativetime: cf((lng, opt) => {\n const formatter = new Intl.RelativeTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val, opt.range || 'day');\n }),\n list: cf((lng, opt) => {\n const formatter = new Intl.ListFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n })\n };\n }\n add(name, fc) {\n this.formats[name.toLowerCase().trim()] = fc;\n }\n addCached(name, fc) {\n this.formats[name.toLowerCase().trim()] = createCachedFormatter(fc);\n }\n format(value, format, lng, options = {}) {\n const formats = format.split(this.formatSeparator);\n if (formats.length > 1 && formats[0].indexOf('(') > 1 && formats[0].indexOf(')') < 0 && formats.find(f => f.indexOf(')') > -1)) {\n const lastIndex = formats.findIndex(f => f.indexOf(')') > -1);\n formats[0] = [formats[0], ...formats.splice(1, lastIndex)].join(this.formatSeparator);\n }\n const result = formats.reduce((mem, f) => {\n const {\n formatName,\n formatOptions\n } = parseFormatStr(f);\n if (this.formats[formatName]) {\n let formatted = mem;\n try {\n const valOptions = options?.formatParams?.[options.interpolationkey] || {};\n const l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;\n formatted = this.formats[formatName](mem, l, {\n ...formatOptions,\n ...options,\n ...valOptions\n });\n } catch (error) {\n this.logger.warn(error);\n }\n return formatted;\n } else {\n this.logger.warn(`there was no format function for ${formatName}`);\n }\n return mem;\n }, value);\n return result;\n }\n}\n\nconst removePending = (q, name) => {\n if (q.pending[name] !== undefined) {\n delete q.pending[name];\n q.pendingCount--;\n }\n};\nclass Connector extends EventEmitter {\n constructor(backend, store, services, options = {}) {\n super();\n this.backend = backend;\n this.store = store;\n this.services = services;\n this.languageUtils = services.languageUtils;\n this.options = options;\n this.logger = baseLogger.create('backendConnector');\n this.waitingReads = [];\n this.maxParallelReads = options.maxParallelReads || 10;\n this.readingCalls = 0;\n this.maxRetries = options.maxRetries >= 0 ? options.maxRetries : 5;\n this.retryTimeout = options.retryTimeout >= 1 ? options.retryTimeout : 350;\n this.state = {};\n this.queue = [];\n this.backend?.init?.(services, options.backend, options);\n }\n queueLoad(languages, namespaces, options, callback) {\n const toLoad = {};\n const pending = {};\n const toLoadLanguages = {};\n const toLoadNamespaces = {};\n languages.forEach(lng => {\n let hasAllNamespaces = true;\n namespaces.forEach(ns => {\n const name = `${lng}|${ns}`;\n if (!options.reload && this.store.hasResourceBundle(lng, ns)) {\n this.state[name] = 2;\n } else if (this.state[name] < 0) ; else if (this.state[name] === 1) {\n if (pending[name] === undefined) pending[name] = true;\n } else {\n this.state[name] = 1;\n hasAllNamespaces = false;\n if (pending[name] === undefined) pending[name] = true;\n if (toLoad[name] === undefined) toLoad[name] = true;\n if (toLoadNamespaces[ns] === undefined) toLoadNamespaces[ns] = true;\n }\n });\n if (!hasAllNamespaces) toLoadLanguages[lng] = true;\n });\n if (Object.keys(toLoad).length || Object.keys(pending).length) {\n this.queue.push({\n pending,\n pendingCount: Object.keys(pending).length,\n loaded: {},\n errors: [],\n callback\n });\n }\n return {\n toLoad: Object.keys(toLoad),\n pending: Object.keys(pending),\n toLoadLanguages: Object.keys(toLoadLanguages),\n toLoadNamespaces: Object.keys(toLoadNamespaces)\n };\n }\n loaded(name, err, data) {\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n if (!err && data) {\n this.store.addResourceBundle(lng, ns, data, undefined, undefined, {\n skipCopy: true\n });\n }\n this.state[name] = err ? -1 : 2;\n if (err && data) this.state[name] = 0;\n const loaded = {};\n this.queue.forEach(q => {\n pushPath(q.loaded, [lng], ns);\n removePending(q, name);\n if (err) q.errors.push(err);\n if (q.pendingCount === 0 && !q.done) {\n Object.keys(q.loaded).forEach(l => {\n if (!loaded[l]) loaded[l] = {};\n const loadedKeys = q.loaded[l];\n if (loadedKeys.length) {\n loadedKeys.forEach(n => {\n if (loaded[l][n] === undefined) loaded[l][n] = true;\n });\n }\n });\n q.done = true;\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n });\n this.emit('loaded', loaded);\n this.queue = this.queue.filter(q => !q.done);\n }\n read(lng, ns, fcName, tried = 0, wait = this.retryTimeout, callback) {\n if (!lng.length) return callback(null, {});\n if (this.readingCalls >= this.maxParallelReads) {\n this.waitingReads.push({\n lng,\n ns,\n fcName,\n tried,\n wait,\n callback\n });\n return;\n }\n this.readingCalls++;\n const resolver = (err, data) => {\n this.readingCalls--;\n if (this.waitingReads.length > 0) {\n const next = this.waitingReads.shift();\n this.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);\n }\n if (err && data && tried < this.maxRetries) {\n setTimeout(() => {\n this.read.call(this, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n callback(err, data);\n };\n const fc = this.backend[fcName].bind(this.backend);\n if (fc.length === 2) {\n try {\n const r = fc(lng, ns);\n if (r && typeof r.then === 'function') {\n r.then(data => resolver(null, data)).catch(resolver);\n } else {\n resolver(null, r);\n }\n } catch (err) {\n resolver(err);\n }\n return;\n }\n return fc(lng, ns, resolver);\n }\n prepareLoading(languages, namespaces, options = {}, callback) {\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n if (isString(languages)) languages = this.languageUtils.toResolveHierarchy(languages);\n if (isString(namespaces)) namespaces = [namespaces];\n const toLoad = this.queueLoad(languages, namespaces, options, callback);\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n toLoad.toLoad.forEach(name => {\n this.loadOne(name);\n });\n }\n load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n loadOne(name, prefix = '') {\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n this.read(lng, ns, 'read', undefined, undefined, (err, data) => {\n if (err) this.logger.warn(`${prefix}loading namespace ${ns} for language ${lng} failed`, err);\n if (!err && data) this.logger.log(`${prefix}loaded namespace ${ns} for language ${lng}`, data);\n this.loaded(name, err, data);\n });\n }\n saveMissing(languages, namespace, key, fallbackValue, isUpdate, options = {}, clb = () => {}) {\n if (this.services?.utils?.hasLoadedNamespace && !this.services?.utils?.hasLoadedNamespace(namespace)) {\n this.logger.warn(`did not save key \"${key}\" as the namespace \"${namespace}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n return;\n }\n if (key === undefined || key === null || key === '') return;\n if (this.backend?.create) {\n const opts = {\n ...options,\n isUpdate\n };\n const fc = this.backend.create.bind(this.backend);\n if (fc.length < 6) {\n try {\n let r;\n if (fc.length === 5) {\n r = fc(languages, namespace, key, fallbackValue, opts);\n } else {\n r = fc(languages, namespace, key, fallbackValue);\n }\n if (r && typeof r.then === 'function') {\n r.then(data => clb(null, data)).catch(clb);\n } else {\n clb(null, r);\n }\n } catch (err) {\n clb(err);\n }\n } else {\n fc(languages, namespace, key, fallbackValue, clb, opts);\n }\n }\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n}\n\nconst get = () => ({\n debug: false,\n initAsync: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false,\n supportedLngs: false,\n nonExplicitSupportedLngs: false,\n load: 'all',\n preload: false,\n simplifyPluralSuffix: true,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n partialBundledLanguages: false,\n saveMissing: false,\n updateMissing: false,\n saveMissingTo: 'fallback',\n saveMissingPlurals: true,\n missingKeyHandler: false,\n missingInterpolationHandler: false,\n postProcess: false,\n postProcessPassResolved: false,\n returnNull: false,\n returnEmptyString: true,\n returnObjects: false,\n joinArrays: false,\n returnedObjectHandler: false,\n parseMissingKeyHandler: false,\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: args => {\n let ret = {};\n if (typeof args[1] === 'object') ret = args[1];\n if (isString(args[1])) ret.defaultValue = args[1];\n if (isString(args[2])) ret.tDescription = args[2];\n if (typeof args[2] === 'object' || typeof args[3] === 'object') {\n const options = args[3] || args[2];\n Object.keys(options).forEach(key => {\n ret[key] = options[key];\n });\n }\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: value => value,\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n nestingOptionsSeparator: ',',\n maxReplaces: 1000,\n skipOnVariables: true\n },\n cacheInBuiltFormats: true\n});\nconst transformOptions = options => {\n if (isString(options.ns)) options.ns = [options.ns];\n if (isString(options.fallbackLng)) options.fallbackLng = [options.fallbackLng];\n if (isString(options.fallbackNS)) options.fallbackNS = [options.fallbackNS];\n if (options.supportedLngs?.indexOf?.('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n if (typeof options.initImmediate === 'boolean') options.initAsync = options.initImmediate;\n return options;\n};\n\nconst noop = () => {};\nconst bindMemberFunctions = inst => {\n const mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));\n mems.forEach(mem => {\n if (typeof inst[mem] === 'function') {\n inst[mem] = inst[mem].bind(inst);\n }\n });\n};\nconst SUPPORT_NOTICE_KEY = '__i18next_supportNoticeShown';\nconst getSupportNoticeShown = () => typeof globalThis !== 'undefined' && !!globalThis[SUPPORT_NOTICE_KEY];\nconst setSupportNoticeShown = () => {\n if (typeof globalThis !== 'undefined') globalThis[SUPPORT_NOTICE_KEY] = true;\n};\nconst usesLocize = inst => {\n if (inst?.modules?.backend?.name?.indexOf('Locize') > 0) return true;\n if (inst?.modules?.backend?.constructor?.name?.indexOf('Locize') > 0) return true;\n if (inst?.options?.backend?.backends) {\n if (inst.options.backend.backends.some(b => b?.name?.indexOf('Locize') > 0 || b?.constructor?.name?.indexOf('Locize') > 0)) return true;\n }\n if (inst?.options?.backend?.projectId) return true;\n if (inst?.options?.backend?.backendOptions) {\n if (inst.options.backend.backendOptions.some(b => b?.projectId)) return true;\n }\n return false;\n};\nclass I18n extends EventEmitter {\n constructor(options = {}, callback) {\n super();\n this.options = transformOptions(options);\n this.services = {};\n this.logger = baseLogger;\n this.modules = {\n external: []\n };\n bindMemberFunctions(this);\n if (callback && !this.isInitialized && !options.isClone) {\n if (!this.options.initAsync) {\n this.init(options, callback);\n return this;\n }\n setTimeout(() => {\n this.init(options, callback);\n }, 0);\n }\n }\n init(options = {}, callback) {\n this.isInitializing = true;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n if (options.defaultNS == null && options.ns) {\n if (isString(options.ns)) {\n options.defaultNS = options.ns;\n } else if (options.ns.indexOf('translation') < 0) {\n options.defaultNS = options.ns[0];\n }\n }\n const defOpts = get();\n this.options = {\n ...defOpts,\n ...this.options,\n ...transformOptions(options)\n };\n this.options.interpolation = {\n ...defOpts.interpolation,\n ...this.options.interpolation\n };\n if (options.keySeparator !== undefined) {\n this.options.userDefinedKeySeparator = options.keySeparator;\n }\n if (options.nsSeparator !== undefined) {\n this.options.userDefinedNsSeparator = options.nsSeparator;\n }\n if (typeof this.options.overloadTranslationOptionHandler !== 'function') {\n this.options.overloadTranslationOptionHandler = defOpts.overloadTranslationOptionHandler;\n }\n if (this.options.showSupportNotice !== false && !usesLocize(this) && !getSupportNoticeShown()) {\n if (typeof console !== 'undefined' && typeof console.info !== 'undefined') console.info('🌐 i18next is maintained with support from Locize — consider powering your project with managed localization (AI, CDN, integrations): https://locize.com 💙');\n setSupportNoticeShown();\n }\n const createClassOnDemand = ClassOrObject => {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n };\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n let formatter;\n if (this.modules.formatter) {\n formatter = this.modules.formatter;\n } else {\n formatter = Formatter;\n }\n const lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n const s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator,\n simplifyPluralSuffix: this.options.simplifyPluralSuffix\n });\n const usingLegacyFormatFunction = this.options.interpolation.format && this.options.interpolation.format !== defOpts.interpolation.format;\n if (usingLegacyFormatFunction) {\n this.logger.deprecate(`init: you are still using the legacy format function, please use the new approach: https://www.i18next.com/translation-function/formatting`);\n }\n if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {\n s.formatter = createClassOnDemand(formatter);\n if (s.formatter.init) s.formatter.init(s, this.options);\n this.options.interpolation.format = s.formatter.format.bind(s.formatter);\n }\n s.interpolator = new Interpolator(this.options);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n s.backendConnector.on('*', (event, ...args) => {\n this.emit(event, ...args);\n });\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n if (s.languageDetector.init) s.languageDetector.init(s, this.options.detection, this.options);\n }\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n this.translator = new Translator(this.services, this.options);\n this.translator.on('*', (event, ...args) => {\n this.emit(event, ...args);\n });\n this.modules.external.forEach(m => {\n if (m.init) m.init(this);\n });\n }\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n const codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n }\n if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n const storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(fcName => {\n this[fcName] = (...args) => this.store[fcName](...args);\n });\n const storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(fcName => {\n this[fcName] = (...args) => {\n this.store[fcName](...args);\n return this;\n };\n });\n const deferred = defer();\n const load = () => {\n const finish = (err, t) => {\n this.isInitializing = false;\n if (this.isInitialized && !this.initializedStoreOnce) this.logger.warn('init: i18next is already initialized. You should call init just once!');\n this.isInitialized = true;\n if (!this.options.isClone) this.logger.log('initialized', this.options);\n this.emit('initialized', this.options);\n deferred.resolve(t);\n callback(err, t);\n };\n if (this.languages && !this.isInitialized) return finish(null, this.t.bind(this));\n this.changeLanguage(this.options.lng, finish);\n };\n if (this.options.resources || !this.options.initAsync) {\n load();\n } else {\n setTimeout(load, 0);\n }\n return deferred;\n }\n loadResources(language, callback = noop) {\n let usedCallback = callback;\n const usedLng = isString(language) ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng?.toLowerCase() === 'cimode' && (!this.options.preload || this.options.preload.length === 0)) return usedCallback();\n const toLoad = [];\n const append = lng => {\n if (!lng) return;\n if (lng === 'cimode') return;\n const lngs = this.services.languageUtils.toResolveHierarchy(lng);\n lngs.forEach(l => {\n if (l === 'cimode') return;\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n if (!usedLng) {\n const fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(l => append(l));\n } else {\n append(usedLng);\n }\n this.options.preload?.forEach?.(l => append(l));\n this.services.backendConnector.load(toLoad, this.options.ns, e => {\n if (!e && !this.resolvedLanguage && this.language) this.setResolvedLanguage(this.language);\n usedCallback(e);\n });\n } else {\n usedCallback(null);\n }\n }\n reloadResources(lngs, ns, callback) {\n const deferred = defer();\n if (typeof lngs === 'function') {\n callback = lngs;\n lngs = undefined;\n }\n if (typeof ns === 'function') {\n callback = ns;\n ns = undefined;\n }\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = noop;\n this.services.backendConnector.reload(lngs, ns, err => {\n deferred.resolve();\n callback(err);\n });\n return deferred;\n }\n use(module) {\n if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n if (module.type === 'formatter') {\n this.modules.formatter = module;\n }\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n return this;\n }\n setResolvedLanguage(l) {\n if (!l || !this.languages) return;\n if (['cimode', 'dev'].indexOf(l) > -1) return;\n for (let li = 0; li < this.languages.length; li++) {\n const lngInLngs = this.languages[li];\n if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;\n if (this.store.hasLanguageSomeTranslations(lngInLngs)) {\n this.resolvedLanguage = lngInLngs;\n break;\n }\n }\n if (!this.resolvedLanguage && this.languages.indexOf(l) < 0 && this.store.hasLanguageSomeTranslations(l)) {\n this.resolvedLanguage = l;\n this.languages.unshift(l);\n }\n }\n changeLanguage(lng, callback) {\n this.isLanguageChangingTo = lng;\n const deferred = defer();\n this.emit('languageChanging', lng);\n const setLngProps = l => {\n this.language = l;\n this.languages = this.services.languageUtils.toResolveHierarchy(l);\n this.resolvedLanguage = undefined;\n this.setResolvedLanguage(l);\n };\n const done = (err, l) => {\n if (l) {\n if (this.isLanguageChangingTo === lng) {\n setLngProps(l);\n this.translator.changeLanguage(l);\n this.isLanguageChangingTo = undefined;\n this.emit('languageChanged', l);\n this.logger.log('languageChanged', l);\n }\n } else {\n this.isLanguageChangingTo = undefined;\n }\n deferred.resolve((...args) => this.t(...args));\n if (callback) callback(err, (...args) => this.t(...args));\n };\n const setLng = lngs => {\n if (!lng && !lngs && this.services.languageDetector) lngs = [];\n const fl = isString(lngs) ? lngs : lngs && lngs[0];\n const l = this.store.hasLanguageSomeTranslations(fl) ? fl : this.services.languageUtils.getBestMatchFromCodes(isString(lngs) ? [lngs] : lngs);\n if (l) {\n if (!this.language) {\n setLngProps(l);\n }\n if (!this.translator.language) this.translator.changeLanguage(l);\n this.services.languageDetector?.cacheUserLanguage?.(l);\n }\n this.loadResources(l, err => {\n done(err, l);\n });\n };\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n if (this.services.languageDetector.detect.length === 0) {\n this.services.languageDetector.detect().then(setLng);\n } else {\n this.services.languageDetector.detect(setLng);\n }\n } else {\n setLng(lng);\n }\n return deferred;\n }\n getFixedT(lng, ns, keyPrefix) {\n const fixedT = (key, opts, ...rest) => {\n let o;\n if (typeof opts !== 'object') {\n o = this.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n o = {\n ...opts\n };\n }\n o.lng = o.lng || fixedT.lng;\n o.lngs = o.lngs || fixedT.lngs;\n o.ns = o.ns || fixedT.ns;\n if (o.keyPrefix !== '') o.keyPrefix = o.keyPrefix || keyPrefix || fixedT.keyPrefix;\n const keySeparator = this.options.keySeparator || '.';\n let resultKey;\n if (o.keyPrefix && Array.isArray(key)) {\n resultKey = key.map(k => {\n if (typeof k === 'function') k = keysFromSelector(k, {\n ...this.options,\n ...opts\n });\n return `${o.keyPrefix}${keySeparator}${k}`;\n });\n } else {\n if (typeof key === 'function') key = keysFromSelector(key, {\n ...this.options,\n ...opts\n });\n resultKey = o.keyPrefix ? `${o.keyPrefix}${keySeparator}${key}` : key;\n }\n return this.t(resultKey, o);\n };\n if (isString(lng)) {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n fixedT.ns = ns;\n fixedT.keyPrefix = keyPrefix;\n return fixedT;\n }\n t(...args) {\n return this.translator?.translate(...args);\n }\n exists(...args) {\n return this.translator?.exists(...args);\n }\n setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n hasLoadedNamespace(ns, options = {}) {\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\n if (!this.languages || !this.languages.length) {\n this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n return false;\n }\n const lng = options.lng || this.resolvedLanguage || this.languages[0];\n const fallbackLng = this.options ? this.options.fallbackLng : false;\n const lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n const loadNotPending = (l, n) => {\n const loadState = this.services.backendConnector.state[`${l}|${n}`];\n return loadState === -1 || loadState === 0 || loadState === 2;\n };\n if (options.precheck) {\n const preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\n }\n if (this.hasResourceBundle(lng, ns)) return true;\n if (!this.services.backendConnector.backend || this.options.resources && !this.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n loadNamespaces(ns, callback) {\n const deferred = defer();\n if (!this.options.ns) {\n if (callback) callback();\n return Promise.resolve();\n }\n if (isString(ns)) ns = [ns];\n ns.forEach(n => {\n if (this.options.ns.indexOf(n) < 0) this.options.ns.push(n);\n });\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n loadLanguages(lngs, callback) {\n const deferred = defer();\n if (isString(lngs)) lngs = [lngs];\n const preloaded = this.options.preload || [];\n const newLngs = lngs.filter(lng => preloaded.indexOf(lng) < 0 && this.services.languageUtils.isSupportedCode(lng));\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n dir(lng) {\n if (!lng) lng = this.resolvedLanguage || (this.languages?.length > 0 ? this.languages[0] : this.language);\n if (!lng) return 'rtl';\n try {\n const l = new Intl.Locale(lng);\n if (l && l.getTextInfo) {\n const ti = l.getTextInfo();\n if (ti && ti.direction) return ti.direction;\n }\n } catch (e) {}\n const rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];\n const languageUtils = this.services?.languageUtils || new LanguageUtil(get());\n if (lng.toLowerCase().indexOf('-latn') > 1) return 'ltr';\n return rtlLngs.indexOf(languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n }\n static createInstance(options = {}, callback) {\n const instance = new I18n(options, callback);\n instance.createInstance = I18n.createInstance;\n return instance;\n }\n cloneInstance(options = {}, callback = noop) {\n const forkResourceStore = options.forkResourceStore;\n if (forkResourceStore) delete options.forkResourceStore;\n const mergedOptions = {\n ...this.options,\n ...options,\n ...{\n isClone: true\n }\n };\n const clone = new I18n(mergedOptions);\n if (options.debug !== undefined || options.prefix !== undefined) {\n clone.logger = clone.logger.clone(options);\n }\n const membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(m => {\n clone[m] = this[m];\n });\n clone.services = {\n ...this.services\n };\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n if (forkResourceStore) {\n const clonedData = Object.keys(this.store.data).reduce((prev, l) => {\n prev[l] = {\n ...this.store.data[l]\n };\n prev[l] = Object.keys(prev[l]).reduce((acc, n) => {\n acc[n] = {\n ...prev[l][n]\n };\n return acc;\n }, prev[l]);\n return prev;\n }, {});\n clone.store = new ResourceStore(clonedData, mergedOptions);\n clone.services.resourceStore = clone.store;\n }\n if (options.interpolation) {\n const defOpts = get();\n const mergedInterpolation = {\n ...defOpts.interpolation,\n ...this.options.interpolation,\n ...options.interpolation\n };\n const mergedForInterpolator = {\n ...mergedOptions,\n interpolation: mergedInterpolation\n };\n clone.services.interpolator = new Interpolator(mergedForInterpolator);\n }\n clone.translator = new Translator(clone.services, mergedOptions);\n clone.translator.on('*', (event, ...args) => {\n clone.emit(event, ...args);\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = mergedOptions;\n clone.translator.backendConnector.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n return clone;\n }\n toJSON() {\n return {\n options: this.options,\n store: this.store,\n language: this.language,\n languages: this.languages,\n resolvedLanguage: this.resolvedLanguage\n };\n }\n}\nconst instance = I18n.createInstance();\n\nconst createInstance = instance.createInstance;\nconst dir = instance.dir;\nconst init = instance.init;\nconst loadResources = instance.loadResources;\nconst reloadResources = instance.reloadResources;\nconst use = instance.use;\nconst changeLanguage = instance.changeLanguage;\nconst getFixedT = instance.getFixedT;\nconst t = instance.t;\nconst exists = instance.exists;\nconst setDefaultNamespace = instance.setDefaultNamespace;\nconst hasLoadedNamespace = instance.hasLoadedNamespace;\nconst loadNamespaces = instance.loadNamespaces;\nconst loadLanguages = instance.loadLanguages;\n\nexport { changeLanguage, createInstance, instance as default, dir, exists, getFixedT, hasLoadedNamespace, init, keysFromSelector as keyFromSelector, loadLanguages, loadNamespaces, loadResources, reloadResources, setDefaultNamespace, t, use };\n","const {\n slice,\n forEach\n} = [];\nfunction defaults(obj) {\n forEach.call(slice.call(arguments, 1), source => {\n if (source) {\n for (const prop in source) {\n if (obj[prop] === undefined) obj[prop] = source[prop];\n }\n }\n });\n return obj;\n}\nfunction hasXSS(input) {\n if (typeof input !== 'string') return false;\n\n // Common XSS attack patterns\n const xssPatterns = [/<\\s*script.*?>/i, /<\\s*\\/\\s*script\\s*>/i, /<\\s*img.*?on\\w+\\s*=/i, /<\\s*\\w+\\s*on\\w+\\s*=.*?>/i, /javascript\\s*:/i, /vbscript\\s*:/i, /expression\\s*\\(/i, /eval\\s*\\(/i, /alert\\s*\\(/i, /document\\.cookie/i, /document\\.write\\s*\\(/i, /window\\.location/i, /innerHTML/i];\n return xssPatterns.some(pattern => pattern.test(input));\n}\n\n// eslint-disable-next-line no-control-regex\nconst fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\nconst serializeCookie = function (name, val) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n path: '/'\n };\n const opt = options;\n const value = encodeURIComponent(val);\n let str = `${name}=${value}`;\n if (opt.maxAge > 0) {\n const maxAge = opt.maxAge - 0;\n if (Number.isNaN(maxAge)) throw new Error('maxAge should be a Number');\n str += `; Max-Age=${Math.floor(maxAge)}`;\n }\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n str += `; Domain=${opt.domain}`;\n }\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n str += `; Path=${opt.path}`;\n }\n if (opt.expires) {\n if (typeof opt.expires.toUTCString !== 'function') {\n throw new TypeError('option expires is invalid');\n }\n str += `; Expires=${opt.expires.toUTCString()}`;\n }\n if (opt.httpOnly) str += '; HttpOnly';\n if (opt.secure) str += '; Secure';\n if (opt.sameSite) {\n const sameSite = typeof opt.sameSite === 'string' ? opt.sameSite.toLowerCase() : opt.sameSite;\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n case 'lax':\n str += '; SameSite=Lax';\n break;\n case 'strict':\n str += '; SameSite=Strict';\n break;\n case 'none':\n str += '; SameSite=None';\n break;\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n if (opt.partitioned) str += '; Partitioned';\n return str;\n};\nconst cookie = {\n create(name, value, minutes, domain) {\n let cookieOptions = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n path: '/',\n sameSite: 'strict'\n };\n if (minutes) {\n cookieOptions.expires = new Date();\n cookieOptions.expires.setTime(cookieOptions.expires.getTime() + minutes * 60 * 1000);\n }\n if (domain) cookieOptions.domain = domain;\n document.cookie = serializeCookie(name, value, cookieOptions);\n },\n read(name) {\n const nameEQ = `${name}=`;\n const ca = document.cookie.split(';');\n for (let i = 0; i < ca.length; i++) {\n let c = ca[i];\n while (c.charAt(0) === ' ') c = c.substring(1, c.length);\n if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length, c.length);\n }\n return null;\n },\n remove(name, domain) {\n this.create(name, '', -1, domain);\n }\n};\nvar cookie$1 = {\n name: 'cookie',\n // Deconstruct the options object and extract the lookupCookie property\n lookup(_ref) {\n let {\n lookupCookie\n } = _ref;\n if (lookupCookie && typeof document !== 'undefined') {\n return cookie.read(lookupCookie) || undefined;\n }\n return undefined;\n },\n // Deconstruct the options object and extract the lookupCookie, cookieMinutes, cookieDomain, and cookieOptions properties\n cacheUserLanguage(lng, _ref2) {\n let {\n lookupCookie,\n cookieMinutes,\n cookieDomain,\n cookieOptions\n } = _ref2;\n if (lookupCookie && typeof document !== 'undefined') {\n cookie.create(lookupCookie, lng, cookieMinutes, cookieDomain, cookieOptions);\n }\n }\n};\n\nvar querystring = {\n name: 'querystring',\n // Deconstruct the options object and extract the lookupQuerystring property\n lookup(_ref) {\n let {\n lookupQuerystring\n } = _ref;\n let found;\n if (typeof window !== 'undefined') {\n let {\n search\n } = window.location;\n if (!window.location.search && window.location.hash?.indexOf('?') > -1) {\n search = window.location.hash.substring(window.location.hash.indexOf('?'));\n }\n const query = search.substring(1);\n const params = query.split('&');\n for (let i = 0; i < params.length; i++) {\n const pos = params[i].indexOf('=');\n if (pos > 0) {\n const key = params[i].substring(0, pos);\n if (key === lookupQuerystring) {\n found = params[i].substring(pos + 1);\n }\n }\n }\n }\n return found;\n }\n};\n\nvar hash = {\n name: 'hash',\n // Deconstruct the options object and extract the lookupHash property and the lookupFromHashIndex property\n lookup(_ref) {\n let {\n lookupHash,\n lookupFromHashIndex\n } = _ref;\n let found;\n if (typeof window !== 'undefined') {\n const {\n hash\n } = window.location;\n if (hash && hash.length > 2) {\n const query = hash.substring(1);\n if (lookupHash) {\n const params = query.split('&');\n for (let i = 0; i < params.length; i++) {\n const pos = params[i].indexOf('=');\n if (pos > 0) {\n const key = params[i].substring(0, pos);\n if (key === lookupHash) {\n found = params[i].substring(pos + 1);\n }\n }\n }\n }\n if (found) return found;\n if (!found && lookupFromHashIndex > -1) {\n const language = hash.match(/\\/([a-zA-Z-]*)/g);\n if (!Array.isArray(language)) return undefined;\n const index = typeof lookupFromHashIndex === 'number' ? lookupFromHashIndex : 0;\n return language[index]?.replace('/', '');\n }\n }\n }\n return found;\n }\n};\n\nlet hasLocalStorageSupport = null;\nconst localStorageAvailable = () => {\n if (hasLocalStorageSupport !== null) return hasLocalStorageSupport;\n try {\n hasLocalStorageSupport = typeof window !== 'undefined' && window.localStorage !== null;\n if (!hasLocalStorageSupport) {\n return false;\n }\n const testKey = 'i18next.translate.boo';\n window.localStorage.setItem(testKey, 'foo');\n window.localStorage.removeItem(testKey);\n } catch (e) {\n hasLocalStorageSupport = false;\n }\n return hasLocalStorageSupport;\n};\nvar localStorage = {\n name: 'localStorage',\n // Deconstruct the options object and extract the lookupLocalStorage property\n lookup(_ref) {\n let {\n lookupLocalStorage\n } = _ref;\n if (lookupLocalStorage && localStorageAvailable()) {\n return window.localStorage.getItem(lookupLocalStorage) || undefined; // Undefined ensures type consistency with the previous version of this function\n }\n return undefined;\n },\n // Deconstruct the options object and extract the lookupLocalStorage property\n cacheUserLanguage(lng, _ref2) {\n let {\n lookupLocalStorage\n } = _ref2;\n if (lookupLocalStorage && localStorageAvailable()) {\n window.localStorage.setItem(lookupLocalStorage, lng);\n }\n }\n};\n\nlet hasSessionStorageSupport = null;\nconst sessionStorageAvailable = () => {\n if (hasSessionStorageSupport !== null) return hasSessionStorageSupport;\n try {\n hasSessionStorageSupport = typeof window !== 'undefined' && window.sessionStorage !== null;\n if (!hasSessionStorageSupport) {\n return false;\n }\n const testKey = 'i18next.translate.boo';\n window.sessionStorage.setItem(testKey, 'foo');\n window.sessionStorage.removeItem(testKey);\n } catch (e) {\n hasSessionStorageSupport = false;\n }\n return hasSessionStorageSupport;\n};\nvar sessionStorage = {\n name: 'sessionStorage',\n lookup(_ref) {\n let {\n lookupSessionStorage\n } = _ref;\n if (lookupSessionStorage && sessionStorageAvailable()) {\n return window.sessionStorage.getItem(lookupSessionStorage) || undefined;\n }\n return undefined;\n },\n cacheUserLanguage(lng, _ref2) {\n let {\n lookupSessionStorage\n } = _ref2;\n if (lookupSessionStorage && sessionStorageAvailable()) {\n window.sessionStorage.setItem(lookupSessionStorage, lng);\n }\n }\n};\n\nvar navigator$1 = {\n name: 'navigator',\n lookup(options) {\n const found = [];\n if (typeof navigator !== 'undefined') {\n const {\n languages,\n userLanguage,\n language\n } = navigator;\n if (languages) {\n // chrome only; not an array, so can't use .push.apply instead of iterating\n for (let i = 0; i < languages.length; i++) {\n found.push(languages[i]);\n }\n }\n if (userLanguage) {\n found.push(userLanguage);\n }\n if (language) {\n found.push(language);\n }\n }\n return found.length > 0 ? found : undefined;\n }\n};\n\nvar htmlTag = {\n name: 'htmlTag',\n // Deconstruct the options object and extract the htmlTag property\n lookup(_ref) {\n let {\n htmlTag\n } = _ref;\n let found;\n const internalHtmlTag = htmlTag || (typeof document !== 'undefined' ? document.documentElement : null);\n if (internalHtmlTag && typeof internalHtmlTag.getAttribute === 'function') {\n found = internalHtmlTag.getAttribute('lang');\n }\n return found;\n }\n};\n\nvar path = {\n name: 'path',\n // Deconstruct the options object and extract the lookupFromPathIndex property\n lookup(_ref) {\n let {\n lookupFromPathIndex\n } = _ref;\n if (typeof window === 'undefined') return undefined;\n const language = window.location.pathname.match(/\\/([a-zA-Z-]*)/g);\n if (!Array.isArray(language)) return undefined;\n const index = typeof lookupFromPathIndex === 'number' ? lookupFromPathIndex : 0;\n return language[index]?.replace('/', '');\n }\n};\n\nvar subdomain = {\n name: 'subdomain',\n lookup(_ref) {\n let {\n lookupFromSubdomainIndex\n } = _ref;\n // If given get the subdomain index else 1\n const internalLookupFromSubdomainIndex = typeof lookupFromSubdomainIndex === 'number' ? lookupFromSubdomainIndex + 1 : 1;\n // get all matches if window.location. is existing\n // first item of match is the match itself and the second is the first group match which should be the first subdomain match\n // is the hostname no public domain get the or option of localhost\n const language = typeof window !== 'undefined' && window.location?.hostname?.match(/^(\\w{2,5})\\.(([a-z0-9-]{1,63}\\.[a-z]{2,6})|localhost)/i);\n\n // if there is no match (null) return undefined\n if (!language) return undefined;\n // return the given group match\n return language[internalLookupFromSubdomainIndex];\n }\n};\n\n// some environments, throws when accessing document.cookie\nlet canCookies = false;\ntry {\n // eslint-disable-next-line no-unused-expressions\n document.cookie;\n canCookies = true;\n // eslint-disable-next-line no-empty\n} catch (e) {}\nconst order = ['querystring', 'cookie', 'localStorage', 'sessionStorage', 'navigator', 'htmlTag'];\nif (!canCookies) order.splice(1, 1);\nconst getDefaults = () => ({\n order,\n lookupQuerystring: 'lng',\n lookupCookie: 'i18next',\n lookupLocalStorage: 'i18nextLng',\n lookupSessionStorage: 'i18nextLng',\n // cache user language\n caches: ['localStorage'],\n excludeCacheFor: ['cimode'],\n // cookieMinutes: 10,\n // cookieDomain: 'myDomain'\n\n convertDetectedLanguage: l => l\n});\nclass Browser {\n constructor(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.type = 'languageDetector';\n this.detectors = {};\n this.init(services, options);\n }\n init() {\n let services = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n languageUtils: {}\n };\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let i18nOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.services = services;\n this.options = defaults(options, this.options || {}, getDefaults());\n if (typeof this.options.convertDetectedLanguage === 'string' && this.options.convertDetectedLanguage.indexOf('15897') > -1) {\n this.options.convertDetectedLanguage = l => l.replace('-', '_');\n }\n\n // backwards compatibility\n if (this.options.lookupFromUrlIndex) this.options.lookupFromPathIndex = this.options.lookupFromUrlIndex;\n this.i18nOptions = i18nOptions;\n this.addDetector(cookie$1);\n this.addDetector(querystring);\n this.addDetector(localStorage);\n this.addDetector(sessionStorage);\n this.addDetector(navigator$1);\n this.addDetector(htmlTag);\n this.addDetector(path);\n this.addDetector(subdomain);\n this.addDetector(hash);\n }\n addDetector(detector) {\n this.detectors[detector.name] = detector;\n return this;\n }\n detect() {\n let detectionOrder = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.options.order;\n let detected = [];\n detectionOrder.forEach(detectorName => {\n if (this.detectors[detectorName]) {\n let lookup = this.detectors[detectorName].lookup(this.options);\n if (lookup && typeof lookup === 'string') lookup = [lookup];\n if (lookup) detected = detected.concat(lookup);\n }\n });\n detected = detected.filter(d => d !== undefined && d !== null && !hasXSS(d)).map(d => this.options.convertDetectedLanguage(d));\n if (this.services && this.services.languageUtils && this.services.languageUtils.getBestMatchFromCodes) return detected; // new i18next v19.5.0\n return detected.length > 0 ? detected[0] : null; // a little backward compatibility\n }\n cacheUserLanguage(lng) {\n let caches = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.options.caches;\n if (!caches) return;\n if (this.options.excludeCacheFor && this.options.excludeCacheFor.indexOf(lng) > -1) return;\n caches.forEach(cacheName => {\n if (this.detectors[cacheName]) this.detectors[cacheName].cacheUserLanguage(lng, this.options);\n });\n }\n}\nBrowser.type = 'languageDetector';\n\nexport { Browser as default };\n","import i18next from 'i18next';\nimport LanguageDetector from 'i18next-browser-languagedetector';\nimport en from './en.json';\nimport tr from './tr.json';\n\ni18next\n .use(LanguageDetector)\n .init({\n fallbackLng: 'en',\n debug: false,\n resources: {\n en: { translation: en },\n tr: { translation: tr },\n },\n interpolation: {\n escapeValue: false, // Lit zaten güvenlidir\n },\n });\n\nexport default i18next;\n","// chatbot-sizes.ts\nimport { css } from 'lit';\n\nexport default css`\n.grid {\n display: flex;\n flex-wrap: wrap;\n margin-right: -0.5rem;\n margin-left: -0.5rem;\n margin-top: -0.5rem;\n}\n\n.grid > .col,\n.grid > [class*=col] {\n box-sizing: border-box;\n}\n\n.grid-nogutter {\n margin-right: 0;\n margin-left: 0;\n margin-top: 0;\n}\n\n.grid-nogutter > .col,\n.grid-nogutter > [class*=col-] {\n padding: 0;\n}\n\n.col {\n flex-grow: 1;\n flex-basis: 0;\n padding: 0.5rem;\n}\n\n.col-fixed {\n flex: 0 0 auto;\n padding: 0.5rem;\n}\n\n.col-1 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 8.3333%;\n}\n\n.col-2 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 16.6667%;\n}\n\n.col-3 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 25%;\n}\n\n.col-4 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 33.3333%;\n}\n\n.col-5 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 41.6667%;\n}\n\n.col-6 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 50%;\n}\n\n.col-7 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 58.3333%;\n}\n\n.col-8 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 66.6667%;\n}\n\n.col-9 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 75%;\n}\n\n.col-10 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 83.3333%;\n}\n\n.col-11 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 91.6667%;\n}\n\n.col-12 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 100%;\n}\n\n@media screen and (min-width: 576px) {\n .sm\\:col {\n flex-grow: 1;\n flex-basis: 0;\n padding: 0.5rem;\n }\n .sm\\:col-fixed {\n flex: 0 0 auto;\n padding: 0.5rem;\n }\n .sm\\:col-1 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 8.3333%;\n }\n .sm\\:col-2 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 16.6667%;\n }\n .sm\\:col-3 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 25%;\n }\n .sm\\:col-4 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 33.3333%;\n }\n .sm\\:col-5 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 41.6667%;\n }\n .sm\\:col-6 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 50%;\n }\n .sm\\:col-7 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 58.3333%;\n }\n .sm\\:col-8 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 66.6667%;\n }\n .sm\\:col-9 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 75%;\n }\n .sm\\:col-10 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 83.3333%;\n }\n .sm\\:col-11 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 91.6667%;\n }\n .sm\\:col-12 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 100%;\n }\n}\n@media screen and (min-width: 768px) {\n .md\\:col {\n flex-grow: 1;\n flex-basis: 0;\n padding: 0.5rem;\n }\n .md\\:col-fixed {\n flex: 0 0 auto;\n padding: 0.5rem;\n }\n .md\\:col-1 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 8.3333%;\n }\n .md\\:col-2 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 16.6667%;\n }\n .md\\:col-3 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 25%;\n }\n .md\\:col-4 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 33.3333%;\n }\n .md\\:col-5 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 41.6667%;\n }\n .md\\:col-6 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 50%;\n }\n .md\\:col-7 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 58.3333%;\n }\n .md\\:col-8 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 66.6667%;\n }\n .md\\:col-9 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 75%;\n }\n .md\\:col-10 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 83.3333%;\n }\n .md\\:col-11 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 91.6667%;\n }\n .md\\:col-12 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 100%;\n }\n}\n@media screen and (min-width: 992px) {\n .lg\\:col {\n flex-grow: 1;\n flex-basis: 0;\n padding: 0.5rem;\n }\n .lg\\:col-fixed {\n flex: 0 0 auto;\n padding: 0.5rem;\n }\n .lg\\:col-1 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 8.3333%;\n }\n .lg\\:col-2 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 16.6667%;\n }\n .lg\\:col-3 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 25%;\n }\n .lg\\:col-4 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 33.3333%;\n }\n .lg\\:col-5 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 41.6667%;\n }\n .lg\\:col-6 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 50%;\n }\n .lg\\:col-7 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 58.3333%;\n }\n .lg\\:col-8 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 66.6667%;\n }\n .lg\\:col-9 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 75%;\n }\n .lg\\:col-10 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 83.3333%;\n }\n .lg\\:col-11 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 91.6667%;\n }\n .lg\\:col-12 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 100%;\n }\n}\n@media screen and (min-width: 1200px) {\n .xl\\:col {\n flex-grow: 1;\n flex-basis: 0;\n padding: 0.5rem;\n }\n .xl\\:col-fixed {\n flex: 0 0 auto;\n padding: 0.5rem;\n }\n .xl\\:col-1 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 8.3333%;\n }\n .xl\\:col-2 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 16.6667%;\n }\n .xl\\:col-3 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 25%;\n }\n .xl\\:col-4 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 33.3333%;\n }\n .xl\\:col-5 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 41.6667%;\n }\n .xl\\:col-6 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 50%;\n }\n .xl\\:col-7 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 58.3333%;\n }\n .xl\\:col-8 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 66.6667%;\n }\n .xl\\:col-9 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 75%;\n }\n .xl\\:col-10 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 83.3333%;\n }\n .xl\\:col-11 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 91.6667%;\n }\n .xl\\:col-12 {\n flex: 0 0 auto;\n padding: 0.5rem;\n width: 100%;\n }\n}\n.col-offset-0 {\n margin-left: 0 !important;\n}\n\n.col-offset-1 {\n margin-left: 8.3333% !important;\n}\n\n.col-offset-2 {\n margin-left: 16.6667% !important;\n}\n\n.col-offset-3 {\n margin-left: 25% !important;\n}\n\n.col-offset-4 {\n margin-left: 33.3333% !important;\n}\n\n.col-offset-5 {\n margin-left: 41.6667% !important;\n}\n\n.col-offset-6 {\n margin-left: 50% !important;\n}\n\n.col-offset-7 {\n margin-left: 58.3333% !important;\n}\n\n.col-offset-8 {\n margin-left: 66.6667% !important;\n}\n\n.col-offset-9 {\n margin-left: 75% !important;\n}\n\n.col-offset-10 {\n margin-left: 83.3333% !important;\n}\n\n.col-offset-11 {\n margin-left: 91.6667% !important;\n}\n\n.col-offset-12 {\n margin-left: 100% !important;\n}\n\n@media screen and (min-width: 576px) {\n .sm\\:col-offset-0 {\n margin-left: 0 !important;\n }\n .sm\\:col-offset-1 {\n margin-left: 8.3333% !important;\n }\n .sm\\:col-offset-2 {\n margin-left: 16.6667% !important;\n }\n .sm\\:col-offset-3 {\n margin-left: 25% !important;\n }\n .sm\\:col-offset-4 {\n margin-left: 33.3333% !important;\n }\n .sm\\:col-offset-5 {\n margin-left: 41.6667% !important;\n }\n .sm\\:col-offset-6 {\n margin-left: 50% !important;\n }\n .sm\\:col-offset-7 {\n margin-left: 58.3333% !important;\n }\n .sm\\:col-offset-8 {\n margin-left: 66.6667% !important;\n }\n .sm\\:col-offset-9 {\n margin-left: 75% !important;\n }\n .sm\\:col-offset-10 {\n margin-left: 83.3333% !important;\n }\n .sm\\:col-offset-11 {\n margin-left: 91.6667% !important;\n }\n .sm\\:col-offset-12 {\n margin-left: 100% !important;\n }\n}\n@media screen and (min-width: 768px) {\n .md\\:col-offset-0 {\n margin-left: 0 !important;\n }\n .md\\:col-offset-1 {\n margin-left: 8.3333% !important;\n }\n .md\\:col-offset-2 {\n margin-left: 16.6667% !important;\n }\n .md\\:col-offset-3 {\n margin-left: 25% !important;\n }\n .md\\:col-offset-4 {\n margin-left: 33.3333% !important;\n }\n .md\\:col-offset-5 {\n margin-left: 41.6667% !important;\n }\n .md\\:col-offset-6 {\n margin-left: 50% !important;\n }\n .md\\:col-offset-7 {\n margin-left: 58.3333% !important;\n }\n .md\\:col-offset-8 {\n margin-left: 66.6667% !important;\n }\n .md\\:col-offset-9 {\n margin-left: 75% !important;\n }\n .md\\:col-offset-10 {\n margin-left: 83.3333% !important;\n }\n .md\\:col-offset-11 {\n margin-left: 91.6667% !important;\n }\n .md\\:col-offset-12 {\n margin-left: 100% !important;\n }\n}\n@media screen and (min-width: 992px) {\n .lg\\:col-offset-0 {\n margin-left: 0 !important;\n }\n .lg\\:col-offset-1 {\n margin-left: 8.3333% !important;\n }\n .lg\\:col-offset-2 {\n margin-left: 16.6667% !important;\n }\n .lg\\:col-offset-3 {\n margin-left: 25% !important;\n }\n .lg\\:col-offset-4 {\n margin-left: 33.3333% !important;\n }\n .lg\\:col-offset-5 {\n margin-left: 41.6667% !important;\n }\n .lg\\:col-offset-6 {\n margin-left: 50% !important;\n }\n .lg\\:col-offset-7 {\n margin-left: 58.3333% !important;\n }\n .lg\\:col-offset-8 {\n margin-left: 66.6667% !important;\n }\n .lg\\:col-offset-9 {\n margin-left: 75% !important;\n }\n .lg\\:col-offset-10 {\n margin-left: 83.3333% !important;\n }\n .lg\\:col-offset-11 {\n margin-left: 91.6667% !important;\n }\n .lg\\:col-offset-12 {\n margin-left: 100% !important;\n }\n}\n@media screen and (min-width: 1200px) {\n .xl\\:col-offset-0 {\n margin-left: 0 !important;\n }\n .xl\\:col-offset-1 {\n margin-left: 8.3333% !important;\n }\n .xl\\:col-offset-2 {\n margin-left: 16.6667% !important;\n }\n .xl\\:col-offset-3 {\n margin-left: 25% !important;\n }\n .xl\\:col-offset-4 {\n margin-left: 33.3333% !important;\n }\n .xl\\:col-offset-5 {\n margin-left: 41.6667% !important;\n }\n .xl\\:col-offset-6 {\n margin-left: 50% !important;\n }\n .xl\\:col-offset-7 {\n margin-left: 58.3333% !important;\n }\n .xl\\:col-offset-8 {\n margin-left: 66.6667% !important;\n }\n .xl\\:col-offset-9 {\n margin-left: 75% !important;\n }\n .xl\\:col-offset-10 {\n margin-left: 83.3333% !important;\n }\n .xl\\:col-offset-11 {\n margin-left: 91.6667% !important;\n }\n .xl\\:col-offset-12 {\n margin-left: 100% !important;\n }\n}\n.text-0 {\n color: light-dark(var(--p-surface-0), var(--p-surface-900)) !important;\n}\n\n.text-50 {\n color: light-dark(var(--p-surface-50), var(--p-surface-800)) !important;\n}\n\n.text-100 {\n color: light-dark(var(--p-surface-100), var(--p-surface-700)) !important;\n}\n\n.text-200 {\n color: light-dark(var(--p-surface-200), var(--p-surface-600)) !important;\n}\n\n.text-300 {\n color: light-dark(var(--p-surface-300), var(--p-surface-500)) !important;\n}\n\n.text-400 {\n color: light-dark(var(--p-surface-400), var(--p-surface-400)) !important;\n}\n\n.text-500 {\n color: light-dark(var(--p-surface-500), var(--p-surface-300)) !important;\n}\n\n.text-600 {\n color: light-dark(var(--p-surface-600), var(--p-surface-200)) !important;\n}\n\n.text-700 {\n color: light-dark(var(--p-surface-700), var(--p-surface-100)) !important;\n}\n\n.text-800 {\n color: light-dark(var(--p-surface-800), var(--p-surface-50)) !important;\n}\n\n.text-900 {\n color: light-dark(var(--p-surface-900), var(--p-surface-0)) !important;\n}\n\n.focus\\:text-0:focus {\n color: light-dark(var(--p-surface-0), var(--p-surface-900)) !important;\n}\n\n.hover\\:text-0:hover {\n color: light-dark(var(--p-surface-0), var(--p-surface-900)) !important;\n}\n\n.active\\:text-0:active {\n color: light-dark(var(--p-surface-0), var(--p-surface-900)) !important;\n}\n\n.focus\\:text-50:focus {\n color: light-dark(var(--p-surface-50), var(--p-surface-800)) !important;\n}\n\n.hover\\:text-50:hover {\n color: light-dark(var(--p-surface-50), var(--p-surface-800)) !important;\n}\n\n.active\\:text-50:active {\n color: light-dark(var(--p-surface-50), var(--p-surface-800)) !important;\n}\n\n.focus\\:text-100:focus {\n color: light-dark(var(--p-surface-100), var(--p-surface-700)) !important;\n}\n\n.hover\\:text-100:hover {\n color: light-dark(var(--p-surface-100), var(--p-surface-700)) !important;\n}\n\n.active\\:text-100:active {\n color: light-dark(var(--p-surface-100), var(--p-surface-700)) !important;\n}\n\n.focus\\:text-200:focus {\n color: light-dark(var(--p-surface-200), var(--p-surface-600)) !important;\n}\n\n.hover\\:text-200:hover {\n color: light-dark(var(--p-surface-200), var(--p-surface-600)) !important;\n}\n\n.active\\:text-200:active {\n color: light-dark(var(--p-surface-200), var(--p-surface-600)) !important;\n}\n\n.focus\\:text-300:focus {\n color: light-dark(var(--p-surface-300), var(--p-surface-500)) !important;\n}\n\n.hover\\:text-300:hover {\n color: light-dark(var(--p-surface-300), var(--p-surface-500)) !important;\n}\n\n.active\\:text-300:active {\n color: light-dark(var(--p-surface-300), var(--p-surface-500)) !important;\n}\n\n.focus\\:text-400:focus {\n color: light-dark(var(--p-surface-400), var(--p-surface-400)) !important;\n}\n\n.hover\\:text-400:hover {\n color: light-dark(var(--p-surface-400), var(--p-surface-400)) !important;\n}\n\n.active\\:text-400:active {\n color: light-dark(var(--p-surface-400), var(--p-surface-400)) !important;\n}\n\n.focus\\:text-500:focus {\n color: light-dark(var(--p-surface-500), var(--p-surface-300)) !important;\n}\n\n.hover\\:text-500:hover {\n color: light-dark(var(--p-surface-500), var(--p-surface-300)) !important;\n}\n\n.active\\:text-500:active {\n color: light-dark(var(--p-surface-500), var(--p-surface-300)) !important;\n}\n\n.focus\\:text-600:focus {\n color: light-dark(var(--p-surface-600), var(--p-surface-200)) !important;\n}\n\n.hover\\:text-600:hover {\n color: light-dark(var(--p-surface-600), var(--p-surface-200)) !important;\n}\n\n.active\\:text-600:active {\n color: light-dark(var(--p-surface-600), var(--p-surface-200)) !important;\n}\n\n.focus\\:text-700:focus {\n color: light-dark(var(--p-surface-700), var(--p-surface-100)) !important;\n}\n\n.hover\\:text-700:hover {\n color: light-dark(var(--p-surface-700), var(--p-surface-100)) !important;\n}\n\n.active\\:text-700:active {\n color: light-dark(var(--p-surface-700), var(--p-surface-100)) !important;\n}\n\n.focus\\:text-800:focus {\n color: light-dark(var(--p-surface-800), var(--p-surface-50)) !important;\n}\n\n.hover\\:text-800:hover {\n color: light-dark(var(--p-surface-800), var(--p-surface-50)) !important;\n}\n\n.active\\:text-800:active {\n color: light-dark(var(--p-surface-800), var(--p-surface-50)) !important;\n}\n\n.focus\\:text-900:focus {\n color: light-dark(var(--p-surface-900), var(--p-surface-0)) !important;\n}\n\n.hover\\:text-900:hover {\n color: light-dark(var(--p-surface-900), var(--p-surface-0)) !important;\n}\n\n.active\\:text-900:active {\n color: light-dark(var(--p-surface-900), var(--p-surface-0)) !important;\n}\n\n.surface-0 {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-900)) !important;\n}\n\n.surface-50 {\n background-color: light-dark(var(--p-surface-50), var(--p-surface-800)) !important;\n}\n\n.surface-100 {\n background-color: light-dark(var(--p-surface-100), var(--p-surface-700)) !important;\n}\n\n.surface-200 {\n background-color: light-dark(var(--p-surface-200), var(--p-surface-600)) !important;\n}\n\n.surface-300 {\n background-color: light-dark(var(--p-surface-300), var(--p-surface-500)) !important;\n}\n\n.surface-400 {\n background-color: light-dark(var(--p-surface-400), var(--p-surface-400)) !important;\n}\n\n.surface-500 {\n background-color: light-dark(var(--p-surface-500), var(--p-surface-300)) !important;\n}\n\n.surface-600 {\n background-color: light-dark(var(--p-surface-600), var(--p-surface-200)) !important;\n}\n\n.surface-700 {\n background-color: light-dark(var(--p-surface-700), var(--p-surface-100)) !important;\n}\n\n.surface-800 {\n background-color: light-dark(var(--p-surface-800), var(--p-surface-50)) !important;\n}\n\n.surface-900 {\n background-color: light-dark(var(--p-surface-900), var(--p-surface-0)) !important;\n}\n\n.focus\\:surface-0:focus {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-900)) !important;\n}\n\n.hover\\:surface-0:hover {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-900)) !important;\n}\n\n.active\\:surface-0:active {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-900)) !important;\n}\n\n.focus\\:surface-50:focus {\n background-color: light-dark(var(--p-surface-50), var(--p-surface-800)) !important;\n}\n\n.hover\\:surface-50:hover {\n background-color: light-dark(var(--p-surface-50), var(--p-surface-800)) !important;\n}\n\n.active\\:surface-50:active {\n background-color: light-dark(var(--p-surface-50), var(--p-surface-800)) !important;\n}\n\n.focus\\:surface-100:focus {\n background-color: light-dark(var(--p-surface-100), var(--p-surface-700)) !important;\n}\n\n.hover\\:surface-100:hover {\n background-color: light-dark(var(--p-surface-100), var(--p-surface-700)) !important;\n}\n\n.active\\:surface-100:active {\n background-color: light-dark(var(--p-surface-100), var(--p-surface-700)) !important;\n}\n\n.focus\\:surface-200:focus {\n background-color: light-dark(var(--p-surface-200), var(--p-surface-600)) !important;\n}\n\n.hover\\:surface-200:hover {\n background-color: light-dark(var(--p-surface-200), var(--p-surface-600)) !important;\n}\n\n.active\\:surface-200:active {\n background-color: light-dark(var(--p-surface-200), var(--p-surface-600)) !important;\n}\n\n.focus\\:surface-300:focus {\n background-color: light-dark(var(--p-surface-300), var(--p-surface-500)) !important;\n}\n\n.hover\\:surface-300:hover {\n background-color: light-dark(var(--p-surface-300), var(--p-surface-500)) !important;\n}\n\n.active\\:surface-300:active {\n background-color: light-dark(var(--p-surface-300), var(--p-surface-500)) !important;\n}\n\n.focus\\:surface-400:focus {\n background-color: light-dark(var(--p-surface-400), var(--p-surface-400)) !important;\n}\n\n.hover\\:surface-400:hover {\n background-color: light-dark(var(--p-surface-400), var(--p-surface-400)) !important;\n}\n\n.active\\:surface-400:active {\n background-color: light-dark(var(--p-surface-400), var(--p-surface-400)) !important;\n}\n\n.focus\\:surface-500:focus {\n background-color: light-dark(var(--p-surface-500), var(--p-surface-300)) !important;\n}\n\n.hover\\:surface-500:hover {\n background-color: light-dark(var(--p-surface-500), var(--p-surface-300)) !important;\n}\n\n.active\\:surface-500:active {\n background-color: light-dark(var(--p-surface-500), var(--p-surface-300)) !important;\n}\n\n.focus\\:surface-600:focus {\n background-color: light-dark(var(--p-surface-600), var(--p-surface-200)) !important;\n}\n\n.hover\\:surface-600:hover {\n background-color: light-dark(var(--p-surface-600), var(--p-surface-200)) !important;\n}\n\n.active\\:surface-600:active {\n background-color: light-dark(var(--p-surface-600), var(--p-surface-200)) !important;\n}\n\n.focus\\:surface-700:focus {\n background-color: light-dark(var(--p-surface-700), var(--p-surface-100)) !important;\n}\n\n.hover\\:surface-700:hover {\n background-color: light-dark(var(--p-surface-700), var(--p-surface-100)) !important;\n}\n\n.active\\:surface-700:active {\n background-color: light-dark(var(--p-surface-700), var(--p-surface-100)) !important;\n}\n\n.focus\\:surface-800:focus {\n background-color: light-dark(var(--p-surface-800), var(--p-surface-50)) !important;\n}\n\n.hover\\:surface-800:hover {\n background-color: light-dark(var(--p-surface-800), var(--p-surface-50)) !important;\n}\n\n.active\\:surface-800:active {\n background-color: light-dark(var(--p-surface-800), var(--p-surface-50)) !important;\n}\n\n.focus\\:surface-900:focus {\n background-color: light-dark(var(--p-surface-900), var(--p-surface-0)) !important;\n}\n\n.hover\\:surface-900:hover {\n background-color: light-dark(var(--p-surface-900), var(--p-surface-0)) !important;\n}\n\n.active\\:surface-900:active {\n background-color: light-dark(var(--p-surface-900), var(--p-surface-0)) !important;\n}\n\n.border-0 {\n border-color: light-dark(var(--p-surface-0), var(--p-surface-900)) !important;\n}\n\n.border-50 {\n border-color: light-dark(var(--p-surface-50), var(--p-surface-800)) !important;\n}\n\n.border-100 {\n border-color: light-dark(var(--p-surface-100), var(--p-surface-700)) !important;\n}\n\n.border-200 {\n border-color: light-dark(var(--p-surface-200), var(--p-surface-600)) !important;\n}\n\n.border-300 {\n border-color: light-dark(var(--p-surface-300), var(--p-surface-500)) !important;\n}\n\n.border-400 {\n border-color: light-dark(var(--p-surface-400), var(--p-surface-400)) !important;\n}\n\n.border-500 {\n border-color: light-dark(var(--p-surface-500), var(--p-surface-300)) !important;\n}\n\n.border-600 {\n border-color: light-dark(var(--p-surface-600), var(--p-surface-200)) !important;\n}\n\n.border-700 {\n border-color: light-dark(var(--p-surface-700), var(--p-surface-100)) !important;\n}\n\n.border-800 {\n border-color: light-dark(var(--p-surface-800), var(--p-surface-50)) !important;\n}\n\n.border-900 {\n border-color: light-dark(var(--p-surface-900), var(--p-surface-0)) !important;\n}\n\n.focus\\:border-0:focus {\n border-color: light-dark(var(--p-surface-0), var(--p-surface-900)) !important;\n}\n\n.hover\\:border-0:hover {\n border-color: light-dark(var(--p-surface-0), var(--p-surface-900)) !important;\n}\n\n.active\\:border-0:active {\n border-color: light-dark(var(--p-surface-0), var(--p-surface-900)) !important;\n}\n\n.focus\\:border-50:focus {\n border-color: light-dark(var(--p-surface-50), var(--p-surface-800)) !important;\n}\n\n.hover\\:border-50:hover {\n border-color: light-dark(var(--p-surface-50), var(--p-surface-800)) !important;\n}\n\n.active\\:border-50:active {\n border-color: light-dark(var(--p-surface-50), var(--p-surface-800)) !important;\n}\n\n.focus\\:border-100:focus {\n border-color: light-dark(var(--p-surface-100), var(--p-surface-700)) !important;\n}\n\n.hover\\:border-100:hover {\n border-color: light-dark(var(--p-surface-100), var(--p-surface-700)) !important;\n}\n\n.active\\:border-100:active {\n border-color: light-dark(var(--p-surface-100), var(--p-surface-700)) !important;\n}\n\n.focus\\:border-200:focus {\n border-color: light-dark(var(--p-surface-200), var(--p-surface-600)) !important;\n}\n\n.hover\\:border-200:hover {\n border-color: light-dark(var(--p-surface-200), var(--p-surface-600)) !important;\n}\n\n.active\\:border-200:active {\n border-color: light-dark(var(--p-surface-200), var(--p-surface-600)) !important;\n}\n\n.focus\\:border-300:focus {\n border-color: light-dark(var(--p-surface-300), var(--p-surface-500)) !important;\n}\n\n.hover\\:border-300:hover {\n border-color: light-dark(var(--p-surface-300), var(--p-surface-500)) !important;\n}\n\n.active\\:border-300:active {\n border-color: light-dark(var(--p-surface-300), var(--p-surface-500)) !important;\n}\n\n.focus\\:border-400:focus {\n border-color: light-dark(var(--p-surface-400), var(--p-surface-400)) !important;\n}\n\n.hover\\:border-400:hover {\n border-color: light-dark(var(--p-surface-400), var(--p-surface-400)) !important;\n}\n\n.active\\:border-400:active {\n border-color: light-dark(var(--p-surface-400), var(--p-surface-400)) !important;\n}\n\n.focus\\:border-500:focus {\n border-color: light-dark(var(--p-surface-500), var(--p-surface-300)) !important;\n}\n\n.hover\\:border-500:hover {\n border-color: light-dark(var(--p-surface-500), var(--p-surface-300)) !important;\n}\n\n.active\\:border-500:active {\n border-color: light-dark(var(--p-surface-500), var(--p-surface-300)) !important;\n}\n\n.focus\\:border-600:focus {\n border-color: light-dark(var(--p-surface-600), var(--p-surface-200)) !important;\n}\n\n.hover\\:border-600:hover {\n border-color: light-dark(var(--p-surface-600), var(--p-surface-200)) !important;\n}\n\n.active\\:border-600:active {\n border-color: light-dark(var(--p-surface-600), var(--p-surface-200)) !important;\n}\n\n.focus\\:border-700:focus {\n border-color: light-dark(var(--p-surface-700), var(--p-surface-100)) !important;\n}\n\n.hover\\:border-700:hover {\n border-color: light-dark(var(--p-surface-700), var(--p-surface-100)) !important;\n}\n\n.active\\:border-700:active {\n border-color: light-dark(var(--p-surface-700), var(--p-surface-100)) !important;\n}\n\n.focus\\:border-800:focus {\n border-color: light-dark(var(--p-surface-800), var(--p-surface-50)) !important;\n}\n\n.hover\\:border-800:hover {\n border-color: light-dark(var(--p-surface-800), var(--p-surface-50)) !important;\n}\n\n.active\\:border-800:active {\n border-color: light-dark(var(--p-surface-800), var(--p-surface-50)) !important;\n}\n\n.focus\\:border-900:focus {\n border-color: light-dark(var(--p-surface-900), var(--p-surface-0)) !important;\n}\n\n.hover\\:border-900:hover {\n border-color: light-dark(var(--p-surface-900), var(--p-surface-0)) !important;\n}\n\n.active\\:border-900:active {\n border-color: light-dark(var(--p-surface-900), var(--p-surface-0)) !important;\n}\n\n.bg-transparent {\n background-color: transparent !important;\n}\n\n@media screen and (min-width: 576px) {\n .sm\\:bg-transparent {\n background-color: transparent !important;\n }\n}\n@media screen and (min-width: 768px) {\n .md\\:bg-transparent {\n background-color: transparent !important;\n }\n}\n@media screen and (min-width: 992px) {\n .lg\\:bg-transparent {\n background-color: transparent !important;\n }\n}\n@media screen and (min-width: 1200px) {\n .xl\\:bg-transparent {\n background-color: transparent !important;\n }\n}\n.border-transparent {\n border-color: transparent !important;\n}\n\n@media screen and (min-width: 576px) {\n .sm\\:border-transparent {\n border-color: transparent !important;\n }\n}\n@media screen and (min-width: 768px) {\n .md\\:border-transparent {\n border-color: transparent !important;\n }\n}\n@media screen and (min-width: 992px) {\n .lg\\:border-transparent {\n border-color: transparent !important;\n }\n}\n@media screen and (min-width: 1200px) {\n .xl\\:border-transparent {\n border-color: transparent !important;\n }\n}\n.text-blue-50 {\n color: var(--p-blue-50) !important;\n}\n.text-blue-100 {\n color: var(--p-blue-100) !important;\n}\n.text-blue-200 {\n color: var(--p-blue-200) !important;\n}\n.text-blue-300 {\n color: var(--p-blue-300) !important;\n}\n.text-blue-400 {\n color: var(--p-blue-400) !important;\n}\n.text-blue-500 {\n color: var(--p-blue-500) !important;\n}\n.text-blue-600 {\n color: var(--p-blue-600) !important;\n}\n.text-blue-700 {\n color: var(--p-blue-700) !important;\n}\n.text-blue-800 {\n color: var(--p-blue-800) !important;\n}\n.text-blue-900 {\n color: var(--p-blue-900) !important;\n}\n\n.focus\\:text-blue-50:focus {\n color: var(--p-blue-50) !important;\n}\n.focus\\:text-blue-100:focus {\n color: var(--p-blue-100) !important;\n}\n.focus\\:text-blue-200:focus {\n color: var(--p-blue-200) !important;\n}\n.focus\\:text-blue-300:focus {\n color: var(--p-blue-300) !important;\n}\n.focus\\:text-blue-400:focus {\n color: var(--p-blue-400) !important;\n}\n.focus\\:text-blue-500:focus {\n color: var(--p-blue-500) !important;\n}\n.focus\\:text-blue-600:focus {\n color: var(--p-blue-600) !important;\n}\n.focus\\:text-blue-700:focus {\n color: var(--p-blue-700) !important;\n}\n.focus\\:text-blue-800:focus {\n color: var(--p-blue-800) !important;\n}\n.focus\\:text-blue-900:focus {\n color: var(--p-blue-900) !important;\n}\n\n.hover\\:text-blue-50:hover {\n color: var(--p-blue-50) !important;\n}\n.hover\\:text-blue-100:hover {\n color: var(--p-blue-100) !important;\n}\n.hover\\:text-blue-200:hover {\n color: var(--p-blue-200) !important;\n}\n.hover\\:text-blue-300:hover {\n color: var(--p-blue-300) !important;\n}\n.hover\\:text-blue-400:hover {\n color: var(--p-blue-400) !important;\n}\n.hover\\:text-blue-500:hover {\n color: var(--p-blue-500) !important;\n}\n.hover\\:text-blue-600:hover {\n color: var(--p-blue-600) !important;\n}\n.hover\\:text-blue-700:hover {\n color: var(--p-blue-700) !important;\n}\n.hover\\:text-blue-800:hover {\n color: var(--p-blue-800) !important;\n}\n.hover\\:text-blue-900:hover {\n color: var(--p-blue-900) !important;\n}\n\n.active\\:text-blue-50:active {\n color: var(--p-blue-50) !important;\n}\n.active\\:text-blue-100:active {\n color: var(--p-blue-100) !important;\n}\n.active\\:text-blue-200:active {\n color: var(--p-blue-200) !important;\n}\n.active\\:text-blue-300:active {\n color: var(--p-blue-300) !important;\n}\n.active\\:text-blue-400:active {\n color: var(--p-blue-400) !important;\n}\n.active\\:text-blue-500:active {\n color: var(--p-blue-500) !important;\n}\n.active\\:text-blue-600:active {\n color: var(--p-blue-600) !important;\n}\n.active\\:text-blue-700:active {\n color: var(--p-blue-700) !important;\n}\n.active\\:text-blue-800:active {\n color: var(--p-blue-800) !important;\n}\n.active\\:text-blue-900:active {\n color: var(--p-blue-900) !important;\n}\n\n.text-green-50 {\n color: var(--p-green-50) !important;\n}\n.text-green-100 {\n color: var(--p-green-100) !important;\n}\n.text-green-200 {\n color: var(--p-green-200) !important;\n}\n.text-green-300 {\n color: var(--p-green-300) !important;\n}\n.text-green-400 {\n color: var(--p-green-400) !important;\n}\n.text-green-500 {\n color: var(--p-green-500) !important;\n}\n.text-green-600 {\n color: var(--p-green-600) !important;\n}\n.text-green-700 {\n color: var(--p-green-700) !important;\n}\n.text-green-800 {\n color: var(--p-green-800) !important;\n}\n.text-green-900 {\n color: var(--p-green-900) !important;\n}\n\n.focus\\:text-green-50:focus {\n color: var(--p-green-50) !important;\n}\n.focus\\:text-green-100:focus {\n color: var(--p-green-100) !important;\n}\n.focus\\:text-green-200:focus {\n color: var(--p-green-200) !important;\n}\n.focus\\:text-green-300:focus {\n color: var(--p-green-300) !important;\n}\n.focus\\:text-green-400:focus {\n color: var(--p-green-400) !important;\n}\n.focus\\:text-green-500:focus {\n color: var(--p-green-500) !important;\n}\n.focus\\:text-green-600:focus {\n color: var(--p-green-600) !important;\n}\n.focus\\:text-green-700:focus {\n color: var(--p-green-700) !important;\n}\n.focus\\:text-green-800:focus {\n color: var(--p-green-800) !important;\n}\n.focus\\:text-green-900:focus {\n color: var(--p-green-900) !important;\n}\n\n.hover\\:text-green-50:hover {\n color: var(--p-green-50) !important;\n}\n.hover\\:text-green-100:hover {\n color: var(--p-green-100) !important;\n}\n.hover\\:text-green-200:hover {\n color: var(--p-green-200) !important;\n}\n.hover\\:text-green-300:hover {\n color: var(--p-green-300) !important;\n}\n.hover\\:text-green-400:hover {\n color: var(--p-green-400) !important;\n}\n.hover\\:text-green-500:hover {\n color: var(--p-green-500) !important;\n}\n.hover\\:text-green-600:hover {\n color: var(--p-green-600) !important;\n}\n.hover\\:text-green-700:hover {\n color: var(--p-green-700) !important;\n}\n.hover\\:text-green-800:hover {\n color: var(--p-green-800) !important;\n}\n.hover\\:text-green-900:hover {\n color: var(--p-green-900) !important;\n}\n\n.active\\:text-green-50:active {\n color: var(--p-green-50) !important;\n}\n.active\\:text-green-100:active {\n color: var(--p-green-100) !important;\n}\n.active\\:text-green-200:active {\n color: var(--p-green-200) !important;\n}\n.active\\:text-green-300:active {\n color: var(--p-green-300) !important;\n}\n.active\\:text-green-400:active {\n color: var(--p-green-400) !important;\n}\n.active\\:text-green-500:active {\n color: var(--p-green-500) !important;\n}\n.active\\:text-green-600:active {\n color: var(--p-green-600) !important;\n}\n.active\\:text-green-700:active {\n color: var(--p-green-700) !important;\n}\n.active\\:text-green-800:active {\n color: var(--p-green-800) !important;\n}\n.active\\:text-green-900:active {\n color: var(--p-green-900) !important;\n}\n\n.text-yellow-50 {\n color: var(--p-yellow-50) !important;\n}\n.text-yellow-100 {\n color: var(--p-yellow-100) !important;\n}\n.text-yellow-200 {\n color: var(--p-yellow-200) !important;\n}\n.text-yellow-300 {\n color: var(--p-yellow-300) !important;\n}\n.text-yellow-400 {\n color: var(--p-yellow-400) !important;\n}\n.text-yellow-500 {\n color: var(--p-yellow-500) !important;\n}\n.text-yellow-600 {\n color: var(--p-yellow-600) !important;\n}\n.text-yellow-700 {\n color: var(--p-yellow-700) !important;\n}\n.text-yellow-800 {\n color: var(--p-yellow-800) !important;\n}\n.text-yellow-900 {\n color: var(--p-yellow-900) !important;\n}\n\n.focus\\:text-yellow-50:focus {\n color: var(--p-yellow-50) !important;\n}\n.focus\\:text-yellow-100:focus {\n color: var(--p-yellow-100) !important;\n}\n.focus\\:text-yellow-200:focus {\n color: var(--p-yellow-200) !important;\n}\n.focus\\:text-yellow-300:focus {\n color: var(--p-yellow-300) !important;\n}\n.focus\\:text-yellow-400:focus {\n color: var(--p-yellow-400) !important;\n}\n.focus\\:text-yellow-500:focus {\n color: var(--p-yellow-500) !important;\n}\n.focus\\:text-yellow-600:focus {\n color: var(--p-yellow-600) !important;\n}\n.focus\\:text-yellow-700:focus {\n color: var(--p-yellow-700) !important;\n}\n.focus\\:text-yellow-800:focus {\n color: var(--p-yellow-800) !important;\n}\n.focus\\:text-yellow-900:focus {\n color: var(--p-yellow-900) !important;\n}\n\n.hover\\:text-yellow-50:hover {\n color: var(--p-yellow-50) !important;\n}\n.hover\\:text-yellow-100:hover {\n color: var(--p-yellow-100) !important;\n}\n.hover\\:text-yellow-200:hover {\n color: var(--p-yellow-200) !important;\n}\n.hover\\:text-yellow-300:hover {\n color: var(--p-yellow-300) !important;\n}\n.hover\\:text-yellow-400:hover {\n color: var(--p-yellow-400) !important;\n}\n.hover\\:text-yellow-500:hover {\n color: var(--p-yellow-500) !important;\n}\n.hover\\:text-yellow-600:hover {\n color: var(--p-yellow-600) !important;\n}\n.hover\\:text-yellow-700:hover {\n color: var(--p-yellow-700) !important;\n}\n.hover\\:text-yellow-800:hover {\n color: var(--p-yellow-800) !important;\n}\n.hover\\:text-yellow-900:hover {\n color: var(--p-yellow-900) !important;\n}\n\n.active\\:text-yellow-50:active {\n color: var(--p-yellow-50) !important;\n}\n.active\\:text-yellow-100:active {\n color: var(--p-yellow-100) !important;\n}\n.active\\:text-yellow-200:active {\n color: var(--p-yellow-200) !important;\n}\n.active\\:text-yellow-300:active {\n color: var(--p-yellow-300) !important;\n}\n.active\\:text-yellow-400:active {\n color: var(--p-yellow-400) !important;\n}\n.active\\:text-yellow-500:active {\n color: var(--p-yellow-500) !important;\n}\n.active\\:text-yellow-600:active {\n color: var(--p-yellow-600) !important;\n}\n.active\\:text-yellow-700:active {\n color: var(--p-yellow-700) !important;\n}\n.active\\:text-yellow-800:active {\n color: var(--p-yellow-800) !important;\n}\n.active\\:text-yellow-900:active {\n color: var(--p-yellow-900) !important;\n}\n\n.text-cyan-50 {\n color: var(--p-cyan-50) !important;\n}\n.text-cyan-100 {\n color: var(--p-cyan-100) !important;\n}\n.text-cyan-200 {\n color: var(--p-cyan-200) !important;\n}\n.text-cyan-300 {\n color: var(--p-cyan-300) !important;\n}\n.text-cyan-400 {\n color: var(--p-cyan-400) !important;\n}\n.text-cyan-500 {\n color: var(--p-cyan-500) !important;\n}\n.text-cyan-600 {\n color: var(--p-cyan-600) !important;\n}\n.text-cyan-700 {\n color: var(--p-cyan-700) !important;\n}\n.text-cyan-800 {\n color: var(--p-cyan-800) !important;\n}\n.text-cyan-900 {\n color: var(--p-cyan-900) !important;\n}\n\n.focus\\:text-cyan-50:focus {\n color: var(--p-cyan-50) !important;\n}\n.focus\\:text-cyan-100:focus {\n color: var(--p-cyan-100) !important;\n}\n.focus\\:text-cyan-200:focus {\n color: var(--p-cyan-200) !important;\n}\n.focus\\:text-cyan-300:focus {\n color: var(--p-cyan-300) !important;\n}\n.focus\\:text-cyan-400:focus {\n color: var(--p-cyan-400) !important;\n}\n.focus\\:text-cyan-500:focus {\n color: var(--p-cyan-500) !important;\n}\n.focus\\:text-cyan-600:focus {\n color: var(--p-cyan-600) !important;\n}\n.focus\\:text-cyan-700:focus {\n color: var(--p-cyan-700) !important;\n}\n.focus\\:text-cyan-800:focus {\n color: var(--p-cyan-800) !important;\n}\n.focus\\:text-cyan-900:focus {\n color: var(--p-cyan-900) !important;\n}\n\n.hover\\:text-cyan-50:hover {\n color: var(--p-cyan-50) !important;\n}\n.hover\\:text-cyan-100:hover {\n color: var(--p-cyan-100) !important;\n}\n.hover\\:text-cyan-200:hover {\n color: var(--p-cyan-200) !important;\n}\n.hover\\:text-cyan-300:hover {\n color: var(--p-cyan-300) !important;\n}\n.hover\\:text-cyan-400:hover {\n color: var(--p-cyan-400) !important;\n}\n.hover\\:text-cyan-500:hover {\n color: var(--p-cyan-500) !important;\n}\n.hover\\:text-cyan-600:hover {\n color: var(--p-cyan-600) !important;\n}\n.hover\\:text-cyan-700:hover {\n color: var(--p-cyan-700) !important;\n}\n.hover\\:text-cyan-800:hover {\n color: var(--p-cyan-800) !important;\n}\n.hover\\:text-cyan-900:hover {\n color: var(--p-cyan-900) !important;\n}\n\n.active\\:text-cyan-50:active {\n color: var(--p-cyan-50) !important;\n}\n.active\\:text-cyan-100:active {\n color: var(--p-cyan-100) !important;\n}\n.active\\:text-cyan-200:active {\n color: var(--p-cyan-200) !important;\n}\n.active\\:text-cyan-300:active {\n color: var(--p-cyan-300) !important;\n}\n.active\\:text-cyan-400:active {\n color: var(--p-cyan-400) !important;\n}\n.active\\:text-cyan-500:active {\n color: var(--p-cyan-500) !important;\n}\n.active\\:text-cyan-600:active {\n color: var(--p-cyan-600) !important;\n}\n.active\\:text-cyan-700:active {\n color: var(--p-cyan-700) !important;\n}\n.active\\:text-cyan-800:active {\n color: var(--p-cyan-800) !important;\n}\n.active\\:text-cyan-900:active {\n color: var(--p-cyan-900) !important;\n}\n\n.text-pink-50 {\n color: var(--p-pink-50) !important;\n}\n.text-pink-100 {\n color: var(--p-pink-100) !important;\n}\n.text-pink-200 {\n color: var(--p-pink-200) !important;\n}\n.text-pink-300 {\n color: var(--p-pink-300) !important;\n}\n.text-pink-400 {\n color: var(--p-pink-400) !important;\n}\n.text-pink-500 {\n color: var(--p-pink-500) !important;\n}\n.text-pink-600 {\n color: var(--p-pink-600) !important;\n}\n.text-pink-700 {\n color: var(--p-pink-700) !important;\n}\n.text-pink-800 {\n color: var(--p-pink-800) !important;\n}\n.text-pink-900 {\n color: var(--p-pink-900) !important;\n}\n\n.focus\\:text-pink-50:focus {\n color: var(--p-pink-50) !important;\n}\n.focus\\:text-pink-100:focus {\n color: var(--p-pink-100) !important;\n}\n.focus\\:text-pink-200:focus {\n color: var(--p-pink-200) !important;\n}\n.focus\\:text-pink-300:focus {\n color: var(--p-pink-300) !important;\n}\n.focus\\:text-pink-400:focus {\n color: var(--p-pink-400) !important;\n}\n.focus\\:text-pink-500:focus {\n color: var(--p-pink-500) !important;\n}\n.focus\\:text-pink-600:focus {\n color: var(--p-pink-600) !important;\n}\n.focus\\:text-pink-700:focus {\n color: var(--p-pink-700) !important;\n}\n.focus\\:text-pink-800:focus {\n color: var(--p-pink-800) !important;\n}\n.focus\\:text-pink-900:focus {\n color: var(--p-pink-900) !important;\n}\n\n.hover\\:text-pink-50:hover {\n color: var(--p-pink-50) !important;\n}\n.hover\\:text-pink-100:hover {\n color: var(--p-pink-100) !important;\n}\n.hover\\:text-pink-200:hover {\n color: var(--p-pink-200) !important;\n}\n.hover\\:text-pink-300:hover {\n color: var(--p-pink-300) !important;\n}\n.hover\\:text-pink-400:hover {\n color: var(--p-pink-400) !important;\n}\n.hover\\:text-pink-500:hover {\n color: var(--p-pink-500) !important;\n}\n.hover\\:text-pink-600:hover {\n color: var(--p-pink-600) !important;\n}\n.hover\\:text-pink-700:hover {\n color: var(--p-pink-700) !important;\n}\n.hover\\:text-pink-800:hover {\n color: var(--p-pink-800) !important;\n}\n.hover\\:text-pink-900:hover {\n color: var(--p-pink-900) !important;\n}\n\n.active\\:text-pink-50:active {\n color: var(--p-pink-50) !important;\n}\n.active\\:text-pink-100:active {\n color: var(--p-pink-100) !important;\n}\n.active\\:text-pink-200:active {\n color: var(--p-pink-200) !important;\n}\n.active\\:text-pink-300:active {\n color: var(--p-pink-300) !important;\n}\n.active\\:text-pink-400:active {\n color: var(--p-pink-400) !important;\n}\n.active\\:text-pink-500:active {\n color: var(--p-pink-500) !important;\n}\n.active\\:text-pink-600:active {\n color: var(--p-pink-600) !important;\n}\n.active\\:text-pink-700:active {\n color: var(--p-pink-700) !important;\n}\n.active\\:text-pink-800:active {\n color: var(--p-pink-800) !important;\n}\n.active\\:text-pink-900:active {\n color: var(--p-pink-900) !important;\n}\n\n.text-indigo-50 {\n color: var(--p-indigo-50) !important;\n}\n.text-indigo-100 {\n color: var(--p-indigo-100) !important;\n}\n.text-indigo-200 {\n color: var(--p-indigo-200) !important;\n}\n.text-indigo-300 {\n color: var(--p-indigo-300) !important;\n}\n.text-indigo-400 {\n color: var(--p-indigo-400) !important;\n}\n.text-indigo-500 {\n color: var(--p-indigo-500) !important;\n}\n.text-indigo-600 {\n color: var(--p-indigo-600) !important;\n}\n.text-indigo-700 {\n color: var(--p-indigo-700) !important;\n}\n.text-indigo-800 {\n color: var(--p-indigo-800) !important;\n}\n.text-indigo-900 {\n color: var(--p-indigo-900) !important;\n}\n\n.focus\\:text-indigo-50:focus {\n color: var(--p-indigo-50) !important;\n}\n.focus\\:text-indigo-100:focus {\n color: var(--p-indigo-100) !important;\n}\n.focus\\:text-indigo-200:focus {\n color: var(--p-indigo-200) !important;\n}\n.focus\\:text-indigo-300:focus {\n color: var(--p-indigo-300) !important;\n}\n.focus\\:text-indigo-400:focus {\n color: var(--p-indigo-400) !important;\n}\n.focus\\:text-indigo-500:focus {\n color: var(--p-indigo-500) !important;\n}\n.focus\\:text-indigo-600:focus {\n color: var(--p-indigo-600) !important;\n}\n.focus\\:text-indigo-700:focus {\n color: var(--p-indigo-700) !important;\n}\n.focus\\:text-indigo-800:focus {\n color: var(--p-indigo-800) !important;\n}\n.focus\\:text-indigo-900:focus {\n color: var(--p-indigo-900) !important;\n}\n\n.hover\\:text-indigo-50:hover {\n color: var(--p-indigo-50) !important;\n}\n.hover\\:text-indigo-100:hover {\n color: var(--p-indigo-100) !important;\n}\n.hover\\:text-indigo-200:hover {\n color: var(--p-indigo-200) !important;\n}\n.hover\\:text-indigo-300:hover {\n color: var(--p-indigo-300) !important;\n}\n.hover\\:text-indigo-400:hover {\n color: var(--p-indigo-400) !important;\n}\n.hover\\:text-indigo-500:hover {\n color: var(--p-indigo-500) !important;\n}\n.hover\\:text-indigo-600:hover {\n color: var(--p-indigo-600) !important;\n}\n.hover\\:text-indigo-700:hover {\n color: var(--p-indigo-700) !important;\n}\n.hover\\:text-indigo-800:hover {\n color: var(--p-indigo-800) !important;\n}\n.hover\\:text-indigo-900:hover {\n color: var(--p-indigo-900) !important;\n}\n\n.active\\:text-indigo-50:active {\n color: var(--p-indigo-50) !important;\n}\n.active\\:text-indigo-100:active {\n color: var(--p-indigo-100) !important;\n}\n.active\\:text-indigo-200:active {\n color: var(--p-indigo-200) !important;\n}\n.active\\:text-indigo-300:active {\n color: var(--p-indigo-300) !important;\n}\n.active\\:text-indigo-400:active {\n color: var(--p-indigo-400) !important;\n}\n.active\\:text-indigo-500:active {\n color: var(--p-indigo-500) !important;\n}\n.active\\:text-indigo-600:active {\n color: var(--p-indigo-600) !important;\n}\n.active\\:text-indigo-700:active {\n color: var(--p-indigo-700) !important;\n}\n.active\\:text-indigo-800:active {\n color: var(--p-indigo-800) !important;\n}\n.active\\:text-indigo-900:active {\n color: var(--p-indigo-900) !important;\n}\n\n.text-teal-50 {\n color: var(--p-teal-50) !important;\n}\n.text-teal-100 {\n color: var(--p-teal-100) !important;\n}\n.text-teal-200 {\n color: var(--p-teal-200) !important;\n}\n.text-teal-300 {\n color: var(--p-teal-300) !important;\n}\n.text-teal-400 {\n color: var(--p-teal-400) !important;\n}\n.text-teal-500 {\n color: var(--p-teal-500) !important;\n}\n.text-teal-600 {\n color: var(--p-teal-600) !important;\n}\n.text-teal-700 {\n color: var(--p-teal-700) !important;\n}\n.text-teal-800 {\n color: var(--p-teal-800) !important;\n}\n.text-teal-900 {\n color: var(--p-teal-900) !important;\n}\n\n.focus\\:text-teal-50:focus {\n color: var(--p-teal-50) !important;\n}\n.focus\\:text-teal-100:focus {\n color: var(--p-teal-100) !important;\n}\n.focus\\:text-teal-200:focus {\n color: var(--p-teal-200) !important;\n}\n.focus\\:text-teal-300:focus {\n color: var(--p-teal-300) !important;\n}\n.focus\\:text-teal-400:focus {\n color: var(--p-teal-400) !important;\n}\n.focus\\:text-teal-500:focus {\n color: var(--p-teal-500) !important;\n}\n.focus\\:text-teal-600:focus {\n color: var(--p-teal-600) !important;\n}\n.focus\\:text-teal-700:focus {\n color: var(--p-teal-700) !important;\n}\n.focus\\:text-teal-800:focus {\n color: var(--p-teal-800) !important;\n}\n.focus\\:text-teal-900:focus {\n color: var(--p-teal-900) !important;\n}\n\n.hover\\:text-teal-50:hover {\n color: var(--p-teal-50) !important;\n}\n.hover\\:text-teal-100:hover {\n color: var(--p-teal-100) !important;\n}\n.hover\\:text-teal-200:hover {\n color: var(--p-teal-200) !important;\n}\n.hover\\:text-teal-300:hover {\n color: var(--p-teal-300) !important;\n}\n.hover\\:text-teal-400:hover {\n color: var(--p-teal-400) !important;\n}\n.hover\\:text-teal-500:hover {\n color: var(--p-teal-500) !important;\n}\n.hover\\:text-teal-600:hover {\n color: var(--p-teal-600) !important;\n}\n.hover\\:text-teal-700:hover {\n color: var(--p-teal-700) !important;\n}\n.hover\\:text-teal-800:hover {\n color: var(--p-teal-800) !important;\n}\n.hover\\:text-teal-900:hover {\n color: var(--p-teal-900) !important;\n}\n\n.active\\:text-teal-50:active {\n color: var(--p-teal-50) !important;\n}\n.active\\:text-teal-100:active {\n color: var(--p-teal-100) !important;\n}\n.active\\:text-teal-200:active {\n color: var(--p-teal-200) !important;\n}\n.active\\:text-teal-300:active {\n color: var(--p-teal-300) !important;\n}\n.active\\:text-teal-400:active {\n color: var(--p-teal-400) !important;\n}\n.active\\:text-teal-500:active {\n color: var(--p-teal-500) !important;\n}\n.active\\:text-teal-600:active {\n color: var(--p-teal-600) !important;\n}\n.active\\:text-teal-700:active {\n color: var(--p-teal-700) !important;\n}\n.active\\:text-teal-800:active {\n color: var(--p-teal-800) !important;\n}\n.active\\:text-teal-900:active {\n color: var(--p-teal-900) !important;\n}\n\n.text-orange-50 {\n color: var(--p-orange-50) !important;\n}\n.text-orange-100 {\n color: var(--p-orange-100) !important;\n}\n.text-orange-200 {\n color: var(--p-orange-200) !important;\n}\n.text-orange-300 {\n color: var(--p-orange-300) !important;\n}\n.text-orange-400 {\n color: var(--p-orange-400) !important;\n}\n.text-orange-500 {\n color: var(--p-orange-500) !important;\n}\n.text-orange-600 {\n color: var(--p-orange-600) !important;\n}\n.text-orange-700 {\n color: var(--p-orange-700) !important;\n}\n.text-orange-800 {\n color: var(--p-orange-800) !important;\n}\n.text-orange-900 {\n color: var(--p-orange-900) !important;\n}\n\n.focus\\:text-orange-50:focus {\n color: var(--p-orange-50) !important;\n}\n.focus\\:text-orange-100:focus {\n color: var(--p-orange-100) !important;\n}\n.focus\\:text-orange-200:focus {\n color: var(--p-orange-200) !important;\n}\n.focus\\:text-orange-300:focus {\n color: var(--p-orange-300) !important;\n}\n.focus\\:text-orange-400:focus {\n color: var(--p-orange-400) !important;\n}\n.focus\\:text-orange-500:focus {\n color: var(--p-orange-500) !important;\n}\n.focus\\:text-orange-600:focus {\n color: var(--p-orange-600) !important;\n}\n.focus\\:text-orange-700:focus {\n color: var(--p-orange-700) !important;\n}\n.focus\\:text-orange-800:focus {\n color: var(--p-orange-800) !important;\n}\n.focus\\:text-orange-900:focus {\n color: var(--p-orange-900) !important;\n}\n\n.hover\\:text-orange-50:hover {\n color: var(--p-orange-50) !important;\n}\n.hover\\:text-orange-100:hover {\n color: var(--p-orange-100) !important;\n}\n.hover\\:text-orange-200:hover {\n color: var(--p-orange-200) !important;\n}\n.hover\\:text-orange-300:hover {\n color: var(--p-orange-300) !important;\n}\n.hover\\:text-orange-400:hover {\n color: var(--p-orange-400) !important;\n}\n.hover\\:text-orange-500:hover {\n color: var(--p-orange-500) !important;\n}\n.hover\\:text-orange-600:hover {\n color: var(--p-orange-600) !important;\n}\n.hover\\:text-orange-700:hover {\n color: var(--p-orange-700) !important;\n}\n.hover\\:text-orange-800:hover {\n color: var(--p-orange-800) !important;\n}\n.hover\\:text-orange-900:hover {\n color: var(--p-orange-900) !important;\n}\n\n.active\\:text-orange-50:active {\n color: var(--p-orange-50) !important;\n}\n.active\\:text-orange-100:active {\n color: var(--p-orange-100) !important;\n}\n.active\\:text-orange-200:active {\n color: var(--p-orange-200) !important;\n}\n.active\\:text-orange-300:active {\n color: var(--p-orange-300) !important;\n}\n.active\\:text-orange-400:active {\n color: var(--p-orange-400) !important;\n}\n.active\\:text-orange-500:active {\n color: var(--p-orange-500) !important;\n}\n.active\\:text-orange-600:active {\n color: var(--p-orange-600) !important;\n}\n.active\\:text-orange-700:active {\n color: var(--p-orange-700) !important;\n}\n.active\\:text-orange-800:active {\n color: var(--p-orange-800) !important;\n}\n.active\\:text-orange-900:active {\n color: var(--p-orange-900) !important;\n}\n\n.text-bluegray-50 {\n color: var(--p-bluegray-50) !important;\n}\n.text-bluegray-100 {\n color: var(--p-bluegray-100) !important;\n}\n.text-bluegray-200 {\n color: var(--p-bluegray-200) !important;\n}\n.text-bluegray-300 {\n color: var(--p-bluegray-300) !important;\n}\n.text-bluegray-400 {\n color: var(--p-bluegray-400) !important;\n}\n.text-bluegray-500 {\n color: var(--p-bluegray-500) !important;\n}\n.text-bluegray-600 {\n color: var(--p-bluegray-600) !important;\n}\n.text-bluegray-700 {\n color: var(--p-bluegray-700) !important;\n}\n.text-bluegray-800 {\n color: var(--p-bluegray-800) !important;\n}\n.text-bluegray-900 {\n color: var(--p-bluegray-900) !important;\n}\n\n.focus\\:text-bluegray-50:focus {\n color: var(--p-bluegray-50) !important;\n}\n.focus\\:text-bluegray-100:focus {\n color: var(--p-bluegray-100) !important;\n}\n.focus\\:text-bluegray-200:focus {\n color: var(--p-bluegray-200) !important;\n}\n.focus\\:text-bluegray-300:focus {\n color: var(--p-bluegray-300) !important;\n}\n.focus\\:text-bluegray-400:focus {\n color: var(--p-bluegray-400) !important;\n}\n.focus\\:text-bluegray-500:focus {\n color: var(--p-bluegray-500) !important;\n}\n.focus\\:text-bluegray-600:focus {\n color: var(--p-bluegray-600) !important;\n}\n.focus\\:text-bluegray-700:focus {\n color: var(--p-bluegray-700) !important;\n}\n.focus\\:text-bluegray-800:focus {\n color: var(--p-bluegray-800) !important;\n}\n.focus\\:text-bluegray-900:focus {\n color: var(--p-bluegray-900) !important;\n}\n\n.hover\\:text-bluegray-50:hover {\n color: var(--p-bluegray-50) !important;\n}\n.hover\\:text-bluegray-100:hover {\n color: var(--p-bluegray-100) !important;\n}\n.hover\\:text-bluegray-200:hover {\n color: var(--p-bluegray-200) !important;\n}\n.hover\\:text-bluegray-300:hover {\n color: var(--p-bluegray-300) !important;\n}\n.hover\\:text-bluegray-400:hover {\n color: var(--p-bluegray-400) !important;\n}\n.hover\\:text-bluegray-500:hover {\n color: var(--p-bluegray-500) !important;\n}\n.hover\\:text-bluegray-600:hover {\n color: var(--p-bluegray-600) !important;\n}\n.hover\\:text-bluegray-700:hover {\n color: var(--p-bluegray-700) !important;\n}\n.hover\\:text-bluegray-800:hover {\n color: var(--p-bluegray-800) !important;\n}\n.hover\\:text-bluegray-900:hover {\n color: var(--p-bluegray-900) !important;\n}\n\n.active\\:text-bluegray-50:active {\n color: var(--p-bluegray-50) !important;\n}\n.active\\:text-bluegray-100:active {\n color: var(--p-bluegray-100) !important;\n}\n.active\\:text-bluegray-200:active {\n color: var(--p-bluegray-200) !important;\n}\n.active\\:text-bluegray-300:active {\n color: var(--p-bluegray-300) !important;\n}\n.active\\:text-bluegray-400:active {\n color: var(--p-bluegray-400) !important;\n}\n.active\\:text-bluegray-500:active {\n color: var(--p-bluegray-500) !important;\n}\n.active\\:text-bluegray-600:active {\n color: var(--p-bluegray-600) !important;\n}\n.active\\:text-bluegray-700:active {\n color: var(--p-bluegray-700) !important;\n}\n.active\\:text-bluegray-800:active {\n color: var(--p-bluegray-800) !important;\n}\n.active\\:text-bluegray-900:active {\n color: var(--p-bluegray-900) !important;\n}\n\n.text-purple-50 {\n color: var(--p-purple-50) !important;\n}\n.text-purple-100 {\n color: var(--p-purple-100) !important;\n}\n.text-purple-200 {\n color: var(--p-purple-200) !important;\n}\n.text-purple-300 {\n color: var(--p-purple-300) !important;\n}\n.text-purple-400 {\n color: var(--p-purple-400) !important;\n}\n.text-purple-500 {\n color: var(--p-purple-500) !important;\n}\n.text-purple-600 {\n color: var(--p-purple-600) !important;\n}\n.text-purple-700 {\n color: var(--p-purple-700) !important;\n}\n.text-purple-800 {\n color: var(--p-purple-800) !important;\n}\n.text-purple-900 {\n color: var(--p-purple-900) !important;\n}\n\n.focus\\:text-purple-50:focus {\n color: var(--p-purple-50) !important;\n}\n.focus\\:text-purple-100:focus {\n color: var(--p-purple-100) !important;\n}\n.focus\\:text-purple-200:focus {\n color: var(--p-purple-200) !important;\n}\n.focus\\:text-purple-300:focus {\n color: var(--p-purple-300) !important;\n}\n.focus\\:text-purple-400:focus {\n color: var(--p-purple-400) !important;\n}\n.focus\\:text-purple-500:focus {\n color: var(--p-purple-500) !important;\n}\n.focus\\:text-purple-600:focus {\n color: var(--p-purple-600) !important;\n}\n.focus\\:text-purple-700:focus {\n color: var(--p-purple-700) !important;\n}\n.focus\\:text-purple-800:focus {\n color: var(--p-purple-800) !important;\n}\n.focus\\:text-purple-900:focus {\n color: var(--p-purple-900) !important;\n}\n\n.hover\\:text-purple-50:hover {\n color: var(--p-purple-50) !important;\n}\n.hover\\:text-purple-100:hover {\n color: var(--p-purple-100) !important;\n}\n.hover\\:text-purple-200:hover {\n color: var(--p-purple-200) !important;\n}\n.hover\\:text-purple-300:hover {\n color: var(--p-purple-300) !important;\n}\n.hover\\:text-purple-400:hover {\n color: var(--p-purple-400) !important;\n}\n.hover\\:text-purple-500:hover {\n color: var(--p-purple-500) !important;\n}\n.hover\\:text-purple-600:hover {\n color: var(--p-purple-600) !important;\n}\n.hover\\:text-purple-700:hover {\n color: var(--p-purple-700) !important;\n}\n.hover\\:text-purple-800:hover {\n color: var(--p-purple-800) !important;\n}\n.hover\\:text-purple-900:hover {\n color: var(--p-purple-900) !important;\n}\n\n.active\\:text-purple-50:active {\n color: var(--p-purple-50) !important;\n}\n.active\\:text-purple-100:active {\n color: var(--p-purple-100) !important;\n}\n.active\\:text-purple-200:active {\n color: var(--p-purple-200) !important;\n}\n.active\\:text-purple-300:active {\n color: var(--p-purple-300) !important;\n}\n.active\\:text-purple-400:active {\n color: var(--p-purple-400) !important;\n}\n.active\\:text-purple-500:active {\n color: var(--p-purple-500) !important;\n}\n.active\\:text-purple-600:active {\n color: var(--p-purple-600) !important;\n}\n.active\\:text-purple-700:active {\n color: var(--p-purple-700) !important;\n}\n.active\\:text-purple-800:active {\n color: var(--p-purple-800) !important;\n}\n.active\\:text-purple-900:active {\n color: var(--p-purple-900) !important;\n}\n\n.text-gray-50 {\n color: var(--p-gray-50) !important;\n}\n.text-gray-100 {\n color: var(--p-gray-100) !important;\n}\n.text-gray-200 {\n color: var(--p-gray-200) !important;\n}\n.text-gray-300 {\n color: var(--p-gray-300) !important;\n}\n.text-gray-400 {\n color: var(--p-gray-400) !important;\n}\n.text-gray-500 {\n color: var(--p-gray-500) !important;\n}\n.text-gray-600 {\n color: var(--p-gray-600) !important;\n}\n.text-gray-700 {\n color: var(--p-gray-700) !important;\n}\n.text-gray-800 {\n color: var(--p-gray-800) !important;\n}\n.text-gray-900 {\n color: var(--p-gray-900) !important;\n}\n\n.focus\\:text-gray-50:focus {\n color: var(--p-gray-50) !important;\n}\n.focus\\:text-gray-100:focus {\n color: var(--p-gray-100) !important;\n}\n.focus\\:text-gray-200:focus {\n color: var(--p-gray-200) !important;\n}\n.focus\\:text-gray-300:focus {\n color: var(--p-gray-300) !important;\n}\n.focus\\:text-gray-400:focus {\n color: var(--p-gray-400) !important;\n}\n.focus\\:text-gray-500:focus {\n color: var(--p-gray-500) !important;\n}\n.focus\\:text-gray-600:focus {\n color: var(--p-gray-600) !important;\n}\n.focus\\:text-gray-700:focus {\n color: var(--p-gray-700) !important;\n}\n.focus\\:text-gray-800:focus {\n color: var(--p-gray-800) !important;\n}\n.focus\\:text-gray-900:focus {\n color: var(--p-gray-900) !important;\n}\n\n.hover\\:text-gray-50:hover {\n color: var(--p-gray-50) !important;\n}\n.hover\\:text-gray-100:hover {\n color: var(--p-gray-100) !important;\n}\n.hover\\:text-gray-200:hover {\n color: var(--p-gray-200) !important;\n}\n.hover\\:text-gray-300:hover {\n color: var(--p-gray-300) !important;\n}\n.hover\\:text-gray-400:hover {\n color: var(--p-gray-400) !important;\n}\n.hover\\:text-gray-500:hover {\n color: var(--p-gray-500) !important;\n}\n.hover\\:text-gray-600:hover {\n color: var(--p-gray-600) !important;\n}\n.hover\\:text-gray-700:hover {\n color: var(--p-gray-700) !important;\n}\n.hover\\:text-gray-800:hover {\n color: var(--p-gray-800) !important;\n}\n.hover\\:text-gray-900:hover {\n color: var(--p-gray-900) !important;\n}\n\n.active\\:text-gray-50:active {\n color: var(--p-gray-50) !important;\n}\n.active\\:text-gray-100:active {\n color: var(--p-gray-100) !important;\n}\n.active\\:text-gray-200:active {\n color: var(--p-gray-200) !important;\n}\n.active\\:text-gray-300:active {\n color: var(--p-gray-300) !important;\n}\n.active\\:text-gray-400:active {\n color: var(--p-gray-400) !important;\n}\n.active\\:text-gray-500:active {\n color: var(--p-gray-500) !important;\n}\n.active\\:text-gray-600:active {\n color: var(--p-gray-600) !important;\n}\n.active\\:text-gray-700:active {\n color: var(--p-gray-700) !important;\n}\n.active\\:text-gray-800:active {\n color: var(--p-gray-800) !important;\n}\n.active\\:text-gray-900:active {\n color: var(--p-gray-900) !important;\n}\n\n.text-red-50 {\n color: var(--p-red-50) !important;\n}\n.text-red-100 {\n color: var(--p-red-100) !important;\n}\n.text-red-200 {\n color: var(--p-red-200) !important;\n}\n.text-red-300 {\n color: var(--p-red-300) !important;\n}\n.text-red-400 {\n color: var(--p-red-400) !important;\n}\n.text-red-500 {\n color: var(--p-red-500) !important;\n}\n.text-red-600 {\n color: var(--p-red-600) !important;\n}\n.text-red-700 {\n color: var(--p-red-700) !important;\n}\n.text-red-800 {\n color: var(--p-red-800) !important;\n}\n.text-red-900 {\n color: var(--p-red-900) !important;\n}\n\n.focus\\:text-red-50:focus {\n color: var(--p-red-50) !important;\n}\n.focus\\:text-red-100:focus {\n color: var(--p-red-100) !important;\n}\n.focus\\:text-red-200:focus {\n color: var(--p-red-200) !important;\n}\n.focus\\:text-red-300:focus {\n color: var(--p-red-300) !important;\n}\n.focus\\:text-red-400:focus {\n color: var(--p-red-400) !important;\n}\n.focus\\:text-red-500:focus {\n color: var(--p-red-500) !important;\n}\n.focus\\:text-red-600:focus {\n color: var(--p-red-600) !important;\n}\n.focus\\:text-red-700:focus {\n color: var(--p-red-700) !important;\n}\n.focus\\:text-red-800:focus {\n color: var(--p-red-800) !important;\n}\n.focus\\:text-red-900:focus {\n color: var(--p-red-900) !important;\n}\n\n.hover\\:text-red-50:hover {\n color: var(--p-red-50) !important;\n}\n.hover\\:text-red-100:hover {\n color: var(--p-red-100) !important;\n}\n.hover\\:text-red-200:hover {\n color: var(--p-red-200) !important;\n}\n.hover\\:text-red-300:hover {\n color: var(--p-red-300) !important;\n}\n.hover\\:text-red-400:hover {\n color: var(--p-red-400) !important;\n}\n.hover\\:text-red-500:hover {\n color: var(--p-red-500) !important;\n}\n.hover\\:text-red-600:hover {\n color: var(--p-red-600) !important;\n}\n.hover\\:text-red-700:hover {\n color: var(--p-red-700) !important;\n}\n.hover\\:text-red-800:hover {\n color: var(--p-red-800) !important;\n}\n.hover\\:text-red-900:hover {\n color: var(--p-red-900) !important;\n}\n\n.active\\:text-red-50:active {\n color: var(--p-red-50) !important;\n}\n.active\\:text-red-100:active {\n color: var(--p-red-100) !important;\n}\n.active\\:text-red-200:active {\n color: var(--p-red-200) !important;\n}\n.active\\:text-red-300:active {\n color: var(--p-red-300) !important;\n}\n.active\\:text-red-400:active {\n color: var(--p-red-400) !important;\n}\n.active\\:text-red-500:active {\n color: var(--p-red-500) !important;\n}\n.active\\:text-red-600:active {\n color: var(--p-red-600) !important;\n}\n.active\\:text-red-700:active {\n color: var(--p-red-700) !important;\n}\n.active\\:text-red-800:active {\n color: var(--p-red-800) !important;\n}\n.active\\:text-red-900:active {\n color: var(--p-red-900) !important;\n}\n\n.text-primary-50 {\n color: var(--p-primary-50) !important;\n}\n.text-primary-100 {\n color: var(--p-primary-100) !important;\n}\n.text-primary-200 {\n color: var(--p-primary-200) !important;\n}\n.text-primary-300 {\n color: var(--p-primary-300) !important;\n}\n.text-primary-400 {\n color: var(--p-primary-400) !important;\n}\n.text-primary-500 {\n color: var(--p-primary-500) !important;\n}\n.text-primary-600 {\n color: var(--p-primary-600) !important;\n}\n.text-primary-700 {\n color: var(--p-primary-700) !important;\n}\n.text-primary-800 {\n color: var(--p-primary-800) !important;\n}\n.text-primary-900 {\n color: var(--p-primary-900) !important;\n}\n\n.focus\\:text-primary-50:focus {\n color: var(--p-primary-50) !important;\n}\n.focus\\:text-primary-100:focus {\n color: var(--p-primary-100) !important;\n}\n.focus\\:text-primary-200:focus {\n color: var(--p-primary-200) !important;\n}\n.focus\\:text-primary-300:focus {\n color: var(--p-primary-300) !important;\n}\n.focus\\:text-primary-400:focus {\n color: var(--p-primary-400) !important;\n}\n.focus\\:text-primary-500:focus {\n color: var(--p-primary-500) !important;\n}\n.focus\\:text-primary-600:focus {\n color: var(--p-primary-600) !important;\n}\n.focus\\:text-primary-700:focus {\n color: var(--p-primary-700) !important;\n}\n.focus\\:text-primary-800:focus {\n color: var(--p-primary-800) !important;\n}\n.focus\\:text-primary-900:focus {\n color: var(--p-primary-900) !important;\n}\n\n.hover\\:text-primary-50:hover {\n color: var(--p-primary-50) !important;\n}\n.hover\\:text-primary-100:hover {\n color: var(--p-primary-100) !important;\n}\n.hover\\:text-primary-200:hover {\n color: var(--p-primary-200) !important;\n}\n.hover\\:text-primary-300:hover {\n color: var(--p-primary-300) !important;\n}\n.hover\\:text-primary-400:hover {\n color: var(--p-primary-400) !important;\n}\n.hover\\:text-primary-500:hover {\n color: var(--p-primary-500) !important;\n}\n.hover\\:text-primary-600:hover {\n color: var(--p-primary-600) !important;\n}\n.hover\\:text-primary-700:hover {\n color: var(--p-primary-700) !important;\n}\n.hover\\:text-primary-800:hover {\n color: var(--p-primary-800) !important;\n}\n.hover\\:text-primary-900:hover {\n color: var(--p-primary-900) !important;\n}\n\n.active\\:text-primary-50:active {\n color: var(--p-primary-50) !important;\n}\n.active\\:text-primary-100:active {\n color: var(--p-primary-100) !important;\n}\n.active\\:text-primary-200:active {\n color: var(--p-primary-200) !important;\n}\n.active\\:text-primary-300:active {\n color: var(--p-primary-300) !important;\n}\n.active\\:text-primary-400:active {\n color: var(--p-primary-400) !important;\n}\n.active\\:text-primary-500:active {\n color: var(--p-primary-500) !important;\n}\n.active\\:text-primary-600:active {\n color: var(--p-primary-600) !important;\n}\n.active\\:text-primary-700:active {\n color: var(--p-primary-700) !important;\n}\n.active\\:text-primary-800:active {\n color: var(--p-primary-800) !important;\n}\n.active\\:text-primary-900:active {\n color: var(--p-primary-900) !important;\n}\n\n.bg-blue-50 {\n background-color: var(--p-blue-50) !important;\n}\n.bg-blue-100 {\n background-color: var(--p-blue-100) !important;\n}\n.bg-blue-200 {\n background-color: var(--p-blue-200) !important;\n}\n.bg-blue-300 {\n background-color: var(--p-blue-300) !important;\n}\n.bg-blue-400 {\n background-color: var(--p-blue-400) !important;\n}\n.bg-blue-500 {\n background-color: var(--p-blue-500) !important;\n}\n.bg-blue-600 {\n background-color: var(--p-blue-600) !important;\n}\n.bg-blue-700 {\n background-color: var(--p-blue-700) !important;\n}\n.bg-blue-800 {\n background-color: var(--p-blue-800) !important;\n}\n.bg-blue-900 {\n background-color: var(--p-blue-900) !important;\n}\n\n.focus\\:bg-blue-50:focus {\n background-color: var(--p-blue-50) !important;\n}\n.focus\\:bg-blue-100:focus {\n background-color: var(--p-blue-100) !important;\n}\n.focus\\:bg-blue-200:focus {\n background-color: var(--p-blue-200) !important;\n}\n.focus\\:bg-blue-300:focus {\n background-color: var(--p-blue-300) !important;\n}\n.focus\\:bg-blue-400:focus {\n background-color: var(--p-blue-400) !important;\n}\n.focus\\:bg-blue-500:focus {\n background-color: var(--p-blue-500) !important;\n}\n.focus\\:bg-blue-600:focus {\n background-color: var(--p-blue-600) !important;\n}\n.focus\\:bg-blue-700:focus {\n background-color: var(--p-blue-700) !important;\n}\n.focus\\:bg-blue-800:focus {\n background-color: var(--p-blue-800) !important;\n}\n.focus\\:bg-blue-900:focus {\n background-color: var(--p-blue-900) !important;\n}\n\n.hover\\:bg-blue-50:hover {\n background-color: var(--p-blue-50) !important;\n}\n.hover\\:bg-blue-100:hover {\n background-color: var(--p-blue-100) !important;\n}\n.hover\\:bg-blue-200:hover {\n background-color: var(--p-blue-200) !important;\n}\n.hover\\:bg-blue-300:hover {\n background-color: var(--p-blue-300) !important;\n}\n.hover\\:bg-blue-400:hover {\n background-color: var(--p-blue-400) !important;\n}\n.hover\\:bg-blue-500:hover {\n background-color: var(--p-blue-500) !important;\n}\n.hover\\:bg-blue-600:hover {\n background-color: var(--p-blue-600) !important;\n}\n.hover\\:bg-blue-700:hover {\n background-color: var(--p-blue-700) !important;\n}\n.hover\\:bg-blue-800:hover {\n background-color: var(--p-blue-800) !important;\n}\n.hover\\:bg-blue-900:hover {\n background-color: var(--p-blue-900) !important;\n}\n\n.active\\:bg-blue-50:active {\n background-color: var(--p-blue-50) !important;\n}\n.active\\:bg-blue-100:active {\n background-color: var(--p-blue-100) !important;\n}\n.active\\:bg-blue-200:active {\n background-color: var(--p-blue-200) !important;\n}\n.active\\:bg-blue-300:active {\n background-color: var(--p-blue-300) !important;\n}\n.active\\:bg-blue-400:active {\n background-color: var(--p-blue-400) !important;\n}\n.active\\:bg-blue-500:active {\n background-color: var(--p-blue-500) !important;\n}\n.active\\:bg-blue-600:active {\n background-color: var(--p-blue-600) !important;\n}\n.active\\:bg-blue-700:active {\n background-color: var(--p-blue-700) !important;\n}\n.active\\:bg-blue-800:active {\n background-color: var(--p-blue-800) !important;\n}\n.active\\:bg-blue-900:active {\n background-color: var(--p-blue-900) !important;\n}\n\n.bg-green-50 {\n background-color: var(--p-green-50) !important;\n}\n.bg-green-100 {\n background-color: var(--p-green-100) !important;\n}\n.bg-green-200 {\n background-color: var(--p-green-200) !important;\n}\n.bg-green-300 {\n background-color: var(--p-green-300) !important;\n}\n.bg-green-400 {\n background-color: var(--p-green-400) !important;\n}\n.bg-green-500 {\n background-color: var(--p-green-500) !important;\n}\n.bg-green-600 {\n background-color: var(--p-green-600) !important;\n}\n.bg-green-700 {\n background-color: var(--p-green-700) !important;\n}\n.bg-green-800 {\n background-color: var(--p-green-800) !important;\n}\n.bg-green-900 {\n background-color: var(--p-green-900) !important;\n}\n\n.focus\\:bg-green-50:focus {\n background-color: var(--p-green-50) !important;\n}\n.focus\\:bg-green-100:focus {\n background-color: var(--p-green-100) !important;\n}\n.focus\\:bg-green-200:focus {\n background-color: var(--p-green-200) !important;\n}\n.focus\\:bg-green-300:focus {\n background-color: var(--p-green-300) !important;\n}\n.focus\\:bg-green-400:focus {\n background-color: var(--p-green-400) !important;\n}\n.focus\\:bg-green-500:focus {\n background-color: var(--p-green-500) !important;\n}\n.focus\\:bg-green-600:focus {\n background-color: var(--p-green-600) !important;\n}\n.focus\\:bg-green-700:focus {\n background-color: var(--p-green-700) !important;\n}\n.focus\\:bg-green-800:focus {\n background-color: var(--p-green-800) !important;\n}\n.focus\\:bg-green-900:focus {\n background-color: var(--p-green-900) !important;\n}\n\n.hover\\:bg-green-50:hover {\n background-color: var(--p-green-50) !important;\n}\n.hover\\:bg-green-100:hover {\n background-color: var(--p-green-100) !important;\n}\n.hover\\:bg-green-200:hover {\n background-color: var(--p-green-200) !important;\n}\n.hover\\:bg-green-300:hover {\n background-color: var(--p-green-300) !important;\n}\n.hover\\:bg-green-400:hover {\n background-color: var(--p-green-400) !important;\n}\n.hover\\:bg-green-500:hover {\n background-color: var(--p-green-500) !important;\n}\n.hover\\:bg-green-600:hover {\n background-color: var(--p-green-600) !important;\n}\n.hover\\:bg-green-700:hover {\n background-color: var(--p-green-700) !important;\n}\n.hover\\:bg-green-800:hover {\n background-color: var(--p-green-800) !important;\n}\n.hover\\:bg-green-900:hover {\n background-color: var(--p-green-900) !important;\n}\n\n.active\\:bg-green-50:active {\n background-color: var(--p-green-50) !important;\n}\n.active\\:bg-green-100:active {\n background-color: var(--p-green-100) !important;\n}\n.active\\:bg-green-200:active {\n background-color: var(--p-green-200) !important;\n}\n.active\\:bg-green-300:active {\n background-color: var(--p-green-300) !important;\n}\n.active\\:bg-green-400:active {\n background-color: var(--p-green-400) !important;\n}\n.active\\:bg-green-500:active {\n background-color: var(--p-green-500) !important;\n}\n.active\\:bg-green-600:active {\n background-color: var(--p-green-600) !important;\n}\n.active\\:bg-green-700:active {\n background-color: var(--p-green-700) !important;\n}\n.active\\:bg-green-800:active {\n background-color: var(--p-green-800) !important;\n}\n.active\\:bg-green-900:active {\n background-color: var(--p-green-900) !important;\n}\n\n.bg-yellow-50 {\n background-color: var(--p-yellow-50) !important;\n}\n.bg-yellow-100 {\n background-color: var(--p-yellow-100) !important;\n}\n.bg-yellow-200 {\n background-color: var(--p-yellow-200) !important;\n}\n.bg-yellow-300 {\n background-color: var(--p-yellow-300) !important;\n}\n.bg-yellow-400 {\n background-color: var(--p-yellow-400) !important;\n}\n.bg-yellow-500 {\n background-color: var(--p-yellow-500) !important;\n}\n.bg-yellow-600 {\n background-color: var(--p-yellow-600) !important;\n}\n.bg-yellow-700 {\n background-color: var(--p-yellow-700) !important;\n}\n.bg-yellow-800 {\n background-color: var(--p-yellow-800) !important;\n}\n.bg-yellow-900 {\n background-color: var(--p-yellow-900) !important;\n}\n\n.focus\\:bg-yellow-50:focus {\n background-color: var(--p-yellow-50) !important;\n}\n.focus\\:bg-yellow-100:focus {\n background-color: var(--p-yellow-100) !important;\n}\n.focus\\:bg-yellow-200:focus {\n background-color: var(--p-yellow-200) !important;\n}\n.focus\\:bg-yellow-300:focus {\n background-color: var(--p-yellow-300) !important;\n}\n.focus\\:bg-yellow-400:focus {\n background-color: var(--p-yellow-400) !important;\n}\n.focus\\:bg-yellow-500:focus {\n background-color: var(--p-yellow-500) !important;\n}\n.focus\\:bg-yellow-600:focus {\n background-color: var(--p-yellow-600) !important;\n}\n.focus\\:bg-yellow-700:focus {\n background-color: var(--p-yellow-700) !important;\n}\n.focus\\:bg-yellow-800:focus {\n background-color: var(--p-yellow-800) !important;\n}\n.focus\\:bg-yellow-900:focus {\n background-color: var(--p-yellow-900) !important;\n}\n\n.hover\\:bg-yellow-50:hover {\n background-color: var(--p-yellow-50) !important;\n}\n.hover\\:bg-yellow-100:hover {\n background-color: var(--p-yellow-100) !important;\n}\n.hover\\:bg-yellow-200:hover {\n background-color: var(--p-yellow-200) !important;\n}\n.hover\\:bg-yellow-300:hover {\n background-color: var(--p-yellow-300) !important;\n}\n.hover\\:bg-yellow-400:hover {\n background-color: var(--p-yellow-400) !important;\n}\n.hover\\:bg-yellow-500:hover {\n background-color: var(--p-yellow-500) !important;\n}\n.hover\\:bg-yellow-600:hover {\n background-color: var(--p-yellow-600) !important;\n}\n.hover\\:bg-yellow-700:hover {\n background-color: var(--p-yellow-700) !important;\n}\n.hover\\:bg-yellow-800:hover {\n background-color: var(--p-yellow-800) !important;\n}\n.hover\\:bg-yellow-900:hover {\n background-color: var(--p-yellow-900) !important;\n}\n\n.active\\:bg-yellow-50:active {\n background-color: var(--p-yellow-50) !important;\n}\n.active\\:bg-yellow-100:active {\n background-color: var(--p-yellow-100) !important;\n}\n.active\\:bg-yellow-200:active {\n background-color: var(--p-yellow-200) !important;\n}\n.active\\:bg-yellow-300:active {\n background-color: var(--p-yellow-300) !important;\n}\n.active\\:bg-yellow-400:active {\n background-color: var(--p-yellow-400) !important;\n}\n.active\\:bg-yellow-500:active {\n background-color: var(--p-yellow-500) !important;\n}\n.active\\:bg-yellow-600:active {\n background-color: var(--p-yellow-600) !important;\n}\n.active\\:bg-yellow-700:active {\n background-color: var(--p-yellow-700) !important;\n}\n.active\\:bg-yellow-800:active {\n background-color: var(--p-yellow-800) !important;\n}\n.active\\:bg-yellow-900:active {\n background-color: var(--p-yellow-900) !important;\n}\n\n.bg-cyan-50 {\n background-color: var(--p-cyan-50) !important;\n}\n.bg-cyan-100 {\n background-color: var(--p-cyan-100) !important;\n}\n.bg-cyan-200 {\n background-color: var(--p-cyan-200) !important;\n}\n.bg-cyan-300 {\n background-color: var(--p-cyan-300) !important;\n}\n.bg-cyan-400 {\n background-color: var(--p-cyan-400) !important;\n}\n.bg-cyan-500 {\n background-color: var(--p-cyan-500) !important;\n}\n.bg-cyan-600 {\n background-color: var(--p-cyan-600) !important;\n}\n.bg-cyan-700 {\n background-color: var(--p-cyan-700) !important;\n}\n.bg-cyan-800 {\n background-color: var(--p-cyan-800) !important;\n}\n.bg-cyan-900 {\n background-color: var(--p-cyan-900) !important;\n}\n\n.focus\\:bg-cyan-50:focus {\n background-color: var(--p-cyan-50) !important;\n}\n.focus\\:bg-cyan-100:focus {\n background-color: var(--p-cyan-100) !important;\n}\n.focus\\:bg-cyan-200:focus {\n background-color: var(--p-cyan-200) !important;\n}\n.focus\\:bg-cyan-300:focus {\n background-color: var(--p-cyan-300) !important;\n}\n.focus\\:bg-cyan-400:focus {\n background-color: var(--p-cyan-400) !important;\n}\n.focus\\:bg-cyan-500:focus {\n background-color: var(--p-cyan-500) !important;\n}\n.focus\\:bg-cyan-600:focus {\n background-color: var(--p-cyan-600) !important;\n}\n.focus\\:bg-cyan-700:focus {\n background-color: var(--p-cyan-700) !important;\n}\n.focus\\:bg-cyan-800:focus {\n background-color: var(--p-cyan-800) !important;\n}\n.focus\\:bg-cyan-900:focus {\n background-color: var(--p-cyan-900) !important;\n}\n\n.hover\\:bg-cyan-50:hover {\n background-color: var(--p-cyan-50) !important;\n}\n.hover\\:bg-cyan-100:hover {\n background-color: var(--p-cyan-100) !important;\n}\n.hover\\:bg-cyan-200:hover {\n background-color: var(--p-cyan-200) !important;\n}\n.hover\\:bg-cyan-300:hover {\n background-color: var(--p-cyan-300) !important;\n}\n.hover\\:bg-cyan-400:hover {\n background-color: var(--p-cyan-400) !important;\n}\n.hover\\:bg-cyan-500:hover {\n background-color: var(--p-cyan-500) !important;\n}\n.hover\\:bg-cyan-600:hover {\n background-color: var(--p-cyan-600) !important;\n}\n.hover\\:bg-cyan-700:hover {\n background-color: var(--p-cyan-700) !important;\n}\n.hover\\:bg-cyan-800:hover {\n background-color: var(--p-cyan-800) !important;\n}\n.hover\\:bg-cyan-900:hover {\n background-color: var(--p-cyan-900) !important;\n}\n\n.active\\:bg-cyan-50:active {\n background-color: var(--p-cyan-50) !important;\n}\n.active\\:bg-cyan-100:active {\n background-color: var(--p-cyan-100) !important;\n}\n.active\\:bg-cyan-200:active {\n background-color: var(--p-cyan-200) !important;\n}\n.active\\:bg-cyan-300:active {\n background-color: var(--p-cyan-300) !important;\n}\n.active\\:bg-cyan-400:active {\n background-color: var(--p-cyan-400) !important;\n}\n.active\\:bg-cyan-500:active {\n background-color: var(--p-cyan-500) !important;\n}\n.active\\:bg-cyan-600:active {\n background-color: var(--p-cyan-600) !important;\n}\n.active\\:bg-cyan-700:active {\n background-color: var(--p-cyan-700) !important;\n}\n.active\\:bg-cyan-800:active {\n background-color: var(--p-cyan-800) !important;\n}\n.active\\:bg-cyan-900:active {\n background-color: var(--p-cyan-900) !important;\n}\n\n.bg-pink-50 {\n background-color: var(--p-pink-50) !important;\n}\n.bg-pink-100 {\n background-color: var(--p-pink-100) !important;\n}\n.bg-pink-200 {\n background-color: var(--p-pink-200) !important;\n}\n.bg-pink-300 {\n background-color: var(--p-pink-300) !important;\n}\n.bg-pink-400 {\n background-color: var(--p-pink-400) !important;\n}\n.bg-pink-500 {\n background-color: var(--p-pink-500) !important;\n}\n.bg-pink-600 {\n background-color: var(--p-pink-600) !important;\n}\n.bg-pink-700 {\n background-color: var(--p-pink-700) !important;\n}\n.bg-pink-800 {\n background-color: var(--p-pink-800) !important;\n}\n.bg-pink-900 {\n background-color: var(--p-pink-900) !important;\n}\n\n.focus\\:bg-pink-50:focus {\n background-color: var(--p-pink-50) !important;\n}\n.focus\\:bg-pink-100:focus {\n background-color: var(--p-pink-100) !important;\n}\n.focus\\:bg-pink-200:focus {\n background-color: var(--p-pink-200) !important;\n}\n.focus\\:bg-pink-300:focus {\n background-color: var(--p-pink-300) !important;\n}\n.focus\\:bg-pink-400:focus {\n background-color: var(--p-pink-400) !important;\n}\n.focus\\:bg-pink-500:focus {\n background-color: var(--p-pink-500) !important;\n}\n.focus\\:bg-pink-600:focus {\n background-color: var(--p-pink-600) !important;\n}\n.focus\\:bg-pink-700:focus {\n background-color: var(--p-pink-700) !important;\n}\n.focus\\:bg-pink-800:focus {\n background-color: var(--p-pink-800) !important;\n}\n.focus\\:bg-pink-900:focus {\n background-color: var(--p-pink-900) !important;\n}\n\n.hover\\:bg-pink-50:hover {\n background-color: var(--p-pink-50) !important;\n}\n.hover\\:bg-pink-100:hover {\n background-color: var(--p-pink-100) !important;\n}\n.hover\\:bg-pink-200:hover {\n background-color: var(--p-pink-200) !important;\n}\n.hover\\:bg-pink-300:hover {\n background-color: var(--p-pink-300) !important;\n}\n.hover\\:bg-pink-400:hover {\n background-color: var(--p-pink-400) !important;\n}\n.hover\\:bg-pink-500:hover {\n background-color: var(--p-pink-500) !important;\n}\n.hover\\:bg-pink-600:hover {\n background-color: var(--p-pink-600) !important;\n}\n.hover\\:bg-pink-700:hover {\n background-color: var(--p-pink-700) !important;\n}\n.hover\\:bg-pink-800:hover {\n background-color: var(--p-pink-800) !important;\n}\n.hover\\:bg-pink-900:hover {\n background-color: var(--p-pink-900) !important;\n}\n\n.active\\:bg-pink-50:active {\n background-color: var(--p-pink-50) !important;\n}\n.active\\:bg-pink-100:active {\n background-color: var(--p-pink-100) !important;\n}\n.active\\:bg-pink-200:active {\n background-color: var(--p-pink-200) !important;\n}\n.active\\:bg-pink-300:active {\n background-color: var(--p-pink-300) !important;\n}\n.active\\:bg-pink-400:active {\n background-color: var(--p-pink-400) !important;\n}\n.active\\:bg-pink-500:active {\n background-color: var(--p-pink-500) !important;\n}\n.active\\:bg-pink-600:active {\n background-color: var(--p-pink-600) !important;\n}\n.active\\:bg-pink-700:active {\n background-color: var(--p-pink-700) !important;\n}\n.active\\:bg-pink-800:active {\n background-color: var(--p-pink-800) !important;\n}\n.active\\:bg-pink-900:active {\n background-color: var(--p-pink-900) !important;\n}\n\n.bg-indigo-50 {\n background-color: var(--p-indigo-50) !important;\n}\n.bg-indigo-100 {\n background-color: var(--p-indigo-100) !important;\n}\n.bg-indigo-200 {\n background-color: var(--p-indigo-200) !important;\n}\n.bg-indigo-300 {\n background-color: var(--p-indigo-300) !important;\n}\n.bg-indigo-400 {\n background-color: var(--p-indigo-400) !important;\n}\n.bg-indigo-500 {\n background-color: var(--p-indigo-500) !important;\n}\n.bg-indigo-600 {\n background-color: var(--p-indigo-600) !important;\n}\n.bg-indigo-700 {\n background-color: var(--p-indigo-700) !important;\n}\n.bg-indigo-800 {\n background-color: var(--p-indigo-800) !important;\n}\n.bg-indigo-900 {\n background-color: var(--p-indigo-900) !important;\n}\n\n.focus\\:bg-indigo-50:focus {\n background-color: var(--p-indigo-50) !important;\n}\n.focus\\:bg-indigo-100:focus {\n background-color: var(--p-indigo-100) !important;\n}\n.focus\\:bg-indigo-200:focus {\n background-color: var(--p-indigo-200) !important;\n}\n.focus\\:bg-indigo-300:focus {\n background-color: var(--p-indigo-300) !important;\n}\n.focus\\:bg-indigo-400:focus {\n background-color: var(--p-indigo-400) !important;\n}\n.focus\\:bg-indigo-500:focus {\n background-color: var(--p-indigo-500) !important;\n}\n.focus\\:bg-indigo-600:focus {\n background-color: var(--p-indigo-600) !important;\n}\n.focus\\:bg-indigo-700:focus {\n background-color: var(--p-indigo-700) !important;\n}\n.focus\\:bg-indigo-800:focus {\n background-color: var(--p-indigo-800) !important;\n}\n.focus\\:bg-indigo-900:focus {\n background-color: var(--p-indigo-900) !important;\n}\n\n.hover\\:bg-indigo-50:hover {\n background-color: var(--p-indigo-50) !important;\n}\n.hover\\:bg-indigo-100:hover {\n background-color: var(--p-indigo-100) !important;\n}\n.hover\\:bg-indigo-200:hover {\n background-color: var(--p-indigo-200) !important;\n}\n.hover\\:bg-indigo-300:hover {\n background-color: var(--p-indigo-300) !important;\n}\n.hover\\:bg-indigo-400:hover {\n background-color: var(--p-indigo-400) !important;\n}\n.hover\\:bg-indigo-500:hover {\n background-color: var(--p-indigo-500) !important;\n}\n.hover\\:bg-indigo-600:hover {\n background-color: var(--p-indigo-600) !important;\n}\n.hover\\:bg-indigo-700:hover {\n background-color: var(--p-indigo-700) !important;\n}\n.hover\\:bg-indigo-800:hover {\n background-color: var(--p-indigo-800) !important;\n}\n.hover\\:bg-indigo-900:hover {\n background-color: var(--p-indigo-900) !important;\n}\n\n.active\\:bg-indigo-50:active {\n background-color: var(--p-indigo-50) !important;\n}\n.active\\:bg-indigo-100:active {\n background-color: var(--p-indigo-100) !important;\n}\n.active\\:bg-indigo-200:active {\n background-color: var(--p-indigo-200) !important;\n}\n.active\\:bg-indigo-300:active {\n background-color: var(--p-indigo-300) !important;\n}\n.active\\:bg-indigo-400:active {\n background-color: var(--p-indigo-400) !important;\n}\n.active\\:bg-indigo-500:active {\n background-color: var(--p-indigo-500) !important;\n}\n.active\\:bg-indigo-600:active {\n background-color: var(--p-indigo-600) !important;\n}\n.active\\:bg-indigo-700:active {\n background-color: var(--p-indigo-700) !important;\n}\n.active\\:bg-indigo-800:active {\n background-color: var(--p-indigo-800) !important;\n}\n.active\\:bg-indigo-900:active {\n background-color: var(--p-indigo-900) !important;\n}\n\n.bg-teal-50 {\n background-color: var(--p-teal-50) !important;\n}\n.bg-teal-100 {\n background-color: var(--p-teal-100) !important;\n}\n.bg-teal-200 {\n background-color: var(--p-teal-200) !important;\n}\n.bg-teal-300 {\n background-color: var(--p-teal-300) !important;\n}\n.bg-teal-400 {\n background-color: var(--p-teal-400) !important;\n}\n.bg-teal-500 {\n background-color: var(--p-teal-500) !important;\n}\n.bg-teal-600 {\n background-color: var(--p-teal-600) !important;\n}\n.bg-teal-700 {\n background-color: var(--p-teal-700) !important;\n}\n.bg-teal-800 {\n background-color: var(--p-teal-800) !important;\n}\n.bg-teal-900 {\n background-color: var(--p-teal-900) !important;\n}\n\n.focus\\:bg-teal-50:focus {\n background-color: var(--p-teal-50) !important;\n}\n.focus\\:bg-teal-100:focus {\n background-color: var(--p-teal-100) !important;\n}\n.focus\\:bg-teal-200:focus {\n background-color: var(--p-teal-200) !important;\n}\n.focus\\:bg-teal-300:focus {\n background-color: var(--p-teal-300) !important;\n}\n.focus\\:bg-teal-400:focus {\n background-color: var(--p-teal-400) !important;\n}\n.focus\\:bg-teal-500:focus {\n background-color: var(--p-teal-500) !important;\n}\n.focus\\:bg-teal-600:focus {\n background-color: var(--p-teal-600) !important;\n}\n.focus\\:bg-teal-700:focus {\n background-color: var(--p-teal-700) !important;\n}\n.focus\\:bg-teal-800:focus {\n background-color: var(--p-teal-800) !important;\n}\n.focus\\:bg-teal-900:focus {\n background-color: var(--p-teal-900) !important;\n}\n\n.hover\\:bg-teal-50:hover {\n background-color: var(--p-teal-50) !important;\n}\n.hover\\:bg-teal-100:hover {\n background-color: var(--p-teal-100) !important;\n}\n.hover\\:bg-teal-200:hover {\n background-color: var(--p-teal-200) !important;\n}\n.hover\\:bg-teal-300:hover {\n background-color: var(--p-teal-300) !important;\n}\n.hover\\:bg-teal-400:hover {\n background-color: var(--p-teal-400) !important;\n}\n.hover\\:bg-teal-500:hover {\n background-color: var(--p-teal-500) !important;\n}\n.hover\\:bg-teal-600:hover {\n background-color: var(--p-teal-600) !important;\n}\n.hover\\:bg-teal-700:hover {\n background-color: var(--p-teal-700) !important;\n}\n.hover\\:bg-teal-800:hover {\n background-color: var(--p-teal-800) !important;\n}\n.hover\\:bg-teal-900:hover {\n background-color: var(--p-teal-900) !important;\n}\n\n.active\\:bg-teal-50:active {\n background-color: var(--p-teal-50) !important;\n}\n.active\\:bg-teal-100:active {\n background-color: var(--p-teal-100) !important;\n}\n.active\\:bg-teal-200:active {\n background-color: var(--p-teal-200) !important;\n}\n.active\\:bg-teal-300:active {\n background-color: var(--p-teal-300) !important;\n}\n.active\\:bg-teal-400:active {\n background-color: var(--p-teal-400) !important;\n}\n.active\\:bg-teal-500:active {\n background-color: var(--p-teal-500) !important;\n}\n.active\\:bg-teal-600:active {\n background-color: var(--p-teal-600) !important;\n}\n.active\\:bg-teal-700:active {\n background-color: var(--p-teal-700) !important;\n}\n.active\\:bg-teal-800:active {\n background-color: var(--p-teal-800) !important;\n}\n.active\\:bg-teal-900:active {\n background-color: var(--p-teal-900) !important;\n}\n\n.bg-orange-50 {\n background-color: var(--p-orange-50) !important;\n}\n.bg-orange-100 {\n background-color: var(--p-orange-100) !important;\n}\n.bg-orange-200 {\n background-color: var(--p-orange-200) !important;\n}\n.bg-orange-300 {\n background-color: var(--p-orange-300) !important;\n}\n.bg-orange-400 {\n background-color: var(--p-orange-400) !important;\n}\n.bg-orange-500 {\n background-color: var(--p-orange-500) !important;\n}\n.bg-orange-600 {\n background-color: var(--p-orange-600) !important;\n}\n.bg-orange-700 {\n background-color: var(--p-orange-700) !important;\n}\n.bg-orange-800 {\n background-color: var(--p-orange-800) !important;\n}\n.bg-orange-900 {\n background-color: var(--p-orange-900) !important;\n}\n\n.focus\\:bg-orange-50:focus {\n background-color: var(--p-orange-50) !important;\n}\n.focus\\:bg-orange-100:focus {\n background-color: var(--p-orange-100) !important;\n}\n.focus\\:bg-orange-200:focus {\n background-color: var(--p-orange-200) !important;\n}\n.focus\\:bg-orange-300:focus {\n background-color: var(--p-orange-300) !important;\n}\n.focus\\:bg-orange-400:focus {\n background-color: var(--p-orange-400) !important;\n}\n.focus\\:bg-orange-500:focus {\n background-color: var(--p-orange-500) !important;\n}\n.focus\\:bg-orange-600:focus {\n background-color: var(--p-orange-600) !important;\n}\n.focus\\:bg-orange-700:focus {\n background-color: var(--p-orange-700) !important;\n}\n.focus\\:bg-orange-800:focus {\n background-color: var(--p-orange-800) !important;\n}\n.focus\\:bg-orange-900:focus {\n background-color: var(--p-orange-900) !important;\n}\n\n.hover\\:bg-orange-50:hover {\n background-color: var(--p-orange-50) !important;\n}\n.hover\\:bg-orange-100:hover {\n background-color: var(--p-orange-100) !important;\n}\n.hover\\:bg-orange-200:hover {\n background-color: var(--p-orange-200) !important;\n}\n.hover\\:bg-orange-300:hover {\n background-color: var(--p-orange-300) !important;\n}\n.hover\\:bg-orange-400:hover {\n background-color: var(--p-orange-400) !important;\n}\n.hover\\:bg-orange-500:hover {\n background-color: var(--p-orange-500) !important;\n}\n.hover\\:bg-orange-600:hover {\n background-color: var(--p-orange-600) !important;\n}\n.hover\\:bg-orange-700:hover {\n background-color: var(--p-orange-700) !important;\n}\n.hover\\:bg-orange-800:hover {\n background-color: var(--p-orange-800) !important;\n}\n.hover\\:bg-orange-900:hover {\n background-color: var(--p-orange-900) !important;\n}\n\n.active\\:bg-orange-50:active {\n background-color: var(--p-orange-50) !important;\n}\n.active\\:bg-orange-100:active {\n background-color: var(--p-orange-100) !important;\n}\n.active\\:bg-orange-200:active {\n background-color: var(--p-orange-200) !important;\n}\n.active\\:bg-orange-300:active {\n background-color: var(--p-orange-300) !important;\n}\n.active\\:bg-orange-400:active {\n background-color: var(--p-orange-400) !important;\n}\n.active\\:bg-orange-500:active {\n background-color: var(--p-orange-500) !important;\n}\n.active\\:bg-orange-600:active {\n background-color: var(--p-orange-600) !important;\n}\n.active\\:bg-orange-700:active {\n background-color: var(--p-orange-700) !important;\n}\n.active\\:bg-orange-800:active {\n background-color: var(--p-orange-800) !important;\n}\n.active\\:bg-orange-900:active {\n background-color: var(--p-orange-900) !important;\n}\n\n.bg-bluegray-50 {\n background-color: var(--p-bluegray-50) !important;\n}\n.bg-bluegray-100 {\n background-color: var(--p-bluegray-100) !important;\n}\n.bg-bluegray-200 {\n background-color: var(--p-bluegray-200) !important;\n}\n.bg-bluegray-300 {\n background-color: var(--p-bluegray-300) !important;\n}\n.bg-bluegray-400 {\n background-color: var(--p-bluegray-400) !important;\n}\n.bg-bluegray-500 {\n background-color: var(--p-bluegray-500) !important;\n}\n.bg-bluegray-600 {\n background-color: var(--p-bluegray-600) !important;\n}\n.bg-bluegray-700 {\n background-color: var(--p-bluegray-700) !important;\n}\n.bg-bluegray-800 {\n background-color: var(--p-bluegray-800) !important;\n}\n.bg-bluegray-900 {\n background-color: var(--p-bluegray-900) !important;\n}\n\n.focus\\:bg-bluegray-50:focus {\n background-color: var(--p-bluegray-50) !important;\n}\n.focus\\:bg-bluegray-100:focus {\n background-color: var(--p-bluegray-100) !important;\n}\n.focus\\:bg-bluegray-200:focus {\n background-color: var(--p-bluegray-200) !important;\n}\n.focus\\:bg-bluegray-300:focus {\n background-color: var(--p-bluegray-300) !important;\n}\n.focus\\:bg-bluegray-400:focus {\n background-color: var(--p-bluegray-400) !important;\n}\n.focus\\:bg-bluegray-500:focus {\n background-color: var(--p-bluegray-500) !important;\n}\n.focus\\:bg-bluegray-600:focus {\n background-color: var(--p-bluegray-600) !important;\n}\n.focus\\:bg-bluegray-700:focus {\n background-color: var(--p-bluegray-700) !important;\n}\n.focus\\:bg-bluegray-800:focus {\n background-color: var(--p-bluegray-800) !important;\n}\n.focus\\:bg-bluegray-900:focus {\n background-color: var(--p-bluegray-900) !important;\n}\n\n.hover\\:bg-bluegray-50:hover {\n background-color: var(--p-bluegray-50) !important;\n}\n.hover\\:bg-bluegray-100:hover {\n background-color: var(--p-bluegray-100) !important;\n}\n.hover\\:bg-bluegray-200:hover {\n background-color: var(--p-bluegray-200) !important;\n}\n.hover\\:bg-bluegray-300:hover {\n background-color: var(--p-bluegray-300) !important;\n}\n.hover\\:bg-bluegray-400:hover {\n background-color: var(--p-bluegray-400) !important;\n}\n.hover\\:bg-bluegray-500:hover {\n background-color: var(--p-bluegray-500) !important;\n}\n.hover\\:bg-bluegray-600:hover {\n background-color: var(--p-bluegray-600) !important;\n}\n.hover\\:bg-bluegray-700:hover {\n background-color: var(--p-bluegray-700) !important;\n}\n.hover\\:bg-bluegray-800:hover {\n background-color: var(--p-bluegray-800) !important;\n}\n.hover\\:bg-bluegray-900:hover {\n background-color: var(--p-bluegray-900) !important;\n}\n\n.active\\:bg-bluegray-50:active {\n background-color: var(--p-bluegray-50) !important;\n}\n.active\\:bg-bluegray-100:active {\n background-color: var(--p-bluegray-100) !important;\n}\n.active\\:bg-bluegray-200:active {\n background-color: var(--p-bluegray-200) !important;\n}\n.active\\:bg-bluegray-300:active {\n background-color: var(--p-bluegray-300) !important;\n}\n.active\\:bg-bluegray-400:active {\n background-color: var(--p-bluegray-400) !important;\n}\n.active\\:bg-bluegray-500:active {\n background-color: var(--p-bluegray-500) !important;\n}\n.active\\:bg-bluegray-600:active {\n background-color: var(--p-bluegray-600) !important;\n}\n.active\\:bg-bluegray-700:active {\n background-color: var(--p-bluegray-700) !important;\n}\n.active\\:bg-bluegray-800:active {\n background-color: var(--p-bluegray-800) !important;\n}\n.active\\:bg-bluegray-900:active {\n background-color: var(--p-bluegray-900) !important;\n}\n\n.bg-purple-50 {\n background-color: var(--p-purple-50) !important;\n}\n.bg-purple-100 {\n background-color: var(--p-purple-100) !important;\n}\n.bg-purple-200 {\n background-color: var(--p-purple-200) !important;\n}\n.bg-purple-300 {\n background-color: var(--p-purple-300) !important;\n}\n.bg-purple-400 {\n background-color: var(--p-purple-400) !important;\n}\n.bg-purple-500 {\n background-color: var(--p-purple-500) !important;\n}\n.bg-purple-600 {\n background-color: var(--p-purple-600) !important;\n}\n.bg-purple-700 {\n background-color: var(--p-purple-700) !important;\n}\n.bg-purple-800 {\n background-color: var(--p-purple-800) !important;\n}\n.bg-purple-900 {\n background-color: var(--p-purple-900) !important;\n}\n\n.focus\\:bg-purple-50:focus {\n background-color: var(--p-purple-50) !important;\n}\n.focus\\:bg-purple-100:focus {\n background-color: var(--p-purple-100) !important;\n}\n.focus\\:bg-purple-200:focus {\n background-color: var(--p-purple-200) !important;\n}\n.focus\\:bg-purple-300:focus {\n background-color: var(--p-purple-300) !important;\n}\n.focus\\:bg-purple-400:focus {\n background-color: var(--p-purple-400) !important;\n}\n.focus\\:bg-purple-500:focus {\n background-color: var(--p-purple-500) !important;\n}\n.focus\\:bg-purple-600:focus {\n background-color: var(--p-purple-600) !important;\n}\n.focus\\:bg-purple-700:focus {\n background-color: var(--p-purple-700) !important;\n}\n.focus\\:bg-purple-800:focus {\n background-color: var(--p-purple-800) !important;\n}\n.focus\\:bg-purple-900:focus {\n background-color: var(--p-purple-900) !important;\n}\n\n.hover\\:bg-purple-50:hover {\n background-color: var(--p-purple-50) !important;\n}\n.hover\\:bg-purple-100:hover {\n background-color: var(--p-purple-100) !important;\n}\n.hover\\:bg-purple-200:hover {\n background-color: var(--p-purple-200) !important;\n}\n.hover\\:bg-purple-300:hover {\n background-color: var(--p-purple-300) !important;\n}\n.hover\\:bg-purple-400:hover {\n background-color: var(--p-purple-400) !important;\n}\n.hover\\:bg-purple-500:hover {\n background-color: var(--p-purple-500) !important;\n}\n.hover\\:bg-purple-600:hover {\n background-color: var(--p-purple-600) !important;\n}\n.hover\\:bg-purple-700:hover {\n background-color: var(--p-purple-700) !important;\n}\n.hover\\:bg-purple-800:hover {\n background-color: var(--p-purple-800) !important;\n}\n.hover\\:bg-purple-900:hover {\n background-color: var(--p-purple-900) !important;\n}\n\n.active\\:bg-purple-50:active {\n background-color: var(--p-purple-50) !important;\n}\n.active\\:bg-purple-100:active {\n background-color: var(--p-purple-100) !important;\n}\n.active\\:bg-purple-200:active {\n background-color: var(--p-purple-200) !important;\n}\n.active\\:bg-purple-300:active {\n background-color: var(--p-purple-300) !important;\n}\n.active\\:bg-purple-400:active {\n background-color: var(--p-purple-400) !important;\n}\n.active\\:bg-purple-500:active {\n background-color: var(--p-purple-500) !important;\n}\n.active\\:bg-purple-600:active {\n background-color: var(--p-purple-600) !important;\n}\n.active\\:bg-purple-700:active {\n background-color: var(--p-purple-700) !important;\n}\n.active\\:bg-purple-800:active {\n background-color: var(--p-purple-800) !important;\n}\n.active\\:bg-purple-900:active {\n background-color: var(--p-purple-900) !important;\n}\n\n.bg-gray-50 {\n background-color: var(--p-gray-50) !important;\n}\n.bg-gray-100 {\n background-color: var(--p-gray-100) !important;\n}\n.bg-gray-200 {\n background-color: var(--p-gray-200) !important;\n}\n.bg-gray-300 {\n background-color: var(--p-gray-300) !important;\n}\n.bg-gray-400 {\n background-color: var(--p-gray-400) !important;\n}\n.bg-gray-500 {\n background-color: var(--p-gray-500) !important;\n}\n.bg-gray-600 {\n background-color: var(--p-gray-600) !important;\n}\n.bg-gray-700 {\n background-color: var(--p-gray-700) !important;\n}\n.bg-gray-800 {\n background-color: var(--p-gray-800) !important;\n}\n.bg-gray-900 {\n background-color: var(--p-gray-900) !important;\n}\n\n.focus\\:bg-gray-50:focus {\n background-color: var(--p-gray-50) !important;\n}\n.focus\\:bg-gray-100:focus {\n background-color: var(--p-gray-100) !important;\n}\n.focus\\:bg-gray-200:focus {\n background-color: var(--p-gray-200) !important;\n}\n.focus\\:bg-gray-300:focus {\n background-color: var(--p-gray-300) !important;\n}\n.focus\\:bg-gray-400:focus {\n background-color: var(--p-gray-400) !important;\n}\n.focus\\:bg-gray-500:focus {\n background-color: var(--p-gray-500) !important;\n}\n.focus\\:bg-gray-600:focus {\n background-color: var(--p-gray-600) !important;\n}\n.focus\\:bg-gray-700:focus {\n background-color: var(--p-gray-700) !important;\n}\n.focus\\:bg-gray-800:focus {\n background-color: var(--p-gray-800) !important;\n}\n.focus\\:bg-gray-900:focus {\n background-color: var(--p-gray-900) !important;\n}\n\n.hover\\:bg-gray-50:hover {\n background-color: var(--p-gray-50) !important;\n}\n.hover\\:bg-gray-100:hover {\n background-color: var(--p-gray-100) !important;\n}\n.hover\\:bg-gray-200:hover {\n background-color: var(--p-gray-200) !important;\n}\n.hover\\:bg-gray-300:hover {\n background-color: var(--p-gray-300) !important;\n}\n.hover\\:bg-gray-400:hover {\n background-color: var(--p-gray-400) !important;\n}\n.hover\\:bg-gray-500:hover {\n background-color: var(--p-gray-500) !important;\n}\n.hover\\:bg-gray-600:hover {\n background-color: var(--p-gray-600) !important;\n}\n.hover\\:bg-gray-700:hover {\n background-color: var(--p-gray-700) !important;\n}\n.hover\\:bg-gray-800:hover {\n background-color: var(--p-gray-800) !important;\n}\n.hover\\:bg-gray-900:hover {\n background-color: var(--p-gray-900) !important;\n}\n\n.active\\:bg-gray-50:active {\n background-color: var(--p-gray-50) !important;\n}\n.active\\:bg-gray-100:active {\n background-color: var(--p-gray-100) !important;\n}\n.active\\:bg-gray-200:active {\n background-color: var(--p-gray-200) !important;\n}\n.active\\:bg-gray-300:active {\n background-color: var(--p-gray-300) !important;\n}\n.active\\:bg-gray-400:active {\n background-color: var(--p-gray-400) !important;\n}\n.active\\:bg-gray-500:active {\n background-color: var(--p-gray-500) !important;\n}\n.active\\:bg-gray-600:active {\n background-color: var(--p-gray-600) !important;\n}\n.active\\:bg-gray-700:active {\n background-color: var(--p-gray-700) !important;\n}\n.active\\:bg-gray-800:active {\n background-color: var(--p-gray-800) !important;\n}\n.active\\:bg-gray-900:active {\n background-color: var(--p-gray-900) !important;\n}\n\n.bg-red-50 {\n background-color: var(--p-red-50) !important;\n}\n.bg-red-100 {\n background-color: var(--p-red-100) !important;\n}\n.bg-red-200 {\n background-color: var(--p-red-200) !important;\n}\n.bg-red-300 {\n background-color: var(--p-red-300) !important;\n}\n.bg-red-400 {\n background-color: var(--p-red-400) !important;\n}\n.bg-red-500 {\n background-color: var(--p-red-500) !important;\n}\n.bg-red-600 {\n background-color: var(--p-red-600) !important;\n}\n.bg-red-700 {\n background-color: var(--p-red-700) !important;\n}\n.bg-red-800 {\n background-color: var(--p-red-800) !important;\n}\n.bg-red-900 {\n background-color: var(--p-red-900) !important;\n}\n\n.focus\\:bg-red-50:focus {\n background-color: var(--p-red-50) !important;\n}\n.focus\\:bg-red-100:focus {\n background-color: var(--p-red-100) !important;\n}\n.focus\\:bg-red-200:focus {\n background-color: var(--p-red-200) !important;\n}\n.focus\\:bg-red-300:focus {\n background-color: var(--p-red-300) !important;\n}\n.focus\\:bg-red-400:focus {\n background-color: var(--p-red-400) !important;\n}\n.focus\\:bg-red-500:focus {\n background-color: var(--p-red-500) !important;\n}\n.focus\\:bg-red-600:focus {\n background-color: var(--p-red-600) !important;\n}\n.focus\\:bg-red-700:focus {\n background-color: var(--p-red-700) !important;\n}\n.focus\\:bg-red-800:focus {\n background-color: var(--p-red-800) !important;\n}\n.focus\\:bg-red-900:focus {\n background-color: var(--p-red-900) !important;\n}\n\n.hover\\:bg-red-50:hover {\n background-color: var(--p-red-50) !important;\n}\n.hover\\:bg-red-100:hover {\n background-color: var(--p-red-100) !important;\n}\n.hover\\:bg-red-200:hover {\n background-color: var(--p-red-200) !important;\n}\n.hover\\:bg-red-300:hover {\n background-color: var(--p-red-300) !important;\n}\n.hover\\:bg-red-400:hover {\n background-color: var(--p-red-400) !important;\n}\n.hover\\:bg-red-500:hover {\n background-color: var(--p-red-500) !important;\n}\n.hover\\:bg-red-600:hover {\n background-color: var(--p-red-600) !important;\n}\n.hover\\:bg-red-700:hover {\n background-color: var(--p-red-700) !important;\n}\n.hover\\:bg-red-800:hover {\n background-color: var(--p-red-800) !important;\n}\n.hover\\:bg-red-900:hover {\n background-color: var(--p-red-900) !important;\n}\n\n.active\\:bg-red-50:active {\n background-color: var(--p-red-50) !important;\n}\n.active\\:bg-red-100:active {\n background-color: var(--p-red-100) !important;\n}\n.active\\:bg-red-200:active {\n background-color: var(--p-red-200) !important;\n}\n.active\\:bg-red-300:active {\n background-color: var(--p-red-300) !important;\n}\n.active\\:bg-red-400:active {\n background-color: var(--p-red-400) !important;\n}\n.active\\:bg-red-500:active {\n background-color: var(--p-red-500) !important;\n}\n.active\\:bg-red-600:active {\n background-color: var(--p-red-600) !important;\n}\n.active\\:bg-red-700:active {\n background-color: var(--p-red-700) !important;\n}\n.active\\:bg-red-800:active {\n background-color: var(--p-red-800) !important;\n}\n.active\\:bg-red-900:active {\n background-color: var(--p-red-900) !important;\n}\n\n.bg-primary-50 {\n background-color: var(--p-primary-50) !important;\n}\n.bg-primary-100 {\n background-color: var(--p-primary-100) !important;\n}\n.bg-primary-200 {\n background-color: var(--p-primary-200) !important;\n}\n.bg-primary-300 {\n background-color: var(--p-primary-300) !important;\n}\n.bg-primary-400 {\n background-color: var(--p-primary-400) !important;\n}\n.bg-primary-500 {\n background-color: var(--p-primary-500) !important;\n}\n.bg-primary-600 {\n background-color: var(--p-primary-600) !important;\n}\n.bg-primary-700 {\n background-color: var(--p-primary-700) !important;\n}\n.bg-primary-800 {\n background-color: var(--p-primary-800) !important;\n}\n.bg-primary-900 {\n background-color: var(--p-primary-900) !important;\n}\n\n.focus\\:bg-primary-50:focus {\n background-color: var(--p-primary-50) !important;\n}\n.focus\\:bg-primary-100:focus {\n background-color: var(--p-primary-100) !important;\n}\n.focus\\:bg-primary-200:focus {\n background-color: var(--p-primary-200) !important;\n}\n.focus\\:bg-primary-300:focus {\n background-color: var(--p-primary-300) !important;\n}\n.focus\\:bg-primary-400:focus {\n background-color: var(--p-primary-400) !important;\n}\n.focus\\:bg-primary-500:focus {\n background-color: var(--p-primary-500) !important;\n}\n.focus\\:bg-primary-600:focus {\n background-color: var(--p-primary-600) !important;\n}\n.focus\\:bg-primary-700:focus {\n background-color: var(--p-primary-700) !important;\n}\n.focus\\:bg-primary-800:focus {\n background-color: var(--p-primary-800) !important;\n}\n.focus\\:bg-primary-900:focus {\n background-color: var(--p-primary-900) !important;\n}\n\n.hover\\:bg-primary-50:hover {\n background-color: var(--p-primary-50) !important;\n}\n.hover\\:bg-primary-100:hover {\n background-color: var(--p-primary-100) !important;\n}\n.hover\\:bg-primary-200:hover {\n background-color: var(--p-primary-200) !important;\n}\n.hover\\:bg-primary-300:hover {\n background-color: var(--p-primary-300) !important;\n}\n.hover\\:bg-primary-400:hover {\n background-color: var(--p-primary-400) !important;\n}\n.hover\\:bg-primary-500:hover {\n background-color: var(--p-primary-500) !important;\n}\n.hover\\:bg-primary-600:hover {\n background-color: var(--p-primary-600) !important;\n}\n.hover\\:bg-primary-700:hover {\n background-color: var(--p-primary-700) !important;\n}\n.hover\\:bg-primary-800:hover {\n background-color: var(--p-primary-800) !important;\n}\n.hover\\:bg-primary-900:hover {\n background-color: var(--p-primary-900) !important;\n}\n\n.active\\:bg-primary-50:active {\n background-color: var(--p-primary-50) !important;\n}\n.active\\:bg-primary-100:active {\n background-color: var(--p-primary-100) !important;\n}\n.active\\:bg-primary-200:active {\n background-color: var(--p-primary-200) !important;\n}\n.active\\:bg-primary-300:active {\n background-color: var(--p-primary-300) !important;\n}\n.active\\:bg-primary-400:active {\n background-color: var(--p-primary-400) !important;\n}\n.active\\:bg-primary-500:active {\n background-color: var(--p-primary-500) !important;\n}\n.active\\:bg-primary-600:active {\n background-color: var(--p-primary-600) !important;\n}\n.active\\:bg-primary-700:active {\n background-color: var(--p-primary-700) !important;\n}\n.active\\:bg-primary-800:active {\n background-color: var(--p-primary-800) !important;\n}\n.active\\:bg-primary-900:active {\n background-color: var(--p-primary-900) !important;\n}\n\n.border-blue-50 {\n border-color: var(--p-blue-50) !important;\n}\n.border-blue-100 {\n border-color: var(--p-blue-100) !important;\n}\n.border-blue-200 {\n border-color: var(--p-blue-200) !important;\n}\n.border-blue-300 {\n border-color: var(--p-blue-300) !important;\n}\n.border-blue-400 {\n border-color: var(--p-blue-400) !important;\n}\n.border-blue-500 {\n border-color: var(--p-blue-500) !important;\n}\n.border-blue-600 {\n border-color: var(--p-blue-600) !important;\n}\n.border-blue-700 {\n border-color: var(--p-blue-700) !important;\n}\n.border-blue-800 {\n border-color: var(--p-blue-800) !important;\n}\n.border-blue-900 {\n border-color: var(--p-blue-900) !important;\n}\n\n.focus\\:border-blue-50:focus {\n border-color: var(--p-blue-50) !important;\n}\n.focus\\:border-blue-100:focus {\n border-color: var(--p-blue-100) !important;\n}\n.focus\\:border-blue-200:focus {\n border-color: var(--p-blue-200) !important;\n}\n.focus\\:border-blue-300:focus {\n border-color: var(--p-blue-300) !important;\n}\n.focus\\:border-blue-400:focus {\n border-color: var(--p-blue-400) !important;\n}\n.focus\\:border-blue-500:focus {\n border-color: var(--p-blue-500) !important;\n}\n.focus\\:border-blue-600:focus {\n border-color: var(--p-blue-600) !important;\n}\n.focus\\:border-blue-700:focus {\n border-color: var(--p-blue-700) !important;\n}\n.focus\\:border-blue-800:focus {\n border-color: var(--p-blue-800) !important;\n}\n.focus\\:border-blue-900:focus {\n border-color: var(--p-blue-900) !important;\n}\n\n.hover\\:border-blue-50:hover {\n border-color: var(--p-blue-50) !important;\n}\n.hover\\:border-blue-100:hover {\n border-color: var(--p-blue-100) !important;\n}\n.hover\\:border-blue-200:hover {\n border-color: var(--p-blue-200) !important;\n}\n.hover\\:border-blue-300:hover {\n border-color: var(--p-blue-300) !important;\n}\n.hover\\:border-blue-400:hover {\n border-color: var(--p-blue-400) !important;\n}\n.hover\\:border-blue-500:hover {\n border-color: var(--p-blue-500) !important;\n}\n.hover\\:border-blue-600:hover {\n border-color: var(--p-blue-600) !important;\n}\n.hover\\:border-blue-700:hover {\n border-color: var(--p-blue-700) !important;\n}\n.hover\\:border-blue-800:hover {\n border-color: var(--p-blue-800) !important;\n}\n.hover\\:border-blue-900:hover {\n border-color: var(--p-blue-900) !important;\n}\n\n.active\\:border-blue-50:active {\n border-color: var(--p-blue-50) !important;\n}\n.active\\:border-blue-100:active {\n border-color: var(--p-blue-100) !important;\n}\n.active\\:border-blue-200:active {\n border-color: var(--p-blue-200) !important;\n}\n.active\\:border-blue-300:active {\n border-color: var(--p-blue-300) !important;\n}\n.active\\:border-blue-400:active {\n border-color: var(--p-blue-400) !important;\n}\n.active\\:border-blue-500:active {\n border-color: var(--p-blue-500) !important;\n}\n.active\\:border-blue-600:active {\n border-color: var(--p-blue-600) !important;\n}\n.active\\:border-blue-700:active {\n border-color: var(--p-blue-700) !important;\n}\n.active\\:border-blue-800:active {\n border-color: var(--p-blue-800) !important;\n}\n.active\\:border-blue-900:active {\n border-color: var(--p-blue-900) !important;\n}\n\n.border-green-50 {\n border-color: var(--p-green-50) !important;\n}\n.border-green-100 {\n border-color: var(--p-green-100) !important;\n}\n.border-green-200 {\n border-color: var(--p-green-200) !important;\n}\n.border-green-300 {\n border-color: var(--p-green-300) !important;\n}\n.border-green-400 {\n border-color: var(--p-green-400) !important;\n}\n.border-green-500 {\n border-color: var(--p-green-500) !important;\n}\n.border-green-600 {\n border-color: var(--p-green-600) !important;\n}\n.border-green-700 {\n border-color: var(--p-green-700) !important;\n}\n.border-green-800 {\n border-color: var(--p-green-800) !important;\n}\n.border-green-900 {\n border-color: var(--p-green-900) !important;\n}\n\n.focus\\:border-green-50:focus {\n border-color: var(--p-green-50) !important;\n}\n.focus\\:border-green-100:focus {\n border-color: var(--p-green-100) !important;\n}\n.focus\\:border-green-200:focus {\n border-color: var(--p-green-200) !important;\n}\n.focus\\:border-green-300:focus {\n border-color: var(--p-green-300) !important;\n}\n.focus\\:border-green-400:focus {\n border-color: var(--p-green-400) !important;\n}\n.focus\\:border-green-500:focus {\n border-color: var(--p-green-500) !important;\n}\n.focus\\:border-green-600:focus {\n border-color: var(--p-green-600) !important;\n}\n.focus\\:border-green-700:focus {\n border-color: var(--p-green-700) !important;\n}\n.focus\\:border-green-800:focus {\n border-color: var(--p-green-800) !important;\n}\n.focus\\:border-green-900:focus {\n border-color: var(--p-green-900) !important;\n}\n\n.hover\\:border-green-50:hover {\n border-color: var(--p-green-50) !important;\n}\n.hover\\:border-green-100:hover {\n border-color: var(--p-green-100) !important;\n}\n.hover\\:border-green-200:hover {\n border-color: var(--p-green-200) !important;\n}\n.hover\\:border-green-300:hover {\n border-color: var(--p-green-300) !important;\n}\n.hover\\:border-green-400:hover {\n border-color: var(--p-green-400) !important;\n}\n.hover\\:border-green-500:hover {\n border-color: var(--p-green-500) !important;\n}\n.hover\\:border-green-600:hover {\n border-color: var(--p-green-600) !important;\n}\n.hover\\:border-green-700:hover {\n border-color: var(--p-green-700) !important;\n}\n.hover\\:border-green-800:hover {\n border-color: var(--p-green-800) !important;\n}\n.hover\\:border-green-900:hover {\n border-color: var(--p-green-900) !important;\n}\n\n.active\\:border-green-50:active {\n border-color: var(--p-green-50) !important;\n}\n.active\\:border-green-100:active {\n border-color: var(--p-green-100) !important;\n}\n.active\\:border-green-200:active {\n border-color: var(--p-green-200) !important;\n}\n.active\\:border-green-300:active {\n border-color: var(--p-green-300) !important;\n}\n.active\\:border-green-400:active {\n border-color: var(--p-green-400) !important;\n}\n.active\\:border-green-500:active {\n border-color: var(--p-green-500) !important;\n}\n.active\\:border-green-600:active {\n border-color: var(--p-green-600) !important;\n}\n.active\\:border-green-700:active {\n border-color: var(--p-green-700) !important;\n}\n.active\\:border-green-800:active {\n border-color: var(--p-green-800) !important;\n}\n.active\\:border-green-900:active {\n border-color: var(--p-green-900) !important;\n}\n\n.border-yellow-50 {\n border-color: var(--p-yellow-50) !important;\n}\n.border-yellow-100 {\n border-color: var(--p-yellow-100) !important;\n}\n.border-yellow-200 {\n border-color: var(--p-yellow-200) !important;\n}\n.border-yellow-300 {\n border-color: var(--p-yellow-300) !important;\n}\n.border-yellow-400 {\n border-color: var(--p-yellow-400) !important;\n}\n.border-yellow-500 {\n border-color: var(--p-yellow-500) !important;\n}\n.border-yellow-600 {\n border-color: var(--p-yellow-600) !important;\n}\n.border-yellow-700 {\n border-color: var(--p-yellow-700) !important;\n}\n.border-yellow-800 {\n border-color: var(--p-yellow-800) !important;\n}\n.border-yellow-900 {\n border-color: var(--p-yellow-900) !important;\n}\n\n.focus\\:border-yellow-50:focus {\n border-color: var(--p-yellow-50) !important;\n}\n.focus\\:border-yellow-100:focus {\n border-color: var(--p-yellow-100) !important;\n}\n.focus\\:border-yellow-200:focus {\n border-color: var(--p-yellow-200) !important;\n}\n.focus\\:border-yellow-300:focus {\n border-color: var(--p-yellow-300) !important;\n}\n.focus\\:border-yellow-400:focus {\n border-color: var(--p-yellow-400) !important;\n}\n.focus\\:border-yellow-500:focus {\n border-color: var(--p-yellow-500) !important;\n}\n.focus\\:border-yellow-600:focus {\n border-color: var(--p-yellow-600) !important;\n}\n.focus\\:border-yellow-700:focus {\n border-color: var(--p-yellow-700) !important;\n}\n.focus\\:border-yellow-800:focus {\n border-color: var(--p-yellow-800) !important;\n}\n.focus\\:border-yellow-900:focus {\n border-color: var(--p-yellow-900) !important;\n}\n\n.hover\\:border-yellow-50:hover {\n border-color: var(--p-yellow-50) !important;\n}\n.hover\\:border-yellow-100:hover {\n border-color: var(--p-yellow-100) !important;\n}\n.hover\\:border-yellow-200:hover {\n border-color: var(--p-yellow-200) !important;\n}\n.hover\\:border-yellow-300:hover {\n border-color: var(--p-yellow-300) !important;\n}\n.hover\\:border-yellow-400:hover {\n border-color: var(--p-yellow-400) !important;\n}\n.hover\\:border-yellow-500:hover {\n border-color: var(--p-yellow-500) !important;\n}\n.hover\\:border-yellow-600:hover {\n border-color: var(--p-yellow-600) !important;\n}\n.hover\\:border-yellow-700:hover {\n border-color: var(--p-yellow-700) !important;\n}\n.hover\\:border-yellow-800:hover {\n border-color: var(--p-yellow-800) !important;\n}\n.hover\\:border-yellow-900:hover {\n border-color: var(--p-yellow-900) !important;\n}\n\n.active\\:border-yellow-50:active {\n border-color: var(--p-yellow-50) !important;\n}\n.active\\:border-yellow-100:active {\n border-color: var(--p-yellow-100) !important;\n}\n.active\\:border-yellow-200:active {\n border-color: var(--p-yellow-200) !important;\n}\n.active\\:border-yellow-300:active {\n border-color: var(--p-yellow-300) !important;\n}\n.active\\:border-yellow-400:active {\n border-color: var(--p-yellow-400) !important;\n}\n.active\\:border-yellow-500:active {\n border-color: var(--p-yellow-500) !important;\n}\n.active\\:border-yellow-600:active {\n border-color: var(--p-yellow-600) !important;\n}\n.active\\:border-yellow-700:active {\n border-color: var(--p-yellow-700) !important;\n}\n.active\\:border-yellow-800:active {\n border-color: var(--p-yellow-800) !important;\n}\n.active\\:border-yellow-900:active {\n border-color: var(--p-yellow-900) !important;\n}\n\n.border-cyan-50 {\n border-color: var(--p-cyan-50) !important;\n}\n.border-cyan-100 {\n border-color: var(--p-cyan-100) !important;\n}\n.border-cyan-200 {\n border-color: var(--p-cyan-200) !important;\n}\n.border-cyan-300 {\n border-color: var(--p-cyan-300) !important;\n}\n.border-cyan-400 {\n border-color: var(--p-cyan-400) !important;\n}\n.border-cyan-500 {\n border-color: var(--p-cyan-500) !important;\n}\n.border-cyan-600 {\n border-color: var(--p-cyan-600) !important;\n}\n.border-cyan-700 {\n border-color: var(--p-cyan-700) !important;\n}\n.border-cyan-800 {\n border-color: var(--p-cyan-800) !important;\n}\n.border-cyan-900 {\n border-color: var(--p-cyan-900) !important;\n}\n\n.focus\\:border-cyan-50:focus {\n border-color: var(--p-cyan-50) !important;\n}\n.focus\\:border-cyan-100:focus {\n border-color: var(--p-cyan-100) !important;\n}\n.focus\\:border-cyan-200:focus {\n border-color: var(--p-cyan-200) !important;\n}\n.focus\\:border-cyan-300:focus {\n border-color: var(--p-cyan-300) !important;\n}\n.focus\\:border-cyan-400:focus {\n border-color: var(--p-cyan-400) !important;\n}\n.focus\\:border-cyan-500:focus {\n border-color: var(--p-cyan-500) !important;\n}\n.focus\\:border-cyan-600:focus {\n border-color: var(--p-cyan-600) !important;\n}\n.focus\\:border-cyan-700:focus {\n border-color: var(--p-cyan-700) !important;\n}\n.focus\\:border-cyan-800:focus {\n border-color: var(--p-cyan-800) !important;\n}\n.focus\\:border-cyan-900:focus {\n border-color: var(--p-cyan-900) !important;\n}\n\n.hover\\:border-cyan-50:hover {\n border-color: var(--p-cyan-50) !important;\n}\n.hover\\:border-cyan-100:hover {\n border-color: var(--p-cyan-100) !important;\n}\n.hover\\:border-cyan-200:hover {\n border-color: var(--p-cyan-200) !important;\n}\n.hover\\:border-cyan-300:hover {\n border-color: var(--p-cyan-300) !important;\n}\n.hover\\:border-cyan-400:hover {\n border-color: var(--p-cyan-400) !important;\n}\n.hover\\:border-cyan-500:hover {\n border-color: var(--p-cyan-500) !important;\n}\n.hover\\:border-cyan-600:hover {\n border-color: var(--p-cyan-600) !important;\n}\n.hover\\:border-cyan-700:hover {\n border-color: var(--p-cyan-700) !important;\n}\n.hover\\:border-cyan-800:hover {\n border-color: var(--p-cyan-800) !important;\n}\n.hover\\:border-cyan-900:hover {\n border-color: var(--p-cyan-900) !important;\n}\n\n.active\\:border-cyan-50:active {\n border-color: var(--p-cyan-50) !important;\n}\n.active\\:border-cyan-100:active {\n border-color: var(--p-cyan-100) !important;\n}\n.active\\:border-cyan-200:active {\n border-color: var(--p-cyan-200) !important;\n}\n.active\\:border-cyan-300:active {\n border-color: var(--p-cyan-300) !important;\n}\n.active\\:border-cyan-400:active {\n border-color: var(--p-cyan-400) !important;\n}\n.active\\:border-cyan-500:active {\n border-color: var(--p-cyan-500) !important;\n}\n.active\\:border-cyan-600:active {\n border-color: var(--p-cyan-600) !important;\n}\n.active\\:border-cyan-700:active {\n border-color: var(--p-cyan-700) !important;\n}\n.active\\:border-cyan-800:active {\n border-color: var(--p-cyan-800) !important;\n}\n.active\\:border-cyan-900:active {\n border-color: var(--p-cyan-900) !important;\n}\n\n.border-pink-50 {\n border-color: var(--p-pink-50) !important;\n}\n.border-pink-100 {\n border-color: var(--p-pink-100) !important;\n}\n.border-pink-200 {\n border-color: var(--p-pink-200) !important;\n}\n.border-pink-300 {\n border-color: var(--p-pink-300) !important;\n}\n.border-pink-400 {\n border-color: var(--p-pink-400) !important;\n}\n.border-pink-500 {\n border-color: var(--p-pink-500) !important;\n}\n.border-pink-600 {\n border-color: var(--p-pink-600) !important;\n}\n.border-pink-700 {\n border-color: var(--p-pink-700) !important;\n}\n.border-pink-800 {\n border-color: var(--p-pink-800) !important;\n}\n.border-pink-900 {\n border-color: var(--p-pink-900) !important;\n}\n\n.focus\\:border-pink-50:focus {\n border-color: var(--p-pink-50) !important;\n}\n.focus\\:border-pink-100:focus {\n border-color: var(--p-pink-100) !important;\n}\n.focus\\:border-pink-200:focus {\n border-color: var(--p-pink-200) !important;\n}\n.focus\\:border-pink-300:focus {\n border-color: var(--p-pink-300) !important;\n}\n.focus\\:border-pink-400:focus {\n border-color: var(--p-pink-400) !important;\n}\n.focus\\:border-pink-500:focus {\n border-color: var(--p-pink-500) !important;\n}\n.focus\\:border-pink-600:focus {\n border-color: var(--p-pink-600) !important;\n}\n.focus\\:border-pink-700:focus {\n border-color: var(--p-pink-700) !important;\n}\n.focus\\:border-pink-800:focus {\n border-color: var(--p-pink-800) !important;\n}\n.focus\\:border-pink-900:focus {\n border-color: var(--p-pink-900) !important;\n}\n\n.hover\\:border-pink-50:hover {\n border-color: var(--p-pink-50) !important;\n}\n.hover\\:border-pink-100:hover {\n border-color: var(--p-pink-100) !important;\n}\n.hover\\:border-pink-200:hover {\n border-color: var(--p-pink-200) !important;\n}\n.hover\\:border-pink-300:hover {\n border-color: var(--p-pink-300) !important;\n}\n.hover\\:border-pink-400:hover {\n border-color: var(--p-pink-400) !important;\n}\n.hover\\:border-pink-500:hover {\n border-color: var(--p-pink-500) !important;\n}\n.hover\\:border-pink-600:hover {\n border-color: var(--p-pink-600) !important;\n}\n.hover\\:border-pink-700:hover {\n border-color: var(--p-pink-700) !important;\n}\n.hover\\:border-pink-800:hover {\n border-color: var(--p-pink-800) !important;\n}\n.hover\\:border-pink-900:hover {\n border-color: var(--p-pink-900) !important;\n}\n\n.active\\:border-pink-50:active {\n border-color: var(--p-pink-50) !important;\n}\n.active\\:border-pink-100:active {\n border-color: var(--p-pink-100) !important;\n}\n.active\\:border-pink-200:active {\n border-color: var(--p-pink-200) !important;\n}\n.active\\:border-pink-300:active {\n border-color: var(--p-pink-300) !important;\n}\n.active\\:border-pink-400:active {\n border-color: var(--p-pink-400) !important;\n}\n.active\\:border-pink-500:active {\n border-color: var(--p-pink-500) !important;\n}\n.active\\:border-pink-600:active {\n border-color: var(--p-pink-600) !important;\n}\n.active\\:border-pink-700:active {\n border-color: var(--p-pink-700) !important;\n}\n.active\\:border-pink-800:active {\n border-color: var(--p-pink-800) !important;\n}\n.active\\:border-pink-900:active {\n border-color: var(--p-pink-900) !important;\n}\n\n.border-indigo-50 {\n border-color: var(--p-indigo-50) !important;\n}\n.border-indigo-100 {\n border-color: var(--p-indigo-100) !important;\n}\n.border-indigo-200 {\n border-color: var(--p-indigo-200) !important;\n}\n.border-indigo-300 {\n border-color: var(--p-indigo-300) !important;\n}\n.border-indigo-400 {\n border-color: var(--p-indigo-400) !important;\n}\n.border-indigo-500 {\n border-color: var(--p-indigo-500) !important;\n}\n.border-indigo-600 {\n border-color: var(--p-indigo-600) !important;\n}\n.border-indigo-700 {\n border-color: var(--p-indigo-700) !important;\n}\n.border-indigo-800 {\n border-color: var(--p-indigo-800) !important;\n}\n.border-indigo-900 {\n border-color: var(--p-indigo-900) !important;\n}\n\n.focus\\:border-indigo-50:focus {\n border-color: var(--p-indigo-50) !important;\n}\n.focus\\:border-indigo-100:focus {\n border-color: var(--p-indigo-100) !important;\n}\n.focus\\:border-indigo-200:focus {\n border-color: var(--p-indigo-200) !important;\n}\n.focus\\:border-indigo-300:focus {\n border-color: var(--p-indigo-300) !important;\n}\n.focus\\:border-indigo-400:focus {\n border-color: var(--p-indigo-400) !important;\n}\n.focus\\:border-indigo-500:focus {\n border-color: var(--p-indigo-500) !important;\n}\n.focus\\:border-indigo-600:focus {\n border-color: var(--p-indigo-600) !important;\n}\n.focus\\:border-indigo-700:focus {\n border-color: var(--p-indigo-700) !important;\n}\n.focus\\:border-indigo-800:focus {\n border-color: var(--p-indigo-800) !important;\n}\n.focus\\:border-indigo-900:focus {\n border-color: var(--p-indigo-900) !important;\n}\n\n.hover\\:border-indigo-50:hover {\n border-color: var(--p-indigo-50) !important;\n}\n.hover\\:border-indigo-100:hover {\n border-color: var(--p-indigo-100) !important;\n}\n.hover\\:border-indigo-200:hover {\n border-color: var(--p-indigo-200) !important;\n}\n.hover\\:border-indigo-300:hover {\n border-color: var(--p-indigo-300) !important;\n}\n.hover\\:border-indigo-400:hover {\n border-color: var(--p-indigo-400) !important;\n}\n.hover\\:border-indigo-500:hover {\n border-color: var(--p-indigo-500) !important;\n}\n.hover\\:border-indigo-600:hover {\n border-color: var(--p-indigo-600) !important;\n}\n.hover\\:border-indigo-700:hover {\n border-color: var(--p-indigo-700) !important;\n}\n.hover\\:border-indigo-800:hover {\n border-color: var(--p-indigo-800) !important;\n}\n.hover\\:border-indigo-900:hover {\n border-color: var(--p-indigo-900) !important;\n}\n\n.active\\:border-indigo-50:active {\n border-color: var(--p-indigo-50) !important;\n}\n.active\\:border-indigo-100:active {\n border-color: var(--p-indigo-100) !important;\n}\n.active\\:border-indigo-200:active {\n border-color: var(--p-indigo-200) !important;\n}\n.active\\:border-indigo-300:active {\n border-color: var(--p-indigo-300) !important;\n}\n.active\\:border-indigo-400:active {\n border-color: var(--p-indigo-400) !important;\n}\n.active\\:border-indigo-500:active {\n border-color: var(--p-indigo-500) !important;\n}\n.active\\:border-indigo-600:active {\n border-color: var(--p-indigo-600) !important;\n}\n.active\\:border-indigo-700:active {\n border-color: var(--p-indigo-700) !important;\n}\n.active\\:border-indigo-800:active {\n border-color: var(--p-indigo-800) !important;\n}\n.active\\:border-indigo-900:active {\n border-color: var(--p-indigo-900) !important;\n}\n\n.border-teal-50 {\n border-color: var(--p-teal-50) !important;\n}\n.border-teal-100 {\n border-color: var(--p-teal-100) !important;\n}\n.border-teal-200 {\n border-color: var(--p-teal-200) !important;\n}\n.border-teal-300 {\n border-color: var(--p-teal-300) !important;\n}\n.border-teal-400 {\n border-color: var(--p-teal-400) !important;\n}\n.border-teal-500 {\n border-color: var(--p-teal-500) !important;\n}\n.border-teal-600 {\n border-color: var(--p-teal-600) !important;\n}\n.border-teal-700 {\n border-color: var(--p-teal-700) !important;\n}\n.border-teal-800 {\n border-color: var(--p-teal-800) !important;\n}\n.border-teal-900 {\n border-color: var(--p-teal-900) !important;\n}\n\n.focus\\:border-teal-50:focus {\n border-color: var(--p-teal-50) !important;\n}\n.focus\\:border-teal-100:focus {\n border-color: var(--p-teal-100) !important;\n}\n.focus\\:border-teal-200:focus {\n border-color: var(--p-teal-200) !important;\n}\n.focus\\:border-teal-300:focus {\n border-color: var(--p-teal-300) !important;\n}\n.focus\\:border-teal-400:focus {\n border-color: var(--p-teal-400) !important;\n}\n.focus\\:border-teal-500:focus {\n border-color: var(--p-teal-500) !important;\n}\n.focus\\:border-teal-600:focus {\n border-color: var(--p-teal-600) !important;\n}\n.focus\\:border-teal-700:focus {\n border-color: var(--p-teal-700) !important;\n}\n.focus\\:border-teal-800:focus {\n border-color: var(--p-teal-800) !important;\n}\n.focus\\:border-teal-900:focus {\n border-color: var(--p-teal-900) !important;\n}\n\n.hover\\:border-teal-50:hover {\n border-color: var(--p-teal-50) !important;\n}\n.hover\\:border-teal-100:hover {\n border-color: var(--p-teal-100) !important;\n}\n.hover\\:border-teal-200:hover {\n border-color: var(--p-teal-200) !important;\n}\n.hover\\:border-teal-300:hover {\n border-color: var(--p-teal-300) !important;\n}\n.hover\\:border-teal-400:hover {\n border-color: var(--p-teal-400) !important;\n}\n.hover\\:border-teal-500:hover {\n border-color: var(--p-teal-500) !important;\n}\n.hover\\:border-teal-600:hover {\n border-color: var(--p-teal-600) !important;\n}\n.hover\\:border-teal-700:hover {\n border-color: var(--p-teal-700) !important;\n}\n.hover\\:border-teal-800:hover {\n border-color: var(--p-teal-800) !important;\n}\n.hover\\:border-teal-900:hover {\n border-color: var(--p-teal-900) !important;\n}\n\n.active\\:border-teal-50:active {\n border-color: var(--p-teal-50) !important;\n}\n.active\\:border-teal-100:active {\n border-color: var(--p-teal-100) !important;\n}\n.active\\:border-teal-200:active {\n border-color: var(--p-teal-200) !important;\n}\n.active\\:border-teal-300:active {\n border-color: var(--p-teal-300) !important;\n}\n.active\\:border-teal-400:active {\n border-color: var(--p-teal-400) !important;\n}\n.active\\:border-teal-500:active {\n border-color: var(--p-teal-500) !important;\n}\n.active\\:border-teal-600:active {\n border-color: var(--p-teal-600) !important;\n}\n.active\\:border-teal-700:active {\n border-color: var(--p-teal-700) !important;\n}\n.active\\:border-teal-800:active {\n border-color: var(--p-teal-800) !important;\n}\n.active\\:border-teal-900:active {\n border-color: var(--p-teal-900) !important;\n}\n\n.border-orange-50 {\n border-color: var(--p-orange-50) !important;\n}\n.border-orange-100 {\n border-color: var(--p-orange-100) !important;\n}\n.border-orange-200 {\n border-color: var(--p-orange-200) !important;\n}\n.border-orange-300 {\n border-color: var(--p-orange-300) !important;\n}\n.border-orange-400 {\n border-color: var(--p-orange-400) !important;\n}\n.border-orange-500 {\n border-color: var(--p-orange-500) !important;\n}\n.border-orange-600 {\n border-color: var(--p-orange-600) !important;\n}\n.border-orange-700 {\n border-color: var(--p-orange-700) !important;\n}\n.border-orange-800 {\n border-color: var(--p-orange-800) !important;\n}\n.border-orange-900 {\n border-color: var(--p-orange-900) !important;\n}\n\n.focus\\:border-orange-50:focus {\n border-color: var(--p-orange-50) !important;\n}\n.focus\\:border-orange-100:focus {\n border-color: var(--p-orange-100) !important;\n}\n.focus\\:border-orange-200:focus {\n border-color: var(--p-orange-200) !important;\n}\n.focus\\:border-orange-300:focus {\n border-color: var(--p-orange-300) !important;\n}\n.focus\\:border-orange-400:focus {\n border-color: var(--p-orange-400) !important;\n}\n.focus\\:border-orange-500:focus {\n border-color: var(--p-orange-500) !important;\n}\n.focus\\:border-orange-600:focus {\n border-color: var(--p-orange-600) !important;\n}\n.focus\\:border-orange-700:focus {\n border-color: var(--p-orange-700) !important;\n}\n.focus\\:border-orange-800:focus {\n border-color: var(--p-orange-800) !important;\n}\n.focus\\:border-orange-900:focus {\n border-color: var(--p-orange-900) !important;\n}\n\n.hover\\:border-orange-50:hover {\n border-color: var(--p-orange-50) !important;\n}\n.hover\\:border-orange-100:hover {\n border-color: var(--p-orange-100) !important;\n}\n.hover\\:border-orange-200:hover {\n border-color: var(--p-orange-200) !important;\n}\n.hover\\:border-orange-300:hover {\n border-color: var(--p-orange-300) !important;\n}\n.hover\\:border-orange-400:hover {\n border-color: var(--p-orange-400) !important;\n}\n.hover\\:border-orange-500:hover {\n border-color: var(--p-orange-500) !important;\n}\n.hover\\:border-orange-600:hover {\n border-color: var(--p-orange-600) !important;\n}\n.hover\\:border-orange-700:hover {\n border-color: var(--p-orange-700) !important;\n}\n.hover\\:border-orange-800:hover {\n border-color: var(--p-orange-800) !important;\n}\n.hover\\:border-orange-900:hover {\n border-color: var(--p-orange-900) !important;\n}\n\n.active\\:border-orange-50:active {\n border-color: var(--p-orange-50) !important;\n}\n.active\\:border-orange-100:active {\n border-color: var(--p-orange-100) !important;\n}\n.active\\:border-orange-200:active {\n border-color: var(--p-orange-200) !important;\n}\n.active\\:border-orange-300:active {\n border-color: var(--p-orange-300) !important;\n}\n.active\\:border-orange-400:active {\n border-color: var(--p-orange-400) !important;\n}\n.active\\:border-orange-500:active {\n border-color: var(--p-orange-500) !important;\n}\n.active\\:border-orange-600:active {\n border-color: var(--p-orange-600) !important;\n}\n.active\\:border-orange-700:active {\n border-color: var(--p-orange-700) !important;\n}\n.active\\:border-orange-800:active {\n border-color: var(--p-orange-800) !important;\n}\n.active\\:border-orange-900:active {\n border-color: var(--p-orange-900) !important;\n}\n\n.border-bluegray-50 {\n border-color: var(--p-bluegray-50) !important;\n}\n.border-bluegray-100 {\n border-color: var(--p-bluegray-100) !important;\n}\n.border-bluegray-200 {\n border-color: var(--p-bluegray-200) !important;\n}\n.border-bluegray-300 {\n border-color: var(--p-bluegray-300) !important;\n}\n.border-bluegray-400 {\n border-color: var(--p-bluegray-400) !important;\n}\n.border-bluegray-500 {\n border-color: var(--p-bluegray-500) !important;\n}\n.border-bluegray-600 {\n border-color: var(--p-bluegray-600) !important;\n}\n.border-bluegray-700 {\n border-color: var(--p-bluegray-700) !important;\n}\n.border-bluegray-800 {\n border-color: var(--p-bluegray-800) !important;\n}\n.border-bluegray-900 {\n border-color: var(--p-bluegray-900) !important;\n}\n\n.focus\\:border-bluegray-50:focus {\n border-color: var(--p-bluegray-50) !important;\n}\n.focus\\:border-bluegray-100:focus {\n border-color: var(--p-bluegray-100) !important;\n}\n.focus\\:border-bluegray-200:focus {\n border-color: var(--p-bluegray-200) !important;\n}\n.focus\\:border-bluegray-300:focus {\n border-color: var(--p-bluegray-300) !important;\n}\n.focus\\:border-bluegray-400:focus {\n border-color: var(--p-bluegray-400) !important;\n}\n.focus\\:border-bluegray-500:focus {\n border-color: var(--p-bluegray-500) !important;\n}\n.focus\\:border-bluegray-600:focus {\n border-color: var(--p-bluegray-600) !important;\n}\n.focus\\:border-bluegray-700:focus {\n border-color: var(--p-bluegray-700) !important;\n}\n.focus\\:border-bluegray-800:focus {\n border-color: var(--p-bluegray-800) !important;\n}\n.focus\\:border-bluegray-900:focus {\n border-color: var(--p-bluegray-900) !important;\n}\n\n.hover\\:border-bluegray-50:hover {\n border-color: var(--p-bluegray-50) !important;\n}\n.hover\\:border-bluegray-100:hover {\n border-color: var(--p-bluegray-100) !important;\n}\n.hover\\:border-bluegray-200:hover {\n border-color: var(--p-bluegray-200) !important;\n}\n.hover\\:border-bluegray-300:hover {\n border-color: var(--p-bluegray-300) !important;\n}\n.hover\\:border-bluegray-400:hover {\n border-color: var(--p-bluegray-400) !important;\n}\n.hover\\:border-bluegray-500:hover {\n border-color: var(--p-bluegray-500) !important;\n}\n.hover\\:border-bluegray-600:hover {\n border-color: var(--p-bluegray-600) !important;\n}\n.hover\\:border-bluegray-700:hover {\n border-color: var(--p-bluegray-700) !important;\n}\n.hover\\:border-bluegray-800:hover {\n border-color: var(--p-bluegray-800) !important;\n}\n.hover\\:border-bluegray-900:hover {\n border-color: var(--p-bluegray-900) !important;\n}\n\n.active\\:border-bluegray-50:active {\n border-color: var(--p-bluegray-50) !important;\n}\n.active\\:border-bluegray-100:active {\n border-color: var(--p-bluegray-100) !important;\n}\n.active\\:border-bluegray-200:active {\n border-color: var(--p-bluegray-200) !important;\n}\n.active\\:border-bluegray-300:active {\n border-color: var(--p-bluegray-300) !important;\n}\n.active\\:border-bluegray-400:active {\n border-color: var(--p-bluegray-400) !important;\n}\n.active\\:border-bluegray-500:active {\n border-color: var(--p-bluegray-500) !important;\n}\n.active\\:border-bluegray-600:active {\n border-color: var(--p-bluegray-600) !important;\n}\n.active\\:border-bluegray-700:active {\n border-color: var(--p-bluegray-700) !important;\n}\n.active\\:border-bluegray-800:active {\n border-color: var(--p-bluegray-800) !important;\n}\n.active\\:border-bluegray-900:active {\n border-color: var(--p-bluegray-900) !important;\n}\n\n.border-purple-50 {\n border-color: var(--p-purple-50) !important;\n}\n.border-purple-100 {\n border-color: var(--p-purple-100) !important;\n}\n.border-purple-200 {\n border-color: var(--p-purple-200) !important;\n}\n.border-purple-300 {\n border-color: var(--p-purple-300) !important;\n}\n.border-purple-400 {\n border-color: var(--p-purple-400) !important;\n}\n.border-purple-500 {\n border-color: var(--p-purple-500) !important;\n}\n.border-purple-600 {\n border-color: var(--p-purple-600) !important;\n}\n.border-purple-700 {\n border-color: var(--p-purple-700) !important;\n}\n.border-purple-800 {\n border-color: var(--p-purple-800) !important;\n}\n.border-purple-900 {\n border-color: var(--p-purple-900) !important;\n}\n\n.focus\\:border-purple-50:focus {\n border-color: var(--p-purple-50) !important;\n}\n.focus\\:border-purple-100:focus {\n border-color: var(--p-purple-100) !important;\n}\n.focus\\:border-purple-200:focus {\n border-color: var(--p-purple-200) !important;\n}\n.focus\\:border-purple-300:focus {\n border-color: var(--p-purple-300) !important;\n}\n.focus\\:border-purple-400:focus {\n border-color: var(--p-purple-400) !important;\n}\n.focus\\:border-purple-500:focus {\n border-color: var(--p-purple-500) !important;\n}\n.focus\\:border-purple-600:focus {\n border-color: var(--p-purple-600) !important;\n}\n.focus\\:border-purple-700:focus {\n border-color: var(--p-purple-700) !important;\n}\n.focus\\:border-purple-800:focus {\n border-color: var(--p-purple-800) !important;\n}\n.focus\\:border-purple-900:focus {\n border-color: var(--p-purple-900) !important;\n}\n\n.hover\\:border-purple-50:hover {\n border-color: var(--p-purple-50) !important;\n}\n.hover\\:border-purple-100:hover {\n border-color: var(--p-purple-100) !important;\n}\n.hover\\:border-purple-200:hover {\n border-color: var(--p-purple-200) !important;\n}\n.hover\\:border-purple-300:hover {\n border-color: var(--p-purple-300) !important;\n}\n.hover\\:border-purple-400:hover {\n border-color: var(--p-purple-400) !important;\n}\n.hover\\:border-purple-500:hover {\n border-color: var(--p-purple-500) !important;\n}\n.hover\\:border-purple-600:hover {\n border-color: var(--p-purple-600) !important;\n}\n.hover\\:border-purple-700:hover {\n border-color: var(--p-purple-700) !important;\n}\n.hover\\:border-purple-800:hover {\n border-color: var(--p-purple-800) !important;\n}\n.hover\\:border-purple-900:hover {\n border-color: var(--p-purple-900) !important;\n}\n\n.active\\:border-purple-50:active {\n border-color: var(--p-purple-50) !important;\n}\n.active\\:border-purple-100:active {\n border-color: var(--p-purple-100) !important;\n}\n.active\\:border-purple-200:active {\n border-color: var(--p-purple-200) !important;\n}\n.active\\:border-purple-300:active {\n border-color: var(--p-purple-300) !important;\n}\n.active\\:border-purple-400:active {\n border-color: var(--p-purple-400) !important;\n}\n.active\\:border-purple-500:active {\n border-color: var(--p-purple-500) !important;\n}\n.active\\:border-purple-600:active {\n border-color: var(--p-purple-600) !important;\n}\n.active\\:border-purple-700:active {\n border-color: var(--p-purple-700) !important;\n}\n.active\\:border-purple-800:active {\n border-color: var(--p-purple-800) !important;\n}\n.active\\:border-purple-900:active {\n border-color: var(--p-purple-900) !important;\n}\n\n.border-gray-50 {\n border-color: var(--p-gray-50) !important;\n}\n.border-gray-100 {\n border-color: var(--p-gray-100) !important;\n}\n.border-gray-200 {\n border-color: var(--p-gray-200) !important;\n}\n.border-gray-300 {\n border-color: var(--p-gray-300) !important;\n}\n.border-gray-400 {\n border-color: var(--p-gray-400) !important;\n}\n.border-gray-500 {\n border-color: var(--p-gray-500) !important;\n}\n.border-gray-600 {\n border-color: var(--p-gray-600) !important;\n}\n.border-gray-700 {\n border-color: var(--p-gray-700) !important;\n}\n.border-gray-800 {\n border-color: var(--p-gray-800) !important;\n}\n.border-gray-900 {\n border-color: var(--p-gray-900) !important;\n}\n\n.focus\\:border-gray-50:focus {\n border-color: var(--p-gray-50) !important;\n}\n.focus\\:border-gray-100:focus {\n border-color: var(--p-gray-100) !important;\n}\n.focus\\:border-gray-200:focus {\n border-color: var(--p-gray-200) !important;\n}\n.focus\\:border-gray-300:focus {\n border-color: var(--p-gray-300) !important;\n}\n.focus\\:border-gray-400:focus {\n border-color: var(--p-gray-400) !important;\n}\n.focus\\:border-gray-500:focus {\n border-color: var(--p-gray-500) !important;\n}\n.focus\\:border-gray-600:focus {\n border-color: var(--p-gray-600) !important;\n}\n.focus\\:border-gray-700:focus {\n border-color: var(--p-gray-700) !important;\n}\n.focus\\:border-gray-800:focus {\n border-color: var(--p-gray-800) !important;\n}\n.focus\\:border-gray-900:focus {\n border-color: var(--p-gray-900) !important;\n}\n\n.hover\\:border-gray-50:hover {\n border-color: var(--p-gray-50) !important;\n}\n.hover\\:border-gray-100:hover {\n border-color: var(--p-gray-100) !important;\n}\n.hover\\:border-gray-200:hover {\n border-color: var(--p-gray-200) !important;\n}\n.hover\\:border-gray-300:hover {\n border-color: var(--p-gray-300) !important;\n}\n.hover\\:border-gray-400:hover {\n border-color: var(--p-gray-400) !important;\n}\n.hover\\:border-gray-500:hover {\n border-color: var(--p-gray-500) !important;\n}\n.hover\\:border-gray-600:hover {\n border-color: var(--p-gray-600) !important;\n}\n.hover\\:border-gray-700:hover {\n border-color: var(--p-gray-700) !important;\n}\n.hover\\:border-gray-800:hover {\n border-color: var(--p-gray-800) !important;\n}\n.hover\\:border-gray-900:hover {\n border-color: var(--p-gray-900) !important;\n}\n\n.active\\:border-gray-50:active {\n border-color: var(--p-gray-50) !important;\n}\n.active\\:border-gray-100:active {\n border-color: var(--p-gray-100) !important;\n}\n.active\\:border-gray-200:active {\n border-color: var(--p-gray-200) !important;\n}\n.active\\:border-gray-300:active {\n border-color: var(--p-gray-300) !important;\n}\n.active\\:border-gray-400:active {\n border-color: var(--p-gray-400) !important;\n}\n.active\\:border-gray-500:active {\n border-color: var(--p-gray-500) !important;\n}\n.active\\:border-gray-600:active {\n border-color: var(--p-gray-600) !important;\n}\n.active\\:border-gray-700:active {\n border-color: var(--p-gray-700) !important;\n}\n.active\\:border-gray-800:active {\n border-color: var(--p-gray-800) !important;\n}\n.active\\:border-gray-900:active {\n border-color: var(--p-gray-900) !important;\n}\n\n.border-red-50 {\n border-color: var(--p-red-50) !important;\n}\n.border-red-100 {\n border-color: var(--p-red-100) !important;\n}\n.border-red-200 {\n border-color: var(--p-red-200) !important;\n}\n.border-red-300 {\n border-color: var(--p-red-300) !important;\n}\n.border-red-400 {\n border-color: var(--p-red-400) !important;\n}\n.border-red-500 {\n border-color: var(--p-red-500) !important;\n}\n.border-red-600 {\n border-color: var(--p-red-600) !important;\n}\n.border-red-700 {\n border-color: var(--p-red-700) !important;\n}\n.border-red-800 {\n border-color: var(--p-red-800) !important;\n}\n.border-red-900 {\n border-color: var(--p-red-900) !important;\n}\n\n.focus\\:border-red-50:focus {\n border-color: var(--p-red-50) !important;\n}\n.focus\\:border-red-100:focus {\n border-color: var(--p-red-100) !important;\n}\n.focus\\:border-red-200:focus {\n border-color: var(--p-red-200) !important;\n}\n.focus\\:border-red-300:focus {\n border-color: var(--p-red-300) !important;\n}\n.focus\\:border-red-400:focus {\n border-color: var(--p-red-400) !important;\n}\n.focus\\:border-red-500:focus {\n border-color: var(--p-red-500) !important;\n}\n.focus\\:border-red-600:focus {\n border-color: var(--p-red-600) !important;\n}\n.focus\\:border-red-700:focus {\n border-color: var(--p-red-700) !important;\n}\n.focus\\:border-red-800:focus {\n border-color: var(--p-red-800) !important;\n}\n.focus\\:border-red-900:focus {\n border-color: var(--p-red-900) !important;\n}\n\n.hover\\:border-red-50:hover {\n border-color: var(--p-red-50) !important;\n}\n.hover\\:border-red-100:hover {\n border-color: var(--p-red-100) !important;\n}\n.hover\\:border-red-200:hover {\n border-color: var(--p-red-200) !important;\n}\n.hover\\:border-red-300:hover {\n border-color: var(--p-red-300) !important;\n}\n.hover\\:border-red-400:hover {\n border-color: var(--p-red-400) !important;\n}\n.hover\\:border-red-500:hover {\n border-color: var(--p-red-500) !important;\n}\n.hover\\:border-red-600:hover {\n border-color: var(--p-red-600) !important;\n}\n.hover\\:border-red-700:hover {\n border-color: var(--p-red-700) !important;\n}\n.hover\\:border-red-800:hover {\n border-color: var(--p-red-800) !important;\n}\n.hover\\:border-red-900:hover {\n border-color: var(--p-red-900) !important;\n}\n\n.active\\:border-red-50:active {\n border-color: var(--p-red-50) !important;\n}\n.active\\:border-red-100:active {\n border-color: var(--p-red-100) !important;\n}\n.active\\:border-red-200:active {\n border-color: var(--p-red-200) !important;\n}\n.active\\:border-red-300:active {\n border-color: var(--p-red-300) !important;\n}\n.active\\:border-red-400:active {\n border-color: var(--p-red-400) !important;\n}\n.active\\:border-red-500:active {\n border-color: var(--p-red-500) !important;\n}\n.active\\:border-red-600:active {\n border-color: var(--p-red-600) !important;\n}\n.active\\:border-red-700:active {\n border-color: var(--p-red-700) !important;\n}\n.active\\:border-red-800:active {\n border-color: var(--p-red-800) !important;\n}\n.active\\:border-red-900:active {\n border-color: var(--p-red-900) !important;\n}\n\n.border-primary-50 {\n border-color: var(--p-primary-50) !important;\n}\n.border-primary-100 {\n border-color: var(--p-primary-100) !important;\n}\n.border-primary-200 {\n border-color: var(--p-primary-200) !important;\n}\n.border-primary-300 {\n border-color: var(--p-primary-300) !important;\n}\n.border-primary-400 {\n border-color: var(--p-primary-400) !important;\n}\n.border-primary-500 {\n border-color: var(--p-primary-500) !important;\n}\n.border-primary-600 {\n border-color: var(--p-primary-600) !important;\n}\n.border-primary-700 {\n border-color: var(--p-primary-700) !important;\n}\n.border-primary-800 {\n border-color: var(--p-primary-800) !important;\n}\n.border-primary-900 {\n border-color: var(--p-primary-900) !important;\n}\n\n.focus\\:border-primary-50:focus {\n border-color: var(--p-primary-50) !important;\n}\n.focus\\:border-primary-100:focus {\n border-color: var(--p-primary-100) !important;\n}\n.focus\\:border-primary-200:focus {\n border-color: var(--p-primary-200) !important;\n}\n.focus\\:border-primary-300:focus {\n border-color: var(--p-primary-300) !important;\n}\n.focus\\:border-primary-400:focus {\n border-color: var(--p-primary-400) !important;\n}\n.focus\\:border-primary-500:focus {\n border-color: var(--p-primary-500) !important;\n}\n.focus\\:border-primary-600:focus {\n border-color: var(--p-primary-600) !important;\n}\n.focus\\:border-primary-700:focus {\n border-color: var(--p-primary-700) !important;\n}\n.focus\\:border-primary-800:focus {\n border-color: var(--p-primary-800) !important;\n}\n.focus\\:border-primary-900:focus {\n border-color: var(--p-primary-900) !important;\n}\n\n.hover\\:border-primary-50:hover {\n border-color: var(--p-primary-50) !important;\n}\n.hover\\:border-primary-100:hover {\n border-color: var(--p-primary-100) !important;\n}\n.hover\\:border-primary-200:hover {\n border-color: var(--p-primary-200) !important;\n}\n.hover\\:border-primary-300:hover {\n border-color: var(--p-primary-300) !important;\n}\n.hover\\:border-primary-400:hover {\n border-color: var(--p-primary-400) !important;\n}\n.hover\\:border-primary-500:hover {\n border-color: var(--p-primary-500) !important;\n}\n.hover\\:border-primary-600:hover {\n border-color: var(--p-primary-600) !important;\n}\n.hover\\:border-primary-700:hover {\n border-color: var(--p-primary-700) !important;\n}\n.hover\\:border-primary-800:hover {\n border-color: var(--p-primary-800) !important;\n}\n.hover\\:border-primary-900:hover {\n border-color: var(--p-primary-900) !important;\n}\n\n.active\\:border-primary-50:active {\n border-color: var(--p-primary-50) !important;\n}\n.active\\:border-primary-100:active {\n border-color: var(--p-primary-100) !important;\n}\n.active\\:border-primary-200:active {\n border-color: var(--p-primary-200) !important;\n}\n.active\\:border-primary-300:active {\n border-color: var(--p-primary-300) !important;\n}\n.active\\:border-primary-400:active {\n border-color: var(--p-primary-400) !important;\n}\n.active\\:border-primary-500:active {\n border-color: var(--p-primary-500) !important;\n}\n.active\\:border-primary-600:active {\n border-color: var(--p-primary-600) !important;\n}\n.active\\:border-primary-700:active {\n border-color: var(--p-primary-700) !important;\n}\n.active\\:border-primary-800:active {\n border-color: var(--p-primary-800) !important;\n}\n.active\\:border-primary-900:active {\n border-color: var(--p-primary-900) !important;\n}\n\n.bg-white-alpha-10 {\n background-color: rgba(255,255,255,0.1) !important;\n}\n.bg-white-alpha-20 {\n background-color: rgba(255,255,255,0.2) !important;\n}\n.bg-white-alpha-30 {\n background-color: rgba(255,255,255,0.3) !important;\n}\n.bg-white-alpha-40 {\n background-color: rgba(255,255,255,0.4) !important;\n}\n.bg-white-alpha-50 {\n background-color: rgba(255,255,255,0.5) !important;\n}\n.bg-white-alpha-60 {\n background-color: rgba(255,255,255,0.6) !important;\n}\n.bg-white-alpha-70 {\n background-color: rgba(255,255,255,0.7) !important;\n}\n.bg-white-alpha-80 {\n background-color: rgba(255,255,255,0.8) !important;\n}\n.bg-white-alpha-90 {\n background-color: rgba(255,255,255,0.9) !important;\n}\n\n.hover\\:bg-white-alpha-10:hover {\n background-color: rgba(255,255,255,0.1) !important;\n}\n.hover\\:bg-white-alpha-20:hover {\n background-color: rgba(255,255,255,0.2) !important;\n}\n.hover\\:bg-white-alpha-30:hover {\n background-color: rgba(255,255,255,0.3) !important;\n}\n.hover\\:bg-white-alpha-40:hover {\n background-color: rgba(255,255,255,0.4) !important;\n}\n.hover\\:bg-white-alpha-50:hover {\n background-color: rgba(255,255,255,0.5) !important;\n}\n.hover\\:bg-white-alpha-60:hover {\n background-color: rgba(255,255,255,0.6) !important;\n}\n.hover\\:bg-white-alpha-70:hover {\n background-color: rgba(255,255,255,0.7) !important;\n}\n.hover\\:bg-white-alpha-80:hover {\n background-color: rgba(255,255,255,0.8) !important;\n}\n.hover\\:bg-white-alpha-90:hover {\n background-color: rgba(255,255,255,0.9) !important;\n}\n\n.focus\\:bg-white-alpha-10:focus {\n background-color: rgba(255,255,255,0.1) !important;\n}\n.focus\\:bg-white-alpha-20:focus {\n background-color: rgba(255,255,255,0.2) !important;\n}\n.focus\\:bg-white-alpha-30:focus {\n background-color: rgba(255,255,255,0.3) !important;\n}\n.focus\\:bg-white-alpha-40:focus {\n background-color: rgba(255,255,255,0.4) !important;\n}\n.focus\\:bg-white-alpha-50:focus {\n background-color: rgba(255,255,255,0.5) !important;\n}\n.focus\\:bg-white-alpha-60:focus {\n background-color: rgba(255,255,255,0.6) !important;\n}\n.focus\\:bg-white-alpha-70:focus {\n background-color: rgba(255,255,255,0.7) !important;\n}\n.focus\\:bg-white-alpha-80:focus {\n background-color: rgba(255,255,255,0.8) !important;\n}\n.focus\\:bg-white-alpha-90:focus {\n background-color: rgba(255,255,255,0.9) !important;\n}\n\n.active\\:bg-white-alpha-10:active {\n background-color: rgba(255,255,255,0.1) !important;\n}\n.active\\:bg-white-alpha-20:active {\n background-color: rgba(255,255,255,0.2) !important;\n}\n.active\\:bg-white-alpha-30:active {\n background-color: rgba(255,255,255,0.3) !important;\n}\n.active\\:bg-white-alpha-40:active {\n background-color: rgba(255,255,255,0.4) !important;\n}\n.active\\:bg-white-alpha-50:active {\n background-color: rgba(255,255,255,0.5) !important;\n}\n.active\\:bg-white-alpha-60:active {\n background-color: rgba(255,255,255,0.6) !important;\n}\n.active\\:bg-white-alpha-70:active {\n background-color: rgba(255,255,255,0.7) !important;\n}\n.active\\:bg-white-alpha-80:active {\n background-color: rgba(255,255,255,0.8) !important;\n}\n.active\\:bg-white-alpha-90:active {\n background-color: rgba(255,255,255,0.9) !important;\n}\n\n.bg-black-alpha-10 {\n background-color: rgba(0,0,0,0.1) !important;\n}\n.bg-black-alpha-20 {\n background-color: rgba(0,0,0,0.2) !important;\n}\n.bg-black-alpha-30 {\n background-color: rgba(0,0,0,0.3) !important;\n}\n.bg-black-alpha-40 {\n background-color: rgba(0,0,0,0.4) !important;\n}\n.bg-black-alpha-50 {\n background-color: rgba(0,0,0,0.5) !important;\n}\n.bg-black-alpha-60 {\n background-color: rgba(0,0,0,0.6) !important;\n}\n.bg-black-alpha-70 {\n background-color: rgba(0,0,0,0.7) !important;\n}\n.bg-black-alpha-80 {\n background-color: rgba(0,0,0,0.8) !important;\n}\n.bg-black-alpha-90 {\n background-color: rgba(0,0,0,0.9) !important;\n}\n\n.hover\\:bg-black-alpha-10:hover {\n background-color: rgba(0,0,0,0.1) !important;\n}\n.hover\\:bg-black-alpha-20:hover {\n background-color: rgba(0,0,0,0.2) !important;\n}\n.hover\\:bg-black-alpha-30:hover {\n background-color: rgba(0,0,0,0.3) !important;\n}\n.hover\\:bg-black-alpha-40:hover {\n background-color: rgba(0,0,0,0.4) !important;\n}\n.hover\\:bg-black-alpha-50:hover {\n background-color: rgba(0,0,0,0.5) !important;\n}\n.hover\\:bg-black-alpha-60:hover {\n background-color: rgba(0,0,0,0.6) !important;\n}\n.hover\\:bg-black-alpha-70:hover {\n background-color: rgba(0,0,0,0.7) !important;\n}\n.hover\\:bg-black-alpha-80:hover {\n background-color: rgba(0,0,0,0.8) !important;\n}\n.hover\\:bg-black-alpha-90:hover {\n background-color: rgba(0,0,0,0.9) !important;\n}\n\n.focus\\:bg-black-alpha-10:focus {\n background-color: rgba(0,0,0,0.1) !important;\n}\n.focus\\:bg-black-alpha-20:focus {\n background-color: rgba(0,0,0,0.2) !important;\n}\n.focus\\:bg-black-alpha-30:focus {\n background-color: rgba(0,0,0,0.3) !important;\n}\n.focus\\:bg-black-alpha-40:focus {\n background-color: rgba(0,0,0,0.4) !important;\n}\n.focus\\:bg-black-alpha-50:focus {\n background-color: rgba(0,0,0,0.5) !important;\n}\n.focus\\:bg-black-alpha-60:focus {\n background-color: rgba(0,0,0,0.6) !important;\n}\n.focus\\:bg-black-alpha-70:focus {\n background-color: rgba(0,0,0,0.7) !important;\n}\n.focus\\:bg-black-alpha-80:focus {\n background-color: rgba(0,0,0,0.8) !important;\n}\n.focus\\:bg-black-alpha-90:focus {\n background-color: rgba(0,0,0,0.9) !important;\n}\n\n.active\\:bg-black-alpha-10:active {\n background-color: rgba(0,0,0,0.1) !important;\n}\n.active\\:bg-black-alpha-20:active {\n background-color: rgba(0,0,0,0.2) !important;\n}\n.active\\:bg-black-alpha-30:active {\n background-color: rgba(0,0,0,0.3) !important;\n}\n.active\\:bg-black-alpha-40:active {\n background-color: rgba(0,0,0,0.4) !important;\n}\n.active\\:bg-black-alpha-50:active {\n background-color: rgba(0,0,0,0.5) !important;\n}\n.active\\:bg-black-alpha-60:active {\n background-color: rgba(0,0,0,0.6) !important;\n}\n.active\\:bg-black-alpha-70:active {\n background-color: rgba(0,0,0,0.7) !important;\n}\n.active\\:bg-black-alpha-80:active {\n background-color: rgba(0,0,0,0.8) !important;\n}\n.active\\:bg-black-alpha-90:active {\n background-color: rgba(0,0,0,0.9) !important;\n}\n\n.border-white-alpha-10 {\n border-color: rgba(255,255,255,0.1) !important;\n}\n.border-white-alpha-20 {\n border-color: rgba(255,255,255,0.2) !important;\n}\n.border-white-alpha-30 {\n border-color: rgba(255,255,255,0.3) !important;\n}\n.border-white-alpha-40 {\n border-color: rgba(255,255,255,0.4) !important;\n}\n.border-white-alpha-50 {\n border-color: rgba(255,255,255,0.5) !important;\n}\n.border-white-alpha-60 {\n border-color: rgba(255,255,255,0.6) !important;\n}\n.border-white-alpha-70 {\n border-color: rgba(255,255,255,0.7) !important;\n}\n.border-white-alpha-80 {\n border-color: rgba(255,255,255,0.8) !important;\n}\n.border-white-alpha-90 {\n border-color: rgba(255,255,255,0.9) !important;\n}\n\n.hover\\:border-white-alpha-10:hover {\n border-color: rgba(255,255,255,0.1) !important;\n}\n.hover\\:border-white-alpha-20:hover {\n border-color: rgba(255,255,255,0.2) !important;\n}\n.hover\\:border-white-alpha-30:hover {\n border-color: rgba(255,255,255,0.3) !important;\n}\n.hover\\:border-white-alpha-40:hover {\n border-color: rgba(255,255,255,0.4) !important;\n}\n.hover\\:border-white-alpha-50:hover {\n border-color: rgba(255,255,255,0.5) !important;\n}\n.hover\\:border-white-alpha-60:hover {\n border-color: rgba(255,255,255,0.6) !important;\n}\n.hover\\:border-white-alpha-70:hover {\n border-color: rgba(255,255,255,0.7) !important;\n}\n.hover\\:border-white-alpha-80:hover {\n border-color: rgba(255,255,255,0.8) !important;\n}\n.hover\\:border-white-alpha-90:hover {\n border-color: rgba(255,255,255,0.9) !important;\n}\n\n.focus\\:border-white-alpha-10:focus {\n border-color: rgba(255,255,255,0.1) !important;\n}\n.focus\\:border-white-alpha-20:focus {\n border-color: rgba(255,255,255,0.2) !important;\n}\n.focus\\:border-white-alpha-30:focus {\n border-color: rgba(255,255,255,0.3) !important;\n}\n.focus\\:border-white-alpha-40:focus {\n border-color: rgba(255,255,255,0.4) !important;\n}\n.focus\\:border-white-alpha-50:focus {\n border-color: rgba(255,255,255,0.5) !important;\n}\n.focus\\:border-white-alpha-60:focus {\n border-color: rgba(255,255,255,0.6) !important;\n}\n.focus\\:border-white-alpha-70:focus {\n border-color: rgba(255,255,255,0.7) !important;\n}\n.focus\\:border-white-alpha-80:focus {\n border-color: rgba(255,255,255,0.8) !important;\n}\n.focus\\:border-white-alpha-90:focus {\n border-color: rgba(255,255,255,0.9) !important;\n}\n\n.active\\:border-white-alpha-10:active {\n border-color: rgba(255,255,255,0.1) !important;\n}\n.active\\:border-white-alpha-20:active {\n border-color: rgba(255,255,255,0.2) !important;\n}\n.active\\:border-white-alpha-30:active {\n border-color: rgba(255,255,255,0.3) !important;\n}\n.active\\:border-white-alpha-40:active {\n border-color: rgba(255,255,255,0.4) !important;\n}\n.active\\:border-white-alpha-50:active {\n border-color: rgba(255,255,255,0.5) !important;\n}\n.active\\:border-white-alpha-60:active {\n border-color: rgba(255,255,255,0.6) !important;\n}\n.active\\:border-white-alpha-70:active {\n border-color: rgba(255,255,255,0.7) !important;\n}\n.active\\:border-white-alpha-80:active {\n border-color: rgba(255,255,255,0.8) !important;\n}\n.active\\:border-white-alpha-90:active {\n border-color: rgba(255,255,255,0.9) !important;\n}\n\n.border-black-alpha-10 {\n border-color: rgba(0,0,0,0.1) !important;\n}\n.border-black-alpha-20 {\n border-color: rgba(0,0,0,0.2) !important;\n}\n.border-black-alpha-30 {\n border-color: rgba(0,0,0,0.3) !important;\n}\n.border-black-alpha-40 {\n border-color: rgba(0,0,0,0.4) !important;\n}\n.border-black-alpha-50 {\n border-color: rgba(0,0,0,0.5) !important;\n}\n.border-black-alpha-60 {\n border-color: rgba(0,0,0,0.6) !important;\n}\n.border-black-alpha-70 {\n border-color: rgba(0,0,0,0.7) !important;\n}\n.border-black-alpha-80 {\n border-color: rgba(0,0,0,0.8) !important;\n}\n.border-black-alpha-90 {\n border-color: rgba(0,0,0,0.9) !important;\n}\n\n.hover\\:border-black-alpha-10:hover {\n border-color: rgba(0,0,0,0.1) !important;\n}\n.hover\\:border-black-alpha-20:hover {\n border-color: rgba(0,0,0,0.2) !important;\n}\n.hover\\:border-black-alpha-30:hover {\n border-color: rgba(0,0,0,0.3) !important;\n}\n.hover\\:border-black-alpha-40:hover {\n border-color: rgba(0,0,0,0.4) !important;\n}\n.hover\\:border-black-alpha-50:hover {\n border-color: rgba(0,0,0,0.5) !important;\n}\n.hover\\:border-black-alpha-60:hover {\n border-color: rgba(0,0,0,0.6) !important;\n}\n.hover\\:border-black-alpha-70:hover {\n border-color: rgba(0,0,0,0.7) !important;\n}\n.hover\\:border-black-alpha-80:hover {\n border-color: rgba(0,0,0,0.8) !important;\n}\n.hover\\:border-black-alpha-90:hover {\n border-color: rgba(0,0,0,0.9) !important;\n}\n\n.focus\\:border-black-alpha-10:focus {\n border-color: rgba(0,0,0,0.1) !important;\n}\n.focus\\:border-black-alpha-20:focus {\n border-color: rgba(0,0,0,0.2) !important;\n}\n.focus\\:border-black-alpha-30:focus {\n border-color: rgba(0,0,0,0.3) !important;\n}\n.focus\\:border-black-alpha-40:focus {\n border-color: rgba(0,0,0,0.4) !important;\n}\n.focus\\:border-black-alpha-50:focus {\n border-color: rgba(0,0,0,0.5) !important;\n}\n.focus\\:border-black-alpha-60:focus {\n border-color: rgba(0,0,0,0.6) !important;\n}\n.focus\\:border-black-alpha-70:focus {\n border-color: rgba(0,0,0,0.7) !important;\n}\n.focus\\:border-black-alpha-80:focus {\n border-color: rgba(0,0,0,0.8) !important;\n}\n.focus\\:border-black-alpha-90:focus {\n border-color: rgba(0,0,0,0.9) !important;\n}\n\n.active\\:border-black-alpha-10:active {\n border-color: rgba(0,0,0,0.1) !important;\n}\n.active\\:border-black-alpha-20:active {\n border-color: rgba(0,0,0,0.2) !important;\n}\n.active\\:border-black-alpha-30:active {\n border-color: rgba(0,0,0,0.3) !important;\n}\n.active\\:border-black-alpha-40:active {\n border-color: rgba(0,0,0,0.4) !important;\n}\n.active\\:border-black-alpha-50:active {\n border-color: rgba(0,0,0,0.5) !important;\n}\n.active\\:border-black-alpha-60:active {\n border-color: rgba(0,0,0,0.6) !important;\n}\n.active\\:border-black-alpha-70:active {\n border-color: rgba(0,0,0,0.7) !important;\n}\n.active\\:border-black-alpha-80:active {\n border-color: rgba(0,0,0,0.8) !important;\n}\n.active\\:border-black-alpha-90:active {\n border-color: rgba(0,0,0,0.9) !important;\n}\n\n.text-white-alpha-10 {\n color: rgba(255,255,255,0.1) !important;\n}\n.text-white-alpha-20 {\n color: rgba(255,255,255,0.2) !important;\n}\n.text-white-alpha-30 {\n color: rgba(255,255,255,0.3) !important;\n}\n.text-white-alpha-40 {\n color: rgba(255,255,255,0.4) !important;\n}\n.text-white-alpha-50 {\n color: rgba(255,255,255,0.5) !important;\n}\n.text-white-alpha-60 {\n color: rgba(255,255,255,0.6) !important;\n}\n.text-white-alpha-70 {\n color: rgba(255,255,255,0.7) !important;\n}\n.text-white-alpha-80 {\n color: rgba(255,255,255,0.8) !important;\n}\n.text-white-alpha-90 {\n color: rgba(255,255,255,0.9) !important;\n}\n\n.hover\\:text-white-alpha-10:hover {\n color: rgba(255,255,255,0.1) !important;\n}\n.hover\\:text-white-alpha-20:hover {\n color: rgba(255,255,255,0.2) !important;\n}\n.hover\\:text-white-alpha-30:hover {\n color: rgba(255,255,255,0.3) !important;\n}\n.hover\\:text-white-alpha-40:hover {\n color: rgba(255,255,255,0.4) !important;\n}\n.hover\\:text-white-alpha-50:hover {\n color: rgba(255,255,255,0.5) !important;\n}\n.hover\\:text-white-alpha-60:hover {\n color: rgba(255,255,255,0.6) !important;\n}\n.hover\\:text-white-alpha-70:hover {\n color: rgba(255,255,255,0.7) !important;\n}\n.hover\\:text-white-alpha-80:hover {\n color: rgba(255,255,255,0.8) !important;\n}\n.hover\\:text-white-alpha-90:hover {\n color: rgba(255,255,255,0.9) !important;\n}\n\n.focus\\:text-white-alpha-10:focus {\n color: rgba(255,255,255,0.1) !important;\n}\n.focus\\:text-white-alpha-20:focus {\n color: rgba(255,255,255,0.2) !important;\n}\n.focus\\:text-white-alpha-30:focus {\n color: rgba(255,255,255,0.3) !important;\n}\n.focus\\:text-white-alpha-40:focus {\n color: rgba(255,255,255,0.4) !important;\n}\n.focus\\:text-white-alpha-50:focus {\n color: rgba(255,255,255,0.5) !important;\n}\n.focus\\:text-white-alpha-60:focus {\n color: rgba(255,255,255,0.6) !important;\n}\n.focus\\:text-white-alpha-70:focus {\n color: rgba(255,255,255,0.7) !important;\n}\n.focus\\:text-white-alpha-80:focus {\n color: rgba(255,255,255,0.8) !important;\n}\n.focus\\:text-white-alpha-90:focus {\n color: rgba(255,255,255,0.9) !important;\n}\n\n.active\\:text-white-alpha-10:active {\n color: rgba(255,255,255,0.1) !important;\n}\n.active\\:text-white-alpha-20:active {\n color: rgba(255,255,255,0.2) !important;\n}\n.active\\:text-white-alpha-30:active {\n color: rgba(255,255,255,0.3) !important;\n}\n.active\\:text-white-alpha-40:active {\n color: rgba(255,255,255,0.4) !important;\n}\n.active\\:text-white-alpha-50:active {\n color: rgba(255,255,255,0.5) !important;\n}\n.active\\:text-white-alpha-60:active {\n color: rgba(255,255,255,0.6) !important;\n}\n.active\\:text-white-alpha-70:active {\n color: rgba(255,255,255,0.7) !important;\n}\n.active\\:text-white-alpha-80:active {\n color: rgba(255,255,255,0.8) !important;\n}\n.active\\:text-white-alpha-90:active {\n color: rgba(255,255,255,0.9) !important;\n}\n\n.text-black-alpha-10 {\n color: rgba(0,0,0,0.1) !important;\n}\n.text-black-alpha-20 {\n color: rgba(0,0,0,0.2) !important;\n}\n.text-black-alpha-30 {\n color: rgba(0,0,0,0.3) !important;\n}\n.text-black-alpha-40 {\n color: rgba(0,0,0,0.4) !important;\n}\n.text-black-alpha-50 {\n color: rgba(0,0,0,0.5) !important;\n}\n.text-black-alpha-60 {\n color: rgba(0,0,0,0.6) !important;\n}\n.text-black-alpha-70 {\n color: rgba(0,0,0,0.7) !important;\n}\n.text-black-alpha-80 {\n color: rgba(0,0,0,0.8) !important;\n}\n.text-black-alpha-90 {\n color: rgba(0,0,0,0.9) !important;\n}\n\n.hover\\:text-black-alpha-10:hover {\n color: rgba(0,0,0,0.1) !important;\n}\n.hover\\:text-black-alpha-20:hover {\n color: rgba(0,0,0,0.2) !important;\n}\n.hover\\:text-black-alpha-30:hover {\n color: rgba(0,0,0,0.3) !important;\n}\n.hover\\:text-black-alpha-40:hover {\n color: rgba(0,0,0,0.4) !important;\n}\n.hover\\:text-black-alpha-50:hover {\n color: rgba(0,0,0,0.5) !important;\n}\n.hover\\:text-black-alpha-60:hover {\n color: rgba(0,0,0,0.6) !important;\n}\n.hover\\:text-black-alpha-70:hover {\n color: rgba(0,0,0,0.7) !important;\n}\n.hover\\:text-black-alpha-80:hover {\n color: rgba(0,0,0,0.8) !important;\n}\n.hover\\:text-black-alpha-90:hover {\n color: rgba(0,0,0,0.9) !important;\n}\n\n.focus\\:text-black-alpha-10:focus {\n color: rgba(0,0,0,0.1) !important;\n}\n.focus\\:text-black-alpha-20:focus {\n color: rgba(0,0,0,0.2) !important;\n}\n.focus\\:text-black-alpha-30:focus {\n color: rgba(0,0,0,0.3) !important;\n}\n.focus\\:text-black-alpha-40:focus {\n color: rgba(0,0,0,0.4) !important;\n}\n.focus\\:text-black-alpha-50:focus {\n color: rgba(0,0,0,0.5) !important;\n}\n.focus\\:text-black-alpha-60:focus {\n color: rgba(0,0,0,0.6) !important;\n}\n.focus\\:text-black-alpha-70:focus {\n color: rgba(0,0,0,0.7) !important;\n}\n.focus\\:text-black-alpha-80:focus {\n color: rgba(0,0,0,0.8) !important;\n}\n.focus\\:text-black-alpha-90:focus {\n color: rgba(0,0,0,0.9) !important;\n}\n\n.active\\:text-black-alpha-10:active {\n color: rgba(0,0,0,0.1) !important;\n}\n.active\\:text-black-alpha-20:active {\n color: rgba(0,0,0,0.2) !important;\n}\n.active\\:text-black-alpha-30:active {\n color: rgba(0,0,0,0.3) !important;\n}\n.active\\:text-black-alpha-40:active {\n color: rgba(0,0,0,0.4) !important;\n}\n.active\\:text-black-alpha-50:active {\n color: rgba(0,0,0,0.5) !important;\n}\n.active\\:text-black-alpha-60:active {\n color: rgba(0,0,0,0.6) !important;\n}\n.active\\:text-black-alpha-70:active {\n color: rgba(0,0,0,0.7) !important;\n}\n.active\\:text-black-alpha-80:active {\n color: rgba(0,0,0,0.8) !important;\n}\n.active\\:text-black-alpha-90:active {\n color: rgba(0,0,0,0.9) !important;\n}\n\n.text-primary {\n color: var(--p-primary-color) !important;\n}\n\n.bg-primary {\n color: var(--p-primary-contrast-color) !important;\n background-color: var(--p-primary-color) !important;\n}\n\n.bg-primary-reverse {\n color: var(--p-primary-color) !important;\n background-color: var(--p-primary-contrast-color) !important;\n}\n\n.bg-white {\n background-color: #ffffff !important;\n}\n\n.border-primary {\n border-color: var(--p-primary-color) !important;\n}\n\n.text-white {\n color: #ffffff !important;\n}\n\n.border-white {\n border-color: #ffffff !important;\n}\n\n.text-color {\n color: var(--p-text-color) !important;\n}\n\n.text-color-secondary {\n color: var(--p-text-muted-color) !important;\n}\n\n.surface-ground {\n background-color: light-dark(var(--p-surface-50), var(--p-surface-950)) !important;\n}\n\n.surface-section {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-950)) !important;\n}\n\n.surface-card {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-900)) !important;\n}\n\n.surface-overlay {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-900)) !important;\n}\n\n.surface-hover {\n background-color: light-dark(var(--p-surface-800), var(--p-surface-100)) !important;\n}\n\n.surface-border {\n border-color: light-dark(var(--p-surface-200), var(--p-surface-700)) !important;\n}\n\n.focus\\:text-primary:focus {\n color: var(--p-primary-color) !important;\n}\n\n.hover\\:text-primary:hover {\n color: var(--p-primary-color) !important;\n}\n\n.active\\:text-primary:active {\n color: var(--p-primary-color) !important;\n}\n\n.focus\\:bg-primary:focus {\n color: var(--p-primary-contrast-color) !important;\n background-color: var(--p-primary-color) !important;\n}\n\n.hover\\:bg-primary:hover {\n color: var(--p-primary-contrast-color) !important;\n background-color: var(--p-primary-color) !important;\n}\n\n.active\\:bg-primary:active {\n color: var(--p-primary-contrast-color) !important;\n background-color: var(--p-primary-color) !important;\n}\n\n.focus\\:bg-primary-reverse:focus {\n color: var(--p-primary-color) !important;\n background-color: var(--p-primary-contrast-color) !important;\n}\n\n.hover\\:bg-primary-reverse:hover {\n color: var(--p-primary-color) !important;\n background-color: var(--p-primary-contrast-color) !important;\n}\n\n.active\\:bg-primary-reverse:active {\n color: var(--p-primary-color) !important;\n background-color: var(--p-primary-contrast-color) !important;\n}\n\n.focus\\:bg-white:focus {\n background-color: #ffffff !important;\n}\n\n.hover\\:bg-white:hover {\n background-color: #ffffff !important;\n}\n\n.active\\:bg-white:active {\n background-color: #ffffff !important;\n}\n\n.focus\\:border-primary:focus {\n border-color: var(--p-primary-color) !important;\n}\n\n.hover\\:border-primary:hover {\n border-color: var(--p-primary-color) !important;\n}\n\n.active\\:border-primary:active {\n border-color: var(--p-primary-color) !important;\n}\n\n.focus\\:text-white:focus {\n color: #ffffff !important;\n}\n\n.hover\\:text-white:hover {\n color: #ffffff !important;\n}\n\n.active\\:text-white:active {\n color: #ffffff !important;\n}\n\n.focus\\:border-white:focus {\n border-color: #ffffff !important;\n}\n\n.hover\\:border-white:hover {\n border-color: #ffffff !important;\n}\n\n.active\\:border-white:active {\n border-color: #ffffff !important;\n}\n\n.focus\\:text-color:focus {\n color: var(--p-text-color) !important;\n}\n\n.hover\\:text-color:hover {\n color: var(--p-text-color) !important;\n}\n\n.active\\:text-color:active {\n color: var(--p-text-color) !important;\n}\n\n.focus\\:text-color-secondary:focus {\n color: var(--p-text-muted-color) !important;\n}\n\n.hover\\:text-color-secondary:hover {\n color: var(--p-text-muted-color) !important;\n}\n\n.active\\:text-color-secondary:active {\n color: var(--p-text-muted-color) !important;\n}\n\n.focus\\:surface-ground:focus {\n background-color: light-dark(var(--p-surface-50), var(--p-surface-950)) !important;\n}\n\n.hover\\:surface-ground:hover {\n background-color: light-dark(var(--p-surface-50), var(--p-surface-950)) !important;\n}\n\n.active\\:surface-ground:active {\n background-color: light-dark(var(--p-surface-50), var(--p-surface-950)) !important;\n}\n\n.focus\\:surface-section:focus {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-950)) !important;\n}\n\n.hover\\:surface-section:hover {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-950)) !important;\n}\n\n.active\\:surface-section:active {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-950)) !important;\n}\n\n.focus\\:surface-card:focus {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-900)) !important;\n}\n\n.hover\\:surface-card:hover {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-900)) !important;\n}\n\n.active\\:surface-card:active {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-900)) !important;\n}\n\n.focus\\:surface-overlay:focus {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-900)) !important;\n}\n\n.hover\\:surface-overlay:hover {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-900)) !important;\n}\n\n.active\\:surface-overlay:active {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-900)) !important;\n}\n\n.focus\\:surface-hover:focus {\n background-color: light-dark(var(--p-surface-800), var(--p-surface-100)) !important;\n}\n\n.hover\\:surface-hover:hover {\n background-color: light-dark(var(--p-surface-800), var(--p-surface-100)) !important;\n}\n\n.active\\:surface-hover:active {\n background-color: light-dark(var(--p-surface-800), var(--p-surface-100)) !important;\n}\n\n.focus\\:surface-border:focus {\n border-color: light-dark(var(--p-surface-200), var(--p-surface-700)) !important;\n}\n\n.hover\\:surface-border:hover {\n border-color: light-dark(var(--p-surface-200), var(--p-surface-700)) !important;\n}\n\n.active\\:surface-border:active {\n border-color: light-dark(var(--p-surface-200), var(--p-surface-700)) !important;\n}\n\n@media screen and (min-width: 576px) {\n .sm\\:text-primary {\n color: var(--p-primary-color) !important;\n }\n .sm\\:bg-primary {\n color: var(--p-primary-contrast-color) !important;\n background-color: var(--p-primary-color) !important;\n }\n .sm\\:bg-primary-reverse {\n color: var(--p-primary-color) !important;\n background-color: var(--p-primary-contrast-color) !important;\n }\n .sm\\:bg-white {\n background-color: #ffffff !important;\n }\n .sm\\:border-primary {\n border-color: var(--p-primary-color) !important;\n }\n .sm\\:text-white {\n color: #ffffff !important;\n }\n .sm\\:border-white {\n border-color: #ffffff !important;\n }\n .sm\\:text-color {\n color: var(--p-text-color) !important;\n }\n .sm\\:text-color-secondary {\n color: var(--p-text-muted-color) !important;\n }\n .sm\\:surface-ground {\n background-color: light-dark(var(--p-surface-50), var(--p-surface-950)) !important;\n }\n .sm\\:surface-section {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-950)) !important;\n }\n .sm\\:surface-card {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-900)) !important;\n }\n .sm\\:surface-overlay {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-900)) !important;\n }\n .sm\\:surface-hover {\n background-color: light-dark(var(--p-surface-800), var(--p-surface-100)) !important;\n }\n .sm\\:surface-border {\n border-color: light-dark(var(--p-surface-200), var(--p-surface-700)) !important;\n }\n .sm\\:focus\\:text-primary:focus {\n color: var(--p-primary-color) !important;\n }\n .sm\\:hover\\:text-primary:hover {\n color: var(--p-primary-color) !important;\n }\n .sm\\:active\\:text-primary:active {\n color: var(--p-primary-color) !important;\n }\n .sm\\:focus\\:bg-primary:focus {\n color: var(--p-primary-contrast-color) !important;\n background-color: var(--p-primary-color) !important;\n }\n .sm\\:hover\\:bg-primary:hover {\n color: var(--p-primary-contrast-color) !important;\n background-color: var(--p-primary-color) !important;\n }\n .sm\\:active\\:bg-primary:active {\n color: var(--p-primary-contrast-color) !important;\n background-color: var(--p-primary-color) !important;\n }\n .sm\\:focus\\:bg-primary-reverse:focus {\n color: var(--p-primary-color) !important;\n background-color: var(--p-primary-contrast-color) !important;\n }\n .sm\\:hover\\:bg-primary-reverse:hover {\n color: var(--p-primary-color) !important;\n background-color: var(--p-primary-contrast-color) !important;\n }\n .sm\\:active\\:bg-primary-reverse:active {\n color: var(--p-primary-color) !important;\n background-color: var(--p-primary-contrast-color) !important;\n }\n .sm\\:focus\\:bg-white:focus {\n background-color: #ffffff !important;\n }\n .sm\\:hover\\:bg-white:hover {\n background-color: #ffffff !important;\n }\n .sm\\:active\\:bg-white:active {\n background-color: #ffffff !important;\n }\n .sm\\:focus\\:border-primary:focus {\n border-color: var(--p-primary-color) !important;\n }\n .sm\\:hover\\:border-primary:hover {\n border-color: var(--p-primary-color) !important;\n }\n .sm\\:active\\:border-primary:active {\n border-color: var(--p-primary-color) !important;\n }\n .sm\\:focus\\:text-white:focus {\n color: #ffffff !important;\n }\n .sm\\:hover\\:text-white:hover {\n color: #ffffff !important;\n }\n .sm\\:active\\:text-white:active {\n color: #ffffff !important;\n }\n .sm\\:focus\\:border-white:focus {\n border-color: #ffffff !important;\n }\n .sm\\:hover\\:border-white:hover {\n border-color: #ffffff !important;\n }\n .sm\\:active\\:border-white:active {\n border-color: #ffffff !important;\n }\n .sm\\:focus\\:text-color:focus {\n color: var(--p-text-color) !important;\n }\n .sm\\:hover\\:text-color:hover {\n color: var(--p-text-color) !important;\n }\n .sm\\:active\\:text-color:active {\n color: var(--p-text-color) !important;\n }\n .sm\\:focus\\:text-color-secondary:focus {\n color: var(--p-text-muted-color) !important;\n }\n .sm\\:hover\\:text-color-secondary:hover {\n color: var(--p-text-muted-color) !important;\n }\n .sm\\:active\\:text-color-secondary:active {\n color: var(--p-text-muted-color) !important;\n }\n .sm\\:focus\\:surface-ground:focus {\n background-color: light-dark(var(--p-surface-50), var(--p-surface-950)) !important;\n }\n .sm\\:hover\\:surface-ground:hover {\n background-color: light-dark(var(--p-surface-50), var(--p-surface-950)) !important;\n }\n .sm\\:active\\:surface-ground:active {\n background-color: light-dark(var(--p-surface-50), var(--p-surface-950)) !important;\n }\n .sm\\:focus\\:surface-section:focus {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-950)) !important;\n }\n .sm\\:hover\\:surface-section:hover {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-950)) !important;\n }\n .sm\\:active\\:surface-section:active {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-950)) !important;\n }\n .sm\\:focus\\:surface-card:focus {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-900)) !important;\n }\n .sm\\:hover\\:surface-card:hover {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-900)) !important;\n }\n .sm\\:active\\:surface-card:active {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-900)) !important;\n }\n .sm\\:focus\\:surface-overlay:focus {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-900)) !important;\n }\n .sm\\:hover\\:surface-overlay:hover {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-900)) !important;\n }\n .sm\\:active\\:surface-overlay:active {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-900)) !important;\n }\n .sm\\:focus\\:surface-hover:focus {\n background-color: light-dark(var(--p-surface-800), var(--p-surface-100)) !important;\n }\n .sm\\:hover\\:surface-hover:hover {\n background-color: light-dark(var(--p-surface-800), var(--p-surface-100)) !important;\n }\n .sm\\:active\\:surface-hover:active {\n background-color: light-dark(var(--p-surface-800), var(--p-surface-100)) !important;\n }\n .sm\\:focus\\:surface-border:focus {\n border-color: light-dark(var(--p-surface-200), var(--p-surface-700)) !important;\n }\n .sm\\:hover\\:surface-border:hover {\n border-color: light-dark(var(--p-surface-200), var(--p-surface-700)) !important;\n }\n .sm\\:active\\:surface-border:active {\n border-color: light-dark(var(--p-surface-200), var(--p-surface-700)) !important;\n }\n}\n@media screen and (min-width: 768px) {\n .md\\:text-primary {\n color: var(--p-primary-color) !important;\n }\n .md\\:bg-primary {\n color: var(--p-primary-contrast-color) !important;\n background-color: var(--p-primary-color) !important;\n }\n .md\\:bg-primary-reverse {\n color: var(--p-primary-color) !important;\n background-color: var(--p-primary-contrast-color) !important;\n }\n .md\\:bg-white {\n background-color: #ffffff !important;\n }\n .md\\:border-primary {\n border-color: var(--p-primary-color) !important;\n }\n .md\\:text-white {\n color: #ffffff !important;\n }\n .md\\:border-white {\n border-color: #ffffff !important;\n }\n .md\\:text-color {\n color: var(--p-text-color) !important;\n }\n .md\\:text-color-secondary {\n color: var(--p-text-muted-color) !important;\n }\n .md\\:surface-ground {\n background-color: light-dark(var(--p-surface-50), var(--p-surface-950)) !important;\n }\n .md\\:surface-section {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-950)) !important;\n }\n .md\\:surface-card {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-900)) !important;\n }\n .md\\:surface-overlay {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-900)) !important;\n }\n .md\\:surface-hover {\n background-color: light-dark(var(--p-surface-800), var(--p-surface-100)) !important;\n }\n .md\\:surface-border {\n border-color: light-dark(var(--p-surface-200), var(--p-surface-700)) !important;\n }\n .md\\:focus\\:text-primary:focus {\n color: var(--p-primary-color) !important;\n }\n .md\\:hover\\:text-primary:hover {\n color: var(--p-primary-color) !important;\n }\n .md\\:active\\:text-primary:active {\n color: var(--p-primary-color) !important;\n }\n .md\\:focus\\:bg-primary:focus {\n color: var(--p-primary-contrast-color) !important;\n background-color: var(--p-primary-color) !important;\n }\n .md\\:hover\\:bg-primary:hover {\n color: var(--p-primary-contrast-color) !important;\n background-color: var(--p-primary-color) !important;\n }\n .md\\:active\\:bg-primary:active {\n color: var(--p-primary-contrast-color) !important;\n background-color: var(--p-primary-color) !important;\n }\n .md\\:focus\\:bg-primary-reverse:focus {\n color: var(--p-primary-color) !important;\n background-color: var(--p-primary-contrast-color) !important;\n }\n .md\\:hover\\:bg-primary-reverse:hover {\n color: var(--p-primary-color) !important;\n background-color: var(--p-primary-contrast-color) !important;\n }\n .md\\:active\\:bg-primary-reverse:active {\n color: var(--p-primary-color) !important;\n background-color: var(--p-primary-contrast-color) !important;\n }\n .md\\:focus\\:bg-white:focus {\n background-color: #ffffff !important;\n }\n .md\\:hover\\:bg-white:hover {\n background-color: #ffffff !important;\n }\n .md\\:active\\:bg-white:active {\n background-color: #ffffff !important;\n }\n .md\\:focus\\:border-primary:focus {\n border-color: var(--p-primary-color) !important;\n }\n .md\\:hover\\:border-primary:hover {\n border-color: var(--p-primary-color) !important;\n }\n .md\\:active\\:border-primary:active {\n border-color: var(--p-primary-color) !important;\n }\n .md\\:focus\\:text-white:focus {\n color: #ffffff !important;\n }\n .md\\:hover\\:text-white:hover {\n color: #ffffff !important;\n }\n .md\\:active\\:text-white:active {\n color: #ffffff !important;\n }\n .md\\:focus\\:border-white:focus {\n border-color: #ffffff !important;\n }\n .md\\:hover\\:border-white:hover {\n border-color: #ffffff !important;\n }\n .md\\:active\\:border-white:active {\n border-color: #ffffff !important;\n }\n .md\\:focus\\:text-color:focus {\n color: var(--p-text-color) !important;\n }\n .md\\:hover\\:text-color:hover {\n color: var(--p-text-color) !important;\n }\n .md\\:active\\:text-color:active {\n color: var(--p-text-color) !important;\n }\n .md\\:focus\\:text-color-secondary:focus {\n color: var(--p-text-muted-color) !important;\n }\n .md\\:hover\\:text-color-secondary:hover {\n color: var(--p-text-muted-color) !important;\n }\n .md\\:active\\:text-color-secondary:active {\n color: var(--p-text-muted-color) !important;\n }\n .md\\:focus\\:surface-ground:focus {\n background-color: light-dark(var(--p-surface-50), var(--p-surface-950)) !important;\n }\n .md\\:hover\\:surface-ground:hover {\n background-color: light-dark(var(--p-surface-50), var(--p-surface-950)) !important;\n }\n .md\\:active\\:surface-ground:active {\n background-color: light-dark(var(--p-surface-50), var(--p-surface-950)) !important;\n }\n .md\\:focus\\:surface-section:focus {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-950)) !important;\n }\n .md\\:hover\\:surface-section:hover {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-950)) !important;\n }\n .md\\:active\\:surface-section:active {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-950)) !important;\n }\n .md\\:focus\\:surface-card:focus {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-900)) !important;\n }\n .md\\:hover\\:surface-card:hover {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-900)) !important;\n }\n .md\\:active\\:surface-card:active {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-900)) !important;\n }\n .md\\:focus\\:surface-overlay:focus {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-900)) !important;\n }\n .md\\:hover\\:surface-overlay:hover {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-900)) !important;\n }\n .md\\:active\\:surface-overlay:active {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-900)) !important;\n }\n .md\\:focus\\:surface-hover:focus {\n background-color: light-dark(var(--p-surface-800), var(--p-surface-100)) !important;\n }\n .md\\:hover\\:surface-hover:hover {\n background-color: light-dark(var(--p-surface-800), var(--p-surface-100)) !important;\n }\n .md\\:active\\:surface-hover:active {\n background-color: light-dark(var(--p-surface-800), var(--p-surface-100)) !important;\n }\n .md\\:focus\\:surface-border:focus {\n border-color: light-dark(var(--p-surface-200), var(--p-surface-700)) !important;\n }\n .md\\:hover\\:surface-border:hover {\n border-color: light-dark(var(--p-surface-200), var(--p-surface-700)) !important;\n }\n .md\\:active\\:surface-border:active {\n border-color: light-dark(var(--p-surface-200), var(--p-surface-700)) !important;\n }\n}\n@media screen and (min-width: 992px) {\n .lg\\:text-primary {\n color: var(--p-primary-color) !important;\n }\n .lg\\:bg-primary {\n color: var(--p-primary-contrast-color) !important;\n background-color: var(--p-primary-color) !important;\n }\n .lg\\:bg-primary-reverse {\n color: var(--p-primary-color) !important;\n background-color: var(--p-primary-contrast-color) !important;\n }\n .lg\\:bg-white {\n background-color: #ffffff !important;\n }\n .lg\\:border-primary {\n border-color: var(--p-primary-color) !important;\n }\n .lg\\:text-white {\n color: #ffffff !important;\n }\n .lg\\:border-white {\n border-color: #ffffff !important;\n }\n .lg\\:text-color {\n color: var(--p-text-color) !important;\n }\n .lg\\:text-color-secondary {\n color: var(--p-text-muted-color) !important;\n }\n .lg\\:surface-ground {\n background-color: light-dark(var(--p-surface-50), var(--p-surface-950)) !important;\n }\n .lg\\:surface-section {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-950)) !important;\n }\n .lg\\:surface-card {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-900)) !important;\n }\n .lg\\:surface-overlay {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-900)) !important;\n }\n .lg\\:surface-hover {\n background-color: light-dark(var(--p-surface-800), var(--p-surface-100)) !important;\n }\n .lg\\:surface-border {\n border-color: light-dark(var(--p-surface-200), var(--p-surface-700)) !important;\n }\n .lg\\:focus\\:text-primary:focus {\n color: var(--p-primary-color) !important;\n }\n .lg\\:hover\\:text-primary:hover {\n color: var(--p-primary-color) !important;\n }\n .lg\\:active\\:text-primary:active {\n color: var(--p-primary-color) !important;\n }\n .lg\\:focus\\:bg-primary:focus {\n color: var(--p-primary-contrast-color) !important;\n background-color: var(--p-primary-color) !important;\n }\n .lg\\:hover\\:bg-primary:hover {\n color: var(--p-primary-contrast-color) !important;\n background-color: var(--p-primary-color) !important;\n }\n .lg\\:active\\:bg-primary:active {\n color: var(--p-primary-contrast-color) !important;\n background-color: var(--p-primary-color) !important;\n }\n .lg\\:focus\\:bg-primary-reverse:focus {\n color: var(--p-primary-color) !important;\n background-color: var(--p-primary-contrast-color) !important;\n }\n .lg\\:hover\\:bg-primary-reverse:hover {\n color: var(--p-primary-color) !important;\n background-color: var(--p-primary-contrast-color) !important;\n }\n .lg\\:active\\:bg-primary-reverse:active {\n color: var(--p-primary-color) !important;\n background-color: var(--p-primary-contrast-color) !important;\n }\n .lg\\:focus\\:bg-white:focus {\n background-color: #ffffff !important;\n }\n .lg\\:hover\\:bg-white:hover {\n background-color: #ffffff !important;\n }\n .lg\\:active\\:bg-white:active {\n background-color: #ffffff !important;\n }\n .lg\\:focus\\:border-primary:focus {\n border-color: var(--p-primary-color) !important;\n }\n .lg\\:hover\\:border-primary:hover {\n border-color: var(--p-primary-color) !important;\n }\n .lg\\:active\\:border-primary:active {\n border-color: var(--p-primary-color) !important;\n }\n .lg\\:focus\\:text-white:focus {\n color: #ffffff !important;\n }\n .lg\\:hover\\:text-white:hover {\n color: #ffffff !important;\n }\n .lg\\:active\\:text-white:active {\n color: #ffffff !important;\n }\n .lg\\:focus\\:border-white:focus {\n border-color: #ffffff !important;\n }\n .lg\\:hover\\:border-white:hover {\n border-color: #ffffff !important;\n }\n .lg\\:active\\:border-white:active {\n border-color: #ffffff !important;\n }\n .lg\\:focus\\:text-color:focus {\n color: var(--p-text-color) !important;\n }\n .lg\\:hover\\:text-color:hover {\n color: var(--p-text-color) !important;\n }\n .lg\\:active\\:text-color:active {\n color: var(--p-text-color) !important;\n }\n .lg\\:focus\\:text-color-secondary:focus {\n color: var(--p-text-muted-color) !important;\n }\n .lg\\:hover\\:text-color-secondary:hover {\n color: var(--p-text-muted-color) !important;\n }\n .lg\\:active\\:text-color-secondary:active {\n color: var(--p-text-muted-color) !important;\n }\n .lg\\:focus\\:surface-ground:focus {\n background-color: light-dark(var(--p-surface-50), var(--p-surface-950)) !important;\n }\n .lg\\:hover\\:surface-ground:hover {\n background-color: light-dark(var(--p-surface-50), var(--p-surface-950)) !important;\n }\n .lg\\:active\\:surface-ground:active {\n background-color: light-dark(var(--p-surface-50), var(--p-surface-950)) !important;\n }\n .lg\\:focus\\:surface-section:focus {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-950)) !important;\n }\n .lg\\:hover\\:surface-section:hover {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-950)) !important;\n }\n .lg\\:active\\:surface-section:active {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-950)) !important;\n }\n .lg\\:focus\\:surface-card:focus {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-900)) !important;\n }\n .lg\\:hover\\:surface-card:hover {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-900)) !important;\n }\n .lg\\:active\\:surface-card:active {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-900)) !important;\n }\n .lg\\:focus\\:surface-overlay:focus {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-900)) !important;\n }\n .lg\\:hover\\:surface-overlay:hover {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-900)) !important;\n }\n .lg\\:active\\:surface-overlay:active {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-900)) !important;\n }\n .lg\\:focus\\:surface-hover:focus {\n background-color: light-dark(var(--p-surface-800), var(--p-surface-100)) !important;\n }\n .lg\\:hover\\:surface-hover:hover {\n background-color: light-dark(var(--p-surface-800), var(--p-surface-100)) !important;\n }\n .lg\\:active\\:surface-hover:active {\n background-color: light-dark(var(--p-surface-800), var(--p-surface-100)) !important;\n }\n .lg\\:focus\\:surface-border:focus {\n border-color: light-dark(var(--p-surface-200), var(--p-surface-700)) !important;\n }\n .lg\\:hover\\:surface-border:hover {\n border-color: light-dark(var(--p-surface-200), var(--p-surface-700)) !important;\n }\n .lg\\:active\\:surface-border:active {\n border-color: light-dark(var(--p-surface-200), var(--p-surface-700)) !important;\n }\n}\n@media screen and (min-width: 1200px) {\n .xl\\:text-primary {\n color: var(--p-primary-color) !important;\n }\n .xl\\:bg-primary {\n color: var(--p-primary-contrast-color) !important;\n background-color: var(--p-primary-color) !important;\n }\n .xl\\:bg-primary-reverse {\n color: var(--p-primary-color) !important;\n background-color: var(--p-primary-contrast-color) !important;\n }\n .xl\\:bg-white {\n background-color: #ffffff !important;\n }\n .xl\\:border-primary {\n border-color: var(--p-primary-color) !important;\n }\n .xl\\:text-white {\n color: #ffffff !important;\n }\n .xl\\:border-white {\n border-color: #ffffff !important;\n }\n .xl\\:text-color {\n color: var(--p-text-color) !important;\n }\n .xl\\:text-color-secondary {\n color: var(--p-text-muted-color) !important;\n }\n .xl\\:surface-ground {\n background-color: light-dark(var(--p-surface-50), var(--p-surface-950)) !important;\n }\n .xl\\:surface-section {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-950)) !important;\n }\n .xl\\:surface-card {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-900)) !important;\n }\n .xl\\:surface-overlay {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-900)) !important;\n }\n .xl\\:surface-hover {\n background-color: light-dark(var(--p-surface-800), var(--p-surface-100)) !important;\n }\n .xl\\:surface-border {\n border-color: light-dark(var(--p-surface-200), var(--p-surface-700)) !important;\n }\n .xl\\:focus\\:text-primary:focus {\n color: var(--p-primary-color) !important;\n }\n .xl\\:hover\\:text-primary:hover {\n color: var(--p-primary-color) !important;\n }\n .xl\\:active\\:text-primary:active {\n color: var(--p-primary-color) !important;\n }\n .xl\\:focus\\:bg-primary:focus {\n color: var(--p-primary-contrast-color) !important;\n background-color: var(--p-primary-color) !important;\n }\n .xl\\:hover\\:bg-primary:hover {\n color: var(--p-primary-contrast-color) !important;\n background-color: var(--p-primary-color) !important;\n }\n .xl\\:active\\:bg-primary:active {\n color: var(--p-primary-contrast-color) !important;\n background-color: var(--p-primary-color) !important;\n }\n .xl\\:focus\\:bg-primary-reverse:focus {\n color: var(--p-primary-color) !important;\n background-color: var(--p-primary-contrast-color) !important;\n }\n .xl\\:hover\\:bg-primary-reverse:hover {\n color: var(--p-primary-color) !important;\n background-color: var(--p-primary-contrast-color) !important;\n }\n .xl\\:active\\:bg-primary-reverse:active {\n color: var(--p-primary-color) !important;\n background-color: var(--p-primary-contrast-color) !important;\n }\n .xl\\:focus\\:bg-white:focus {\n background-color: #ffffff !important;\n }\n .xl\\:hover\\:bg-white:hover {\n background-color: #ffffff !important;\n }\n .xl\\:active\\:bg-white:active {\n background-color: #ffffff !important;\n }\n .xl\\:focus\\:border-primary:focus {\n border-color: var(--p-primary-color) !important;\n }\n .xl\\:hover\\:border-primary:hover {\n border-color: var(--p-primary-color) !important;\n }\n .xl\\:active\\:border-primary:active {\n border-color: var(--p-primary-color) !important;\n }\n .xl\\:focus\\:text-white:focus {\n color: #ffffff !important;\n }\n .xl\\:hover\\:text-white:hover {\n color: #ffffff !important;\n }\n .xl\\:active\\:text-white:active {\n color: #ffffff !important;\n }\n .xl\\:focus\\:border-white:focus {\n border-color: #ffffff !important;\n }\n .xl\\:hover\\:border-white:hover {\n border-color: #ffffff !important;\n }\n .xl\\:active\\:border-white:active {\n border-color: #ffffff !important;\n }\n .xl\\:focus\\:text-color:focus {\n color: var(--p-text-color) !important;\n }\n .xl\\:hover\\:text-color:hover {\n color: var(--p-text-color) !important;\n }\n .xl\\:active\\:text-color:active {\n color: var(--p-text-color) !important;\n }\n .xl\\:focus\\:text-color-secondary:focus {\n color: var(--p-text-muted-color) !important;\n }\n .xl\\:hover\\:text-color-secondary:hover {\n color: var(--p-text-muted-color) !important;\n }\n .xl\\:active\\:text-color-secondary:active {\n color: var(--p-text-muted-color) !important;\n }\n .xl\\:focus\\:surface-ground:focus {\n background-color: light-dark(var(--p-surface-50), var(--p-surface-950)) !important;\n }\n .xl\\:hover\\:surface-ground:hover {\n background-color: light-dark(var(--p-surface-50), var(--p-surface-950)) !important;\n }\n .xl\\:active\\:surface-ground:active {\n background-color: light-dark(var(--p-surface-50), var(--p-surface-950)) !important;\n }\n .xl\\:focus\\:surface-section:focus {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-950)) !important;\n }\n .xl\\:hover\\:surface-section:hover {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-950)) !important;\n }\n .xl\\:active\\:surface-section:active {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-950)) !important;\n }\n .xl\\:focus\\:surface-card:focus {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-900)) !important;\n }\n .xl\\:hover\\:surface-card:hover {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-900)) !important;\n }\n .xl\\:active\\:surface-card:active {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-900)) !important;\n }\n .xl\\:focus\\:surface-overlay:focus {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-900)) !important;\n }\n .xl\\:hover\\:surface-overlay:hover {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-900)) !important;\n }\n .xl\\:active\\:surface-overlay:active {\n background-color: light-dark(var(--p-surface-0), var(--p-surface-900)) !important;\n }\n .xl\\:focus\\:surface-hover:focus {\n background-color: light-dark(var(--p-surface-800), var(--p-surface-100)) !important;\n }\n .xl\\:hover\\:surface-hover:hover {\n background-color: light-dark(var(--p-surface-800), var(--p-surface-100)) !important;\n }\n .xl\\:active\\:surface-hover:active {\n background-color: light-dark(var(--p-surface-800), var(--p-surface-100)) !important;\n }\n .xl\\:focus\\:surface-border:focus {\n border-color: light-dark(var(--p-surface-200), var(--p-surface-700)) !important;\n }\n .xl\\:hover\\:surface-border:hover {\n border-color: light-dark(var(--p-surface-200), var(--p-surface-700)) !important;\n }\n .xl\\:active\\:surface-border:active {\n border-color: light-dark(var(--p-surface-200), var(--p-surface-700)) !important;\n }\n}\n.field {\n margin-bottom: 1rem;\n}\n\n.field > label {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\n.field.grid > label {\n display: flex;\n align-items: center;\n}\n\n.field > small {\n margin-top: 0.25rem;\n}\n\n.field.grid,\n.formgrid.grid {\n margin-top: 0;\n}\n\n.field.grid .col-fixed,\n.formgrid.grid .col-fixed,\n.field.grid .col,\n.formgrid.grid .col,\n.field.grid .col-1,\n.formgrid.grid .col-1,\n.field.grid .col-2,\n.formgrid.grid .col-2,\n.field.grid .col-3,\n.formgrid.grid .col-3,\n.field.grid .col-4,\n.formgrid.grid .col-4,\n.field.grid .col-5,\n.formgrid.grid .col-5,\n.field.grid .col-6,\n.formgrid.grid .col-6,\n.field.grid .col-7,\n.formgrid.grid .col-7,\n.field.grid .col-8,\n.formgrid.grid .col-8,\n.field.grid .col-9,\n.formgrid.grid .col-9,\n.field.grid .col-10,\n.formgrid.grid .col-10,\n.field.grid .col-11,\n.formgrid.grid .col-11,\n.field.grid .col-12,\n.formgrid.grid .col-12 {\n padding-top: 0;\n padding-bottom: 0;\n}\n\n.formgroup-inline {\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n}\n\n.formgroup-inline .field,\n.formgroup-inline .field-checkbox,\n.formgroup-inline .field-radiobutton {\n margin-right: 1rem;\n}\n\n.formgroup-inline .field > label,\n.formgroup-inline .field-checkbox > label,\n.formgroup-inline .field-radiobutton > label {\n margin-right: 0.5rem;\n margin-bottom: 0;\n}\n\n.field-checkbox,\n.field-radiobutton {\n margin-bottom: 1rem;\n display: flex;\n align-items: center;\n}\n\n.field-checkbox > label,\n.field-radiobutton > label {\n margin-left: 0.5rem;\n line-height: 1;\n}\n\n.hidden {\n display: none !important;\n}\n\n.block {\n display: block !important;\n}\n\n.inline {\n display: inline !important;\n}\n\n.inline-block {\n display: inline-block !important;\n}\n\n.flex {\n display: flex !important;\n}\n\n.inline-flex {\n display: inline-flex !important;\n}\n\n@media screen and (min-width: 576px) {\n .sm\\:hidden {\n display: none !important;\n }\n .sm\\:block {\n display: block !important;\n }\n .sm\\:inline {\n display: inline !important;\n }\n .sm\\:inline-block {\n display: inline-block !important;\n }\n .sm\\:flex {\n display: flex !important;\n }\n .sm\\:inline-flex {\n display: inline-flex !important;\n }\n}\n@media screen and (min-width: 768px) {\n .md\\:hidden {\n display: none !important;\n }\n .md\\:block {\n display: block !important;\n }\n .md\\:inline {\n display: inline !important;\n }\n .md\\:inline-block {\n display: inline-block !important;\n }\n .md\\:flex {\n display: flex !important;\n }\n .md\\:inline-flex {\n display: inline-flex !important;\n }\n}\n@media screen and (min-width: 992px) {\n .lg\\:hidden {\n display: none !important;\n }\n .lg\\:block {\n display: block !important;\n }\n .lg\\:inline {\n display: inline !important;\n }\n .lg\\:inline-block {\n display: inline-block !important;\n }\n .lg\\:flex {\n display: flex !important;\n }\n .lg\\:inline-flex {\n display: inline-flex !important;\n }\n}\n@media screen and (min-width: 1200px) {\n .xl\\:hidden {\n display: none !important;\n }\n .xl\\:block {\n display: block !important;\n }\n .xl\\:inline {\n display: inline !important;\n }\n .xl\\:inline-block {\n display: inline-block !important;\n }\n .xl\\:flex {\n display: flex !important;\n }\n .xl\\:inline-flex {\n display: inline-flex !important;\n }\n}\n.text-center {\n text-align: center !important;\n}\n\n.text-justify {\n text-align: justify !important;\n}\n\n.text-left {\n text-align: left !important;\n}\n\n.text-right {\n text-align: right !important;\n}\n\n@media screen and (min-width: 576px) {\n .sm\\:text-center {\n text-align: center !important;\n }\n .sm\\:text-justify {\n text-align: justify !important;\n }\n .sm\\:text-left {\n text-align: left !important;\n }\n .sm\\:text-right {\n text-align: right !important;\n }\n}\n@media screen and (min-width: 768px) {\n .md\\:text-center {\n text-align: center !important;\n }\n .md\\:text-justify {\n text-align: justify !important;\n }\n .md\\:text-left {\n text-align: left !important;\n }\n .md\\:text-right {\n text-align: right !important;\n }\n}\n@media screen and (min-width: 992px) {\n .lg\\:text-center {\n text-align: center !important;\n }\n .lg\\:text-justify {\n text-align: justify !important;\n }\n .lg\\:text-left {\n text-align: left !important;\n }\n .lg\\:text-right {\n text-align: right !important;\n }\n}\n@media screen and (min-width: 1200px) {\n .xl\\:text-center {\n text-align: center !important;\n }\n .xl\\:text-justify {\n text-align: justify !important;\n }\n .xl\\:text-left {\n text-align: left !important;\n }\n .xl\\:text-right {\n text-align: right !important;\n }\n}\n.underline {\n text-decoration: underline !important;\n}\n\n.line-through {\n text-decoration: line-through !important;\n}\n\n.no-underline {\n text-decoration: none !important;\n}\n\n.focus\\:underline:focus {\n text-decoration: underline !important;\n}\n\n.hover\\:underline:hover {\n text-decoration: underline !important;\n}\n\n.active\\:underline:active {\n text-decoration: underline !important;\n}\n\n.focus\\:line-through:focus {\n text-decoration: line-through !important;\n}\n\n.hover\\:line-through:hover {\n text-decoration: line-through !important;\n}\n\n.active\\:line-through:active {\n text-decoration: line-through !important;\n}\n\n.focus\\:no-underline:focus {\n text-decoration: none !important;\n}\n\n.hover\\:no-underline:hover {\n text-decoration: none !important;\n}\n\n.active\\:no-underline:active {\n text-decoration: none !important;\n}\n\n.lowercase {\n text-transform: lowercase !important;\n}\n\n.uppercase {\n text-transform: uppercase !important;\n}\n\n.capitalize {\n text-transform: capitalize !important;\n}\n\n.text-overflow-clip {\n text-overflow: clip !important;\n}\n\n.text-overflow-ellipsis {\n text-overflow: ellipsis !important;\n}\n\n@media screen and (min-width: 576px) {\n .sm\\:text-overflow-clip {\n text-overflow: clip !important;\n }\n .sm\\:text-overflow-ellipsis {\n text-overflow: ellipsis !important;\n }\n}\n@media screen and (min-width: 768px) {\n .md\\:text-overflow-clip {\n text-overflow: clip !important;\n }\n .md\\:text-overflow-ellipsis {\n text-overflow: ellipsis !important;\n }\n}\n@media screen and (min-width: 992px) {\n .lg\\:text-overflow-clip {\n text-overflow: clip !important;\n }\n .lg\\:text-overflow-ellipsis {\n text-overflow: ellipsis !important;\n }\n}\n@media screen and (min-width: 1200px) {\n .xl\\:text-overflow-clip {\n text-overflow: clip !important;\n }\n .xl\\:text-overflow-ellipsis {\n text-overflow: ellipsis !important;\n }\n}\n.font-light {\n font-weight: 300 !important;\n}\n\n.font-normal {\n font-weight: 400 !important;\n}\n\n.font-medium {\n font-weight: 500 !important;\n}\n\n.font-semibold {\n font-weight: 600 !important;\n}\n\n.font-bold {\n font-weight: 700 !important;\n}\n\n@media screen and (min-width: 576px) {\n .sm\\:font-light {\n font-weight: 300 !important;\n }\n .sm\\:font-normal {\n font-weight: 400 !important;\n }\n .sm\\:font-medium {\n font-weight: 500 !important;\n }\n .sm\\:font-semibold {\n font-weight: 600 !important;\n }\n .sm\\:font-bold {\n font-weight: 700 !important;\n }\n}\n@media screen and (min-width: 768px) {\n .md\\:font-light {\n font-weight: 300 !important;\n }\n .md\\:font-normal {\n font-weight: 400 !important;\n }\n .md\\:font-medium {\n font-weight: 500 !important;\n }\n .md\\:font-semibold {\n font-weight: 600 !important;\n }\n .md\\:font-bold {\n font-weight: 700 !important;\n }\n}\n@media screen and (min-width: 992px) {\n .lg\\:font-light {\n font-weight: 300 !important;\n }\n .lg\\:font-normal {\n font-weight: 400 !important;\n }\n .lg\\:font-medium {\n font-weight: 500 !important;\n }\n .lg\\:font-semibold {\n font-weight: 600 !important;\n }\n .lg\\:font-bold {\n font-weight: 700 !important;\n }\n}\n@media screen and (min-width: 1200px) {\n .xl\\:font-light {\n font-weight: 300 !important;\n }\n .xl\\:font-normal {\n font-weight: 400 !important;\n }\n .xl\\:font-medium {\n font-weight: 500 !important;\n }\n .xl\\:font-semibold {\n font-weight: 600 !important;\n }\n .xl\\:font-bold {\n font-weight: 700 !important;\n }\n}\n.font-italic {\n font-style: italic !important;\n}\n\n.text-xs {\n font-size: 0.75rem !important;\n}\n\n.text-sm {\n font-size: 0.875rem !important;\n}\n\n.text-base {\n font-size: 1rem !important;\n}\n\n.text-lg {\n font-size: 1.125rem !important;\n}\n\n.text-xl {\n font-size: 1.25rem !important;\n}\n\n.text-2xl {\n font-size: 1.5rem !important;\n}\n\n.text-3xl {\n font-size: 1.75rem !important;\n}\n\n.text-4xl {\n font-size: 2rem !important;\n}\n\n.text-5xl {\n font-size: 2.5rem !important;\n}\n\n.text-6xl {\n font-size: 3rem !important;\n}\n\n.text-7xl {\n font-size: 4rem !important;\n}\n\n.text-8xl {\n font-size: 6rem !important;\n}\n\n@media screen and (min-width: 576px) {\n .sm\\:text-xs {\n font-size: 0.75rem !important;\n }\n .sm\\:text-sm {\n font-size: 0.875rem !important;\n }\n .sm\\:text-base {\n font-size: 1rem !important;\n }\n .sm\\:text-lg {\n font-size: 1.125rem !important;\n }\n .sm\\:text-xl {\n font-size: 1.25rem !important;\n }\n .sm\\:text-2xl {\n font-size: 1.5rem !important;\n }\n .sm\\:text-3xl {\n font-size: 1.75rem !important;\n }\n .sm\\:text-4xl {\n font-size: 2rem !important;\n }\n .sm\\:text-5xl {\n font-size: 2.5rem !important;\n }\n .sm\\:text-6xl {\n font-size: 3rem !important;\n }\n .sm\\:text-7xl {\n font-size: 4rem !important;\n }\n .sm\\:text-8xl {\n font-size: 6rem !important;\n }\n}\n@media screen and (min-width: 768px) {\n .md\\:text-xs {\n font-size: 0.75rem !important;\n }\n .md\\:text-sm {\n font-size: 0.875rem !important;\n }\n .md\\:text-base {\n font-size: 1rem !important;\n }\n .md\\:text-lg {\n font-size: 1.125rem !important;\n }\n .md\\:text-xl {\n font-size: 1.25rem !important;\n }\n .md\\:text-2xl {\n font-size: 1.5rem !important;\n }\n .md\\:text-3xl {\n font-size: 1.75rem !important;\n }\n .md\\:text-4xl {\n font-size: 2rem !important;\n }\n .md\\:text-5xl {\n font-size: 2.5rem !important;\n }\n .md\\:text-6xl {\n font-size: 3rem !important;\n }\n .md\\:text-7xl {\n font-size: 4rem !important;\n }\n .md\\:text-8xl {\n font-size: 6rem !important;\n }\n}\n@media screen and (min-width: 992px) {\n .lg\\:text-xs {\n font-size: 0.75rem !important;\n }\n .lg\\:text-sm {\n font-size: 0.875rem !important;\n }\n .lg\\:text-base {\n font-size: 1rem !important;\n }\n .lg\\:text-lg {\n font-size: 1.125rem !important;\n }\n .lg\\:text-xl {\n font-size: 1.25rem !important;\n }\n .lg\\:text-2xl {\n font-size: 1.5rem !important;\n }\n .lg\\:text-3xl {\n font-size: 1.75rem !important;\n }\n .lg\\:text-4xl {\n font-size: 2rem !important;\n }\n .lg\\:text-5xl {\n font-size: 2.5rem !important;\n }\n .lg\\:text-6xl {\n font-size: 3rem !important;\n }\n .lg\\:text-7xl {\n font-size: 4rem !important;\n }\n .lg\\:text-8xl {\n font-size: 6rem !important;\n }\n}\n@media screen and (min-width: 1200px) {\n .xl\\:text-xs {\n font-size: 0.75rem !important;\n }\n .xl\\:text-sm {\n font-size: 0.875rem !important;\n }\n .xl\\:text-base {\n font-size: 1rem !important;\n }\n .xl\\:text-lg {\n font-size: 1.125rem !important;\n }\n .xl\\:text-xl {\n font-size: 1.25rem !important;\n }\n .xl\\:text-2xl {\n font-size: 1.5rem !important;\n }\n .xl\\:text-3xl {\n font-size: 1.75rem !important;\n }\n .xl\\:text-4xl {\n font-size: 2rem !important;\n }\n .xl\\:text-5xl {\n font-size: 2.5rem !important;\n }\n .xl\\:text-6xl {\n font-size: 3rem !important;\n }\n .xl\\:text-7xl {\n font-size: 4rem !important;\n }\n .xl\\:text-8xl {\n font-size: 6rem !important;\n }\n}\n.line-height-1 {\n line-height: 1 !important;\n}\n\n.line-height-2 {\n line-height: 1.25 !important;\n}\n\n.line-height-3 {\n line-height: 1.5 !important;\n}\n\n.line-height-4 {\n line-height: 2 !important;\n}\n\n.white-space-normal {\n white-space: normal !important;\n}\n\n.white-space-nowrap {\n white-space: nowrap !important;\n}\n\n.vertical-align-baseline {\n vertical-align: baseline !important;\n}\n\n.vertical-align-top {\n vertical-align: top !important;\n}\n\n.vertical-align-middle {\n vertical-align: middle !important;\n}\n\n.vertical-align-bottom {\n vertical-align: bottom !important;\n}\n\n.vertical-align-text-top {\n vertical-align: text-top !important;\n}\n\n.vertical-align-text-bottom {\n vertical-align: text-bottom !important;\n}\n\n.vertical-align-sub {\n vertical-align: sub !important;\n}\n\n.vertical-align-super {\n vertical-align: super !important;\n}\n\n@media screen and (min-width: 576px) {\n .sm\\:vertical-align-baseline {\n vertical-align: baseline !important;\n }\n .sm\\:vertical-align-top {\n vertical-align: top !important;\n }\n .sm\\:vertical-align-middle {\n vertical-align: middle !important;\n }\n .sm\\:vertical-align-bottom {\n vertical-align: bottom !important;\n }\n .sm\\:vertical-align-text-top {\n vertical-align: text-top !important;\n }\n .sm\\:vertical-align-text-bottom {\n vertical-align: text-bottom !important;\n }\n .sm\\:vertical-align-sub {\n vertical-align: sub !important;\n }\n .sm\\:vertical-align-super {\n vertical-align: super !important;\n }\n}\n@media screen and (min-width: 768px) {\n .md\\:vertical-align-baseline {\n vertical-align: baseline !important;\n }\n .md\\:vertical-align-top {\n vertical-align: top !important;\n }\n .md\\:vertical-align-middle {\n vertical-align: middle !important;\n }\n .md\\:vertical-align-bottom {\n vertical-align: bottom !important;\n }\n .md\\:vertical-align-text-top {\n vertical-align: text-top !important;\n }\n .md\\:vertical-align-text-bottom {\n vertical-align: text-bottom !important;\n }\n .md\\:vertical-align-sub {\n vertical-align: sub !important;\n }\n .md\\:vertical-align-super {\n vertical-align: super !important;\n }\n}\n@media screen and (min-width: 992px) {\n .lg\\:vertical-align-baseline {\n vertical-align: baseline !important;\n }\n .lg\\:vertical-align-top {\n vertical-align: top !important;\n }\n .lg\\:vertical-align-middle {\n vertical-align: middle !important;\n }\n .lg\\:vertical-align-bottom {\n vertical-align: bottom !important;\n }\n .lg\\:vertical-align-text-top {\n vertical-align: text-top !important;\n }\n .lg\\:vertical-align-text-bottom {\n vertical-align: text-bottom !important;\n }\n .lg\\:vertical-align-sub {\n vertical-align: sub !important;\n }\n .lg\\:vertical-align-super {\n vertical-align: super !important;\n }\n}\n@media screen and (min-width: 1200px) {\n .xl\\:vertical-align-baseline {\n vertical-align: baseline !important;\n }\n .xl\\:vertical-align-top {\n vertical-align: top !important;\n }\n .xl\\:vertical-align-middle {\n vertical-align: middle !important;\n }\n .xl\\:vertical-align-bottom {\n vertical-align: bottom !important;\n }\n .xl\\:vertical-align-text-top {\n vertical-align: text-top !important;\n }\n .xl\\:vertical-align-text-bottom {\n vertical-align: text-bottom !important;\n }\n .xl\\:vertical-align-sub {\n vertical-align: sub !important;\n }\n .xl\\:vertical-align-super {\n vertical-align: super !important;\n }\n}\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n@media screen and (min-width: 576px) {\n .sm\\:flex-row {\n flex-direction: row !important;\n }\n .sm\\:flex-row-reverse {\n flex-direction: row-reverse !important;\n }\n .sm\\:flex-column {\n flex-direction: column !important;\n }\n .sm\\:flex-column-reverse {\n flex-direction: column-reverse !important;\n }\n}\n@media screen and (min-width: 768px) {\n .md\\:flex-row {\n flex-direction: row !important;\n }\n .md\\:flex-row-reverse {\n flex-direction: row-reverse !important;\n }\n .md\\:flex-column {\n flex-direction: column !important;\n }\n .md\\:flex-column-reverse {\n flex-direction: column-reverse !important;\n }\n}\n@media screen and (min-width: 992px) {\n .lg\\:flex-row {\n flex-direction: row !important;\n }\n .lg\\:flex-row-reverse {\n flex-direction: row-reverse !important;\n }\n .lg\\:flex-column {\n flex-direction: column !important;\n }\n .lg\\:flex-column-reverse {\n flex-direction: column-reverse !important;\n }\n}\n@media screen and (min-width: 1200px) {\n .xl\\:flex-row {\n flex-direction: row !important;\n }\n .xl\\:flex-row-reverse {\n flex-direction: row-reverse !important;\n }\n .xl\\:flex-column {\n flex-direction: column !important;\n }\n .xl\\:flex-column-reverse {\n flex-direction: column-reverse !important;\n }\n}\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n@media screen and (min-width: 576px) {\n .sm\\:flex-wrap {\n flex-wrap: wrap !important;\n }\n .sm\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .sm\\:flex-nowrap {\n flex-wrap: nowrap !important;\n }\n}\n@media screen and (min-width: 768px) {\n .md\\:flex-wrap {\n flex-wrap: wrap !important;\n }\n .md\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .md\\:flex-nowrap {\n flex-wrap: nowrap !important;\n }\n}\n@media screen and (min-width: 992px) {\n .lg\\:flex-wrap {\n flex-wrap: wrap !important;\n }\n .lg\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .lg\\:flex-nowrap {\n flex-wrap: nowrap !important;\n }\n}\n@media screen and (min-width: 1200px) {\n .xl\\:flex-wrap {\n flex-wrap: wrap !important;\n }\n .xl\\:flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .xl\\:flex-nowrap {\n flex-wrap: nowrap !important;\n }\n}\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.justify-content-evenly {\n justify-content: space-evenly !important;\n}\n\n@media screen and (min-width: 576px) {\n .sm\\:justify-content-start {\n justify-content: flex-start !important;\n }\n .sm\\:justify-content-end {\n justify-content: flex-end !important;\n }\n .sm\\:justify-content-center {\n justify-content: center !important;\n }\n .sm\\:justify-content-between {\n justify-content: space-between !important;\n }\n .sm\\:justify-content-around {\n justify-content: space-around !important;\n }\n .sm\\:justify-content-evenly {\n justify-content: space-evenly !important;\n }\n}\n@media screen and (min-width: 768px) {\n .md\\:justify-content-start {\n justify-content: flex-start !important;\n }\n .md\\:justify-content-end {\n justify-content: flex-end !important;\n }\n .md\\:justify-content-center {\n justify-content: center !important;\n }\n .md\\:justify-content-between {\n justify-content: space-between !important;\n }\n .md\\:justify-content-around {\n justify-content: space-around !important;\n }\n .md\\:justify-content-evenly {\n justify-content: space-evenly !important;\n }\n}\n@media screen and (min-width: 992px) {\n .lg\\:justify-content-start {\n justify-content: flex-start !important;\n }\n .lg\\:justify-content-end {\n justify-content: flex-end !important;\n }\n .lg\\:justify-content-center {\n justify-content: center !important;\n }\n .lg\\:justify-content-between {\n justify-content: space-between !important;\n }\n .lg\\:justify-content-around {\n justify-content: space-around !important;\n }\n .lg\\:justify-content-evenly {\n justify-content: space-evenly !important;\n }\n}\n@media screen and (min-width: 1200px) {\n .xl\\:justify-content-start {\n justify-content: flex-start !important;\n }\n .xl\\:justify-content-end {\n justify-content: flex-end !important;\n }\n .xl\\:justify-content-center {\n justify-content: center !important;\n }\n .xl\\:justify-content-between {\n justify-content: space-between !important;\n }\n .xl\\:justify-content-around {\n justify-content: space-around !important;\n }\n .xl\\:justify-content-evenly {\n justify-content: space-evenly !important;\n }\n}\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-evenly {\n align-content: space-evenly !important;\n}\n\n@media screen and (min-width: 576px) {\n .sm\\:align-content-start {\n align-content: flex-start !important;\n }\n .sm\\:align-content-end {\n align-content: flex-end !important;\n }\n .sm\\:align-content-center {\n align-content: center !important;\n }\n .sm\\:align-content-between {\n align-content: space-between !important;\n }\n .sm\\:align-content-around {\n align-content: space-around !important;\n }\n .sm\\:align-content-evenly {\n align-content: space-evenly !important;\n }\n}\n@media screen and (min-width: 768px) {\n .md\\:align-content-start {\n align-content: flex-start !important;\n }\n .md\\:align-content-end {\n align-content: flex-end !important;\n }\n .md\\:align-content-center {\n align-content: center !important;\n }\n .md\\:align-content-between {\n align-content: space-between !important;\n }\n .md\\:align-content-around {\n align-content: space-around !important;\n }\n .md\\:align-content-evenly {\n align-content: space-evenly !important;\n }\n}\n@media screen and (min-width: 992px) {\n .lg\\:align-content-start {\n align-content: flex-start !important;\n }\n .lg\\:align-content-end {\n align-content: flex-end !important;\n }\n .lg\\:align-content-center {\n align-content: center !important;\n }\n .lg\\:align-content-between {\n align-content: space-between !important;\n }\n .lg\\:align-content-around {\n align-content: space-around !important;\n }\n .lg\\:align-content-evenly {\n align-content: space-evenly !important;\n }\n}\n@media screen and (min-width: 1200px) {\n .xl\\:align-content-start {\n align-content: flex-start !important;\n }\n .xl\\:align-content-end {\n align-content: flex-end !important;\n }\n .xl\\:align-content-center {\n align-content: center !important;\n }\n .xl\\:align-content-between {\n align-content: space-between !important;\n }\n .xl\\:align-content-around {\n align-content: space-around !important;\n }\n .xl\\:align-content-evenly {\n align-content: space-evenly !important;\n }\n}\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n@media screen and (min-width: 576px) {\n .sm\\:align-items-stretch {\n align-items: stretch !important;\n }\n .sm\\:align-items-start {\n align-items: flex-start !important;\n }\n .sm\\:align-items-center {\n align-items: center !important;\n }\n .sm\\:align-items-end {\n align-items: flex-end !important;\n }\n .sm\\:align-items-baseline {\n align-items: baseline !important;\n }\n}\n@media screen and (min-width: 768px) {\n .md\\:align-items-stretch {\n align-items: stretch !important;\n }\n .md\\:align-items-start {\n align-items: flex-start !important;\n }\n .md\\:align-items-center {\n align-items: center !important;\n }\n .md\\:align-items-end {\n align-items: flex-end !important;\n }\n .md\\:align-items-baseline {\n align-items: baseline !important;\n }\n}\n@media screen and (min-width: 992px) {\n .lg\\:align-items-stretch {\n align-items: stretch !important;\n }\n .lg\\:align-items-start {\n align-items: flex-start !important;\n }\n .lg\\:align-items-center {\n align-items: center !important;\n }\n .lg\\:align-items-end {\n align-items: flex-end !important;\n }\n .lg\\:align-items-baseline {\n align-items: baseline !important;\n }\n}\n@media screen and (min-width: 1200px) {\n .xl\\:align-items-stretch {\n align-items: stretch !important;\n }\n .xl\\:align-items-start {\n align-items: flex-start !important;\n }\n .xl\\:align-items-center {\n align-items: center !important;\n }\n .xl\\:align-items-end {\n align-items: flex-end !important;\n }\n .xl\\:align-items-baseline {\n align-items: baseline !important;\n }\n}\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n@media screen and (min-width: 576px) {\n .sm\\:align-self-auto {\n align-self: auto !important;\n }\n .sm\\:align-self-start {\n align-self: flex-start !important;\n }\n .sm\\:align-self-end {\n align-self: flex-end !important;\n }\n .sm\\:align-self-center {\n align-self: center !important;\n }\n .sm\\:align-self-stretch {\n align-self: stretch !important;\n }\n .sm\\:align-self-baseline {\n align-self: baseline !important;\n }\n}\n@media screen and (min-width: 768px) {\n .md\\:align-self-auto {\n align-self: auto !important;\n }\n .md\\:align-self-start {\n align-self: flex-start !important;\n }\n .md\\:align-self-end {\n align-self: flex-end !important;\n }\n .md\\:align-self-center {\n align-self: center !important;\n }\n .md\\:align-self-stretch {\n align-self: stretch !important;\n }\n .md\\:align-self-baseline {\n align-self: baseline !important;\n }\n}\n@media screen and (min-width: 992px) {\n .lg\\:align-self-auto {\n align-self: auto !important;\n }\n .lg\\:align-self-start {\n align-self: flex-start !important;\n }\n .lg\\:align-self-end {\n align-self: flex-end !important;\n }\n .lg\\:align-self-center {\n align-self: center !important;\n }\n .lg\\:align-self-stretch {\n align-self: stretch !important;\n }\n .lg\\:align-self-baseline {\n align-self: baseline !important;\n }\n}\n@media screen and (min-width: 1200px) {\n .xl\\:align-self-auto {\n align-self: auto !important;\n }\n .xl\\:align-self-start {\n align-self: flex-start !important;\n }\n .xl\\:align-self-end {\n align-self: flex-end !important;\n }\n .xl\\:align-self-center {\n align-self: center !important;\n }\n .xl\\:align-self-stretch {\n align-self: stretch !important;\n }\n .xl\\:align-self-baseline {\n align-self: baseline !important;\n }\n}\n.flex-order-0 {\n order: 0 !important;\n}\n\n.flex-order-1 {\n order: 1 !important;\n}\n\n.flex-order-2 {\n order: 2 !important;\n}\n\n.flex-order-3 {\n order: 3 !important;\n}\n\n.flex-order-4 {\n order: 4 !important;\n}\n\n.flex-order-5 {\n order: 5 !important;\n}\n\n.flex-order-6 {\n order: 6 !important;\n}\n\n@media screen and (min-width: 576px) {\n .sm\\:flex-order-0 {\n order: 0 !important;\n }\n .sm\\:flex-order-1 {\n order: 1 !important;\n }\n .sm\\:flex-order-2 {\n order: 2 !important;\n }\n .sm\\:flex-order-3 {\n order: 3 !important;\n }\n .sm\\:flex-order-4 {\n order: 4 !important;\n }\n .sm\\:flex-order-5 {\n order: 5 !important;\n }\n .sm\\:flex-order-6 {\n order: 6 !important;\n }\n}\n@media screen and (min-width: 768px) {\n .md\\:flex-order-0 {\n order: 0 !important;\n }\n .md\\:flex-order-1 {\n order: 1 !important;\n }\n .md\\:flex-order-2 {\n order: 2 !important;\n }\n .md\\:flex-order-3 {\n order: 3 !important;\n }\n .md\\:flex-order-4 {\n order: 4 !important;\n }\n .md\\:flex-order-5 {\n order: 5 !important;\n }\n .md\\:flex-order-6 {\n order: 6 !important;\n }\n}\n@media screen and (min-width: 992px) {\n .lg\\:flex-order-0 {\n order: 0 !important;\n }\n .lg\\:flex-order-1 {\n order: 1 !important;\n }\n .lg\\:flex-order-2 {\n order: 2 !important;\n }\n .lg\\:flex-order-3 {\n order: 3 !important;\n }\n .lg\\:flex-order-4 {\n order: 4 !important;\n }\n .lg\\:flex-order-5 {\n order: 5 !important;\n }\n .lg\\:flex-order-6 {\n order: 6 !important;\n }\n}\n@media screen and (min-width: 1200px) {\n .xl\\:flex-order-0 {\n order: 0 !important;\n }\n .xl\\:flex-order-1 {\n order: 1 !important;\n }\n .xl\\:flex-order-2 {\n order: 2 !important;\n }\n .xl\\:flex-order-3 {\n order: 3 !important;\n }\n .xl\\:flex-order-4 {\n order: 4 !important;\n }\n .xl\\:flex-order-5 {\n order: 5 !important;\n }\n .xl\\:flex-order-6 {\n order: 6 !important;\n }\n}\n.flex-1 {\n flex: 1 1 0% !important;\n}\n\n.flex-auto {\n flex: 1 1 auto !important;\n}\n\n.flex-initial {\n flex: 0 1 auto !important;\n}\n\n.flex-none {\n flex: none !important;\n}\n\n@media screen and (min-width: 576px) {\n .sm\\:flex-1 {\n flex: 1 1 0% !important;\n }\n .sm\\:flex-auto {\n flex: 1 1 auto !important;\n }\n .sm\\:flex-initial {\n flex: 0 1 auto !important;\n }\n .sm\\:flex-none {\n flex: none !important;\n }\n}\n@media screen and (min-width: 768px) {\n .md\\:flex-1 {\n flex: 1 1 0% !important;\n }\n .md\\:flex-auto {\n flex: 1 1 auto !important;\n }\n .md\\:flex-initial {\n flex: 0 1 auto !important;\n }\n .md\\:flex-none {\n flex: none !important;\n }\n}\n@media screen and (min-width: 992px) {\n .lg\\:flex-1 {\n flex: 1 1 0% !important;\n }\n .lg\\:flex-auto {\n flex: 1 1 auto !important;\n }\n .lg\\:flex-initial {\n flex: 0 1 auto !important;\n }\n .lg\\:flex-none {\n flex: none !important;\n }\n}\n@media screen and (min-width: 1200px) {\n .xl\\:flex-1 {\n flex: 1 1 0% !important;\n }\n .xl\\:flex-auto {\n flex: 1 1 auto !important;\n }\n .xl\\:flex-initial {\n flex: 0 1 auto !important;\n }\n .xl\\:flex-none {\n flex: none !important;\n }\n}\n.flex-grow-0 {\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n flex-grow: 1 !important;\n}\n\n@media screen and (min-width: 576px) {\n .sm\\:flex-grow-0 {\n flex-grow: 0 !important;\n }\n .sm\\:flex-grow-1 {\n flex-grow: 1 !important;\n }\n}\n@media screen and (min-width: 768px) {\n .md\\:flex-grow-0 {\n flex-grow: 0 !important;\n }\n .md\\:flex-grow-1 {\n flex-grow: 1 !important;\n }\n}\n@media screen and (min-width: 992px) {\n .lg\\:flex-grow-0 {\n flex-grow: 0 !important;\n }\n .lg\\:flex-grow-1 {\n flex-grow: 1 !important;\n }\n}\n@media screen and (min-width: 1200px) {\n .xl\\:flex-grow-0 {\n flex-grow: 0 !important;\n }\n .xl\\:flex-grow-1 {\n flex-grow: 1 !important;\n }\n}\n.flex-shrink-0 {\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n flex-shrink: 1 !important;\n}\n\n@media screen and (min-width: 576px) {\n .sm\\:flex-shrink-0 {\n flex-shrink: 0 !important;\n }\n .sm\\:flex-shrink-1 {\n flex-shrink: 1 !important;\n }\n}\n@media screen and (min-width: 768px) {\n .md\\:flex-shrink-0 {\n flex-shrink: 0 !important;\n }\n .md\\:flex-shrink-1 {\n flex-shrink: 1 !important;\n }\n}\n@media screen and (min-width: 992px) {\n .lg\\:flex-shrink-0 {\n flex-shrink: 0 !important;\n }\n .lg\\:flex-shrink-1 {\n flex-shrink: 1 !important;\n }\n}\n@media screen and (min-width: 1200px) {\n .xl\\:flex-shrink-0 {\n flex-shrink: 0 !important;\n }\n .xl\\:flex-shrink-1 {\n flex-shrink: 1 !important;\n }\n}\n.gap-0 {\n gap: 0rem !important;\n}\n\n.gap-1 {\n gap: 0.25rem !important;\n}\n\n.gap-2 {\n gap: 0.5rem !important;\n}\n\n.gap-3 {\n gap: 1rem !important;\n}\n\n.gap-4 {\n gap: 1.5rem !important;\n}\n\n.gap-5 {\n gap: 2rem !important;\n}\n\n.gap-6 {\n gap: 3rem !important;\n}\n\n.gap-7 {\n gap: 4rem !important;\n}\n\n.gap-8 {\n gap: 5rem !important;\n}\n\n.row-gap-0 {\n row-gap: 0rem !important;\n}\n\n.row-gap-1 {\n row-gap: 0.25rem !important;\n}\n\n.row-gap-2 {\n row-gap: 0.5rem !important;\n}\n\n.row-gap-3 {\n row-gap: 1rem !important;\n}\n\n.row-gap-4 {\n row-gap: 1.5rem !important;\n}\n\n.row-gap-5 {\n row-gap: 2rem !important;\n}\n\n.row-gap-6 {\n row-gap: 3rem !important;\n}\n\n.row-gap-7 {\n row-gap: 4rem !important;\n}\n\n.row-gap-8 {\n row-gap: 5rem !important;\n}\n\n.column-gap-0 {\n column-gap: 0rem !important;\n}\n\n.column-gap-1 {\n column-gap: 0.25rem !important;\n}\n\n.column-gap-2 {\n column-gap: 0.5rem !important;\n}\n\n.column-gap-3 {\n column-gap: 1rem !important;\n}\n\n.column-gap-4 {\n column-gap: 1.5rem !important;\n}\n\n.column-gap-5 {\n column-gap: 2rem !important;\n}\n\n.column-gap-6 {\n column-gap: 3rem !important;\n}\n\n.column-gap-7 {\n column-gap: 4rem !important;\n}\n\n.column-gap-8 {\n column-gap: 5rem !important;\n}\n\n@media screen and (min-width: 576px) {\n .sm\\:gap-0 {\n gap: 0rem !important;\n }\n .sm\\:gap-1 {\n gap: 0.25rem !important;\n }\n .sm\\:gap-2 {\n gap: 0.5rem !important;\n }\n .sm\\:gap-3 {\n gap: 1rem !important;\n }\n .sm\\:gap-4 {\n gap: 1.5rem !important;\n }\n .sm\\:gap-5 {\n gap: 2rem !important;\n }\n .sm\\:gap-6 {\n gap: 3rem !important;\n }\n .sm\\:gap-7 {\n gap: 4rem !important;\n }\n .sm\\:gap-8 {\n gap: 5rem !important;\n }\n .sm\\:row-gap-0 {\n row-gap: 0rem !important;\n }\n .sm\\:row-gap-1 {\n row-gap: 0.25rem !important;\n }\n .sm\\:row-gap-2 {\n row-gap: 0.5rem !important;\n }\n .sm\\:row-gap-3 {\n row-gap: 1rem !important;\n }\n .sm\\:row-gap-4 {\n row-gap: 1.5rem !important;\n }\n .sm\\:row-gap-5 {\n row-gap: 2rem !important;\n }\n .sm\\:row-gap-6 {\n row-gap: 3rem !important;\n }\n .sm\\:row-gap-7 {\n row-gap: 4rem !important;\n }\n .sm\\:row-gap-8 {\n row-gap: 5rem !important;\n }\n .sm\\:column-gap-0 {\n column-gap: 0rem !important;\n }\n .sm\\:column-gap-1 {\n column-gap: 0.25rem !important;\n }\n .sm\\:column-gap-2 {\n column-gap: 0.5rem !important;\n }\n .sm\\:column-gap-3 {\n column-gap: 1rem !important;\n }\n .sm\\:column-gap-4 {\n column-gap: 1.5rem !important;\n }\n .sm\\:column-gap-5 {\n column-gap: 2rem !important;\n }\n .sm\\:column-gap-6 {\n column-gap: 3rem !important;\n }\n .sm\\:column-gap-7 {\n column-gap: 4rem !important;\n }\n .sm\\:column-gap-8 {\n column-gap: 5rem !important;\n }\n}\n@media screen and (min-width: 768px) {\n .md\\:gap-0 {\n gap: 0rem !important;\n }\n .md\\:gap-1 {\n gap: 0.25rem !important;\n }\n .md\\:gap-2 {\n gap: 0.5rem !important;\n }\n .md\\:gap-3 {\n gap: 1rem !important;\n }\n .md\\:gap-4 {\n gap: 1.5rem !important;\n }\n .md\\:gap-5 {\n gap: 2rem !important;\n }\n .md\\:gap-6 {\n gap: 3rem !important;\n }\n .md\\:gap-7 {\n gap: 4rem !important;\n }\n .md\\:gap-8 {\n gap: 5rem !important;\n }\n .md\\:row-gap-0 {\n row-gap: 0rem !important;\n }\n .md\\:row-gap-1 {\n row-gap: 0.25rem !important;\n }\n .md\\:row-gap-2 {\n row-gap: 0.5rem !important;\n }\n .md\\:row-gap-3 {\n row-gap: 1rem !important;\n }\n .md\\:row-gap-4 {\n row-gap: 1.5rem !important;\n }\n .md\\:row-gap-5 {\n row-gap: 2rem !important;\n }\n .md\\:row-gap-6 {\n row-gap: 3rem !important;\n }\n .md\\:row-gap-7 {\n row-gap: 4rem !important;\n }\n .md\\:row-gap-8 {\n row-gap: 5rem !important;\n }\n .md\\:column-gap-0 {\n column-gap: 0rem !important;\n }\n .md\\:column-gap-1 {\n column-gap: 0.25rem !important;\n }\n .md\\:column-gap-2 {\n column-gap: 0.5rem !important;\n }\n .md\\:column-gap-3 {\n column-gap: 1rem !important;\n }\n .md\\:column-gap-4 {\n column-gap: 1.5rem !important;\n }\n .md\\:column-gap-5 {\n column-gap: 2rem !important;\n }\n .md\\:column-gap-6 {\n column-gap: 3rem !important;\n }\n .md\\:column-gap-7 {\n column-gap: 4rem !important;\n }\n .md\\:column-gap-8 {\n column-gap: 5rem !important;\n }\n}\n@media screen and (min-width: 992px) {\n .lg\\:gap-0 {\n gap: 0rem !important;\n }\n .lg\\:gap-1 {\n gap: 0.25rem !important;\n }\n .lg\\:gap-2 {\n gap: 0.5rem !important;\n }\n .lg\\:gap-3 {\n gap: 1rem !important;\n }\n .lg\\:gap-4 {\n gap: 1.5rem !important;\n }\n .lg\\:gap-5 {\n gap: 2rem !important;\n }\n .lg\\:gap-6 {\n gap: 3rem !important;\n }\n .lg\\:gap-7 {\n gap: 4rem !important;\n }\n .lg\\:gap-8 {\n gap: 5rem !important;\n }\n .lg\\:row-gap-0 {\n row-gap: 0rem !important;\n }\n .lg\\:row-gap-1 {\n row-gap: 0.25rem !important;\n }\n .lg\\:row-gap-2 {\n row-gap: 0.5rem !important;\n }\n .lg\\:row-gap-3 {\n row-gap: 1rem !important;\n }\n .lg\\:row-gap-4 {\n row-gap: 1.5rem !important;\n }\n .lg\\:row-gap-5 {\n row-gap: 2rem !important;\n }\n .lg\\:row-gap-6 {\n row-gap: 3rem !important;\n }\n .lg\\:row-gap-7 {\n row-gap: 4rem !important;\n }\n .lg\\:row-gap-8 {\n row-gap: 5rem !important;\n }\n .lg\\:column-gap-0 {\n column-gap: 0rem !important;\n }\n .lg\\:column-gap-1 {\n column-gap: 0.25rem !important;\n }\n .lg\\:column-gap-2 {\n column-gap: 0.5rem !important;\n }\n .lg\\:column-gap-3 {\n column-gap: 1rem !important;\n }\n .lg\\:column-gap-4 {\n column-gap: 1.5rem !important;\n }\n .lg\\:column-gap-5 {\n column-gap: 2rem !important;\n }\n .lg\\:column-gap-6 {\n column-gap: 3rem !important;\n }\n .lg\\:column-gap-7 {\n column-gap: 4rem !important;\n }\n .lg\\:column-gap-8 {\n column-gap: 5rem !important;\n }\n}\n@media screen and (min-width: 1200px) {\n .xl\\:gap-0 {\n gap: 0rem !important;\n }\n .xl\\:gap-1 {\n gap: 0.25rem !important;\n }\n .xl\\:gap-2 {\n gap: 0.5rem !important;\n }\n .xl\\:gap-3 {\n gap: 1rem !important;\n }\n .xl\\:gap-4 {\n gap: 1.5rem !important;\n }\n .xl\\:gap-5 {\n gap: 2rem !important;\n }\n .xl\\:gap-6 {\n gap: 3rem !important;\n }\n .xl\\:gap-7 {\n gap: 4rem !important;\n }\n .xl\\:gap-8 {\n gap: 5rem !important;\n }\n .xl\\:row-gap-0 {\n row-gap: 0rem !important;\n }\n .xl\\:row-gap-1 {\n row-gap: 0.25rem !important;\n }\n .xl\\:row-gap-2 {\n row-gap: 0.5rem !important;\n }\n .xl\\:row-gap-3 {\n row-gap: 1rem !important;\n }\n .xl\\:row-gap-4 {\n row-gap: 1.5rem !important;\n }\n .xl\\:row-gap-5 {\n row-gap: 2rem !important;\n }\n .xl\\:row-gap-6 {\n row-gap: 3rem !important;\n }\n .xl\\:row-gap-7 {\n row-gap: 4rem !important;\n }\n .xl\\:row-gap-8 {\n row-gap: 5rem !important;\n }\n .xl\\:column-gap-0 {\n column-gap: 0rem !important;\n }\n .xl\\:column-gap-1 {\n column-gap: 0.25rem !important;\n }\n .xl\\:column-gap-2 {\n column-gap: 0.5rem !important;\n }\n .xl\\:column-gap-3 {\n column-gap: 1rem !important;\n }\n .xl\\:column-gap-4 {\n column-gap: 1.5rem !important;\n }\n .xl\\:column-gap-5 {\n column-gap: 2rem !important;\n }\n .xl\\:column-gap-6 {\n column-gap: 3rem !important;\n }\n .xl\\:column-gap-7 {\n column-gap: 4rem !important;\n }\n .xl\\:column-gap-8 {\n column-gap: 5rem !important;\n }\n}\n.p-0 {\n padding: 0rem !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.p-5 {\n padding: 2rem !important;\n}\n\n.p-6 {\n padding: 3rem !important;\n}\n\n.p-7 {\n padding: 4rem !important;\n}\n\n.p-8 {\n padding: 5rem !important;\n}\n\n.pt-0 {\n padding-top: 0rem !important;\n}\n\n.pt-1 {\n padding-top: 0.25rem !important;\n}\n\n.pt-2 {\n padding-top: 0.5rem !important;\n}\n\n.pt-3 {\n padding-top: 1rem !important;\n}\n\n.pt-4 {\n padding-top: 1.5rem !important;\n}\n\n.pt-5 {\n padding-top: 2rem !important;\n}\n\n.pt-6 {\n padding-top: 3rem !important;\n}\n\n.pt-7 {\n padding-top: 4rem !important;\n}\n\n.pt-8 {\n padding-top: 5rem !important;\n}\n\n.pr-0 {\n padding-right: 0rem !important;\n}\n\n.pr-1 {\n padding-right: 0.25rem !important;\n}\n\n.pr-2 {\n padding-right: 0.5rem !important;\n}\n\n.pr-3 {\n padding-right: 1rem !important;\n}\n\n.pr-4 {\n padding-right: 1.5rem !important;\n}\n\n.pr-5 {\n padding-right: 2rem !important;\n}\n\n.pr-6 {\n padding-right: 3rem !important;\n}\n\n.pr-7 {\n padding-right: 4rem !important;\n}\n\n.pr-8 {\n padding-right: 5rem !important;\n}\n\n.pl-0 {\n padding-left: 0rem !important;\n}\n\n.pl-1 {\n padding-left: 0.25rem !important;\n}\n\n.pl-2 {\n padding-left: 0.5rem !important;\n}\n\n.pl-3 {\n padding-left: 1rem !important;\n}\n\n.pl-4 {\n padding-left: 1.5rem !important;\n}\n\n.pl-5 {\n padding-left: 2rem !important;\n}\n\n.pl-6 {\n padding-left: 3rem !important;\n}\n\n.pl-7 {\n padding-left: 4rem !important;\n}\n\n.pl-8 {\n padding-left: 5rem !important;\n}\n\n.pb-0 {\n padding-bottom: 0rem !important;\n}\n\n.pb-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pb-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pb-3 {\n padding-bottom: 1rem !important;\n}\n\n.pb-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pb-5 {\n padding-bottom: 2rem !important;\n}\n\n.pb-6 {\n padding-bottom: 3rem !important;\n}\n\n.pb-7 {\n padding-bottom: 4rem !important;\n}\n\n.pb-8 {\n padding-bottom: 5rem !important;\n}\n\n.px-0 {\n padding-left: 0rem !important;\n padding-right: 0rem !important;\n}\n\n.px-1 {\n padding-left: 0.25rem !important;\n padding-right: 0.25rem !important;\n}\n\n.px-2 {\n padding-left: 0.5rem !important;\n padding-right: 0.5rem !important;\n}\n\n.px-3 {\n padding-left: 1rem !important;\n padding-right: 1rem !important;\n}\n\n.px-4 {\n padding-left: 1.5rem !important;\n padding-right: 1.5rem !important;\n}\n\n.px-5 {\n padding-left: 2rem !important;\n padding-right: 2rem !important;\n}\n\n.px-6 {\n padding-left: 3rem !important;\n padding-right: 3rem !important;\n}\n\n.px-7 {\n padding-left: 4rem !important;\n padding-right: 4rem !important;\n}\n\n.px-8 {\n padding-left: 5rem !important;\n padding-right: 5rem !important;\n}\n\n.py-0 {\n padding-top: 0rem !important;\n padding-bottom: 0rem !important;\n}\n\n.py-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n}\n\n.py-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n}\n\n.py-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n}\n\n.py-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n}\n\n.py-5 {\n padding-top: 2rem !important;\n padding-bottom: 2rem !important;\n}\n\n.py-6 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n}\n\n.py-7 {\n padding-top: 4rem !important;\n padding-bottom: 4rem !important;\n}\n\n.py-8 {\n padding-top: 5rem !important;\n padding-bottom: 5rem !important;\n}\n\n@media screen and (min-width: 576px) {\n .sm\\:p-0 {\n padding: 0rem !important;\n }\n .sm\\:p-1 {\n padding: 0.25rem !important;\n }\n .sm\\:p-2 {\n padding: 0.5rem !important;\n }\n .sm\\:p-3 {\n padding: 1rem !important;\n }\n .sm\\:p-4 {\n padding: 1.5rem !important;\n }\n .sm\\:p-5 {\n padding: 2rem !important;\n }\n .sm\\:p-6 {\n padding: 3rem !important;\n }\n .sm\\:p-7 {\n padding: 4rem !important;\n }\n .sm\\:p-8 {\n padding: 5rem !important;\n }\n .sm\\:pt-0 {\n padding-top: 0rem !important;\n }\n .sm\\:pt-1 {\n padding-top: 0.25rem !important;\n }\n .sm\\:pt-2 {\n padding-top: 0.5rem !important;\n }\n .sm\\:pt-3 {\n padding-top: 1rem !important;\n }\n .sm\\:pt-4 {\n padding-top: 1.5rem !important;\n }\n .sm\\:pt-5 {\n padding-top: 2rem !important;\n }\n .sm\\:pt-6 {\n padding-top: 3rem !important;\n }\n .sm\\:pt-7 {\n padding-top: 4rem !important;\n }\n .sm\\:pt-8 {\n padding-top: 5rem !important;\n }\n .sm\\:pr-0 {\n padding-right: 0rem !important;\n }\n .sm\\:pr-1 {\n padding-right: 0.25rem !important;\n }\n .sm\\:pr-2 {\n padding-right: 0.5rem !important;\n }\n .sm\\:pr-3 {\n padding-right: 1rem !important;\n }\n .sm\\:pr-4 {\n padding-right: 1.5rem !important;\n }\n .sm\\:pr-5 {\n padding-right: 2rem !important;\n }\n .sm\\:pr-6 {\n padding-right: 3rem !important;\n }\n .sm\\:pr-7 {\n padding-right: 4rem !important;\n }\n .sm\\:pr-8 {\n padding-right: 5rem !important;\n }\n .sm\\:pl-0 {\n padding-left: 0rem !important;\n }\n .sm\\:pl-1 {\n padding-left: 0.25rem !important;\n }\n .sm\\:pl-2 {\n padding-left: 0.5rem !important;\n }\n .sm\\:pl-3 {\n padding-left: 1rem !important;\n }\n .sm\\:pl-4 {\n padding-left: 1.5rem !important;\n }\n .sm\\:pl-5 {\n padding-left: 2rem !important;\n }\n .sm\\:pl-6 {\n padding-left: 3rem !important;\n }\n .sm\\:pl-7 {\n padding-left: 4rem !important;\n }\n .sm\\:pl-8 {\n padding-left: 5rem !important;\n }\n .sm\\:pb-0 {\n padding-bottom: 0rem !important;\n }\n .sm\\:pb-1 {\n padding-bottom: 0.25rem !important;\n }\n .sm\\:pb-2 {\n padding-bottom: 0.5rem !important;\n }\n .sm\\:pb-3 {\n padding-bottom: 1rem !important;\n }\n .sm\\:pb-4 {\n padding-bottom: 1.5rem !important;\n }\n .sm\\:pb-5 {\n padding-bottom: 2rem !important;\n }\n .sm\\:pb-6 {\n padding-bottom: 3rem !important;\n }\n .sm\\:pb-7 {\n padding-bottom: 4rem !important;\n }\n .sm\\:pb-8 {\n padding-bottom: 5rem !important;\n }\n .sm\\:px-0 {\n padding-left: 0rem !important;\n padding-right: 0rem !important;\n }\n .sm\\:px-1 {\n padding-left: 0.25rem !important;\n padding-right: 0.25rem !important;\n }\n .sm\\:px-2 {\n padding-left: 0.5rem !important;\n padding-right: 0.5rem !important;\n }\n .sm\\:px-3 {\n padding-left: 1rem !important;\n padding-right: 1rem !important;\n }\n .sm\\:px-4 {\n padding-left: 1.5rem !important;\n padding-right: 1.5rem !important;\n }\n .sm\\:px-5 {\n padding-left: 2rem !important;\n padding-right: 2rem !important;\n }\n .sm\\:px-6 {\n padding-left: 3rem !important;\n padding-right: 3rem !important;\n }\n .sm\\:px-7 {\n padding-left: 4rem !important;\n padding-right: 4rem !important;\n }\n .sm\\:px-8 {\n padding-left: 5rem !important;\n padding-right: 5rem !important;\n }\n .sm\\:py-0 {\n padding-top: 0rem !important;\n padding-bottom: 0rem !important;\n }\n .sm\\:py-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .sm\\:py-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .sm\\:py-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .sm\\:py-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .sm\\:py-5 {\n padding-top: 2rem !important;\n padding-bottom: 2rem !important;\n }\n .sm\\:py-6 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .sm\\:py-7 {\n padding-top: 4rem !important;\n padding-bottom: 4rem !important;\n }\n .sm\\:py-8 {\n padding-top: 5rem !important;\n padding-bottom: 5rem !important;\n }\n}\n@media screen and (min-width: 768px) {\n .md\\:p-0 {\n padding: 0rem !important;\n }\n .md\\:p-1 {\n padding: 0.25rem !important;\n }\n .md\\:p-2 {\n padding: 0.5rem !important;\n }\n .md\\:p-3 {\n padding: 1rem !important;\n }\n .md\\:p-4 {\n padding: 1.5rem !important;\n }\n .md\\:p-5 {\n padding: 2rem !important;\n }\n .md\\:p-6 {\n padding: 3rem !important;\n }\n .md\\:p-7 {\n padding: 4rem !important;\n }\n .md\\:p-8 {\n padding: 5rem !important;\n }\n .md\\:pt-0 {\n padding-top: 0rem !important;\n }\n .md\\:pt-1 {\n padding-top: 0.25rem !important;\n }\n .md\\:pt-2 {\n padding-top: 0.5rem !important;\n }\n .md\\:pt-3 {\n padding-top: 1rem !important;\n }\n .md\\:pt-4 {\n padding-top: 1.5rem !important;\n }\n .md\\:pt-5 {\n padding-top: 2rem !important;\n }\n .md\\:pt-6 {\n padding-top: 3rem !important;\n }\n .md\\:pt-7 {\n padding-top: 4rem !important;\n }\n .md\\:pt-8 {\n padding-top: 5rem !important;\n }\n .md\\:pr-0 {\n padding-right: 0rem !important;\n }\n .md\\:pr-1 {\n padding-right: 0.25rem !important;\n }\n .md\\:pr-2 {\n padding-right: 0.5rem !important;\n }\n .md\\:pr-3 {\n padding-right: 1rem !important;\n }\n .md\\:pr-4 {\n padding-right: 1.5rem !important;\n }\n .md\\:pr-5 {\n padding-right: 2rem !important;\n }\n .md\\:pr-6 {\n padding-right: 3rem !important;\n }\n .md\\:pr-7 {\n padding-right: 4rem !important;\n }\n .md\\:pr-8 {\n padding-right: 5rem !important;\n }\n .md\\:pl-0 {\n padding-left: 0rem !important;\n }\n .md\\:pl-1 {\n padding-left: 0.25rem !important;\n }\n .md\\:pl-2 {\n padding-left: 0.5rem !important;\n }\n .md\\:pl-3 {\n padding-left: 1rem !important;\n }\n .md\\:pl-4 {\n padding-left: 1.5rem !important;\n }\n .md\\:pl-5 {\n padding-left: 2rem !important;\n }\n .md\\:pl-6 {\n padding-left: 3rem !important;\n }\n .md\\:pl-7 {\n padding-left: 4rem !important;\n }\n .md\\:pl-8 {\n padding-left: 5rem !important;\n }\n .md\\:pb-0 {\n padding-bottom: 0rem !important;\n }\n .md\\:pb-1 {\n padding-bottom: 0.25rem !important;\n }\n .md\\:pb-2 {\n padding-bottom: 0.5rem !important;\n }\n .md\\:pb-3 {\n padding-bottom: 1rem !important;\n }\n .md\\:pb-4 {\n padding-bottom: 1.5rem !important;\n }\n .md\\:pb-5 {\n padding-bottom: 2rem !important;\n }\n .md\\:pb-6 {\n padding-bottom: 3rem !important;\n }\n .md\\:pb-7 {\n padding-bottom: 4rem !important;\n }\n .md\\:pb-8 {\n padding-bottom: 5rem !important;\n }\n .md\\:px-0 {\n padding-left: 0rem !important;\n padding-right: 0rem !important;\n }\n .md\\:px-1 {\n padding-left: 0.25rem !important;\n padding-right: 0.25rem !important;\n }\n .md\\:px-2 {\n padding-left: 0.5rem !important;\n padding-right: 0.5rem !important;\n }\n .md\\:px-3 {\n padding-left: 1rem !important;\n padding-right: 1rem !important;\n }\n .md\\:px-4 {\n padding-left: 1.5rem !important;\n padding-right: 1.5rem !important;\n }\n .md\\:px-5 {\n padding-left: 2rem !important;\n padding-right: 2rem !important;\n }\n .md\\:px-6 {\n padding-left: 3rem !important;\n padding-right: 3rem !important;\n }\n .md\\:px-7 {\n padding-left: 4rem !important;\n padding-right: 4rem !important;\n }\n .md\\:px-8 {\n padding-left: 5rem !important;\n padding-right: 5rem !important;\n }\n .md\\:py-0 {\n padding-top: 0rem !important;\n padding-bottom: 0rem !important;\n }\n .md\\:py-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .md\\:py-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .md\\:py-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .md\\:py-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .md\\:py-5 {\n padding-top: 2rem !important;\n padding-bottom: 2rem !important;\n }\n .md\\:py-6 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .md\\:py-7 {\n padding-top: 4rem !important;\n padding-bottom: 4rem !important;\n }\n .md\\:py-8 {\n padding-top: 5rem !important;\n padding-bottom: 5rem !important;\n }\n}\n@media screen and (min-width: 992px) {\n .lg\\:p-0 {\n padding: 0rem !important;\n }\n .lg\\:p-1 {\n padding: 0.25rem !important;\n }\n .lg\\:p-2 {\n padding: 0.5rem !important;\n }\n .lg\\:p-3 {\n padding: 1rem !important;\n }\n .lg\\:p-4 {\n padding: 1.5rem !important;\n }\n .lg\\:p-5 {\n padding: 2rem !important;\n }\n .lg\\:p-6 {\n padding: 3rem !important;\n }\n .lg\\:p-7 {\n padding: 4rem !important;\n }\n .lg\\:p-8 {\n padding: 5rem !important;\n }\n .lg\\:pt-0 {\n padding-top: 0rem !important;\n }\n .lg\\:pt-1 {\n padding-top: 0.25rem !important;\n }\n .lg\\:pt-2 {\n padding-top: 0.5rem !important;\n }\n .lg\\:pt-3 {\n padding-top: 1rem !important;\n }\n .lg\\:pt-4 {\n padding-top: 1.5rem !important;\n }\n .lg\\:pt-5 {\n padding-top: 2rem !important;\n }\n .lg\\:pt-6 {\n padding-top: 3rem !important;\n }\n .lg\\:pt-7 {\n padding-top: 4rem !important;\n }\n .lg\\:pt-8 {\n padding-top: 5rem !important;\n }\n .lg\\:pr-0 {\n padding-right: 0rem !important;\n }\n .lg\\:pr-1 {\n padding-right: 0.25rem !important;\n }\n .lg\\:pr-2 {\n padding-right: 0.5rem !important;\n }\n .lg\\:pr-3 {\n padding-right: 1rem !important;\n }\n .lg\\:pr-4 {\n padding-right: 1.5rem !important;\n }\n .lg\\:pr-5 {\n padding-right: 2rem !important;\n }\n .lg\\:pr-6 {\n padding-right: 3rem !important;\n }\n .lg\\:pr-7 {\n padding-right: 4rem !important;\n }\n .lg\\:pr-8 {\n padding-right: 5rem !important;\n }\n .lg\\:pl-0 {\n padding-left: 0rem !important;\n }\n .lg\\:pl-1 {\n padding-left: 0.25rem !important;\n }\n .lg\\:pl-2 {\n padding-left: 0.5rem !important;\n }\n .lg\\:pl-3 {\n padding-left: 1rem !important;\n }\n .lg\\:pl-4 {\n padding-left: 1.5rem !important;\n }\n .lg\\:pl-5 {\n padding-left: 2rem !important;\n }\n .lg\\:pl-6 {\n padding-left: 3rem !important;\n }\n .lg\\:pl-7 {\n padding-left: 4rem !important;\n }\n .lg\\:pl-8 {\n padding-left: 5rem !important;\n }\n .lg\\:pb-0 {\n padding-bottom: 0rem !important;\n }\n .lg\\:pb-1 {\n padding-bottom: 0.25rem !important;\n }\n .lg\\:pb-2 {\n padding-bottom: 0.5rem !important;\n }\n .lg\\:pb-3 {\n padding-bottom: 1rem !important;\n }\n .lg\\:pb-4 {\n padding-bottom: 1.5rem !important;\n }\n .lg\\:pb-5 {\n padding-bottom: 2rem !important;\n }\n .lg\\:pb-6 {\n padding-bottom: 3rem !important;\n }\n .lg\\:pb-7 {\n padding-bottom: 4rem !important;\n }\n .lg\\:pb-8 {\n padding-bottom: 5rem !important;\n }\n .lg\\:px-0 {\n padding-left: 0rem !important;\n padding-right: 0rem !important;\n }\n .lg\\:px-1 {\n padding-left: 0.25rem !important;\n padding-right: 0.25rem !important;\n }\n .lg\\:px-2 {\n padding-left: 0.5rem !important;\n padding-right: 0.5rem !important;\n }\n .lg\\:px-3 {\n padding-left: 1rem !important;\n padding-right: 1rem !important;\n }\n .lg\\:px-4 {\n padding-left: 1.5rem !important;\n padding-right: 1.5rem !important;\n }\n .lg\\:px-5 {\n padding-left: 2rem !important;\n padding-right: 2rem !important;\n }\n .lg\\:px-6 {\n padding-left: 3rem !important;\n padding-right: 3rem !important;\n }\n .lg\\:px-7 {\n padding-left: 4rem !important;\n padding-right: 4rem !important;\n }\n .lg\\:px-8 {\n padding-left: 5rem !important;\n padding-right: 5rem !important;\n }\n .lg\\:py-0 {\n padding-top: 0rem !important;\n padding-bottom: 0rem !important;\n }\n .lg\\:py-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .lg\\:py-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .lg\\:py-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .lg\\:py-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .lg\\:py-5 {\n padding-top: 2rem !important;\n padding-bottom: 2rem !important;\n }\n .lg\\:py-6 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .lg\\:py-7 {\n padding-top: 4rem !important;\n padding-bottom: 4rem !important;\n }\n .lg\\:py-8 {\n padding-top: 5rem !important;\n padding-bottom: 5rem !important;\n }\n}\n@media screen and (min-width: 1200px) {\n .xl\\:p-0 {\n padding: 0rem !important;\n }\n .xl\\:p-1 {\n padding: 0.25rem !important;\n }\n .xl\\:p-2 {\n padding: 0.5rem !important;\n }\n .xl\\:p-3 {\n padding: 1rem !important;\n }\n .xl\\:p-4 {\n padding: 1.5rem !important;\n }\n .xl\\:p-5 {\n padding: 2rem !important;\n }\n .xl\\:p-6 {\n padding: 3rem !important;\n }\n .xl\\:p-7 {\n padding: 4rem !important;\n }\n .xl\\:p-8 {\n padding: 5rem !important;\n }\n .xl\\:pt-0 {\n padding-top: 0rem !important;\n }\n .xl\\:pt-1 {\n padding-top: 0.25rem !important;\n }\n .xl\\:pt-2 {\n padding-top: 0.5rem !important;\n }\n .xl\\:pt-3 {\n padding-top: 1rem !important;\n }\n .xl\\:pt-4 {\n padding-top: 1.5rem !important;\n }\n .xl\\:pt-5 {\n padding-top: 2rem !important;\n }\n .xl\\:pt-6 {\n padding-top: 3rem !important;\n }\n .xl\\:pt-7 {\n padding-top: 4rem !important;\n }\n .xl\\:pt-8 {\n padding-top: 5rem !important;\n }\n .xl\\:pr-0 {\n padding-right: 0rem !important;\n }\n .xl\\:pr-1 {\n padding-right: 0.25rem !important;\n }\n .xl\\:pr-2 {\n padding-right: 0.5rem !important;\n }\n .xl\\:pr-3 {\n padding-right: 1rem !important;\n }\n .xl\\:pr-4 {\n padding-right: 1.5rem !important;\n }\n .xl\\:pr-5 {\n padding-right: 2rem !important;\n }\n .xl\\:pr-6 {\n padding-right: 3rem !important;\n }\n .xl\\:pr-7 {\n padding-right: 4rem !important;\n }\n .xl\\:pr-8 {\n padding-right: 5rem !important;\n }\n .xl\\:pl-0 {\n padding-left: 0rem !important;\n }\n .xl\\:pl-1 {\n padding-left: 0.25rem !important;\n }\n .xl\\:pl-2 {\n padding-left: 0.5rem !important;\n }\n .xl\\:pl-3 {\n padding-left: 1rem !important;\n }\n .xl\\:pl-4 {\n padding-left: 1.5rem !important;\n }\n .xl\\:pl-5 {\n padding-left: 2rem !important;\n }\n .xl\\:pl-6 {\n padding-left: 3rem !important;\n }\n .xl\\:pl-7 {\n padding-left: 4rem !important;\n }\n .xl\\:pl-8 {\n padding-left: 5rem !important;\n }\n .xl\\:pb-0 {\n padding-bottom: 0rem !important;\n }\n .xl\\:pb-1 {\n padding-bottom: 0.25rem !important;\n }\n .xl\\:pb-2 {\n padding-bottom: 0.5rem !important;\n }\n .xl\\:pb-3 {\n padding-bottom: 1rem !important;\n }\n .xl\\:pb-4 {\n padding-bottom: 1.5rem !important;\n }\n .xl\\:pb-5 {\n padding-bottom: 2rem !important;\n }\n .xl\\:pb-6 {\n padding-bottom: 3rem !important;\n }\n .xl\\:pb-7 {\n padding-bottom: 4rem !important;\n }\n .xl\\:pb-8 {\n padding-bottom: 5rem !important;\n }\n .xl\\:px-0 {\n padding-left: 0rem !important;\n padding-right: 0rem !important;\n }\n .xl\\:px-1 {\n padding-left: 0.25rem !important;\n padding-right: 0.25rem !important;\n }\n .xl\\:px-2 {\n padding-left: 0.5rem !important;\n padding-right: 0.5rem !important;\n }\n .xl\\:px-3 {\n padding-left: 1rem !important;\n padding-right: 1rem !important;\n }\n .xl\\:px-4 {\n padding-left: 1.5rem !important;\n padding-right: 1.5rem !important;\n }\n .xl\\:px-5 {\n padding-left: 2rem !important;\n padding-right: 2rem !important;\n }\n .xl\\:px-6 {\n padding-left: 3rem !important;\n padding-right: 3rem !important;\n }\n .xl\\:px-7 {\n padding-left: 4rem !important;\n padding-right: 4rem !important;\n }\n .xl\\:px-8 {\n padding-left: 5rem !important;\n padding-right: 5rem !important;\n }\n .xl\\:py-0 {\n padding-top: 0rem !important;\n padding-bottom: 0rem !important;\n }\n .xl\\:py-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .xl\\:py-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .xl\\:py-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .xl\\:py-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .xl\\:py-5 {\n padding-top: 2rem !important;\n padding-bottom: 2rem !important;\n }\n .xl\\:py-6 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .xl\\:py-7 {\n padding-top: 4rem !important;\n padding-bottom: 4rem !important;\n }\n .xl\\:py-8 {\n padding-top: 5rem !important;\n padding-bottom: 5rem !important;\n }\n}\n.m-0 {\n margin: 0rem !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.m-5 {\n margin: 2rem !important;\n}\n\n.m-6 {\n margin: 3rem !important;\n}\n\n.m-7 {\n margin: 4rem !important;\n}\n\n.m-8 {\n margin: 5rem !important;\n}\n\n.-m-1 {\n margin: -0.25rem !important;\n}\n\n.-m-2 {\n margin: -0.5rem !important;\n}\n\n.-m-3 {\n margin: -1rem !important;\n}\n\n.-m-4 {\n margin: -1.5rem !important;\n}\n\n.-m-5 {\n margin: -2rem !important;\n}\n\n.-m-6 {\n margin: -3rem !important;\n}\n\n.-m-7 {\n margin: -4rem !important;\n}\n\n.-m-8 {\n margin: -5rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mt-0 {\n margin-top: 0rem !important;\n}\n\n.mt-1 {\n margin-top: 0.25rem !important;\n}\n\n.mt-2 {\n margin-top: 0.5rem !important;\n}\n\n.mt-3 {\n margin-top: 1rem !important;\n}\n\n.mt-4 {\n margin-top: 1.5rem !important;\n}\n\n.mt-5 {\n margin-top: 2rem !important;\n}\n\n.mt-6 {\n margin-top: 3rem !important;\n}\n\n.mt-7 {\n margin-top: 4rem !important;\n}\n\n.mt-8 {\n margin-top: 5rem !important;\n}\n\n.-mt-1 {\n margin-top: -0.25rem !important;\n}\n\n.-mt-2 {\n margin-top: -0.5rem !important;\n}\n\n.-mt-3 {\n margin-top: -1rem !important;\n}\n\n.-mt-4 {\n margin-top: -1.5rem !important;\n}\n\n.-mt-5 {\n margin-top: -2rem !important;\n}\n\n.-mt-6 {\n margin-top: -3rem !important;\n}\n\n.-mt-7 {\n margin-top: -4rem !important;\n}\n\n.-mt-8 {\n margin-top: -5rem !important;\n}\n\n.mt-auto {\n margin-top: auto !important;\n}\n\n.mr-0 {\n margin-right: 0rem !important;\n}\n\n.mr-1 {\n margin-right: 0.25rem !important;\n}\n\n.mr-2 {\n margin-right: 0.5rem !important;\n}\n\n.mr-3 {\n margin-right: 1rem !important;\n}\n\n.mr-4 {\n margin-right: 1.5rem !important;\n}\n\n.mr-5 {\n margin-right: 2rem !important;\n}\n\n.mr-6 {\n margin-right: 3rem !important;\n}\n\n.mr-7 {\n margin-right: 4rem !important;\n}\n\n.mr-8 {\n margin-right: 5rem !important;\n}\n\n.-mr-1 {\n margin-right: -0.25rem !important;\n}\n\n.-mr-2 {\n margin-right: -0.5rem !important;\n}\n\n.-mr-3 {\n margin-right: -1rem !important;\n}\n\n.-mr-4 {\n margin-right: -1.5rem !important;\n}\n\n.-mr-5 {\n margin-right: -2rem !important;\n}\n\n.-mr-6 {\n margin-right: -3rem !important;\n}\n\n.-mr-7 {\n margin-right: -4rem !important;\n}\n\n.-mr-8 {\n margin-right: -5rem !important;\n}\n\n.mr-auto {\n margin-right: auto !important;\n}\n\n.ml-0 {\n margin-left: 0rem !important;\n}\n\n.ml-1 {\n margin-left: 0.25rem !important;\n}\n\n.ml-2 {\n margin-left: 0.5rem !important;\n}\n\n.ml-3 {\n margin-left: 1rem !important;\n}\n\n.ml-4 {\n margin-left: 1.5rem !important;\n}\n\n.ml-5 {\n margin-left: 2rem !important;\n}\n\n.ml-6 {\n margin-left: 3rem !important;\n}\n\n.ml-7 {\n margin-left: 4rem !important;\n}\n\n.ml-8 {\n margin-left: 5rem !important;\n}\n\n.-ml-1 {\n margin-left: -0.25rem !important;\n}\n\n.-ml-2 {\n margin-left: -0.5rem !important;\n}\n\n.-ml-3 {\n margin-left: -1rem !important;\n}\n\n.-ml-4 {\n margin-left: -1.5rem !important;\n}\n\n.-ml-5 {\n margin-left: -2rem !important;\n}\n\n.-ml-6 {\n margin-left: -3rem !important;\n}\n\n.-ml-7 {\n margin-left: -4rem !important;\n}\n\n.-ml-8 {\n margin-left: -5rem !important;\n}\n\n.ml-auto {\n margin-left: auto !important;\n}\n\n.mb-0 {\n margin-bottom: 0rem !important;\n}\n\n.mb-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.mb-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.mb-3 {\n margin-bottom: 1rem !important;\n}\n\n.mb-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.mb-5 {\n margin-bottom: 2rem !important;\n}\n\n.mb-6 {\n margin-bottom: 3rem !important;\n}\n\n.mb-7 {\n margin-bottom: 4rem !important;\n}\n\n.mb-8 {\n margin-bottom: 5rem !important;\n}\n\n.-mb-1 {\n margin-bottom: -0.25rem !important;\n}\n\n.-mb-2 {\n margin-bottom: -0.5rem !important;\n}\n\n.-mb-3 {\n margin-bottom: -1rem !important;\n}\n\n.-mb-4 {\n margin-bottom: -1.5rem !important;\n}\n\n.-mb-5 {\n margin-bottom: -2rem !important;\n}\n\n.-mb-6 {\n margin-bottom: -3rem !important;\n}\n\n.-mb-7 {\n margin-bottom: -4rem !important;\n}\n\n.-mb-8 {\n margin-bottom: -5rem !important;\n}\n\n.mb-auto {\n margin-bottom: auto !important;\n}\n\n.mx-0 {\n margin-left: 0rem !important;\n margin-right: 0rem !important;\n}\n\n.mx-1 {\n margin-left: 0.25rem !important;\n margin-right: 0.25rem !important;\n}\n\n.mx-2 {\n margin-left: 0.5rem !important;\n margin-right: 0.5rem !important;\n}\n\n.mx-3 {\n margin-left: 1rem !important;\n margin-right: 1rem !important;\n}\n\n.mx-4 {\n margin-left: 1.5rem !important;\n margin-right: 1.5rem !important;\n}\n\n.mx-5 {\n margin-left: 2rem !important;\n margin-right: 2rem !important;\n}\n\n.mx-6 {\n margin-left: 3rem !important;\n margin-right: 3rem !important;\n}\n\n.mx-7 {\n margin-left: 4rem !important;\n margin-right: 4rem !important;\n}\n\n.mx-8 {\n margin-left: 5rem !important;\n margin-right: 5rem !important;\n}\n\n.-mx-1 {\n margin-left: -0.25rem !important;\n margin-right: -0.25rem !important;\n}\n\n.-mx-2 {\n margin-left: -0.5rem !important;\n margin-right: -0.5rem !important;\n}\n\n.-mx-3 {\n margin-left: -1rem !important;\n margin-right: -1rem !important;\n}\n\n.-mx-4 {\n margin-left: -1.5rem !important;\n margin-right: -1.5rem !important;\n}\n\n.-mx-5 {\n margin-left: -2rem !important;\n margin-right: -2rem !important;\n}\n\n.-mx-6 {\n margin-left: -3rem !important;\n margin-right: -3rem !important;\n}\n\n.-mx-7 {\n margin-left: -4rem !important;\n margin-right: -4rem !important;\n}\n\n.-mx-8 {\n margin-left: -5rem !important;\n margin-right: -5rem !important;\n}\n\n.mx-auto {\n margin-left: auto !important;\n margin-right: auto !important;\n}\n\n.my-0 {\n margin-top: 0rem !important;\n margin-bottom: 0rem !important;\n}\n\n.my-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n}\n\n.my-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n}\n\n.my-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n}\n\n.my-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n}\n\n.my-5 {\n margin-top: 2rem !important;\n margin-bottom: 2rem !important;\n}\n\n.my-6 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n}\n\n.my-7 {\n margin-top: 4rem !important;\n margin-bottom: 4rem !important;\n}\n\n.my-8 {\n margin-top: 5rem !important;\n margin-bottom: 5rem !important;\n}\n\n.-my-1 {\n margin-top: -0.25rem !important;\n margin-bottom: -0.25rem !important;\n}\n\n.-my-2 {\n margin-top: -0.5rem !important;\n margin-bottom: -0.5rem !important;\n}\n\n.-my-3 {\n margin-top: -1rem !important;\n margin-bottom: -1rem !important;\n}\n\n.-my-4 {\n margin-top: -1.5rem !important;\n margin-bottom: -1.5rem !important;\n}\n\n.-my-5 {\n margin-top: -2rem !important;\n margin-bottom: -2rem !important;\n}\n\n.-my-6 {\n margin-top: -3rem !important;\n margin-bottom: -3rem !important;\n}\n\n.-my-7 {\n margin-top: -4rem !important;\n margin-bottom: -4rem !important;\n}\n\n.-my-8 {\n margin-top: -5rem !important;\n margin-bottom: -5rem !important;\n}\n\n.my-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n}\n\n@media screen and (min-width: 576px) {\n .sm\\:m-0 {\n margin: 0rem !important;\n }\n .sm\\:m-1 {\n margin: 0.25rem !important;\n }\n .sm\\:m-2 {\n margin: 0.5rem !important;\n }\n .sm\\:m-3 {\n margin: 1rem !important;\n }\n .sm\\:m-4 {\n margin: 1.5rem !important;\n }\n .sm\\:m-5 {\n margin: 2rem !important;\n }\n .sm\\:m-6 {\n margin: 3rem !important;\n }\n .sm\\:m-7 {\n margin: 4rem !important;\n }\n .sm\\:m-8 {\n margin: 5rem !important;\n }\n .sm\\:-m-1 {\n margin: -0.25rem !important;\n }\n .sm\\:-m-2 {\n margin: -0.5rem !important;\n }\n .sm\\:-m-3 {\n margin: -1rem !important;\n }\n .sm\\:-m-4 {\n margin: -1.5rem !important;\n }\n .sm\\:-m-5 {\n margin: -2rem !important;\n }\n .sm\\:-m-6 {\n margin: -3rem !important;\n }\n .sm\\:-m-7 {\n margin: -4rem !important;\n }\n .sm\\:-m-8 {\n margin: -5rem !important;\n }\n .sm\\:m-auto {\n margin: auto !important;\n }\n .sm\\:mt-0 {\n margin-top: 0rem !important;\n }\n .sm\\:mt-1 {\n margin-top: 0.25rem !important;\n }\n .sm\\:mt-2 {\n margin-top: 0.5rem !important;\n }\n .sm\\:mt-3 {\n margin-top: 1rem !important;\n }\n .sm\\:mt-4 {\n margin-top: 1.5rem !important;\n }\n .sm\\:mt-5 {\n margin-top: 2rem !important;\n }\n .sm\\:mt-6 {\n margin-top: 3rem !important;\n }\n .sm\\:mt-7 {\n margin-top: 4rem !important;\n }\n .sm\\:mt-8 {\n margin-top: 5rem !important;\n }\n .sm\\:-mt-1 {\n margin-top: -0.25rem !important;\n }\n .sm\\:-mt-2 {\n margin-top: -0.5rem !important;\n }\n .sm\\:-mt-3 {\n margin-top: -1rem !important;\n }\n .sm\\:-mt-4 {\n margin-top: -1.5rem !important;\n }\n .sm\\:-mt-5 {\n margin-top: -2rem !important;\n }\n .sm\\:-mt-6 {\n margin-top: -3rem !important;\n }\n .sm\\:-mt-7 {\n margin-top: -4rem !important;\n }\n .sm\\:-mt-8 {\n margin-top: -5rem !important;\n }\n .sm\\:mt-auto {\n margin-top: auto !important;\n }\n .sm\\:mr-0 {\n margin-right: 0rem !important;\n }\n .sm\\:mr-1 {\n margin-right: 0.25rem !important;\n }\n .sm\\:mr-2 {\n margin-right: 0.5rem !important;\n }\n .sm\\:mr-3 {\n margin-right: 1rem !important;\n }\n .sm\\:mr-4 {\n margin-right: 1.5rem !important;\n }\n .sm\\:mr-5 {\n margin-right: 2rem !important;\n }\n .sm\\:mr-6 {\n margin-right: 3rem !important;\n }\n .sm\\:mr-7 {\n margin-right: 4rem !important;\n }\n .sm\\:mr-8 {\n margin-right: 5rem !important;\n }\n .sm\\:-mr-1 {\n margin-right: -0.25rem !important;\n }\n .sm\\:-mr-2 {\n margin-right: -0.5rem !important;\n }\n .sm\\:-mr-3 {\n margin-right: -1rem !important;\n }\n .sm\\:-mr-4 {\n margin-right: -1.5rem !important;\n }\n .sm\\:-mr-5 {\n margin-right: -2rem !important;\n }\n .sm\\:-mr-6 {\n margin-right: -3rem !important;\n }\n .sm\\:-mr-7 {\n margin-right: -4rem !important;\n }\n .sm\\:-mr-8 {\n margin-right: -5rem !important;\n }\n .sm\\:mr-auto {\n margin-right: auto !important;\n }\n .sm\\:ml-0 {\n margin-left: 0rem !important;\n }\n .sm\\:ml-1 {\n margin-left: 0.25rem !important;\n }\n .sm\\:ml-2 {\n margin-left: 0.5rem !important;\n }\n .sm\\:ml-3 {\n margin-left: 1rem !important;\n }\n .sm\\:ml-4 {\n margin-left: 1.5rem !important;\n }\n .sm\\:ml-5 {\n margin-left: 2rem !important;\n }\n .sm\\:ml-6 {\n margin-left: 3rem !important;\n }\n .sm\\:ml-7 {\n margin-left: 4rem !important;\n }\n .sm\\:ml-8 {\n margin-left: 5rem !important;\n }\n .sm\\:-ml-1 {\n margin-left: -0.25rem !important;\n }\n .sm\\:-ml-2 {\n margin-left: -0.5rem !important;\n }\n .sm\\:-ml-3 {\n margin-left: -1rem !important;\n }\n .sm\\:-ml-4 {\n margin-left: -1.5rem !important;\n }\n .sm\\:-ml-5 {\n margin-left: -2rem !important;\n }\n .sm\\:-ml-6 {\n margin-left: -3rem !important;\n }\n .sm\\:-ml-7 {\n margin-left: -4rem !important;\n }\n .sm\\:-ml-8 {\n margin-left: -5rem !important;\n }\n .sm\\:ml-auto {\n margin-left: auto !important;\n }\n .sm\\:mb-0 {\n margin-bottom: 0rem !important;\n }\n .sm\\:mb-1 {\n margin-bottom: 0.25rem !important;\n }\n .sm\\:mb-2 {\n margin-bottom: 0.5rem !important;\n }\n .sm\\:mb-3 {\n margin-bottom: 1rem !important;\n }\n .sm\\:mb-4 {\n margin-bottom: 1.5rem !important;\n }\n .sm\\:mb-5 {\n margin-bottom: 2rem !important;\n }\n .sm\\:mb-6 {\n margin-bottom: 3rem !important;\n }\n .sm\\:mb-7 {\n margin-bottom: 4rem !important;\n }\n .sm\\:mb-8 {\n margin-bottom: 5rem !important;\n }\n .sm\\:-mb-1 {\n margin-bottom: -0.25rem !important;\n }\n .sm\\:-mb-2 {\n margin-bottom: -0.5rem !important;\n }\n .sm\\:-mb-3 {\n margin-bottom: -1rem !important;\n }\n .sm\\:-mb-4 {\n margin-bottom: -1.5rem !important;\n }\n .sm\\:-mb-5 {\n margin-bottom: -2rem !important;\n }\n .sm\\:-mb-6 {\n margin-bottom: -3rem !important;\n }\n .sm\\:-mb-7 {\n margin-bottom: -4rem !important;\n }\n .sm\\:-mb-8 {\n margin-bottom: -5rem !important;\n }\n .sm\\:mb-auto {\n margin-bottom: auto !important;\n }\n .sm\\:mx-0 {\n margin-left: 0rem !important;\n margin-right: 0rem !important;\n }\n .sm\\:mx-1 {\n margin-left: 0.25rem !important;\n margin-right: 0.25rem !important;\n }\n .sm\\:mx-2 {\n margin-left: 0.5rem !important;\n margin-right: 0.5rem !important;\n }\n .sm\\:mx-3 {\n margin-left: 1rem !important;\n margin-right: 1rem !important;\n }\n .sm\\:mx-4 {\n margin-left: 1.5rem !important;\n margin-right: 1.5rem !important;\n }\n .sm\\:mx-5 {\n margin-left: 2rem !important;\n margin-right: 2rem !important;\n }\n .sm\\:mx-6 {\n margin-left: 3rem !important;\n margin-right: 3rem !important;\n }\n .sm\\:mx-7 {\n margin-left: 4rem !important;\n margin-right: 4rem !important;\n }\n .sm\\:mx-8 {\n margin-left: 5rem !important;\n margin-right: 5rem !important;\n }\n .sm\\:-mx-1 {\n margin-left: -0.25rem !important;\n margin-right: -0.25rem !important;\n }\n .sm\\:-mx-2 {\n margin-left: -0.5rem !important;\n margin-right: -0.5rem !important;\n }\n .sm\\:-mx-3 {\n margin-left: -1rem !important;\n margin-right: -1rem !important;\n }\n .sm\\:-mx-4 {\n margin-left: -1.5rem !important;\n margin-right: -1.5rem !important;\n }\n .sm\\:-mx-5 {\n margin-left: -2rem !important;\n margin-right: -2rem !important;\n }\n .sm\\:-mx-6 {\n margin-left: -3rem !important;\n margin-right: -3rem !important;\n }\n .sm\\:-mx-7 {\n margin-left: -4rem !important;\n margin-right: -4rem !important;\n }\n .sm\\:-mx-8 {\n margin-left: -5rem !important;\n margin-right: -5rem !important;\n }\n .sm\\:mx-auto {\n margin-left: auto !important;\n margin-right: auto !important;\n }\n .sm\\:my-0 {\n margin-top: 0rem !important;\n margin-bottom: 0rem !important;\n }\n .sm\\:my-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .sm\\:my-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .sm\\:my-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .sm\\:my-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .sm\\:my-5 {\n margin-top: 2rem !important;\n margin-bottom: 2rem !important;\n }\n .sm\\:my-6 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .sm\\:my-7 {\n margin-top: 4rem !important;\n margin-bottom: 4rem !important;\n }\n .sm\\:my-8 {\n margin-top: 5rem !important;\n margin-bottom: 5rem !important;\n }\n .sm\\:-my-1 {\n margin-top: -0.25rem !important;\n margin-bottom: -0.25rem !important;\n }\n .sm\\:-my-2 {\n margin-top: -0.5rem !important;\n margin-bottom: -0.5rem !important;\n }\n .sm\\:-my-3 {\n margin-top: -1rem !important;\n margin-bottom: -1rem !important;\n }\n .sm\\:-my-4 {\n margin-top: -1.5rem !important;\n margin-bottom: -1.5rem !important;\n }\n .sm\\:-my-5 {\n margin-top: -2rem !important;\n margin-bottom: -2rem !important;\n }\n .sm\\:-my-6 {\n margin-top: -3rem !important;\n margin-bottom: -3rem !important;\n }\n .sm\\:-my-7 {\n margin-top: -4rem !important;\n margin-bottom: -4rem !important;\n }\n .sm\\:-my-8 {\n margin-top: -5rem !important;\n margin-bottom: -5rem !important;\n }\n .sm\\:my-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n}\n@media screen and (min-width: 768px) {\n .md\\:m-0 {\n margin: 0rem !important;\n }\n .md\\:m-1 {\n margin: 0.25rem !important;\n }\n .md\\:m-2 {\n margin: 0.5rem !important;\n }\n .md\\:m-3 {\n margin: 1rem !important;\n }\n .md\\:m-4 {\n margin: 1.5rem !important;\n }\n .md\\:m-5 {\n margin: 2rem !important;\n }\n .md\\:m-6 {\n margin: 3rem !important;\n }\n .md\\:m-7 {\n margin: 4rem !important;\n }\n .md\\:m-8 {\n margin: 5rem !important;\n }\n .md\\:-m-1 {\n margin: -0.25rem !important;\n }\n .md\\:-m-2 {\n margin: -0.5rem !important;\n }\n .md\\:-m-3 {\n margin: -1rem !important;\n }\n .md\\:-m-4 {\n margin: -1.5rem !important;\n }\n .md\\:-m-5 {\n margin: -2rem !important;\n }\n .md\\:-m-6 {\n margin: -3rem !important;\n }\n .md\\:-m-7 {\n margin: -4rem !important;\n }\n .md\\:-m-8 {\n margin: -5rem !important;\n }\n .md\\:m-auto {\n margin: auto !important;\n }\n .md\\:mt-0 {\n margin-top: 0rem !important;\n }\n .md\\:mt-1 {\n margin-top: 0.25rem !important;\n }\n .md\\:mt-2 {\n margin-top: 0.5rem !important;\n }\n .md\\:mt-3 {\n margin-top: 1rem !important;\n }\n .md\\:mt-4 {\n margin-top: 1.5rem !important;\n }\n .md\\:mt-5 {\n margin-top: 2rem !important;\n }\n .md\\:mt-6 {\n margin-top: 3rem !important;\n }\n .md\\:mt-7 {\n margin-top: 4rem !important;\n }\n .md\\:mt-8 {\n margin-top: 5rem !important;\n }\n .md\\:-mt-1 {\n margin-top: -0.25rem !important;\n }\n .md\\:-mt-2 {\n margin-top: -0.5rem !important;\n }\n .md\\:-mt-3 {\n margin-top: -1rem !important;\n }\n .md\\:-mt-4 {\n margin-top: -1.5rem !important;\n }\n .md\\:-mt-5 {\n margin-top: -2rem !important;\n }\n .md\\:-mt-6 {\n margin-top: -3rem !important;\n }\n .md\\:-mt-7 {\n margin-top: -4rem !important;\n }\n .md\\:-mt-8 {\n margin-top: -5rem !important;\n }\n .md\\:mt-auto {\n margin-top: auto !important;\n }\n .md\\:mr-0 {\n margin-right: 0rem !important;\n }\n .md\\:mr-1 {\n margin-right: 0.25rem !important;\n }\n .md\\:mr-2 {\n margin-right: 0.5rem !important;\n }\n .md\\:mr-3 {\n margin-right: 1rem !important;\n }\n .md\\:mr-4 {\n margin-right: 1.5rem !important;\n }\n .md\\:mr-5 {\n margin-right: 2rem !important;\n }\n .md\\:mr-6 {\n margin-right: 3rem !important;\n }\n .md\\:mr-7 {\n margin-right: 4rem !important;\n }\n .md\\:mr-8 {\n margin-right: 5rem !important;\n }\n .md\\:-mr-1 {\n margin-right: -0.25rem !important;\n }\n .md\\:-mr-2 {\n margin-right: -0.5rem !important;\n }\n .md\\:-mr-3 {\n margin-right: -1rem !important;\n }\n .md\\:-mr-4 {\n margin-right: -1.5rem !important;\n }\n .md\\:-mr-5 {\n margin-right: -2rem !important;\n }\n .md\\:-mr-6 {\n margin-right: -3rem !important;\n }\n .md\\:-mr-7 {\n margin-right: -4rem !important;\n }\n .md\\:-mr-8 {\n margin-right: -5rem !important;\n }\n .md\\:mr-auto {\n margin-right: auto !important;\n }\n .md\\:ml-0 {\n margin-left: 0rem !important;\n }\n .md\\:ml-1 {\n margin-left: 0.25rem !important;\n }\n .md\\:ml-2 {\n margin-left: 0.5rem !important;\n }\n .md\\:ml-3 {\n margin-left: 1rem !important;\n }\n .md\\:ml-4 {\n margin-left: 1.5rem !important;\n }\n .md\\:ml-5 {\n margin-left: 2rem !important;\n }\n .md\\:ml-6 {\n margin-left: 3rem !important;\n }\n .md\\:ml-7 {\n margin-left: 4rem !important;\n }\n .md\\:ml-8 {\n margin-left: 5rem !important;\n }\n .md\\:-ml-1 {\n margin-left: -0.25rem !important;\n }\n .md\\:-ml-2 {\n margin-left: -0.5rem !important;\n }\n .md\\:-ml-3 {\n margin-left: -1rem !important;\n }\n .md\\:-ml-4 {\n margin-left: -1.5rem !important;\n }\n .md\\:-ml-5 {\n margin-left: -2rem !important;\n }\n .md\\:-ml-6 {\n margin-left: -3rem !important;\n }\n .md\\:-ml-7 {\n margin-left: -4rem !important;\n }\n .md\\:-ml-8 {\n margin-left: -5rem !important;\n }\n .md\\:ml-auto {\n margin-left: auto !important;\n }\n .md\\:mb-0 {\n margin-bottom: 0rem !important;\n }\n .md\\:mb-1 {\n margin-bottom: 0.25rem !important;\n }\n .md\\:mb-2 {\n margin-bottom: 0.5rem !important;\n }\n .md\\:mb-3 {\n margin-bottom: 1rem !important;\n }\n .md\\:mb-4 {\n margin-bottom: 1.5rem !important;\n }\n .md\\:mb-5 {\n margin-bottom: 2rem !important;\n }\n .md\\:mb-6 {\n margin-bottom: 3rem !important;\n }\n .md\\:mb-7 {\n margin-bottom: 4rem !important;\n }\n .md\\:mb-8 {\n margin-bottom: 5rem !important;\n }\n .md\\:-mb-1 {\n margin-bottom: -0.25rem !important;\n }\n .md\\:-mb-2 {\n margin-bottom: -0.5rem !important;\n }\n .md\\:-mb-3 {\n margin-bottom: -1rem !important;\n }\n .md\\:-mb-4 {\n margin-bottom: -1.5rem !important;\n }\n .md\\:-mb-5 {\n margin-bottom: -2rem !important;\n }\n .md\\:-mb-6 {\n margin-bottom: -3rem !important;\n }\n .md\\:-mb-7 {\n margin-bottom: -4rem !important;\n }\n .md\\:-mb-8 {\n margin-bottom: -5rem !important;\n }\n .md\\:mb-auto {\n margin-bottom: auto !important;\n }\n .md\\:mx-0 {\n margin-left: 0rem !important;\n margin-right: 0rem !important;\n }\n .md\\:mx-1 {\n margin-left: 0.25rem !important;\n margin-right: 0.25rem !important;\n }\n .md\\:mx-2 {\n margin-left: 0.5rem !important;\n margin-right: 0.5rem !important;\n }\n .md\\:mx-3 {\n margin-left: 1rem !important;\n margin-right: 1rem !important;\n }\n .md\\:mx-4 {\n margin-left: 1.5rem !important;\n margin-right: 1.5rem !important;\n }\n .md\\:mx-5 {\n margin-left: 2rem !important;\n margin-right: 2rem !important;\n }\n .md\\:mx-6 {\n margin-left: 3rem !important;\n margin-right: 3rem !important;\n }\n .md\\:mx-7 {\n margin-left: 4rem !important;\n margin-right: 4rem !important;\n }\n .md\\:mx-8 {\n margin-left: 5rem !important;\n margin-right: 5rem !important;\n }\n .md\\:-mx-1 {\n margin-left: -0.25rem !important;\n margin-right: -0.25rem !important;\n }\n .md\\:-mx-2 {\n margin-left: -0.5rem !important;\n margin-right: -0.5rem !important;\n }\n .md\\:-mx-3 {\n margin-left: -1rem !important;\n margin-right: -1rem !important;\n }\n .md\\:-mx-4 {\n margin-left: -1.5rem !important;\n margin-right: -1.5rem !important;\n }\n .md\\:-mx-5 {\n margin-left: -2rem !important;\n margin-right: -2rem !important;\n }\n .md\\:-mx-6 {\n margin-left: -3rem !important;\n margin-right: -3rem !important;\n }\n .md\\:-mx-7 {\n margin-left: -4rem !important;\n margin-right: -4rem !important;\n }\n .md\\:-mx-8 {\n margin-left: -5rem !important;\n margin-right: -5rem !important;\n }\n .md\\:mx-auto {\n margin-left: auto !important;\n margin-right: auto !important;\n }\n .md\\:my-0 {\n margin-top: 0rem !important;\n margin-bottom: 0rem !important;\n }\n .md\\:my-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .md\\:my-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .md\\:my-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .md\\:my-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .md\\:my-5 {\n margin-top: 2rem !important;\n margin-bottom: 2rem !important;\n }\n .md\\:my-6 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .md\\:my-7 {\n margin-top: 4rem !important;\n margin-bottom: 4rem !important;\n }\n .md\\:my-8 {\n margin-top: 5rem !important;\n margin-bottom: 5rem !important;\n }\n .md\\:-my-1 {\n margin-top: -0.25rem !important;\n margin-bottom: -0.25rem !important;\n }\n .md\\:-my-2 {\n margin-top: -0.5rem !important;\n margin-bottom: -0.5rem !important;\n }\n .md\\:-my-3 {\n margin-top: -1rem !important;\n margin-bottom: -1rem !important;\n }\n .md\\:-my-4 {\n margin-top: -1.5rem !important;\n margin-bottom: -1.5rem !important;\n }\n .md\\:-my-5 {\n margin-top: -2rem !important;\n margin-bottom: -2rem !important;\n }\n .md\\:-my-6 {\n margin-top: -3rem !important;\n margin-bottom: -3rem !important;\n }\n .md\\:-my-7 {\n margin-top: -4rem !important;\n margin-bottom: -4rem !important;\n }\n .md\\:-my-8 {\n margin-top: -5rem !important;\n margin-bottom: -5rem !important;\n }\n .md\\:my-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n}\n@media screen and (min-width: 992px) {\n .lg\\:m-0 {\n margin: 0rem !important;\n }\n .lg\\:m-1 {\n margin: 0.25rem !important;\n }\n .lg\\:m-2 {\n margin: 0.5rem !important;\n }\n .lg\\:m-3 {\n margin: 1rem !important;\n }\n .lg\\:m-4 {\n margin: 1.5rem !important;\n }\n .lg\\:m-5 {\n margin: 2rem !important;\n }\n .lg\\:m-6 {\n margin: 3rem !important;\n }\n .lg\\:m-7 {\n margin: 4rem !important;\n }\n .lg\\:m-8 {\n margin: 5rem !important;\n }\n .lg\\:-m-1 {\n margin: -0.25rem !important;\n }\n .lg\\:-m-2 {\n margin: -0.5rem !important;\n }\n .lg\\:-m-3 {\n margin: -1rem !important;\n }\n .lg\\:-m-4 {\n margin: -1.5rem !important;\n }\n .lg\\:-m-5 {\n margin: -2rem !important;\n }\n .lg\\:-m-6 {\n margin: -3rem !important;\n }\n .lg\\:-m-7 {\n margin: -4rem !important;\n }\n .lg\\:-m-8 {\n margin: -5rem !important;\n }\n .lg\\:m-auto {\n margin: auto !important;\n }\n .lg\\:mt-0 {\n margin-top: 0rem !important;\n }\n .lg\\:mt-1 {\n margin-top: 0.25rem !important;\n }\n .lg\\:mt-2 {\n margin-top: 0.5rem !important;\n }\n .lg\\:mt-3 {\n margin-top: 1rem !important;\n }\n .lg\\:mt-4 {\n margin-top: 1.5rem !important;\n }\n .lg\\:mt-5 {\n margin-top: 2rem !important;\n }\n .lg\\:mt-6 {\n margin-top: 3rem !important;\n }\n .lg\\:mt-7 {\n margin-top: 4rem !important;\n }\n .lg\\:mt-8 {\n margin-top: 5rem !important;\n }\n .lg\\:-mt-1 {\n margin-top: -0.25rem !important;\n }\n .lg\\:-mt-2 {\n margin-top: -0.5rem !important;\n }\n .lg\\:-mt-3 {\n margin-top: -1rem !important;\n }\n .lg\\:-mt-4 {\n margin-top: -1.5rem !important;\n }\n .lg\\:-mt-5 {\n margin-top: -2rem !important;\n }\n .lg\\:-mt-6 {\n margin-top: -3rem !important;\n }\n .lg\\:-mt-7 {\n margin-top: -4rem !important;\n }\n .lg\\:-mt-8 {\n margin-top: -5rem !important;\n }\n .lg\\:mt-auto {\n margin-top: auto !important;\n }\n .lg\\:mr-0 {\n margin-right: 0rem !important;\n }\n .lg\\:mr-1 {\n margin-right: 0.25rem !important;\n }\n .lg\\:mr-2 {\n margin-right: 0.5rem !important;\n }\n .lg\\:mr-3 {\n margin-right: 1rem !important;\n }\n .lg\\:mr-4 {\n margin-right: 1.5rem !important;\n }\n .lg\\:mr-5 {\n margin-right: 2rem !important;\n }\n .lg\\:mr-6 {\n margin-right: 3rem !important;\n }\n .lg\\:mr-7 {\n margin-right: 4rem !important;\n }\n .lg\\:mr-8 {\n margin-right: 5rem !important;\n }\n .lg\\:-mr-1 {\n margin-right: -0.25rem !important;\n }\n .lg\\:-mr-2 {\n margin-right: -0.5rem !important;\n }\n .lg\\:-mr-3 {\n margin-right: -1rem !important;\n }\n .lg\\:-mr-4 {\n margin-right: -1.5rem !important;\n }\n .lg\\:-mr-5 {\n margin-right: -2rem !important;\n }\n .lg\\:-mr-6 {\n margin-right: -3rem !important;\n }\n .lg\\:-mr-7 {\n margin-right: -4rem !important;\n }\n .lg\\:-mr-8 {\n margin-right: -5rem !important;\n }\n .lg\\:mr-auto {\n margin-right: auto !important;\n }\n .lg\\:ml-0 {\n margin-left: 0rem !important;\n }\n .lg\\:ml-1 {\n margin-left: 0.25rem !important;\n }\n .lg\\:ml-2 {\n margin-left: 0.5rem !important;\n }\n .lg\\:ml-3 {\n margin-left: 1rem !important;\n }\n .lg\\:ml-4 {\n margin-left: 1.5rem !important;\n }\n .lg\\:ml-5 {\n margin-left: 2rem !important;\n }\n .lg\\:ml-6 {\n margin-left: 3rem !important;\n }\n .lg\\:ml-7 {\n margin-left: 4rem !important;\n }\n .lg\\:ml-8 {\n margin-left: 5rem !important;\n }\n .lg\\:-ml-1 {\n margin-left: -0.25rem !important;\n }\n .lg\\:-ml-2 {\n margin-left: -0.5rem !important;\n }\n .lg\\:-ml-3 {\n margin-left: -1rem !important;\n }\n .lg\\:-ml-4 {\n margin-left: -1.5rem !important;\n }\n .lg\\:-ml-5 {\n margin-left: -2rem !important;\n }\n .lg\\:-ml-6 {\n margin-left: -3rem !important;\n }\n .lg\\:-ml-7 {\n margin-left: -4rem !important;\n }\n .lg\\:-ml-8 {\n margin-left: -5rem !important;\n }\n .lg\\:ml-auto {\n margin-left: auto !important;\n }\n .lg\\:mb-0 {\n margin-bottom: 0rem !important;\n }\n .lg\\:mb-1 {\n margin-bottom: 0.25rem !important;\n }\n .lg\\:mb-2 {\n margin-bottom: 0.5rem !important;\n }\n .lg\\:mb-3 {\n margin-bottom: 1rem !important;\n }\n .lg\\:mb-4 {\n margin-bottom: 1.5rem !important;\n }\n .lg\\:mb-5 {\n margin-bottom: 2rem !important;\n }\n .lg\\:mb-6 {\n margin-bottom: 3rem !important;\n }\n .lg\\:mb-7 {\n margin-bottom: 4rem !important;\n }\n .lg\\:mb-8 {\n margin-bottom: 5rem !important;\n }\n .lg\\:-mb-1 {\n margin-bottom: -0.25rem !important;\n }\n .lg\\:-mb-2 {\n margin-bottom: -0.5rem !important;\n }\n .lg\\:-mb-3 {\n margin-bottom: -1rem !important;\n }\n .lg\\:-mb-4 {\n margin-bottom: -1.5rem !important;\n }\n .lg\\:-mb-5 {\n margin-bottom: -2rem !important;\n }\n .lg\\:-mb-6 {\n margin-bottom: -3rem !important;\n }\n .lg\\:-mb-7 {\n margin-bottom: -4rem !important;\n }\n .lg\\:-mb-8 {\n margin-bottom: -5rem !important;\n }\n .lg\\:mb-auto {\n margin-bottom: auto !important;\n }\n .lg\\:mx-0 {\n margin-left: 0rem !important;\n margin-right: 0rem !important;\n }\n .lg\\:mx-1 {\n margin-left: 0.25rem !important;\n margin-right: 0.25rem !important;\n }\n .lg\\:mx-2 {\n margin-left: 0.5rem !important;\n margin-right: 0.5rem !important;\n }\n .lg\\:mx-3 {\n margin-left: 1rem !important;\n margin-right: 1rem !important;\n }\n .lg\\:mx-4 {\n margin-left: 1.5rem !important;\n margin-right: 1.5rem !important;\n }\n .lg\\:mx-5 {\n margin-left: 2rem !important;\n margin-right: 2rem !important;\n }\n .lg\\:mx-6 {\n margin-left: 3rem !important;\n margin-right: 3rem !important;\n }\n .lg\\:mx-7 {\n margin-left: 4rem !important;\n margin-right: 4rem !important;\n }\n .lg\\:mx-8 {\n margin-left: 5rem !important;\n margin-right: 5rem !important;\n }\n .lg\\:-mx-1 {\n margin-left: -0.25rem !important;\n margin-right: -0.25rem !important;\n }\n .lg\\:-mx-2 {\n margin-left: -0.5rem !important;\n margin-right: -0.5rem !important;\n }\n .lg\\:-mx-3 {\n margin-left: -1rem !important;\n margin-right: -1rem !important;\n }\n .lg\\:-mx-4 {\n margin-left: -1.5rem !important;\n margin-right: -1.5rem !important;\n }\n .lg\\:-mx-5 {\n margin-left: -2rem !important;\n margin-right: -2rem !important;\n }\n .lg\\:-mx-6 {\n margin-left: -3rem !important;\n margin-right: -3rem !important;\n }\n .lg\\:-mx-7 {\n margin-left: -4rem !important;\n margin-right: -4rem !important;\n }\n .lg\\:-mx-8 {\n margin-left: -5rem !important;\n margin-right: -5rem !important;\n }\n .lg\\:mx-auto {\n margin-left: auto !important;\n margin-right: auto !important;\n }\n .lg\\:my-0 {\n margin-top: 0rem !important;\n margin-bottom: 0rem !important;\n }\n .lg\\:my-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .lg\\:my-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .lg\\:my-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .lg\\:my-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .lg\\:my-5 {\n margin-top: 2rem !important;\n margin-bottom: 2rem !important;\n }\n .lg\\:my-6 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .lg\\:my-7 {\n margin-top: 4rem !important;\n margin-bottom: 4rem !important;\n }\n .lg\\:my-8 {\n margin-top: 5rem !important;\n margin-bottom: 5rem !important;\n }\n .lg\\:-my-1 {\n margin-top: -0.25rem !important;\n margin-bottom: -0.25rem !important;\n }\n .lg\\:-my-2 {\n margin-top: -0.5rem !important;\n margin-bottom: -0.5rem !important;\n }\n .lg\\:-my-3 {\n margin-top: -1rem !important;\n margin-bottom: -1rem !important;\n }\n .lg\\:-my-4 {\n margin-top: -1.5rem !important;\n margin-bottom: -1.5rem !important;\n }\n .lg\\:-my-5 {\n margin-top: -2rem !important;\n margin-bottom: -2rem !important;\n }\n .lg\\:-my-6 {\n margin-top: -3rem !important;\n margin-bottom: -3rem !important;\n }\n .lg\\:-my-7 {\n margin-top: -4rem !important;\n margin-bottom: -4rem !important;\n }\n .lg\\:-my-8 {\n margin-top: -5rem !important;\n margin-bottom: -5rem !important;\n }\n .lg\\:my-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n}\n@media screen and (min-width: 1200px) {\n .xl\\:m-0 {\n margin: 0rem !important;\n }\n .xl\\:m-1 {\n margin: 0.25rem !important;\n }\n .xl\\:m-2 {\n margin: 0.5rem !important;\n }\n .xl\\:m-3 {\n margin: 1rem !important;\n }\n .xl\\:m-4 {\n margin: 1.5rem !important;\n }\n .xl\\:m-5 {\n margin: 2rem !important;\n }\n .xl\\:m-6 {\n margin: 3rem !important;\n }\n .xl\\:m-7 {\n margin: 4rem !important;\n }\n .xl\\:m-8 {\n margin: 5rem !important;\n }\n .xl\\:-m-1 {\n margin: -0.25rem !important;\n }\n .xl\\:-m-2 {\n margin: -0.5rem !important;\n }\n .xl\\:-m-3 {\n margin: -1rem !important;\n }\n .xl\\:-m-4 {\n margin: -1.5rem !important;\n }\n .xl\\:-m-5 {\n margin: -2rem !important;\n }\n .xl\\:-m-6 {\n margin: -3rem !important;\n }\n .xl\\:-m-7 {\n margin: -4rem !important;\n }\n .xl\\:-m-8 {\n margin: -5rem !important;\n }\n .xl\\:m-auto {\n margin: auto !important;\n }\n .xl\\:mt-0 {\n margin-top: 0rem !important;\n }\n .xl\\:mt-1 {\n margin-top: 0.25rem !important;\n }\n .xl\\:mt-2 {\n margin-top: 0.5rem !important;\n }\n .xl\\:mt-3 {\n margin-top: 1rem !important;\n }\n .xl\\:mt-4 {\n margin-top: 1.5rem !important;\n }\n .xl\\:mt-5 {\n margin-top: 2rem !important;\n }\n .xl\\:mt-6 {\n margin-top: 3rem !important;\n }\n .xl\\:mt-7 {\n margin-top: 4rem !important;\n }\n .xl\\:mt-8 {\n margin-top: 5rem !important;\n }\n .xl\\:-mt-1 {\n margin-top: -0.25rem !important;\n }\n .xl\\:-mt-2 {\n margin-top: -0.5rem !important;\n }\n .xl\\:-mt-3 {\n margin-top: -1rem !important;\n }\n .xl\\:-mt-4 {\n margin-top: -1.5rem !important;\n }\n .xl\\:-mt-5 {\n margin-top: -2rem !important;\n }\n .xl\\:-mt-6 {\n margin-top: -3rem !important;\n }\n .xl\\:-mt-7 {\n margin-top: -4rem !important;\n }\n .xl\\:-mt-8 {\n margin-top: -5rem !important;\n }\n .xl\\:mt-auto {\n margin-top: auto !important;\n }\n .xl\\:mr-0 {\n margin-right: 0rem !important;\n }\n .xl\\:mr-1 {\n margin-right: 0.25rem !important;\n }\n .xl\\:mr-2 {\n margin-right: 0.5rem !important;\n }\n .xl\\:mr-3 {\n margin-right: 1rem !important;\n }\n .xl\\:mr-4 {\n margin-right: 1.5rem !important;\n }\n .xl\\:mr-5 {\n margin-right: 2rem !important;\n }\n .xl\\:mr-6 {\n margin-right: 3rem !important;\n }\n .xl\\:mr-7 {\n margin-right: 4rem !important;\n }\n .xl\\:mr-8 {\n margin-right: 5rem !important;\n }\n .xl\\:-mr-1 {\n margin-right: -0.25rem !important;\n }\n .xl\\:-mr-2 {\n margin-right: -0.5rem !important;\n }\n .xl\\:-mr-3 {\n margin-right: -1rem !important;\n }\n .xl\\:-mr-4 {\n margin-right: -1.5rem !important;\n }\n .xl\\:-mr-5 {\n margin-right: -2rem !important;\n }\n .xl\\:-mr-6 {\n margin-right: -3rem !important;\n }\n .xl\\:-mr-7 {\n margin-right: -4rem !important;\n }\n .xl\\:-mr-8 {\n margin-right: -5rem !important;\n }\n .xl\\:mr-auto {\n margin-right: auto !important;\n }\n .xl\\:ml-0 {\n margin-left: 0rem !important;\n }\n .xl\\:ml-1 {\n margin-left: 0.25rem !important;\n }\n .xl\\:ml-2 {\n margin-left: 0.5rem !important;\n }\n .xl\\:ml-3 {\n margin-left: 1rem !important;\n }\n .xl\\:ml-4 {\n margin-left: 1.5rem !important;\n }\n .xl\\:ml-5 {\n margin-left: 2rem !important;\n }\n .xl\\:ml-6 {\n margin-left: 3rem !important;\n }\n .xl\\:ml-7 {\n margin-left: 4rem !important;\n }\n .xl\\:ml-8 {\n margin-left: 5rem !important;\n }\n .xl\\:-ml-1 {\n margin-left: -0.25rem !important;\n }\n .xl\\:-ml-2 {\n margin-left: -0.5rem !important;\n }\n .xl\\:-ml-3 {\n margin-left: -1rem !important;\n }\n .xl\\:-ml-4 {\n margin-left: -1.5rem !important;\n }\n .xl\\:-ml-5 {\n margin-left: -2rem !important;\n }\n .xl\\:-ml-6 {\n margin-left: -3rem !important;\n }\n .xl\\:-ml-7 {\n margin-left: -4rem !important;\n }\n .xl\\:-ml-8 {\n margin-left: -5rem !important;\n }\n .xl\\:ml-auto {\n margin-left: auto !important;\n }\n .xl\\:mb-0 {\n margin-bottom: 0rem !important;\n }\n .xl\\:mb-1 {\n margin-bottom: 0.25rem !important;\n }\n .xl\\:mb-2 {\n margin-bottom: 0.5rem !important;\n }\n .xl\\:mb-3 {\n margin-bottom: 1rem !important;\n }\n .xl\\:mb-4 {\n margin-bottom: 1.5rem !important;\n }\n .xl\\:mb-5 {\n margin-bottom: 2rem !important;\n }\n .xl\\:mb-6 {\n margin-bottom: 3rem !important;\n }\n .xl\\:mb-7 {\n margin-bottom: 4rem !important;\n }\n .xl\\:mb-8 {\n margin-bottom: 5rem !important;\n }\n .xl\\:-mb-1 {\n margin-bottom: -0.25rem !important;\n }\n .xl\\:-mb-2 {\n margin-bottom: -0.5rem !important;\n }\n .xl\\:-mb-3 {\n margin-bottom: -1rem !important;\n }\n .xl\\:-mb-4 {\n margin-bottom: -1.5rem !important;\n }\n .xl\\:-mb-5 {\n margin-bottom: -2rem !important;\n }\n .xl\\:-mb-6 {\n margin-bottom: -3rem !important;\n }\n .xl\\:-mb-7 {\n margin-bottom: -4rem !important;\n }\n .xl\\:-mb-8 {\n margin-bottom: -5rem !important;\n }\n .xl\\:mb-auto {\n margin-bottom: auto !important;\n }\n .xl\\:mx-0 {\n margin-left: 0rem !important;\n margin-right: 0rem !important;\n }\n .xl\\:mx-1 {\n margin-left: 0.25rem !important;\n margin-right: 0.25rem !important;\n }\n .xl\\:mx-2 {\n margin-left: 0.5rem !important;\n margin-right: 0.5rem !important;\n }\n .xl\\:mx-3 {\n margin-left: 1rem !important;\n margin-right: 1rem !important;\n }\n .xl\\:mx-4 {\n margin-left: 1.5rem !important;\n margin-right: 1.5rem !important;\n }\n .xl\\:mx-5 {\n margin-left: 2rem !important;\n margin-right: 2rem !important;\n }\n .xl\\:mx-6 {\n margin-left: 3rem !important;\n margin-right: 3rem !important;\n }\n .xl\\:mx-7 {\n margin-left: 4rem !important;\n margin-right: 4rem !important;\n }\n .xl\\:mx-8 {\n margin-left: 5rem !important;\n margin-right: 5rem !important;\n }\n .xl\\:-mx-1 {\n margin-left: -0.25rem !important;\n margin-right: -0.25rem !important;\n }\n .xl\\:-mx-2 {\n margin-left: -0.5rem !important;\n margin-right: -0.5rem !important;\n }\n .xl\\:-mx-3 {\n margin-left: -1rem !important;\n margin-right: -1rem !important;\n }\n .xl\\:-mx-4 {\n margin-left: -1.5rem !important;\n margin-right: -1.5rem !important;\n }\n .xl\\:-mx-5 {\n margin-left: -2rem !important;\n margin-right: -2rem !important;\n }\n .xl\\:-mx-6 {\n margin-left: -3rem !important;\n margin-right: -3rem !important;\n }\n .xl\\:-mx-7 {\n margin-left: -4rem !important;\n margin-right: -4rem !important;\n }\n .xl\\:-mx-8 {\n margin-left: -5rem !important;\n margin-right: -5rem !important;\n }\n .xl\\:mx-auto {\n margin-left: auto !important;\n margin-right: auto !important;\n }\n .xl\\:my-0 {\n margin-top: 0rem !important;\n margin-bottom: 0rem !important;\n }\n .xl\\:my-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .xl\\:my-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .xl\\:my-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .xl\\:my-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .xl\\:my-5 {\n margin-top: 2rem !important;\n margin-bottom: 2rem !important;\n }\n .xl\\:my-6 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .xl\\:my-7 {\n margin-top: 4rem !important;\n margin-bottom: 4rem !important;\n }\n .xl\\:my-8 {\n margin-top: 5rem !important;\n margin-bottom: 5rem !important;\n }\n .xl\\:-my-1 {\n margin-top: -0.25rem !important;\n margin-bottom: -0.25rem !important;\n }\n .xl\\:-my-2 {\n margin-top: -0.5rem !important;\n margin-bottom: -0.5rem !important;\n }\n .xl\\:-my-3 {\n margin-top: -1rem !important;\n margin-bottom: -1rem !important;\n }\n .xl\\:-my-4 {\n margin-top: -1.5rem !important;\n margin-bottom: -1.5rem !important;\n }\n .xl\\:-my-5 {\n margin-top: -2rem !important;\n margin-bottom: -2rem !important;\n }\n .xl\\:-my-6 {\n margin-top: -3rem !important;\n margin-bottom: -3rem !important;\n }\n .xl\\:-my-7 {\n margin-top: -4rem !important;\n margin-bottom: -4rem !important;\n }\n .xl\\:-my-8 {\n margin-top: -5rem !important;\n margin-bottom: -5rem !important;\n }\n .xl\\:my-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n}\n.shadow-none {\n box-shadow: none !important;\n}\n\n.shadow-1 {\n box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.02), 0px 0px 2px rgba(0, 0, 0, 0.05), 0px 1px 4px rgba(0, 0, 0, 0.08) !important;\n}\n\n.shadow-2 {\n box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.03), 0px 0px 2px rgba(0, 0, 0, 0.06), 0px 2px 6px rgba(0, 0, 0, 0.12) !important;\n}\n\n.shadow-3 {\n box-shadow: 0px 1px 8px rgba(0, 0, 0, 0.08), 0px 3px 4px rgba(0, 0, 0, 0.1), 0px 1px 4px -1px rgba(0, 0, 0, 0.1) !important;\n}\n\n.shadow-4 {\n box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.12), 0px 4px 5px rgba(0, 0, 0, 0.14), 0px 2px 4px -1px rgba(0, 0, 0, 0.2) !important;\n}\n\n.shadow-5 {\n box-shadow: 0px 1px 7px rgba(0, 0, 0, 0.1), 0px 4px 5px -2px rgba(0, 0, 0, 0.12), 0px 10px 15px -5px rgba(0, 0, 0, 0.2) !important;\n}\n\n.shadow-6 {\n box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.06), 0px 7px 9px rgba(0, 0, 0, 0.12), 0px 20px 25px -8px rgba(0, 0, 0, 0.18) !important;\n}\n\n.shadow-7 {\n box-shadow: 0px 7px 30px rgba(0, 0, 0, 0.08), 0px 22px 30px 2px rgba(0, 0, 0, 0.15), 0px 8px 10px rgba(0, 0, 0, 0.15) !important;\n}\n\n.shadow-8 {\n box-shadow: 0px 9px 46px 8px rgba(0, 0, 0, 0.12), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 11px 15px rgba(0, 0, 0, 0.2) !important;\n}\n\n.focus\\:shadow-none:focus {\n box-shadow: none !important;\n}\n\n.hover\\:shadow-none:hover {\n box-shadow: none !important;\n}\n\n.active\\:shadow-none:active {\n box-shadow: none !important;\n}\n\n.focus\\:shadow-1:focus {\n box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.02), 0px 0px 2px rgba(0, 0, 0, 0.05), 0px 1px 4px rgba(0, 0, 0, 0.08) !important;\n}\n\n.hover\\:shadow-1:hover {\n box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.02), 0px 0px 2px rgba(0, 0, 0, 0.05), 0px 1px 4px rgba(0, 0, 0, 0.08) !important;\n}\n\n.active\\:shadow-1:active {\n box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.02), 0px 0px 2px rgba(0, 0, 0, 0.05), 0px 1px 4px rgba(0, 0, 0, 0.08) !important;\n}\n\n.focus\\:shadow-2:focus {\n box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.03), 0px 0px 2px rgba(0, 0, 0, 0.06), 0px 2px 6px rgba(0, 0, 0, 0.12) !important;\n}\n\n.hover\\:shadow-2:hover {\n box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.03), 0px 0px 2px rgba(0, 0, 0, 0.06), 0px 2px 6px rgba(0, 0, 0, 0.12) !important;\n}\n\n.active\\:shadow-2:active {\n box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.03), 0px 0px 2px rgba(0, 0, 0, 0.06), 0px 2px 6px rgba(0, 0, 0, 0.12) !important;\n}\n\n.focus\\:shadow-3:focus {\n box-shadow: 0px 1px 8px rgba(0, 0, 0, 0.08), 0px 3px 4px rgba(0, 0, 0, 0.1), 0px 1px 4px -1px rgba(0, 0, 0, 0.1) !important;\n}\n\n.hover\\:shadow-3:hover {\n box-shadow: 0px 1px 8px rgba(0, 0, 0, 0.08), 0px 3px 4px rgba(0, 0, 0, 0.1), 0px 1px 4px -1px rgba(0, 0, 0, 0.1) !important;\n}\n\n.active\\:shadow-3:active {\n box-shadow: 0px 1px 8px rgba(0, 0, 0, 0.08), 0px 3px 4px rgba(0, 0, 0, 0.1), 0px 1px 4px -1px rgba(0, 0, 0, 0.1) !important;\n}\n\n.focus\\:shadow-4:focus {\n box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.12), 0px 4px 5px rgba(0, 0, 0, 0.14), 0px 2px 4px -1px rgba(0, 0, 0, 0.2) !important;\n}\n\n.hover\\:shadow-4:hover {\n box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.12), 0px 4px 5px rgba(0, 0, 0, 0.14), 0px 2px 4px -1px rgba(0, 0, 0, 0.2) !important;\n}\n\n.active\\:shadow-4:active {\n box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.12), 0px 4px 5px rgba(0, 0, 0, 0.14), 0px 2px 4px -1px rgba(0, 0, 0, 0.2) !important;\n}\n\n.focus\\:shadow-5:focus {\n box-shadow: 0px 1px 7px rgba(0, 0, 0, 0.1), 0px 4px 5px -2px rgba(0, 0, 0, 0.12), 0px 10px 15px -5px rgba(0, 0, 0, 0.2) !important;\n}\n\n.hover\\:shadow-5:hover {\n box-shadow: 0px 1px 7px rgba(0, 0, 0, 0.1), 0px 4px 5px -2px rgba(0, 0, 0, 0.12), 0px 10px 15px -5px rgba(0, 0, 0, 0.2) !important;\n}\n\n.active\\:shadow-5:active {\n box-shadow: 0px 1px 7px rgba(0, 0, 0, 0.1), 0px 4px 5px -2px rgba(0, 0, 0, 0.12), 0px 10px 15px -5px rgba(0, 0, 0, 0.2) !important;\n}\n\n.focus\\:shadow-6:focus {\n box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.06), 0px 7px 9px rgba(0, 0, 0, 0.12), 0px 20px 25px -8px rgba(0, 0, 0, 0.18) !important;\n}\n\n.hover\\:shadow-6:hover {\n box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.06), 0px 7px 9px rgba(0, 0, 0, 0.12), 0px 20px 25px -8px rgba(0, 0, 0, 0.18) !important;\n}\n\n.active\\:shadow-6:active {\n box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.06), 0px 7px 9px rgba(0, 0, 0, 0.12), 0px 20px 25px -8px rgba(0, 0, 0, 0.18) !important;\n}\n\n.focus\\:shadow-7:focus {\n box-shadow: 0px 7px 30px rgba(0, 0, 0, 0.08), 0px 22px 30px 2px rgba(0, 0, 0, 0.15), 0px 8px 10px rgba(0, 0, 0, 0.15) !important;\n}\n\n.hover\\:shadow-7:hover {\n box-shadow: 0px 7px 30px rgba(0, 0, 0, 0.08), 0px 22px 30px 2px rgba(0, 0, 0, 0.15), 0px 8px 10px rgba(0, 0, 0, 0.15) !important;\n}\n\n.active\\:shadow-7:active {\n box-shadow: 0px 7px 30px rgba(0, 0, 0, 0.08), 0px 22px 30px 2px rgba(0, 0, 0, 0.15), 0px 8px 10px rgba(0, 0, 0, 0.15) !important;\n}\n\n.focus\\:shadow-8:focus {\n box-shadow: 0px 9px 46px 8px rgba(0, 0, 0, 0.12), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 11px 15px rgba(0, 0, 0, 0.2) !important;\n}\n\n.hover\\:shadow-8:hover {\n box-shadow: 0px 9px 46px 8px rgba(0, 0, 0, 0.12), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 11px 15px rgba(0, 0, 0, 0.2) !important;\n}\n\n.active\\:shadow-8:active {\n box-shadow: 0px 9px 46px 8px rgba(0, 0, 0, 0.12), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 11px 15px rgba(0, 0, 0, 0.2) !important;\n}\n\n@media screen and (min-width: 576px) {\n .sm\\:shadow-none {\n box-shadow: none !important;\n }\n .sm\\:shadow-1 {\n box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.02), 0px 0px 2px rgba(0, 0, 0, 0.05), 0px 1px 4px rgba(0, 0, 0, 0.08) !important;\n }\n .sm\\:shadow-2 {\n box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.03), 0px 0px 2px rgba(0, 0, 0, 0.06), 0px 2px 6px rgba(0, 0, 0, 0.12) !important;\n }\n .sm\\:shadow-3 {\n box-shadow: 0px 1px 8px rgba(0, 0, 0, 0.08), 0px 3px 4px rgba(0, 0, 0, 0.1), 0px 1px 4px -1px rgba(0, 0, 0, 0.1) !important;\n }\n .sm\\:shadow-4 {\n box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.12), 0px 4px 5px rgba(0, 0, 0, 0.14), 0px 2px 4px -1px rgba(0, 0, 0, 0.2) !important;\n }\n .sm\\:shadow-5 {\n box-shadow: 0px 1px 7px rgba(0, 0, 0, 0.1), 0px 4px 5px -2px rgba(0, 0, 0, 0.12), 0px 10px 15px -5px rgba(0, 0, 0, 0.2) !important;\n }\n .sm\\:shadow-6 {\n box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.06), 0px 7px 9px rgba(0, 0, 0, 0.12), 0px 20px 25px -8px rgba(0, 0, 0, 0.18) !important;\n }\n .sm\\:shadow-7 {\n box-shadow: 0px 7px 30px rgba(0, 0, 0, 0.08), 0px 22px 30px 2px rgba(0, 0, 0, 0.15), 0px 8px 10px rgba(0, 0, 0, 0.15) !important;\n }\n .sm\\:shadow-8 {\n box-shadow: 0px 9px 46px 8px rgba(0, 0, 0, 0.12), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 11px 15px rgba(0, 0, 0, 0.2) !important;\n }\n .sm\\:focus\\:shadow-none:focus {\n box-shadow: none !important;\n }\n .sm\\:hover\\:shadow-none:hover {\n box-shadow: none !important;\n }\n .sm\\:active\\:shadow-none:active {\n box-shadow: none !important;\n }\n .sm\\:focus\\:shadow-1:focus {\n box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.02), 0px 0px 2px rgba(0, 0, 0, 0.05), 0px 1px 4px rgba(0, 0, 0, 0.08) !important;\n }\n .sm\\:hover\\:shadow-1:hover {\n box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.02), 0px 0px 2px rgba(0, 0, 0, 0.05), 0px 1px 4px rgba(0, 0, 0, 0.08) !important;\n }\n .sm\\:active\\:shadow-1:active {\n box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.02), 0px 0px 2px rgba(0, 0, 0, 0.05), 0px 1px 4px rgba(0, 0, 0, 0.08) !important;\n }\n .sm\\:focus\\:shadow-2:focus {\n box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.03), 0px 0px 2px rgba(0, 0, 0, 0.06), 0px 2px 6px rgba(0, 0, 0, 0.12) !important;\n }\n .sm\\:hover\\:shadow-2:hover {\n box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.03), 0px 0px 2px rgba(0, 0, 0, 0.06), 0px 2px 6px rgba(0, 0, 0, 0.12) !important;\n }\n .sm\\:active\\:shadow-2:active {\n box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.03), 0px 0px 2px rgba(0, 0, 0, 0.06), 0px 2px 6px rgba(0, 0, 0, 0.12) !important;\n }\n .sm\\:focus\\:shadow-3:focus {\n box-shadow: 0px 1px 8px rgba(0, 0, 0, 0.08), 0px 3px 4px rgba(0, 0, 0, 0.1), 0px 1px 4px -1px rgba(0, 0, 0, 0.1) !important;\n }\n .sm\\:hover\\:shadow-3:hover {\n box-shadow: 0px 1px 8px rgba(0, 0, 0, 0.08), 0px 3px 4px rgba(0, 0, 0, 0.1), 0px 1px 4px -1px rgba(0, 0, 0, 0.1) !important;\n }\n .sm\\:active\\:shadow-3:active {\n box-shadow: 0px 1px 8px rgba(0, 0, 0, 0.08), 0px 3px 4px rgba(0, 0, 0, 0.1), 0px 1px 4px -1px rgba(0, 0, 0, 0.1) !important;\n }\n .sm\\:focus\\:shadow-4:focus {\n box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.12), 0px 4px 5px rgba(0, 0, 0, 0.14), 0px 2px 4px -1px rgba(0, 0, 0, 0.2) !important;\n }\n .sm\\:hover\\:shadow-4:hover {\n box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.12), 0px 4px 5px rgba(0, 0, 0, 0.14), 0px 2px 4px -1px rgba(0, 0, 0, 0.2) !important;\n }\n .sm\\:active\\:shadow-4:active {\n box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.12), 0px 4px 5px rgba(0, 0, 0, 0.14), 0px 2px 4px -1px rgba(0, 0, 0, 0.2) !important;\n }\n .sm\\:focus\\:shadow-5:focus {\n box-shadow: 0px 1px 7px rgba(0, 0, 0, 0.1), 0px 4px 5px -2px rgba(0, 0, 0, 0.12), 0px 10px 15px -5px rgba(0, 0, 0, 0.2) !important;\n }\n .sm\\:hover\\:shadow-5:hover {\n box-shadow: 0px 1px 7px rgba(0, 0, 0, 0.1), 0px 4px 5px -2px rgba(0, 0, 0, 0.12), 0px 10px 15px -5px rgba(0, 0, 0, 0.2) !important;\n }\n .sm\\:active\\:shadow-5:active {\n box-shadow: 0px 1px 7px rgba(0, 0, 0, 0.1), 0px 4px 5px -2px rgba(0, 0, 0, 0.12), 0px 10px 15px -5px rgba(0, 0, 0, 0.2) !important;\n }\n .sm\\:focus\\:shadow-6:focus {\n box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.06), 0px 7px 9px rgba(0, 0, 0, 0.12), 0px 20px 25px -8px rgba(0, 0, 0, 0.18) !important;\n }\n .sm\\:hover\\:shadow-6:hover {\n box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.06), 0px 7px 9px rgba(0, 0, 0, 0.12), 0px 20px 25px -8px rgba(0, 0, 0, 0.18) !important;\n }\n .sm\\:active\\:shadow-6:active {\n box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.06), 0px 7px 9px rgba(0, 0, 0, 0.12), 0px 20px 25px -8px rgba(0, 0, 0, 0.18) !important;\n }\n .sm\\:focus\\:shadow-7:focus {\n box-shadow: 0px 7px 30px rgba(0, 0, 0, 0.08), 0px 22px 30px 2px rgba(0, 0, 0, 0.15), 0px 8px 10px rgba(0, 0, 0, 0.15) !important;\n }\n .sm\\:hover\\:shadow-7:hover {\n box-shadow: 0px 7px 30px rgba(0, 0, 0, 0.08), 0px 22px 30px 2px rgba(0, 0, 0, 0.15), 0px 8px 10px rgba(0, 0, 0, 0.15) !important;\n }\n .sm\\:active\\:shadow-7:active {\n box-shadow: 0px 7px 30px rgba(0, 0, 0, 0.08), 0px 22px 30px 2px rgba(0, 0, 0, 0.15), 0px 8px 10px rgba(0, 0, 0, 0.15) !important;\n }\n .sm\\:focus\\:shadow-8:focus {\n box-shadow: 0px 9px 46px 8px rgba(0, 0, 0, 0.12), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 11px 15px rgba(0, 0, 0, 0.2) !important;\n }\n .sm\\:hover\\:shadow-8:hover {\n box-shadow: 0px 9px 46px 8px rgba(0, 0, 0, 0.12), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 11px 15px rgba(0, 0, 0, 0.2) !important;\n }\n .sm\\:active\\:shadow-8:active {\n box-shadow: 0px 9px 46px 8px rgba(0, 0, 0, 0.12), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 11px 15px rgba(0, 0, 0, 0.2) !important;\n }\n}\n@media screen and (min-width: 768px) {\n .md\\:shadow-none {\n box-shadow: none !important;\n }\n .md\\:shadow-1 {\n box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.02), 0px 0px 2px rgba(0, 0, 0, 0.05), 0px 1px 4px rgba(0, 0, 0, 0.08) !important;\n }\n .md\\:shadow-2 {\n box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.03), 0px 0px 2px rgba(0, 0, 0, 0.06), 0px 2px 6px rgba(0, 0, 0, 0.12) !important;\n }\n .md\\:shadow-3 {\n box-shadow: 0px 1px 8px rgba(0, 0, 0, 0.08), 0px 3px 4px rgba(0, 0, 0, 0.1), 0px 1px 4px -1px rgba(0, 0, 0, 0.1) !important;\n }\n .md\\:shadow-4 {\n box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.12), 0px 4px 5px rgba(0, 0, 0, 0.14), 0px 2px 4px -1px rgba(0, 0, 0, 0.2) !important;\n }\n .md\\:shadow-5 {\n box-shadow: 0px 1px 7px rgba(0, 0, 0, 0.1), 0px 4px 5px -2px rgba(0, 0, 0, 0.12), 0px 10px 15px -5px rgba(0, 0, 0, 0.2) !important;\n }\n .md\\:shadow-6 {\n box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.06), 0px 7px 9px rgba(0, 0, 0, 0.12), 0px 20px 25px -8px rgba(0, 0, 0, 0.18) !important;\n }\n .md\\:shadow-7 {\n box-shadow: 0px 7px 30px rgba(0, 0, 0, 0.08), 0px 22px 30px 2px rgba(0, 0, 0, 0.15), 0px 8px 10px rgba(0, 0, 0, 0.15) !important;\n }\n .md\\:shadow-8 {\n box-shadow: 0px 9px 46px 8px rgba(0, 0, 0, 0.12), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 11px 15px rgba(0, 0, 0, 0.2) !important;\n }\n .md\\:focus\\:shadow-none:focus {\n box-shadow: none !important;\n }\n .md\\:hover\\:shadow-none:hover {\n box-shadow: none !important;\n }\n .md\\:active\\:shadow-none:active {\n box-shadow: none !important;\n }\n .md\\:focus\\:shadow-1:focus {\n box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.02), 0px 0px 2px rgba(0, 0, 0, 0.05), 0px 1px 4px rgba(0, 0, 0, 0.08) !important;\n }\n .md\\:hover\\:shadow-1:hover {\n box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.02), 0px 0px 2px rgba(0, 0, 0, 0.05), 0px 1px 4px rgba(0, 0, 0, 0.08) !important;\n }\n .md\\:active\\:shadow-1:active {\n box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.02), 0px 0px 2px rgba(0, 0, 0, 0.05), 0px 1px 4px rgba(0, 0, 0, 0.08) !important;\n }\n .md\\:focus\\:shadow-2:focus {\n box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.03), 0px 0px 2px rgba(0, 0, 0, 0.06), 0px 2px 6px rgba(0, 0, 0, 0.12) !important;\n }\n .md\\:hover\\:shadow-2:hover {\n box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.03), 0px 0px 2px rgba(0, 0, 0, 0.06), 0px 2px 6px rgba(0, 0, 0, 0.12) !important;\n }\n .md\\:active\\:shadow-2:active {\n box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.03), 0px 0px 2px rgba(0, 0, 0, 0.06), 0px 2px 6px rgba(0, 0, 0, 0.12) !important;\n }\n .md\\:focus\\:shadow-3:focus {\n box-shadow: 0px 1px 8px rgba(0, 0, 0, 0.08), 0px 3px 4px rgba(0, 0, 0, 0.1), 0px 1px 4px -1px rgba(0, 0, 0, 0.1) !important;\n }\n .md\\:hover\\:shadow-3:hover {\n box-shadow: 0px 1px 8px rgba(0, 0, 0, 0.08), 0px 3px 4px rgba(0, 0, 0, 0.1), 0px 1px 4px -1px rgba(0, 0, 0, 0.1) !important;\n }\n .md\\:active\\:shadow-3:active {\n box-shadow: 0px 1px 8px rgba(0, 0, 0, 0.08), 0px 3px 4px rgba(0, 0, 0, 0.1), 0px 1px 4px -1px rgba(0, 0, 0, 0.1) !important;\n }\n .md\\:focus\\:shadow-4:focus {\n box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.12), 0px 4px 5px rgba(0, 0, 0, 0.14), 0px 2px 4px -1px rgba(0, 0, 0, 0.2) !important;\n }\n .md\\:hover\\:shadow-4:hover {\n box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.12), 0px 4px 5px rgba(0, 0, 0, 0.14), 0px 2px 4px -1px rgba(0, 0, 0, 0.2) !important;\n }\n .md\\:active\\:shadow-4:active {\n box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.12), 0px 4px 5px rgba(0, 0, 0, 0.14), 0px 2px 4px -1px rgba(0, 0, 0, 0.2) !important;\n }\n .md\\:focus\\:shadow-5:focus {\n box-shadow: 0px 1px 7px rgba(0, 0, 0, 0.1), 0px 4px 5px -2px rgba(0, 0, 0, 0.12), 0px 10px 15px -5px rgba(0, 0, 0, 0.2) !important;\n }\n .md\\:hover\\:shadow-5:hover {\n box-shadow: 0px 1px 7px rgba(0, 0, 0, 0.1), 0px 4px 5px -2px rgba(0, 0, 0, 0.12), 0px 10px 15px -5px rgba(0, 0, 0, 0.2) !important;\n }\n .md\\:active\\:shadow-5:active {\n box-shadow: 0px 1px 7px rgba(0, 0, 0, 0.1), 0px 4px 5px -2px rgba(0, 0, 0, 0.12), 0px 10px 15px -5px rgba(0, 0, 0, 0.2) !important;\n }\n .md\\:focus\\:shadow-6:focus {\n box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.06), 0px 7px 9px rgba(0, 0, 0, 0.12), 0px 20px 25px -8px rgba(0, 0, 0, 0.18) !important;\n }\n .md\\:hover\\:shadow-6:hover {\n box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.06), 0px 7px 9px rgba(0, 0, 0, 0.12), 0px 20px 25px -8px rgba(0, 0, 0, 0.18) !important;\n }\n .md\\:active\\:shadow-6:active {\n box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.06), 0px 7px 9px rgba(0, 0, 0, 0.12), 0px 20px 25px -8px rgba(0, 0, 0, 0.18) !important;\n }\n .md\\:focus\\:shadow-7:focus {\n box-shadow: 0px 7px 30px rgba(0, 0, 0, 0.08), 0px 22px 30px 2px rgba(0, 0, 0, 0.15), 0px 8px 10px rgba(0, 0, 0, 0.15) !important;\n }\n .md\\:hover\\:shadow-7:hover {\n box-shadow: 0px 7px 30px rgba(0, 0, 0, 0.08), 0px 22px 30px 2px rgba(0, 0, 0, 0.15), 0px 8px 10px rgba(0, 0, 0, 0.15) !important;\n }\n .md\\:active\\:shadow-7:active {\n box-shadow: 0px 7px 30px rgba(0, 0, 0, 0.08), 0px 22px 30px 2px rgba(0, 0, 0, 0.15), 0px 8px 10px rgba(0, 0, 0, 0.15) !important;\n }\n .md\\:focus\\:shadow-8:focus {\n box-shadow: 0px 9px 46px 8px rgba(0, 0, 0, 0.12), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 11px 15px rgba(0, 0, 0, 0.2) !important;\n }\n .md\\:hover\\:shadow-8:hover {\n box-shadow: 0px 9px 46px 8px rgba(0, 0, 0, 0.12), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 11px 15px rgba(0, 0, 0, 0.2) !important;\n }\n .md\\:active\\:shadow-8:active {\n box-shadow: 0px 9px 46px 8px rgba(0, 0, 0, 0.12), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 11px 15px rgba(0, 0, 0, 0.2) !important;\n }\n}\n@media screen and (min-width: 992px) {\n .lg\\:shadow-none {\n box-shadow: none !important;\n }\n .lg\\:shadow-1 {\n box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.02), 0px 0px 2px rgba(0, 0, 0, 0.05), 0px 1px 4px rgba(0, 0, 0, 0.08) !important;\n }\n .lg\\:shadow-2 {\n box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.03), 0px 0px 2px rgba(0, 0, 0, 0.06), 0px 2px 6px rgba(0, 0, 0, 0.12) !important;\n }\n .lg\\:shadow-3 {\n box-shadow: 0px 1px 8px rgba(0, 0, 0, 0.08), 0px 3px 4px rgba(0, 0, 0, 0.1), 0px 1px 4px -1px rgba(0, 0, 0, 0.1) !important;\n }\n .lg\\:shadow-4 {\n box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.12), 0px 4px 5px rgba(0, 0, 0, 0.14), 0px 2px 4px -1px rgba(0, 0, 0, 0.2) !important;\n }\n .lg\\:shadow-5 {\n box-shadow: 0px 1px 7px rgba(0, 0, 0, 0.1), 0px 4px 5px -2px rgba(0, 0, 0, 0.12), 0px 10px 15px -5px rgba(0, 0, 0, 0.2) !important;\n }\n .lg\\:shadow-6 {\n box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.06), 0px 7px 9px rgba(0, 0, 0, 0.12), 0px 20px 25px -8px rgba(0, 0, 0, 0.18) !important;\n }\n .lg\\:shadow-7 {\n box-shadow: 0px 7px 30px rgba(0, 0, 0, 0.08), 0px 22px 30px 2px rgba(0, 0, 0, 0.15), 0px 8px 10px rgba(0, 0, 0, 0.15) !important;\n }\n .lg\\:shadow-8 {\n box-shadow: 0px 9px 46px 8px rgba(0, 0, 0, 0.12), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 11px 15px rgba(0, 0, 0, 0.2) !important;\n }\n .lg\\:focus\\:shadow-none:focus {\n box-shadow: none !important;\n }\n .lg\\:hover\\:shadow-none:hover {\n box-shadow: none !important;\n }\n .lg\\:active\\:shadow-none:active {\n box-shadow: none !important;\n }\n .lg\\:focus\\:shadow-1:focus {\n box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.02), 0px 0px 2px rgba(0, 0, 0, 0.05), 0px 1px 4px rgba(0, 0, 0, 0.08) !important;\n }\n .lg\\:hover\\:shadow-1:hover {\n box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.02), 0px 0px 2px rgba(0, 0, 0, 0.05), 0px 1px 4px rgba(0, 0, 0, 0.08) !important;\n }\n .lg\\:active\\:shadow-1:active {\n box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.02), 0px 0px 2px rgba(0, 0, 0, 0.05), 0px 1px 4px rgba(0, 0, 0, 0.08) !important;\n }\n .lg\\:focus\\:shadow-2:focus {\n box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.03), 0px 0px 2px rgba(0, 0, 0, 0.06), 0px 2px 6px rgba(0, 0, 0, 0.12) !important;\n }\n .lg\\:hover\\:shadow-2:hover {\n box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.03), 0px 0px 2px rgba(0, 0, 0, 0.06), 0px 2px 6px rgba(0, 0, 0, 0.12) !important;\n }\n .lg\\:active\\:shadow-2:active {\n box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.03), 0px 0px 2px rgba(0, 0, 0, 0.06), 0px 2px 6px rgba(0, 0, 0, 0.12) !important;\n }\n .lg\\:focus\\:shadow-3:focus {\n box-shadow: 0px 1px 8px rgba(0, 0, 0, 0.08), 0px 3px 4px rgba(0, 0, 0, 0.1), 0px 1px 4px -1px rgba(0, 0, 0, 0.1) !important;\n }\n .lg\\:hover\\:shadow-3:hover {\n box-shadow: 0px 1px 8px rgba(0, 0, 0, 0.08), 0px 3px 4px rgba(0, 0, 0, 0.1), 0px 1px 4px -1px rgba(0, 0, 0, 0.1) !important;\n }\n .lg\\:active\\:shadow-3:active {\n box-shadow: 0px 1px 8px rgba(0, 0, 0, 0.08), 0px 3px 4px rgba(0, 0, 0, 0.1), 0px 1px 4px -1px rgba(0, 0, 0, 0.1) !important;\n }\n .lg\\:focus\\:shadow-4:focus {\n box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.12), 0px 4px 5px rgba(0, 0, 0, 0.14), 0px 2px 4px -1px rgba(0, 0, 0, 0.2) !important;\n }\n .lg\\:hover\\:shadow-4:hover {\n box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.12), 0px 4px 5px rgba(0, 0, 0, 0.14), 0px 2px 4px -1px rgba(0, 0, 0, 0.2) !important;\n }\n .lg\\:active\\:shadow-4:active {\n box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.12), 0px 4px 5px rgba(0, 0, 0, 0.14), 0px 2px 4px -1px rgba(0, 0, 0, 0.2) !important;\n }\n .lg\\:focus\\:shadow-5:focus {\n box-shadow: 0px 1px 7px rgba(0, 0, 0, 0.1), 0px 4px 5px -2px rgba(0, 0, 0, 0.12), 0px 10px 15px -5px rgba(0, 0, 0, 0.2) !important;\n }\n .lg\\:hover\\:shadow-5:hover {\n box-shadow: 0px 1px 7px rgba(0, 0, 0, 0.1), 0px 4px 5px -2px rgba(0, 0, 0, 0.12), 0px 10px 15px -5px rgba(0, 0, 0, 0.2) !important;\n }\n .lg\\:active\\:shadow-5:active {\n box-shadow: 0px 1px 7px rgba(0, 0, 0, 0.1), 0px 4px 5px -2px rgba(0, 0, 0, 0.12), 0px 10px 15px -5px rgba(0, 0, 0, 0.2) !important;\n }\n .lg\\:focus\\:shadow-6:focus {\n box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.06), 0px 7px 9px rgba(0, 0, 0, 0.12), 0px 20px 25px -8px rgba(0, 0, 0, 0.18) !important;\n }\n .lg\\:hover\\:shadow-6:hover {\n box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.06), 0px 7px 9px rgba(0, 0, 0, 0.12), 0px 20px 25px -8px rgba(0, 0, 0, 0.18) !important;\n }\n .lg\\:active\\:shadow-6:active {\n box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.06), 0px 7px 9px rgba(0, 0, 0, 0.12), 0px 20px 25px -8px rgba(0, 0, 0, 0.18) !important;\n }\n .lg\\:focus\\:shadow-7:focus {\n box-shadow: 0px 7px 30px rgba(0, 0, 0, 0.08), 0px 22px 30px 2px rgba(0, 0, 0, 0.15), 0px 8px 10px rgba(0, 0, 0, 0.15) !important;\n }\n .lg\\:hover\\:shadow-7:hover {\n box-shadow: 0px 7px 30px rgba(0, 0, 0, 0.08), 0px 22px 30px 2px rgba(0, 0, 0, 0.15), 0px 8px 10px rgba(0, 0, 0, 0.15) !important;\n }\n .lg\\:active\\:shadow-7:active {\n box-shadow: 0px 7px 30px rgba(0, 0, 0, 0.08), 0px 22px 30px 2px rgba(0, 0, 0, 0.15), 0px 8px 10px rgba(0, 0, 0, 0.15) !important;\n }\n .lg\\:focus\\:shadow-8:focus {\n box-shadow: 0px 9px 46px 8px rgba(0, 0, 0, 0.12), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 11px 15px rgba(0, 0, 0, 0.2) !important;\n }\n .lg\\:hover\\:shadow-8:hover {\n box-shadow: 0px 9px 46px 8px rgba(0, 0, 0, 0.12), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 11px 15px rgba(0, 0, 0, 0.2) !important;\n }\n .lg\\:active\\:shadow-8:active {\n box-shadow: 0px 9px 46px 8px rgba(0, 0, 0, 0.12), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 11px 15px rgba(0, 0, 0, 0.2) !important;\n }\n}\n@media screen and (min-width: 1200px) {\n .xl\\:shadow-none {\n box-shadow: none !important;\n }\n .xl\\:shadow-1 {\n box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.02), 0px 0px 2px rgba(0, 0, 0, 0.05), 0px 1px 4px rgba(0, 0, 0, 0.08) !important;\n }\n .xl\\:shadow-2 {\n box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.03), 0px 0px 2px rgba(0, 0, 0, 0.06), 0px 2px 6px rgba(0, 0, 0, 0.12) !important;\n }\n .xl\\:shadow-3 {\n box-shadow: 0px 1px 8px rgba(0, 0, 0, 0.08), 0px 3px 4px rgba(0, 0, 0, 0.1), 0px 1px 4px -1px rgba(0, 0, 0, 0.1) !important;\n }\n .xl\\:shadow-4 {\n box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.12), 0px 4px 5px rgba(0, 0, 0, 0.14), 0px 2px 4px -1px rgba(0, 0, 0, 0.2) !important;\n }\n .xl\\:shadow-5 {\n box-shadow: 0px 1px 7px rgba(0, 0, 0, 0.1), 0px 4px 5px -2px rgba(0, 0, 0, 0.12), 0px 10px 15px -5px rgba(0, 0, 0, 0.2) !important;\n }\n .xl\\:shadow-6 {\n box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.06), 0px 7px 9px rgba(0, 0, 0, 0.12), 0px 20px 25px -8px rgba(0, 0, 0, 0.18) !important;\n }\n .xl\\:shadow-7 {\n box-shadow: 0px 7px 30px rgba(0, 0, 0, 0.08), 0px 22px 30px 2px rgba(0, 0, 0, 0.15), 0px 8px 10px rgba(0, 0, 0, 0.15) !important;\n }\n .xl\\:shadow-8 {\n box-shadow: 0px 9px 46px 8px rgba(0, 0, 0, 0.12), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 11px 15px rgba(0, 0, 0, 0.2) !important;\n }\n .xl\\:focus\\:shadow-none:focus {\n box-shadow: none !important;\n }\n .xl\\:hover\\:shadow-none:hover {\n box-shadow: none !important;\n }\n .xl\\:active\\:shadow-none:active {\n box-shadow: none !important;\n }\n .xl\\:focus\\:shadow-1:focus {\n box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.02), 0px 0px 2px rgba(0, 0, 0, 0.05), 0px 1px 4px rgba(0, 0, 0, 0.08) !important;\n }\n .xl\\:hover\\:shadow-1:hover {\n box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.02), 0px 0px 2px rgba(0, 0, 0, 0.05), 0px 1px 4px rgba(0, 0, 0, 0.08) !important;\n }\n .xl\\:active\\:shadow-1:active {\n box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.02), 0px 0px 2px rgba(0, 0, 0, 0.05), 0px 1px 4px rgba(0, 0, 0, 0.08) !important;\n }\n .xl\\:focus\\:shadow-2:focus {\n box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.03), 0px 0px 2px rgba(0, 0, 0, 0.06), 0px 2px 6px rgba(0, 0, 0, 0.12) !important;\n }\n .xl\\:hover\\:shadow-2:hover {\n box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.03), 0px 0px 2px rgba(0, 0, 0, 0.06), 0px 2px 6px rgba(0, 0, 0, 0.12) !important;\n }\n .xl\\:active\\:shadow-2:active {\n box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.03), 0px 0px 2px rgba(0, 0, 0, 0.06), 0px 2px 6px rgba(0, 0, 0, 0.12) !important;\n }\n .xl\\:focus\\:shadow-3:focus {\n box-shadow: 0px 1px 8px rgba(0, 0, 0, 0.08), 0px 3px 4px rgba(0, 0, 0, 0.1), 0px 1px 4px -1px rgba(0, 0, 0, 0.1) !important;\n }\n .xl\\:hover\\:shadow-3:hover {\n box-shadow: 0px 1px 8px rgba(0, 0, 0, 0.08), 0px 3px 4px rgba(0, 0, 0, 0.1), 0px 1px 4px -1px rgba(0, 0, 0, 0.1) !important;\n }\n .xl\\:active\\:shadow-3:active {\n box-shadow: 0px 1px 8px rgba(0, 0, 0, 0.08), 0px 3px 4px rgba(0, 0, 0, 0.1), 0px 1px 4px -1px rgba(0, 0, 0, 0.1) !important;\n }\n .xl\\:focus\\:shadow-4:focus {\n box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.12), 0px 4px 5px rgba(0, 0, 0, 0.14), 0px 2px 4px -1px rgba(0, 0, 0, 0.2) !important;\n }\n .xl\\:hover\\:shadow-4:hover {\n box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.12), 0px 4px 5px rgba(0, 0, 0, 0.14), 0px 2px 4px -1px rgba(0, 0, 0, 0.2) !important;\n }\n .xl\\:active\\:shadow-4:active {\n box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.12), 0px 4px 5px rgba(0, 0, 0, 0.14), 0px 2px 4px -1px rgba(0, 0, 0, 0.2) !important;\n }\n .xl\\:focus\\:shadow-5:focus {\n box-shadow: 0px 1px 7px rgba(0, 0, 0, 0.1), 0px 4px 5px -2px rgba(0, 0, 0, 0.12), 0px 10px 15px -5px rgba(0, 0, 0, 0.2) !important;\n }\n .xl\\:hover\\:shadow-5:hover {\n box-shadow: 0px 1px 7px rgba(0, 0, 0, 0.1), 0px 4px 5px -2px rgba(0, 0, 0, 0.12), 0px 10px 15px -5px rgba(0, 0, 0, 0.2) !important;\n }\n .xl\\:active\\:shadow-5:active {\n box-shadow: 0px 1px 7px rgba(0, 0, 0, 0.1), 0px 4px 5px -2px rgba(0, 0, 0, 0.12), 0px 10px 15px -5px rgba(0, 0, 0, 0.2) !important;\n }\n .xl\\:focus\\:shadow-6:focus {\n box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.06), 0px 7px 9px rgba(0, 0, 0, 0.12), 0px 20px 25px -8px rgba(0, 0, 0, 0.18) !important;\n }\n .xl\\:hover\\:shadow-6:hover {\n box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.06), 0px 7px 9px rgba(0, 0, 0, 0.12), 0px 20px 25px -8px rgba(0, 0, 0, 0.18) !important;\n }\n .xl\\:active\\:shadow-6:active {\n box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.06), 0px 7px 9px rgba(0, 0, 0, 0.12), 0px 20px 25px -8px rgba(0, 0, 0, 0.18) !important;\n }\n .xl\\:focus\\:shadow-7:focus {\n box-shadow: 0px 7px 30px rgba(0, 0, 0, 0.08), 0px 22px 30px 2px rgba(0, 0, 0, 0.15), 0px 8px 10px rgba(0, 0, 0, 0.15) !important;\n }\n .xl\\:hover\\:shadow-7:hover {\n box-shadow: 0px 7px 30px rgba(0, 0, 0, 0.08), 0px 22px 30px 2px rgba(0, 0, 0, 0.15), 0px 8px 10px rgba(0, 0, 0, 0.15) !important;\n }\n .xl\\:active\\:shadow-7:active {\n box-shadow: 0px 7px 30px rgba(0, 0, 0, 0.08), 0px 22px 30px 2px rgba(0, 0, 0, 0.15), 0px 8px 10px rgba(0, 0, 0, 0.15) !important;\n }\n .xl\\:focus\\:shadow-8:focus {\n box-shadow: 0px 9px 46px 8px rgba(0, 0, 0, 0.12), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 11px 15px rgba(0, 0, 0, 0.2) !important;\n }\n .xl\\:hover\\:shadow-8:hover {\n box-shadow: 0px 9px 46px 8px rgba(0, 0, 0, 0.12), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 11px 15px rgba(0, 0, 0, 0.2) !important;\n }\n .xl\\:active\\:shadow-8:active {\n box-shadow: 0px 9px 46px 8px rgba(0, 0, 0, 0.12), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 11px 15px rgba(0, 0, 0, 0.2) !important;\n }\n}\n.border-none {\n border-width: 0px !important;\n border-style: none;\n}\n\n.border-1 {\n border-width: 1px !important;\n border-style: solid;\n}\n\n.border-2 {\n border-width: 2px !important;\n border-style: solid;\n}\n\n.border-3 {\n border-width: 3px !important;\n border-style: solid;\n}\n\n.border-top-none {\n border-top-width: 0px !important;\n border-top-style: none;\n}\n\n.border-top-1 {\n border-top-width: 1px !important;\n border-top-style: solid;\n}\n\n.border-top-2 {\n border-top-width: 2px !important;\n border-top-style: solid;\n}\n\n.border-top-3 {\n border-top-width: 3px !important;\n border-top-style: solid;\n}\n\n.border-right-none {\n border-right-width: 0px !important;\n border-right-style: none;\n}\n\n.border-right-1 {\n border-right-width: 1px !important;\n border-right-style: solid;\n}\n\n.border-right-2 {\n border-right-width: 2px !important;\n border-right-style: solid;\n}\n\n.border-right-3 {\n border-right-width: 3px !important;\n border-right-style: solid;\n}\n\n.border-left-none {\n border-left-width: 0px !important;\n border-left-style: none;\n}\n\n.border-left-1 {\n border-left-width: 1px !important;\n border-left-style: solid;\n}\n\n.border-left-2 {\n border-left-width: 2px !important;\n border-left-style: solid;\n}\n\n.border-left-3 {\n border-left-width: 3px !important;\n border-left-style: solid;\n}\n\n.border-bottom-none {\n border-bottom-width: 0px !important;\n border-bottom-style: none;\n}\n\n.border-bottom-1 {\n border-bottom-width: 1px !important;\n border-bottom-style: solid;\n}\n\n.border-bottom-2 {\n border-bottom-width: 2px !important;\n border-bottom-style: solid;\n}\n\n.border-bottom-3 {\n border-bottom-width: 3px !important;\n border-bottom-style: solid;\n}\n\n.border-x-none {\n border-left-width: 0px !important;\n border-left-style: none;\n border-right-width: 0px !important;\n border-right-style: none;\n}\n\n.border-x-1 {\n border-left-width: 1px !important;\n border-left-style: solid;\n border-right-width: 1px !important;\n border-right-style: solid;\n}\n\n.border-x-2 {\n border-left-width: 2px !important;\n border-left-style: solid;\n border-right-width: 2px !important;\n border-right-style: solid;\n}\n\n.border-x-3 {\n border-left-width: 3px !important;\n border-left-style: solid;\n border-right-width: 3px !important;\n border-right-style: solid;\n}\n\n.border-y-none {\n border-top-width: 0px !important;\n border-top-style: none;\n border-bottom-width: 0px !important;\n border-bottom-style: none;\n}\n\n.border-y-1 {\n border-top-width: 1px !important;\n border-top-style: solid;\n border-bottom-width: 1px !important;\n border-bottom-style: solid;\n}\n\n.border-y-2 {\n border-top-width: 2px !important;\n border-top-style: solid;\n border-bottom-width: 2px !important;\n border-bottom-style: solid;\n}\n\n.border-y-3 {\n border-top-width: 3px !important;\n border-top-style: solid;\n border-bottom-width: 3px !important;\n border-bottom-style: solid;\n}\n\n@media screen and (min-width: 576px) {\n .sm\\:border-none {\n border-width: 0px !important;\n border-style: none;\n }\n .sm\\:border-1 {\n border-width: 1px !important;\n border-style: solid;\n }\n .sm\\:border-2 {\n border-width: 2px !important;\n border-style: solid;\n }\n .sm\\:border-3 {\n border-width: 3px !important;\n border-style: solid;\n }\n .sm\\:border-top-none {\n border-top-width: 0px !important;\n border-top-style: none;\n }\n .sm\\:border-top-1 {\n border-top-width: 1px !important;\n border-top-style: solid;\n }\n .sm\\:border-top-2 {\n border-top-width: 2px !important;\n border-top-style: solid;\n }\n .sm\\:border-top-3 {\n border-top-width: 3px !important;\n border-top-style: solid;\n }\n .sm\\:border-right-none {\n border-right-width: 0px !important;\n border-right-style: none;\n }\n .sm\\:border-right-1 {\n border-right-width: 1px !important;\n border-right-style: solid;\n }\n .sm\\:border-right-2 {\n border-right-width: 2px !important;\n border-right-style: solid;\n }\n .sm\\:border-right-3 {\n border-right-width: 3px !important;\n border-right-style: solid;\n }\n .sm\\:border-left-none {\n border-left-width: 0px !important;\n border-left-style: none;\n }\n .sm\\:border-left-1 {\n border-left-width: 1px !important;\n border-left-style: solid;\n }\n .sm\\:border-left-2 {\n border-left-width: 2px !important;\n border-left-style: solid;\n }\n .sm\\:border-left-3 {\n border-left-width: 3px !important;\n border-left-style: solid;\n }\n .sm\\:border-bottom-none {\n border-bottom-width: 0px !important;\n border-bottom-style: none;\n }\n .sm\\:border-bottom-1 {\n border-bottom-width: 1px !important;\n border-bottom-style: solid;\n }\n .sm\\:border-bottom-2 {\n border-bottom-width: 2px !important;\n border-bottom-style: solid;\n }\n .sm\\:border-bottom-3 {\n border-bottom-width: 3px !important;\n border-bottom-style: solid;\n }\n .sm\\:border-x-none {\n border-left-width: 0px !important;\n border-left-style: none;\n border-right-width: 0px !important;\n border-right-style: none;\n }\n .sm\\:border-x-1 {\n border-left-width: 1px !important;\n border-left-style: solid;\n border-right-width: 1px !important;\n border-right-style: solid;\n }\n .sm\\:border-x-2 {\n border-left-width: 2px !important;\n border-left-style: solid;\n border-right-width: 2px !important;\n border-right-style: solid;\n }\n .sm\\:border-x-3 {\n border-left-width: 3px !important;\n border-left-style: solid;\n border-right-width: 3px !important;\n border-right-style: solid;\n }\n .sm\\:border-y-none {\n border-top-width: 0px !important;\n border-top-style: none;\n border-bottom-width: 0px !important;\n border-bottom-style: none;\n }\n .sm\\:border-y-1 {\n border-top-width: 1px !important;\n border-top-style: solid;\n border-bottom-width: 1px !important;\n border-bottom-style: solid;\n }\n .sm\\:border-y-2 {\n border-top-width: 2px !important;\n border-top-style: solid;\n border-bottom-width: 2px !important;\n border-bottom-style: solid;\n }\n .sm\\:border-y-3 {\n border-top-width: 3px !important;\n border-top-style: solid;\n border-bottom-width: 3px !important;\n border-bottom-style: solid;\n }\n}\n@media screen and (min-width: 768px) {\n .md\\:border-none {\n border-width: 0px !important;\n border-style: none;\n }\n .md\\:border-1 {\n border-width: 1px !important;\n border-style: solid;\n }\n .md\\:border-2 {\n border-width: 2px !important;\n border-style: solid;\n }\n .md\\:border-3 {\n border-width: 3px !important;\n border-style: solid;\n }\n .md\\:border-top-none {\n border-top-width: 0px !important;\n border-top-style: none;\n }\n .md\\:border-top-1 {\n border-top-width: 1px !important;\n border-top-style: solid;\n }\n .md\\:border-top-2 {\n border-top-width: 2px !important;\n border-top-style: solid;\n }\n .md\\:border-top-3 {\n border-top-width: 3px !important;\n border-top-style: solid;\n }\n .md\\:border-right-none {\n border-right-width: 0px !important;\n border-right-style: none;\n }\n .md\\:border-right-1 {\n border-right-width: 1px !important;\n border-right-style: solid;\n }\n .md\\:border-right-2 {\n border-right-width: 2px !important;\n border-right-style: solid;\n }\n .md\\:border-right-3 {\n border-right-width: 3px !important;\n border-right-style: solid;\n }\n .md\\:border-left-none {\n border-left-width: 0px !important;\n border-left-style: none;\n }\n .md\\:border-left-1 {\n border-left-width: 1px !important;\n border-left-style: solid;\n }\n .md\\:border-left-2 {\n border-left-width: 2px !important;\n border-left-style: solid;\n }\n .md\\:border-left-3 {\n border-left-width: 3px !important;\n border-left-style: solid;\n }\n .md\\:border-bottom-none {\n border-bottom-width: 0px !important;\n border-bottom-style: none;\n }\n .md\\:border-bottom-1 {\n border-bottom-width: 1px !important;\n border-bottom-style: solid;\n }\n .md\\:border-bottom-2 {\n border-bottom-width: 2px !important;\n border-bottom-style: solid;\n }\n .md\\:border-bottom-3 {\n border-bottom-width: 3px !important;\n border-bottom-style: solid;\n }\n .md\\:border-x-none {\n border-left-width: 0px !important;\n border-left-style: none;\n border-right-width: 0px !important;\n border-right-style: none;\n }\n .md\\:border-x-1 {\n border-left-width: 1px !important;\n border-left-style: solid;\n border-right-width: 1px !important;\n border-right-style: solid;\n }\n .md\\:border-x-2 {\n border-left-width: 2px !important;\n border-left-style: solid;\n border-right-width: 2px !important;\n border-right-style: solid;\n }\n .md\\:border-x-3 {\n border-left-width: 3px !important;\n border-left-style: solid;\n border-right-width: 3px !important;\n border-right-style: solid;\n }\n .md\\:border-y-none {\n border-top-width: 0px !important;\n border-top-style: none;\n border-bottom-width: 0px !important;\n border-bottom-style: none;\n }\n .md\\:border-y-1 {\n border-top-width: 1px !important;\n border-top-style: solid;\n border-bottom-width: 1px !important;\n border-bottom-style: solid;\n }\n .md\\:border-y-2 {\n border-top-width: 2px !important;\n border-top-style: solid;\n border-bottom-width: 2px !important;\n border-bottom-style: solid;\n }\n .md\\:border-y-3 {\n border-top-width: 3px !important;\n border-top-style: solid;\n border-bottom-width: 3px !important;\n border-bottom-style: solid;\n }\n}\n@media screen and (min-width: 992px) {\n .lg\\:border-none {\n border-width: 0px !important;\n border-style: none;\n }\n .lg\\:border-1 {\n border-width: 1px !important;\n border-style: solid;\n }\n .lg\\:border-2 {\n border-width: 2px !important;\n border-style: solid;\n }\n .lg\\:border-3 {\n border-width: 3px !important;\n border-style: solid;\n }\n .lg\\:border-top-none {\n border-top-width: 0px !important;\n border-top-style: none;\n }\n .lg\\:border-top-1 {\n border-top-width: 1px !important;\n border-top-style: solid;\n }\n .lg\\:border-top-2 {\n border-top-width: 2px !important;\n border-top-style: solid;\n }\n .lg\\:border-top-3 {\n border-top-width: 3px !important;\n border-top-style: solid;\n }\n .lg\\:border-right-none {\n border-right-width: 0px !important;\n border-right-style: none;\n }\n .lg\\:border-right-1 {\n border-right-width: 1px !important;\n border-right-style: solid;\n }\n .lg\\:border-right-2 {\n border-right-width: 2px !important;\n border-right-style: solid;\n }\n .lg\\:border-right-3 {\n border-right-width: 3px !important;\n border-right-style: solid;\n }\n .lg\\:border-left-none {\n border-left-width: 0px !important;\n border-left-style: none;\n }\n .lg\\:border-left-1 {\n border-left-width: 1px !important;\n border-left-style: solid;\n }\n .lg\\:border-left-2 {\n border-left-width: 2px !important;\n border-left-style: solid;\n }\n .lg\\:border-left-3 {\n border-left-width: 3px !important;\n border-left-style: solid;\n }\n .lg\\:border-bottom-none {\n border-bottom-width: 0px !important;\n border-bottom-style: none;\n }\n .lg\\:border-bottom-1 {\n border-bottom-width: 1px !important;\n border-bottom-style: solid;\n }\n .lg\\:border-bottom-2 {\n border-bottom-width: 2px !important;\n border-bottom-style: solid;\n }\n .lg\\:border-bottom-3 {\n border-bottom-width: 3px !important;\n border-bottom-style: solid;\n }\n .lg\\:border-x-none {\n border-left-width: 0px !important;\n border-left-style: none;\n border-right-width: 0px !important;\n border-right-style: none;\n }\n .lg\\:border-x-1 {\n border-left-width: 1px !important;\n border-left-style: solid;\n border-right-width: 1px !important;\n border-right-style: solid;\n }\n .lg\\:border-x-2 {\n border-left-width: 2px !important;\n border-left-style: solid;\n border-right-width: 2px !important;\n border-right-style: solid;\n }\n .lg\\:border-x-3 {\n border-left-width: 3px !important;\n border-left-style: solid;\n border-right-width: 3px !important;\n border-right-style: solid;\n }\n .lg\\:border-y-none {\n border-top-width: 0px !important;\n border-top-style: none;\n border-bottom-width: 0px !important;\n border-bottom-style: none;\n }\n .lg\\:border-y-1 {\n border-top-width: 1px !important;\n border-top-style: solid;\n border-bottom-width: 1px !important;\n border-bottom-style: solid;\n }\n .lg\\:border-y-2 {\n border-top-width: 2px !important;\n border-top-style: solid;\n border-bottom-width: 2px !important;\n border-bottom-style: solid;\n }\n .lg\\:border-y-3 {\n border-top-width: 3px !important;\n border-top-style: solid;\n border-bottom-width: 3px !important;\n border-bottom-style: solid;\n }\n}\n@media screen and (min-width: 1200px) {\n .xl\\:border-none {\n border-width: 0px !important;\n border-style: none;\n }\n .xl\\:border-1 {\n border-width: 1px !important;\n border-style: solid;\n }\n .xl\\:border-2 {\n border-width: 2px !important;\n border-style: solid;\n }\n .xl\\:border-3 {\n border-width: 3px !important;\n border-style: solid;\n }\n .xl\\:border-top-none {\n border-top-width: 0px !important;\n border-top-style: none;\n }\n .xl\\:border-top-1 {\n border-top-width: 1px !important;\n border-top-style: solid;\n }\n .xl\\:border-top-2 {\n border-top-width: 2px !important;\n border-top-style: solid;\n }\n .xl\\:border-top-3 {\n border-top-width: 3px !important;\n border-top-style: solid;\n }\n .xl\\:border-right-none {\n border-right-width: 0px !important;\n border-right-style: none;\n }\n .xl\\:border-right-1 {\n border-right-width: 1px !important;\n border-right-style: solid;\n }\n .xl\\:border-right-2 {\n border-right-width: 2px !important;\n border-right-style: solid;\n }\n .xl\\:border-right-3 {\n border-right-width: 3px !important;\n border-right-style: solid;\n }\n .xl\\:border-left-none {\n border-left-width: 0px !important;\n border-left-style: none;\n }\n .xl\\:border-left-1 {\n border-left-width: 1px !important;\n border-left-style: solid;\n }\n .xl\\:border-left-2 {\n border-left-width: 2px !important;\n border-left-style: solid;\n }\n .xl\\:border-left-3 {\n border-left-width: 3px !important;\n border-left-style: solid;\n }\n .xl\\:border-bottom-none {\n border-bottom-width: 0px !important;\n border-bottom-style: none;\n }\n .xl\\:border-bottom-1 {\n border-bottom-width: 1px !important;\n border-bottom-style: solid;\n }\n .xl\\:border-bottom-2 {\n border-bottom-width: 2px !important;\n border-bottom-style: solid;\n }\n .xl\\:border-bottom-3 {\n border-bottom-width: 3px !important;\n border-bottom-style: solid;\n }\n .xl\\:border-x-none {\n border-left-width: 0px !important;\n border-left-style: none;\n border-right-width: 0px !important;\n border-right-style: none;\n }\n .xl\\:border-x-1 {\n border-left-width: 1px !important;\n border-left-style: solid;\n border-right-width: 1px !important;\n border-right-style: solid;\n }\n .xl\\:border-x-2 {\n border-left-width: 2px !important;\n border-left-style: solid;\n border-right-width: 2px !important;\n border-right-style: solid;\n }\n .xl\\:border-x-3 {\n border-left-width: 3px !important;\n border-left-style: solid;\n border-right-width: 3px !important;\n border-right-style: solid;\n }\n .xl\\:border-y-none {\n border-top-width: 0px !important;\n border-top-style: none;\n border-bottom-width: 0px !important;\n border-bottom-style: none;\n }\n .xl\\:border-y-1 {\n border-top-width: 1px !important;\n border-top-style: solid;\n border-bottom-width: 1px !important;\n border-bottom-style: solid;\n }\n .xl\\:border-y-2 {\n border-top-width: 2px !important;\n border-top-style: solid;\n border-bottom-width: 2px !important;\n border-bottom-style: solid;\n }\n .xl\\:border-y-3 {\n border-top-width: 3px !important;\n border-top-style: solid;\n border-bottom-width: 3px !important;\n border-bottom-style: solid;\n }\n}\n.border-solid {\n border-style: solid !important;\n}\n\n.border-dashed {\n border-style: dashed !important;\n}\n\n.border-dotted {\n border-style: dotted !important;\n}\n\n.border-double {\n border-style: double !important;\n}\n\n@media screen and (min-width: 576px) {\n .sm\\:border-solid {\n border-style: solid !important;\n }\n .sm\\:border-dashed {\n border-style: dashed !important;\n }\n .sm\\:border-dotted {\n border-style: dotted !important;\n }\n .sm\\:border-double {\n border-style: double !important;\n }\n}\n@media screen and (min-width: 768px) {\n .md\\:border-solid {\n border-style: solid !important;\n }\n .md\\:border-dashed {\n border-style: dashed !important;\n }\n .md\\:border-dotted {\n border-style: dotted !important;\n }\n .md\\:border-double {\n border-style: double !important;\n }\n}\n@media screen and (min-width: 992px) {\n .lg\\:border-solid {\n border-style: solid !important;\n }\n .lg\\:border-dashed {\n border-style: dashed !important;\n }\n .lg\\:border-dotted {\n border-style: dotted !important;\n }\n .lg\\:border-double {\n border-style: double !important;\n }\n}\n@media screen and (min-width: 1200px) {\n .xl\\:border-solid {\n border-style: solid !important;\n }\n .xl\\:border-dashed {\n border-style: dashed !important;\n }\n .xl\\:border-dotted {\n border-style: dotted !important;\n }\n .xl\\:border-double {\n border-style: double !important;\n }\n}\n.border-noround {\n border-radius: 0 !important;\n}\n\n.border-round {\n border-radius: var(--p-content-border-radius) !important;\n}\n\n.border-round-xs {\n border-radius: 0.125rem !important;\n}\n\n.border-round-sm {\n border-radius: 0.25rem !important;\n}\n\n.border-round-md {\n border-radius: 0.375rem !important;\n}\n\n.border-round-lg {\n border-radius: 0.5rem !important;\n}\n\n.border-round-xl {\n border-radius: 0.75rem !important;\n}\n\n.border-round-2xl {\n border-radius: 1rem !important;\n}\n\n.border-round-3xl {\n border-radius: 1.5rem !important;\n}\n\n.border-circle {\n border-radius: 50% !important;\n}\n\n@media screen and (min-width: 576px) {\n .sm\\:border-noround {\n border-radius: 0 !important;\n }\n .sm\\:border-round {\n border-radius: var(--p-content-border-radius) !important;\n }\n .sm\\:border-round-xs {\n border-radius: 0.125rem !important;\n }\n .sm\\:border-round-sm {\n border-radius: 0.25rem !important;\n }\n .sm\\:border-round-md {\n border-radius: 0.375rem !important;\n }\n .sm\\:border-round-lg {\n border-radius: 0.5rem !important;\n }\n .sm\\:border-round-xl {\n border-radius: 0.75rem !important;\n }\n .sm\\:border-round-2xl {\n border-radius: 1rem !important;\n }\n .sm\\:border-round-3xl {\n border-radius: 1.5rem !important;\n }\n .sm\\:border-circle {\n border-radius: 50% !important;\n }\n}\n@media screen and (min-width: 768px) {\n .md\\:border-noround {\n border-radius: 0 !important;\n }\n .md\\:border-round {\n border-radius: var(--p-content-border-radius) !important;\n }\n .md\\:border-round-xs {\n border-radius: 0.125rem !important;\n }\n .md\\:border-round-sm {\n border-radius: 0.25rem !important;\n }\n .md\\:border-round-md {\n border-radius: 0.375rem !important;\n }\n .md\\:border-round-lg {\n border-radius: 0.5rem !important;\n }\n .md\\:border-round-xl {\n border-radius: 0.75rem !important;\n }\n .md\\:border-round-2xl {\n border-radius: 1rem !important;\n }\n .md\\:border-round-3xl {\n border-radius: 1.5rem !important;\n }\n .md\\:border-circle {\n border-radius: 50% !important;\n }\n}\n@media screen and (min-width: 992px) {\n .lg\\:border-noround {\n border-radius: 0 !important;\n }\n .lg\\:border-round {\n border-radius: var(--p-content-border-radius) !important;\n }\n .lg\\:border-round-xs {\n border-radius: 0.125rem !important;\n }\n .lg\\:border-round-sm {\n border-radius: 0.25rem !important;\n }\n .lg\\:border-round-md {\n border-radius: 0.375rem !important;\n }\n .lg\\:border-round-lg {\n border-radius: 0.5rem !important;\n }\n .lg\\:border-round-xl {\n border-radius: 0.75rem !important;\n }\n .lg\\:border-round-2xl {\n border-radius: 1rem !important;\n }\n .lg\\:border-round-3xl {\n border-radius: 1.5rem !important;\n }\n .lg\\:border-circle {\n border-radius: 50% !important;\n }\n}\n@media screen and (min-width: 1200px) {\n .xl\\:border-noround {\n border-radius: 0 !important;\n }\n .xl\\:border-round {\n border-radius: var(--p-content-border-radius) !important;\n }\n .xl\\:border-round-xs {\n border-radius: 0.125rem !important;\n }\n .xl\\:border-round-sm {\n border-radius: 0.25rem !important;\n }\n .xl\\:border-round-md {\n border-radius: 0.375rem !important;\n }\n .xl\\:border-round-lg {\n border-radius: 0.5rem !important;\n }\n .xl\\:border-round-xl {\n border-radius: 0.75rem !important;\n }\n .xl\\:border-round-2xl {\n border-radius: 1rem !important;\n }\n .xl\\:border-round-3xl {\n border-radius: 1.5rem !important;\n }\n .xl\\:border-circle {\n border-radius: 50% !important;\n }\n}\n.border-noround-left {\n border-top-left-radius: 0 !important;\n border-bottom-left-radius: 0 !important;\n}\n\n.border-noround-top {\n border-top-left-radius: 0 !important;\n border-top-right-radius: 0 !important;\n}\n\n.border-noround-right {\n border-top-right-radius: 0 !important;\n border-bottom-right-radius: 0 !important;\n}\n\n.border-noround-bottom {\n border-bottom-left-radius: 0 !important;\n border-bottom-right-radius: 0 !important;\n}\n\n.border-round-left {\n border-top-left-radius: var(--p-content-border-radius) !important;\n border-bottom-left-radius: var(--p-content-border-radius) !important;\n}\n\n.border-round-top {\n border-top-left-radius: var(--p-content-border-radius) !important;\n border-top-right-radius: var(--p-content-border-radius) !important;\n}\n\n.border-round-right {\n border-top-right-radius: var(--p-content-border-radius) !important;\n border-bottom-right-radius: var(--p-content-border-radius) !important;\n}\n\n.border-round-bottom {\n border-bottom-left-radius: var(--p-content-border-radius) !important;\n border-bottom-right-radius: var(--p-content-border-radius) !important;\n}\n\n.border-round-left-xs {\n border-top-left-radius: 0.125rem !important;\n border-bottom-left-radius: 0.125rem !important;\n}\n\n.border-round-top-xs {\n border-top-left-radius: 0.125rem !important;\n border-top-right-radius: 0.125rem !important;\n}\n\n.border-round-right-xs {\n border-top-right-radius: 0.125rem !important;\n border-bottom-right-radius: 0.125rem !important;\n}\n\n.border-round-bottom-xs {\n border-bottom-left-radius: 0.125rem !important;\n border-bottom-right-radius: 0.125rem !important;\n}\n\n.border-round-left-sm {\n border-top-left-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.border-round-top-sm {\n border-top-left-radius: 0.25rem !important;\n border-top-right-radius: 0.25rem !important;\n}\n\n.border-round-right-sm {\n border-top-right-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important;\n}\n\n.border-round-bottom-sm {\n border-bottom-left-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important;\n}\n\n.border-round-left-md {\n border-top-left-radius: 0.375rem !important;\n border-bottom-left-radius: 0.375rem !important;\n}\n\n.border-round-top-md {\n border-top-left-radius: 0.375rem !important;\n border-top-right-radius: 0.375rem !important;\n}\n\n.border-round-right-md {\n border-top-right-radius: 0.375rem !important;\n border-bottom-right-radius: 0.375rem !important;\n}\n\n.border-round-bottom-md {\n border-bottom-left-radius: 0.375rem !important;\n border-bottom-right-radius: 0.375rem !important;\n}\n\n.border-round-left-lg {\n border-top-left-radius: 0.5rem !important;\n border-bottom-left-radius: 0.5rem !important;\n}\n\n.border-round-top-lg {\n border-top-left-radius: 0.5rem !important;\n border-top-right-radius: 0.5rem !important;\n}\n\n.border-round-right-lg {\n border-top-right-radius: 0.5rem !important;\n border-bottom-right-radius: 0.5rem !important;\n}\n\n.border-round-bottom-lg {\n border-bottom-left-radius: 0.5rem !important;\n border-bottom-right-radius: 0.5rem !important;\n}\n\n.border-round-left-xl {\n border-top-left-radius: 0.75rem !important;\n border-bottom-left-radius: 0.75rem !important;\n}\n\n.border-round-top-xl {\n border-top-left-radius: 0.75rem !important;\n border-top-right-radius: 0.75rem !important;\n}\n\n.border-round-right-xl {\n border-top-right-radius: 0.75rem !important;\n border-bottom-right-radius: 0.75rem !important;\n}\n\n.border-round-bottom-xl {\n border-bottom-left-radius: 0.75rem !important;\n border-bottom-right-radius: 0.75rem !important;\n}\n\n.border-round-left-2xl {\n border-top-left-radius: 1rem !important;\n border-bottom-left-radius: 1rem !important;\n}\n\n.border-round-top-2xl {\n border-top-left-radius: 1rem !important;\n border-top-right-radius: 1rem !important;\n}\n\n.border-round-right-2xl {\n border-top-right-radius: 1rem !important;\n border-bottom-right-radius: 1rem !important;\n}\n\n.border-round-bottom-2xl {\n border-bottom-left-radius: 1rem !important;\n border-bottom-right-radius: 1rem !important;\n}\n\n.border-round-left-3xl {\n border-top-left-radius: 1.5rem !important;\n border-bottom-left-radius: 1.5rem !important;\n}\n\n.border-round-top-3xl {\n border-top-left-radius: 1.5rem !important;\n border-top-right-radius: 1.5rem !important;\n}\n\n.border-round-right-3xl {\n border-top-right-radius: 1.5rem !important;\n border-bottom-right-radius: 1.5rem !important;\n}\n\n.border-round-bottom-3xl {\n border-bottom-left-radius: 1.5rem !important;\n border-bottom-right-radius: 1.5rem !important;\n}\n\n.border-circle-left {\n border-top-left-radius: 50% !important;\n border-bottom-left-radius: 50% !important;\n}\n\n.border-circle-top {\n border-top-left-radius: 50% !important;\n border-top-right-radius: 50% !important;\n}\n\n.border-circle-right {\n border-top-right-radius: 50% !important;\n border-bottom-right-radius: 50% !important;\n}\n\n.border-circle-bottom {\n border-bottom-left-radius: 50% !important;\n border-bottom-right-radius: 50% !important;\n}\n\n@media screen and (min-width: 576px) {\n .sm\\:border-noround-left {\n border-top-left-radius: 0 !important;\n border-bottom-left-radius: 0 !important;\n }\n .sm\\:border-noround-top {\n border-top-left-radius: 0 !important;\n border-top-right-radius: 0 !important;\n }\n .sm\\:border-noround-right {\n border-top-right-radius: 0 !important;\n border-bottom-right-radius: 0 !important;\n }\n .sm\\:border-noround-bottom {\n border-bottom-left-radius: 0 !important;\n border-bottom-right-radius: 0 !important;\n }\n .sm\\:border-round-left {\n border-top-left-radius: var(--p-content-border-radius) !important;\n border-bottom-left-radius: var(--p-content-border-radius) !important;\n }\n .sm\\:border-round-top {\n border-top-left-radius: var(--p-content-border-radius) !important;\n border-top-right-radius: var(--p-content-border-radius) !important;\n }\n .sm\\:border-round-right {\n border-top-right-radius: var(--p-content-border-radius) !important;\n border-bottom-right-radius: var(--p-content-border-radius) !important;\n }\n .sm\\:border-round-bottom {\n border-bottom-left-radius: var(--p-content-border-radius) !important;\n border-bottom-right-radius: var(--p-content-border-radius) !important;\n }\n .sm\\:border-round-left-xs {\n border-top-left-radius: 0.125rem !important;\n border-bottom-left-radius: 0.125rem !important;\n }\n .sm\\:border-round-top-xs {\n border-top-left-radius: 0.125rem !important;\n border-top-right-radius: 0.125rem !important;\n }\n .sm\\:border-round-right-xs {\n border-top-right-radius: 0.125rem !important;\n border-bottom-right-radius: 0.125rem !important;\n }\n .sm\\:border-round-bottom-xs {\n border-bottom-left-radius: 0.125rem !important;\n border-bottom-right-radius: 0.125rem !important;\n }\n .sm\\:border-round-left-sm {\n border-top-left-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n }\n .sm\\:border-round-top-sm {\n border-top-left-radius: 0.25rem !important;\n border-top-right-radius: 0.25rem !important;\n }\n .sm\\:border-round-right-sm {\n border-top-right-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important;\n }\n .sm\\:border-round-bottom-sm {\n border-bottom-left-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important;\n }\n .sm\\:border-round-left-md {\n border-top-left-radius: 0.375rem !important;\n border-bottom-left-radius: 0.375rem !important;\n }\n .sm\\:border-round-top-md {\n border-top-left-radius: 0.375rem !important;\n border-top-right-radius: 0.375rem !important;\n }\n .sm\\:border-round-right-md {\n border-top-right-radius: 0.375rem !important;\n border-bottom-right-radius: 0.375rem !important;\n }\n .sm\\:border-round-bottom-md {\n border-bottom-left-radius: 0.375rem !important;\n border-bottom-right-radius: 0.375rem !important;\n }\n .sm\\:border-round-left-lg {\n border-top-left-radius: 0.5rem !important;\n border-bottom-left-radius: 0.5rem !important;\n }\n .sm\\:border-round-top-lg {\n border-top-left-radius: 0.5rem !important;\n border-top-right-radius: 0.5rem !important;\n }\n .sm\\:border-round-right-lg {\n border-top-right-radius: 0.5rem !important;\n border-bottom-right-radius: 0.5rem !important;\n }\n .sm\\:border-round-bottom-lg {\n border-bottom-left-radius: 0.5rem !important;\n border-bottom-right-radius: 0.5rem !important;\n }\n .sm\\:border-round-left-xl {\n border-top-left-radius: 0.75rem !important;\n border-bottom-left-radius: 0.75rem !important;\n }\n .sm\\:border-round-top-xl {\n border-top-left-radius: 0.75rem !important;\n border-top-right-radius: 0.75rem !important;\n }\n .sm\\:border-round-right-xl {\n border-top-right-radius: 0.75rem !important;\n border-bottom-right-radius: 0.75rem !important;\n }\n .sm\\:border-round-bottom-xl {\n border-bottom-left-radius: 0.75rem !important;\n border-bottom-right-radius: 0.75rem !important;\n }\n .sm\\:border-round-left-2xl {\n border-top-left-radius: 1rem !important;\n border-bottom-left-radius: 1rem !important;\n }\n .sm\\:border-round-top-2xl {\n border-top-left-radius: 1rem !important;\n border-top-right-radius: 1rem !important;\n }\n .sm\\:border-round-right-2xl {\n border-top-right-radius: 1rem !important;\n border-bottom-right-radius: 1rem !important;\n }\n .sm\\:border-round-bottom-2xl {\n border-bottom-left-radius: 1rem !important;\n border-bottom-right-radius: 1rem !important;\n }\n .sm\\:border-round-left-3xl {\n border-top-left-radius: 1.5rem !important;\n border-bottom-left-radius: 1.5rem !important;\n }\n .sm\\:border-round-top-3xl {\n border-top-left-radius: 1.5rem !important;\n border-top-right-radius: 1.5rem !important;\n }\n .sm\\:border-round-right-3xl {\n border-top-right-radius: 1.5rem !important;\n border-bottom-right-radius: 1.5rem !important;\n }\n .sm\\:border-round-bottom-3xl {\n border-bottom-left-radius: 1.5rem !important;\n border-bottom-right-radius: 1.5rem !important;\n }\n .sm\\:border-circle-left {\n border-top-left-radius: 50% !important;\n border-bottom-left-radius: 50% !important;\n }\n .sm\\:border-circle-top {\n border-top-left-radius: 50% !important;\n border-top-right-radius: 50% !important;\n }\n .sm\\:border-circle-right {\n border-top-right-radius: 50% !important;\n border-bottom-right-radius: 50% !important;\n }\n .sm\\:border-circle-bottom {\n border-bottom-left-radius: 50% !important;\n border-bottom-right-radius: 50% !important;\n }\n}\n@media screen and (min-width: 768px) {\n .md\\:border-noround-left {\n border-top-left-radius: 0 !important;\n border-bottom-left-radius: 0 !important;\n }\n .md\\:border-noround-top {\n border-top-left-radius: 0 !important;\n border-top-right-radius: 0 !important;\n }\n .md\\:border-noround-right {\n border-top-right-radius: 0 !important;\n border-bottom-right-radius: 0 !important;\n }\n .md\\:border-noround-bottom {\n border-bottom-left-radius: 0 !important;\n border-bottom-right-radius: 0 !important;\n }\n .md\\:border-round-left {\n border-top-left-radius: var(--p-content-border-radius) !important;\n border-bottom-left-radius: var(--p-content-border-radius) !important;\n }\n .md\\:border-round-top {\n border-top-left-radius: var(--p-content-border-radius) !important;\n border-top-right-radius: var(--p-content-border-radius) !important;\n }\n .md\\:border-round-right {\n border-top-right-radius: var(--p-content-border-radius) !important;\n border-bottom-right-radius: var(--p-content-border-radius) !important;\n }\n .md\\:border-round-bottom {\n border-bottom-left-radius: var(--p-content-border-radius) !important;\n border-bottom-right-radius: var(--p-content-border-radius) !important;\n }\n .md\\:border-round-left-xs {\n border-top-left-radius: 0.125rem !important;\n border-bottom-left-radius: 0.125rem !important;\n }\n .md\\:border-round-top-xs {\n border-top-left-radius: 0.125rem !important;\n border-top-right-radius: 0.125rem !important;\n }\n .md\\:border-round-right-xs {\n border-top-right-radius: 0.125rem !important;\n border-bottom-right-radius: 0.125rem !important;\n }\n .md\\:border-round-bottom-xs {\n border-bottom-left-radius: 0.125rem !important;\n border-bottom-right-radius: 0.125rem !important;\n }\n .md\\:border-round-left-sm {\n border-top-left-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n }\n .md\\:border-round-top-sm {\n border-top-left-radius: 0.25rem !important;\n border-top-right-radius: 0.25rem !important;\n }\n .md\\:border-round-right-sm {\n border-top-right-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important;\n }\n .md\\:border-round-bottom-sm {\n border-bottom-left-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important;\n }\n .md\\:border-round-left-md {\n border-top-left-radius: 0.375rem !important;\n border-bottom-left-radius: 0.375rem !important;\n }\n .md\\:border-round-top-md {\n border-top-left-radius: 0.375rem !important;\n border-top-right-radius: 0.375rem !important;\n }\n .md\\:border-round-right-md {\n border-top-right-radius: 0.375rem !important;\n border-bottom-right-radius: 0.375rem !important;\n }\n .md\\:border-round-bottom-md {\n border-bottom-left-radius: 0.375rem !important;\n border-bottom-right-radius: 0.375rem !important;\n }\n .md\\:border-round-left-lg {\n border-top-left-radius: 0.5rem !important;\n border-bottom-left-radius: 0.5rem !important;\n }\n .md\\:border-round-top-lg {\n border-top-left-radius: 0.5rem !important;\n border-top-right-radius: 0.5rem !important;\n }\n .md\\:border-round-right-lg {\n border-top-right-radius: 0.5rem !important;\n border-bottom-right-radius: 0.5rem !important;\n }\n .md\\:border-round-bottom-lg {\n border-bottom-left-radius: 0.5rem !important;\n border-bottom-right-radius: 0.5rem !important;\n }\n .md\\:border-round-left-xl {\n border-top-left-radius: 0.75rem !important;\n border-bottom-left-radius: 0.75rem !important;\n }\n .md\\:border-round-top-xl {\n border-top-left-radius: 0.75rem !important;\n border-top-right-radius: 0.75rem !important;\n }\n .md\\:border-round-right-xl {\n border-top-right-radius: 0.75rem !important;\n border-bottom-right-radius: 0.75rem !important;\n }\n .md\\:border-round-bottom-xl {\n border-bottom-left-radius: 0.75rem !important;\n border-bottom-right-radius: 0.75rem !important;\n }\n .md\\:border-round-left-2xl {\n border-top-left-radius: 1rem !important;\n border-bottom-left-radius: 1rem !important;\n }\n .md\\:border-round-top-2xl {\n border-top-left-radius: 1rem !important;\n border-top-right-radius: 1rem !important;\n }\n .md\\:border-round-right-2xl {\n border-top-right-radius: 1rem !important;\n border-bottom-right-radius: 1rem !important;\n }\n .md\\:border-round-bottom-2xl {\n border-bottom-left-radius: 1rem !important;\n border-bottom-right-radius: 1rem !important;\n }\n .md\\:border-round-left-3xl {\n border-top-left-radius: 1.5rem !important;\n border-bottom-left-radius: 1.5rem !important;\n }\n .md\\:border-round-top-3xl {\n border-top-left-radius: 1.5rem !important;\n border-top-right-radius: 1.5rem !important;\n }\n .md\\:border-round-right-3xl {\n border-top-right-radius: 1.5rem !important;\n border-bottom-right-radius: 1.5rem !important;\n }\n .md\\:border-round-bottom-3xl {\n border-bottom-left-radius: 1.5rem !important;\n border-bottom-right-radius: 1.5rem !important;\n }\n .md\\:border-circle-left {\n border-top-left-radius: 50% !important;\n border-bottom-left-radius: 50% !important;\n }\n .md\\:border-circle-top {\n border-top-left-radius: 50% !important;\n border-top-right-radius: 50% !important;\n }\n .md\\:border-circle-right {\n border-top-right-radius: 50% !important;\n border-bottom-right-radius: 50% !important;\n }\n .md\\:border-circle-bottom {\n border-bottom-left-radius: 50% !important;\n border-bottom-right-radius: 50% !important;\n }\n}\n@media screen and (min-width: 992px) {\n .lg\\:border-noround-left {\n border-top-left-radius: 0 !important;\n border-bottom-left-radius: 0 !important;\n }\n .lg\\:border-noround-top {\n border-top-left-radius: 0 !important;\n border-top-right-radius: 0 !important;\n }\n .lg\\:border-noround-right {\n border-top-right-radius: 0 !important;\n border-bottom-right-radius: 0 !important;\n }\n .lg\\:border-noround-bottom {\n border-bottom-left-radius: 0 !important;\n border-bottom-right-radius: 0 !important;\n }\n .lg\\:border-round-left {\n border-top-left-radius: var(--p-content-border-radius) !important;\n border-bottom-left-radius: var(--p-content-border-radius) !important;\n }\n .lg\\:border-round-top {\n border-top-left-radius: var(--p-content-border-radius) !important;\n border-top-right-radius: var(--p-content-border-radius) !important;\n }\n .lg\\:border-round-right {\n border-top-right-radius: var(--p-content-border-radius) !important;\n border-bottom-right-radius: var(--p-content-border-radius) !important;\n }\n .lg\\:border-round-bottom {\n border-bottom-left-radius: var(--p-content-border-radius) !important;\n border-bottom-right-radius: var(--p-content-border-radius) !important;\n }\n .lg\\:border-round-left-xs {\n border-top-left-radius: 0.125rem !important;\n border-bottom-left-radius: 0.125rem !important;\n }\n .lg\\:border-round-top-xs {\n border-top-left-radius: 0.125rem !important;\n border-top-right-radius: 0.125rem !important;\n }\n .lg\\:border-round-right-xs {\n border-top-right-radius: 0.125rem !important;\n border-bottom-right-radius: 0.125rem !important;\n }\n .lg\\:border-round-bottom-xs {\n border-bottom-left-radius: 0.125rem !important;\n border-bottom-right-radius: 0.125rem !important;\n }\n .lg\\:border-round-left-sm {\n border-top-left-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n }\n .lg\\:border-round-top-sm {\n border-top-left-radius: 0.25rem !important;\n border-top-right-radius: 0.25rem !important;\n }\n .lg\\:border-round-right-sm {\n border-top-right-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important;\n }\n .lg\\:border-round-bottom-sm {\n border-bottom-left-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important;\n }\n .lg\\:border-round-left-md {\n border-top-left-radius: 0.375rem !important;\n border-bottom-left-radius: 0.375rem !important;\n }\n .lg\\:border-round-top-md {\n border-top-left-radius: 0.375rem !important;\n border-top-right-radius: 0.375rem !important;\n }\n .lg\\:border-round-right-md {\n border-top-right-radius: 0.375rem !important;\n border-bottom-right-radius: 0.375rem !important;\n }\n .lg\\:border-round-bottom-md {\n border-bottom-left-radius: 0.375rem !important;\n border-bottom-right-radius: 0.375rem !important;\n }\n .lg\\:border-round-left-lg {\n border-top-left-radius: 0.5rem !important;\n border-bottom-left-radius: 0.5rem !important;\n }\n .lg\\:border-round-top-lg {\n border-top-left-radius: 0.5rem !important;\n border-top-right-radius: 0.5rem !important;\n }\n .lg\\:border-round-right-lg {\n border-top-right-radius: 0.5rem !important;\n border-bottom-right-radius: 0.5rem !important;\n }\n .lg\\:border-round-bottom-lg {\n border-bottom-left-radius: 0.5rem !important;\n border-bottom-right-radius: 0.5rem !important;\n }\n .lg\\:border-round-left-xl {\n border-top-left-radius: 0.75rem !important;\n border-bottom-left-radius: 0.75rem !important;\n }\n .lg\\:border-round-top-xl {\n border-top-left-radius: 0.75rem !important;\n border-top-right-radius: 0.75rem !important;\n }\n .lg\\:border-round-right-xl {\n border-top-right-radius: 0.75rem !important;\n border-bottom-right-radius: 0.75rem !important;\n }\n .lg\\:border-round-bottom-xl {\n border-bottom-left-radius: 0.75rem !important;\n border-bottom-right-radius: 0.75rem !important;\n }\n .lg\\:border-round-left-2xl {\n border-top-left-radius: 1rem !important;\n border-bottom-left-radius: 1rem !important;\n }\n .lg\\:border-round-top-2xl {\n border-top-left-radius: 1rem !important;\n border-top-right-radius: 1rem !important;\n }\n .lg\\:border-round-right-2xl {\n border-top-right-radius: 1rem !important;\n border-bottom-right-radius: 1rem !important;\n }\n .lg\\:border-round-bottom-2xl {\n border-bottom-left-radius: 1rem !important;\n border-bottom-right-radius: 1rem !important;\n }\n .lg\\:border-round-left-3xl {\n border-top-left-radius: 1.5rem !important;\n border-bottom-left-radius: 1.5rem !important;\n }\n .lg\\:border-round-top-3xl {\n border-top-left-radius: 1.5rem !important;\n border-top-right-radius: 1.5rem !important;\n }\n .lg\\:border-round-right-3xl {\n border-top-right-radius: 1.5rem !important;\n border-bottom-right-radius: 1.5rem !important;\n }\n .lg\\:border-round-bottom-3xl {\n border-bottom-left-radius: 1.5rem !important;\n border-bottom-right-radius: 1.5rem !important;\n }\n .lg\\:border-circle-left {\n border-top-left-radius: 50% !important;\n border-bottom-left-radius: 50% !important;\n }\n .lg\\:border-circle-top {\n border-top-left-radius: 50% !important;\n border-top-right-radius: 50% !important;\n }\n .lg\\:border-circle-right {\n border-top-right-radius: 50% !important;\n border-bottom-right-radius: 50% !important;\n }\n .lg\\:border-circle-bottom {\n border-bottom-left-radius: 50% !important;\n border-bottom-right-radius: 50% !important;\n }\n}\n@media screen and (min-width: 1200px) {\n .xl\\:border-noround-left {\n border-top-left-radius: 0 !important;\n border-bottom-left-radius: 0 !important;\n }\n .xl\\:border-noround-top {\n border-top-left-radius: 0 !important;\n border-top-right-radius: 0 !important;\n }\n .xl\\:border-noround-right {\n border-top-right-radius: 0 !important;\n border-bottom-right-radius: 0 !important;\n }\n .xl\\:border-noround-bottom {\n border-bottom-left-radius: 0 !important;\n border-bottom-right-radius: 0 !important;\n }\n .xl\\:border-round-left {\n border-top-left-radius: var(--p-content-border-radius) !important;\n border-bottom-left-radius: var(--p-content-border-radius) !important;\n }\n .xl\\:border-round-top {\n border-top-left-radius: var(--p-content-border-radius) !important;\n border-top-right-radius: var(--p-content-border-radius) !important;\n }\n .xl\\:border-round-right {\n border-top-right-radius: var(--p-content-border-radius) !important;\n border-bottom-right-radius: var(--p-content-border-radius) !important;\n }\n .xl\\:border-round-bottom {\n border-bottom-left-radius: var(--p-content-border-radius) !important;\n border-bottom-right-radius: var(--p-content-border-radius) !important;\n }\n .xl\\:border-round-left-xs {\n border-top-left-radius: 0.125rem !important;\n border-bottom-left-radius: 0.125rem !important;\n }\n .xl\\:border-round-top-xs {\n border-top-left-radius: 0.125rem !important;\n border-top-right-radius: 0.125rem !important;\n }\n .xl\\:border-round-right-xs {\n border-top-right-radius: 0.125rem !important;\n border-bottom-right-radius: 0.125rem !important;\n }\n .xl\\:border-round-bottom-xs {\n border-bottom-left-radius: 0.125rem !important;\n border-bottom-right-radius: 0.125rem !important;\n }\n .xl\\:border-round-left-sm {\n border-top-left-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n }\n .xl\\:border-round-top-sm {\n border-top-left-radius: 0.25rem !important;\n border-top-right-radius: 0.25rem !important;\n }\n .xl\\:border-round-right-sm {\n border-top-right-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important;\n }\n .xl\\:border-round-bottom-sm {\n border-bottom-left-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important;\n }\n .xl\\:border-round-left-md {\n border-top-left-radius: 0.375rem !important;\n border-bottom-left-radius: 0.375rem !important;\n }\n .xl\\:border-round-top-md {\n border-top-left-radius: 0.375rem !important;\n border-top-right-radius: 0.375rem !important;\n }\n .xl\\:border-round-right-md {\n border-top-right-radius: 0.375rem !important;\n border-bottom-right-radius: 0.375rem !important;\n }\n .xl\\:border-round-bottom-md {\n border-bottom-left-radius: 0.375rem !important;\n border-bottom-right-radius: 0.375rem !important;\n }\n .xl\\:border-round-left-lg {\n border-top-left-radius: 0.5rem !important;\n border-bottom-left-radius: 0.5rem !important;\n }\n .xl\\:border-round-top-lg {\n border-top-left-radius: 0.5rem !important;\n border-top-right-radius: 0.5rem !important;\n }\n .xl\\:border-round-right-lg {\n border-top-right-radius: 0.5rem !important;\n border-bottom-right-radius: 0.5rem !important;\n }\n .xl\\:border-round-bottom-lg {\n border-bottom-left-radius: 0.5rem !important;\n border-bottom-right-radius: 0.5rem !important;\n }\n .xl\\:border-round-left-xl {\n border-top-left-radius: 0.75rem !important;\n border-bottom-left-radius: 0.75rem !important;\n }\n .xl\\:border-round-top-xl {\n border-top-left-radius: 0.75rem !important;\n border-top-right-radius: 0.75rem !important;\n }\n .xl\\:border-round-right-xl {\n border-top-right-radius: 0.75rem !important;\n border-bottom-right-radius: 0.75rem !important;\n }\n .xl\\:border-round-bottom-xl {\n border-bottom-left-radius: 0.75rem !important;\n border-bottom-right-radius: 0.75rem !important;\n }\n .xl\\:border-round-left-2xl {\n border-top-left-radius: 1rem !important;\n border-bottom-left-radius: 1rem !important;\n }\n .xl\\:border-round-top-2xl {\n border-top-left-radius: 1rem !important;\n border-top-right-radius: 1rem !important;\n }\n .xl\\:border-round-right-2xl {\n border-top-right-radius: 1rem !important;\n border-bottom-right-radius: 1rem !important;\n }\n .xl\\:border-round-bottom-2xl {\n border-bottom-left-radius: 1rem !important;\n border-bottom-right-radius: 1rem !important;\n }\n .xl\\:border-round-left-3xl {\n border-top-left-radius: 1.5rem !important;\n border-bottom-left-radius: 1.5rem !important;\n }\n .xl\\:border-round-top-3xl {\n border-top-left-radius: 1.5rem !important;\n border-top-right-radius: 1.5rem !important;\n }\n .xl\\:border-round-right-3xl {\n border-top-right-radius: 1.5rem !important;\n border-bottom-right-radius: 1.5rem !important;\n }\n .xl\\:border-round-bottom-3xl {\n border-bottom-left-radius: 1.5rem !important;\n border-bottom-right-radius: 1.5rem !important;\n }\n .xl\\:border-circle-left {\n border-top-left-radius: 50% !important;\n border-bottom-left-radius: 50% !important;\n }\n .xl\\:border-circle-top {\n border-top-left-radius: 50% !important;\n border-top-right-radius: 50% !important;\n }\n .xl\\:border-circle-right {\n border-top-right-radius: 50% !important;\n border-bottom-right-radius: 50% !important;\n }\n .xl\\:border-circle-bottom {\n border-bottom-left-radius: 50% !important;\n border-bottom-right-radius: 50% !important;\n }\n}\n.w-full {\n width: 100% !important;\n}\n\n.w-screen {\n width: 100vw !important;\n}\n\n.w-auto {\n width: auto !important;\n}\n\n.w-1 {\n width: 8.3333% !important;\n}\n\n.w-2 {\n width: 16.6667% !important;\n}\n\n.w-3 {\n width: 25% !important;\n}\n\n.w-4 {\n width: 33.3333% !important;\n}\n\n.w-5 {\n width: 41.6667% !important;\n}\n\n.w-6 {\n width: 50% !important;\n}\n\n.w-7 {\n width: 58.3333% !important;\n}\n\n.w-8 {\n width: 66.6667% !important;\n}\n\n.w-9 {\n width: 75% !important;\n}\n\n.w-10 {\n width: 83.3333% !important;\n}\n\n.w-11 {\n width: 91.6667% !important;\n}\n\n.w-12 {\n width: 100% !important;\n}\n\n.w-min {\n width: min-content !important;\n}\n\n.w-max {\n width: max-content !important;\n}\n\n.w-fit {\n width: fit-content !important;\n}\n\n.w-1rem {\n width: 1rem !important;\n}\n\n.w-2rem {\n width: 2rem !important;\n}\n\n.w-3rem {\n width: 3rem !important;\n}\n\n.w-4rem {\n width: 4rem !important;\n}\n\n.w-5rem {\n width: 5rem !important;\n}\n\n.w-6rem {\n width: 6rem !important;\n}\n\n.w-7rem {\n width: 7rem !important;\n}\n\n.w-8rem {\n width: 8rem !important;\n}\n\n.w-9rem {\n width: 9rem !important;\n}\n\n.w-10rem {\n width: 10rem !important;\n}\n\n.w-11rem {\n width: 11rem !important;\n}\n\n.w-12rem {\n width: 12rem !important;\n}\n\n.w-13rem {\n width: 13rem !important;\n}\n\n.w-14rem {\n width: 14rem !important;\n}\n\n.w-15rem {\n width: 15rem !important;\n}\n\n.w-16rem {\n width: 16rem !important;\n}\n\n.w-17rem {\n width: 17rem !important;\n}\n\n.w-18rem {\n width: 18rem !important;\n}\n\n.w-19rem {\n width: 19rem !important;\n}\n\n.w-20rem {\n width: 20rem !important;\n}\n\n.w-21rem {\n width: 21rem !important;\n}\n\n.w-22rem {\n width: 22rem !important;\n}\n\n.w-23rem {\n width: 23rem !important;\n}\n\n.w-24rem {\n width: 24rem !important;\n}\n\n.w-25rem {\n width: 25rem !important;\n}\n\n.w-26rem {\n width: 26rem !important;\n}\n\n.w-27rem {\n width: 27rem !important;\n}\n\n.w-28rem {\n width: 28rem !important;\n}\n\n.w-29rem {\n width: 29rem !important;\n}\n\n.w-30rem {\n width: 30rem !important;\n}\n\n@media screen and (min-width: 576px) {\n .sm\\:w-full {\n width: 100% !important;\n }\n .sm\\:w-screen {\n width: 100vw !important;\n }\n .sm\\:w-auto {\n width: auto !important;\n }\n .sm\\:w-1 {\n width: 8.3333% !important;\n }\n .sm\\:w-2 {\n width: 16.6667% !important;\n }\n .sm\\:w-3 {\n width: 25% !important;\n }\n .sm\\:w-4 {\n width: 33.3333% !important;\n }\n .sm\\:w-5 {\n width: 41.6667% !important;\n }\n .sm\\:w-6 {\n width: 50% !important;\n }\n .sm\\:w-7 {\n width: 58.3333% !important;\n }\n .sm\\:w-8 {\n width: 66.6667% !important;\n }\n .sm\\:w-9 {\n width: 75% !important;\n }\n .sm\\:w-10 {\n width: 83.3333% !important;\n }\n .sm\\:w-11 {\n width: 91.6667% !important;\n }\n .sm\\:w-12 {\n width: 100% !important;\n }\n .sm\\:w-min {\n width: min-content !important;\n }\n .sm\\:w-max {\n width: max-content !important;\n }\n .sm\\:w-fit {\n width: fit-content !important;\n }\n .sm\\:w-1rem {\n width: 1rem !important;\n }\n .sm\\:w-2rem {\n width: 2rem !important;\n }\n .sm\\:w-3rem {\n width: 3rem !important;\n }\n .sm\\:w-4rem {\n width: 4rem !important;\n }\n .sm\\:w-5rem {\n width: 5rem !important;\n }\n .sm\\:w-6rem {\n width: 6rem !important;\n }\n .sm\\:w-7rem {\n width: 7rem !important;\n }\n .sm\\:w-8rem {\n width: 8rem !important;\n }\n .sm\\:w-9rem {\n width: 9rem !important;\n }\n .sm\\:w-10rem {\n width: 10rem !important;\n }\n .sm\\:w-11rem {\n width: 11rem !important;\n }\n .sm\\:w-12rem {\n width: 12rem !important;\n }\n .sm\\:w-13rem {\n width: 13rem !important;\n }\n .sm\\:w-14rem {\n width: 14rem !important;\n }\n .sm\\:w-15rem {\n width: 15rem !important;\n }\n .sm\\:w-16rem {\n width: 16rem !important;\n }\n .sm\\:w-17rem {\n width: 17rem !important;\n }\n .sm\\:w-18rem {\n width: 18rem !important;\n }\n .sm\\:w-19rem {\n width: 19rem !important;\n }\n .sm\\:w-20rem {\n width: 20rem !important;\n }\n .sm\\:w-21rem {\n width: 21rem !important;\n }\n .sm\\:w-22rem {\n width: 22rem !important;\n }\n .sm\\:w-23rem {\n width: 23rem !important;\n }\n .sm\\:w-24rem {\n width: 24rem !important;\n }\n .sm\\:w-25rem {\n width: 25rem !important;\n }\n .sm\\:w-26rem {\n width: 26rem !important;\n }\n .sm\\:w-27rem {\n width: 27rem !important;\n }\n .sm\\:w-28rem {\n width: 28rem !important;\n }\n .sm\\:w-29rem {\n width: 29rem !important;\n }\n .sm\\:w-30rem {\n width: 30rem !important;\n }\n}\n@media screen and (min-width: 768px) {\n .md\\:w-full {\n width: 100% !important;\n }\n .md\\:w-screen {\n width: 100vw !important;\n }\n .md\\:w-auto {\n width: auto !important;\n }\n .md\\:w-1 {\n width: 8.3333% !important;\n }\n .md\\:w-2 {\n width: 16.6667% !important;\n }\n .md\\:w-3 {\n width: 25% !important;\n }\n .md\\:w-4 {\n width: 33.3333% !important;\n }\n .md\\:w-5 {\n width: 41.6667% !important;\n }\n .md\\:w-6 {\n width: 50% !important;\n }\n .md\\:w-7 {\n width: 58.3333% !important;\n }\n .md\\:w-8 {\n width: 66.6667% !important;\n }\n .md\\:w-9 {\n width: 75% !important;\n }\n .md\\:w-10 {\n width: 83.3333% !important;\n }\n .md\\:w-11 {\n width: 91.6667% !important;\n }\n .md\\:w-12 {\n width: 100% !important;\n }\n .md\\:w-min {\n width: min-content !important;\n }\n .md\\:w-max {\n width: max-content !important;\n }\n .md\\:w-fit {\n width: fit-content !important;\n }\n .md\\:w-1rem {\n width: 1rem !important;\n }\n .md\\:w-2rem {\n width: 2rem !important;\n }\n .md\\:w-3rem {\n width: 3rem !important;\n }\n .md\\:w-4rem {\n width: 4rem !important;\n }\n .md\\:w-5rem {\n width: 5rem !important;\n }\n .md\\:w-6rem {\n width: 6rem !important;\n }\n .md\\:w-7rem {\n width: 7rem !important;\n }\n .md\\:w-8rem {\n width: 8rem !important;\n }\n .md\\:w-9rem {\n width: 9rem !important;\n }\n .md\\:w-10rem {\n width: 10rem !important;\n }\n .md\\:w-11rem {\n width: 11rem !important;\n }\n .md\\:w-12rem {\n width: 12rem !important;\n }\n .md\\:w-13rem {\n width: 13rem !important;\n }\n .md\\:w-14rem {\n width: 14rem !important;\n }\n .md\\:w-15rem {\n width: 15rem !important;\n }\n .md\\:w-16rem {\n width: 16rem !important;\n }\n .md\\:w-17rem {\n width: 17rem !important;\n }\n .md\\:w-18rem {\n width: 18rem !important;\n }\n .md\\:w-19rem {\n width: 19rem !important;\n }\n .md\\:w-20rem {\n width: 20rem !important;\n }\n .md\\:w-21rem {\n width: 21rem !important;\n }\n .md\\:w-22rem {\n width: 22rem !important;\n }\n .md\\:w-23rem {\n width: 23rem !important;\n }\n .md\\:w-24rem {\n width: 24rem !important;\n }\n .md\\:w-25rem {\n width: 25rem !important;\n }\n .md\\:w-26rem {\n width: 26rem !important;\n }\n .md\\:w-27rem {\n width: 27rem !important;\n }\n .md\\:w-28rem {\n width: 28rem !important;\n }\n .md\\:w-29rem {\n width: 29rem !important;\n }\n .md\\:w-30rem {\n width: 30rem !important;\n }\n}\n@media screen and (min-width: 992px) {\n .lg\\:w-full {\n width: 100% !important;\n }\n .lg\\:w-screen {\n width: 100vw !important;\n }\n .lg\\:w-auto {\n width: auto !important;\n }\n .lg\\:w-1 {\n width: 8.3333% !important;\n }\n .lg\\:w-2 {\n width: 16.6667% !important;\n }\n .lg\\:w-3 {\n width: 25% !important;\n }\n .lg\\:w-4 {\n width: 33.3333% !important;\n }\n .lg\\:w-5 {\n width: 41.6667% !important;\n }\n .lg\\:w-6 {\n width: 50% !important;\n }\n .lg\\:w-7 {\n width: 58.3333% !important;\n }\n .lg\\:w-8 {\n width: 66.6667% !important;\n }\n .lg\\:w-9 {\n width: 75% !important;\n }\n .lg\\:w-10 {\n width: 83.3333% !important;\n }\n .lg\\:w-11 {\n width: 91.6667% !important;\n }\n .lg\\:w-12 {\n width: 100% !important;\n }\n .lg\\:w-min {\n width: min-content !important;\n }\n .lg\\:w-max {\n width: max-content !important;\n }\n .lg\\:w-fit {\n width: fit-content !important;\n }\n .lg\\:w-1rem {\n width: 1rem !important;\n }\n .lg\\:w-2rem {\n width: 2rem !important;\n }\n .lg\\:w-3rem {\n width: 3rem !important;\n }\n .lg\\:w-4rem {\n width: 4rem !important;\n }\n .lg\\:w-5rem {\n width: 5rem !important;\n }\n .lg\\:w-6rem {\n width: 6rem !important;\n }\n .lg\\:w-7rem {\n width: 7rem !important;\n }\n .lg\\:w-8rem {\n width: 8rem !important;\n }\n .lg\\:w-9rem {\n width: 9rem !important;\n }\n .lg\\:w-10rem {\n width: 10rem !important;\n }\n .lg\\:w-11rem {\n width: 11rem !important;\n }\n .lg\\:w-12rem {\n width: 12rem !important;\n }\n .lg\\:w-13rem {\n width: 13rem !important;\n }\n .lg\\:w-14rem {\n width: 14rem !important;\n }\n .lg\\:w-15rem {\n width: 15rem !important;\n }\n .lg\\:w-16rem {\n width: 16rem !important;\n }\n .lg\\:w-17rem {\n width: 17rem !important;\n }\n .lg\\:w-18rem {\n width: 18rem !important;\n }\n .lg\\:w-19rem {\n width: 19rem !important;\n }\n .lg\\:w-20rem {\n width: 20rem !important;\n }\n .lg\\:w-21rem {\n width: 21rem !important;\n }\n .lg\\:w-22rem {\n width: 22rem !important;\n }\n .lg\\:w-23rem {\n width: 23rem !important;\n }\n .lg\\:w-24rem {\n width: 24rem !important;\n }\n .lg\\:w-25rem {\n width: 25rem !important;\n }\n .lg\\:w-26rem {\n width: 26rem !important;\n }\n .lg\\:w-27rem {\n width: 27rem !important;\n }\n .lg\\:w-28rem {\n width: 28rem !important;\n }\n .lg\\:w-29rem {\n width: 29rem !important;\n }\n .lg\\:w-30rem {\n width: 30rem !important;\n }\n}\n@media screen and (min-width: 1200px) {\n .xl\\:w-full {\n width: 100% !important;\n }\n .xl\\:w-screen {\n width: 100vw !important;\n }\n .xl\\:w-auto {\n width: auto !important;\n }\n .xl\\:w-1 {\n width: 8.3333% !important;\n }\n .xl\\:w-2 {\n width: 16.6667% !important;\n }\n .xl\\:w-3 {\n width: 25% !important;\n }\n .xl\\:w-4 {\n width: 33.3333% !important;\n }\n .xl\\:w-5 {\n width: 41.6667% !important;\n }\n .xl\\:w-6 {\n width: 50% !important;\n }\n .xl\\:w-7 {\n width: 58.3333% !important;\n }\n .xl\\:w-8 {\n width: 66.6667% !important;\n }\n .xl\\:w-9 {\n width: 75% !important;\n }\n .xl\\:w-10 {\n width: 83.3333% !important;\n }\n .xl\\:w-11 {\n width: 91.6667% !important;\n }\n .xl\\:w-12 {\n width: 100% !important;\n }\n .xl\\:w-min {\n width: min-content !important;\n }\n .xl\\:w-max {\n width: max-content !important;\n }\n .xl\\:w-fit {\n width: fit-content !important;\n }\n .xl\\:w-1rem {\n width: 1rem !important;\n }\n .xl\\:w-2rem {\n width: 2rem !important;\n }\n .xl\\:w-3rem {\n width: 3rem !important;\n }\n .xl\\:w-4rem {\n width: 4rem !important;\n }\n .xl\\:w-5rem {\n width: 5rem !important;\n }\n .xl\\:w-6rem {\n width: 6rem !important;\n }\n .xl\\:w-7rem {\n width: 7rem !important;\n }\n .xl\\:w-8rem {\n width: 8rem !important;\n }\n .xl\\:w-9rem {\n width: 9rem !important;\n }\n .xl\\:w-10rem {\n width: 10rem !important;\n }\n .xl\\:w-11rem {\n width: 11rem !important;\n }\n .xl\\:w-12rem {\n width: 12rem !important;\n }\n .xl\\:w-13rem {\n width: 13rem !important;\n }\n .xl\\:w-14rem {\n width: 14rem !important;\n }\n .xl\\:w-15rem {\n width: 15rem !important;\n }\n .xl\\:w-16rem {\n width: 16rem !important;\n }\n .xl\\:w-17rem {\n width: 17rem !important;\n }\n .xl\\:w-18rem {\n width: 18rem !important;\n }\n .xl\\:w-19rem {\n width: 19rem !important;\n }\n .xl\\:w-20rem {\n width: 20rem !important;\n }\n .xl\\:w-21rem {\n width: 21rem !important;\n }\n .xl\\:w-22rem {\n width: 22rem !important;\n }\n .xl\\:w-23rem {\n width: 23rem !important;\n }\n .xl\\:w-24rem {\n width: 24rem !important;\n }\n .xl\\:w-25rem {\n width: 25rem !important;\n }\n .xl\\:w-26rem {\n width: 26rem !important;\n }\n .xl\\:w-27rem {\n width: 27rem !important;\n }\n .xl\\:w-28rem {\n width: 28rem !important;\n }\n .xl\\:w-29rem {\n width: 29rem !important;\n }\n .xl\\:w-30rem {\n width: 30rem !important;\n }\n}\n.h-full {\n height: 100% !important;\n}\n\n.h-screen {\n height: 100vh !important;\n}\n\n.h-auto {\n height: auto !important;\n}\n\n.h-min {\n height: min-content !important;\n}\n\n.h-max {\n height: max-content !important;\n}\n\n.h-fit {\n height: fit-content !important;\n}\n\n.h-1rem {\n height: 1rem !important;\n}\n\n.h-2rem {\n height: 2rem !important;\n}\n\n.h-3rem {\n height: 3rem !important;\n}\n\n.h-4rem {\n height: 4rem !important;\n}\n\n.h-5rem {\n height: 5rem !important;\n}\n\n.h-6rem {\n height: 6rem !important;\n}\n\n.h-7rem {\n height: 7rem !important;\n}\n\n.h-8rem {\n height: 8rem !important;\n}\n\n.h-9rem {\n height: 9rem !important;\n}\n\n.h-10rem {\n height: 10rem !important;\n}\n\n.h-11rem {\n height: 11rem !important;\n}\n\n.h-12rem {\n height: 12rem !important;\n}\n\n.h-13rem {\n height: 13rem !important;\n}\n\n.h-14rem {\n height: 14rem !important;\n}\n\n.h-15rem {\n height: 15rem !important;\n}\n\n.h-16rem {\n height: 16rem !important;\n}\n\n.h-17rem {\n height: 17rem !important;\n}\n\n.h-18rem {\n height: 18rem !important;\n}\n\n.h-19rem {\n height: 19rem !important;\n}\n\n.h-20rem {\n height: 20rem !important;\n}\n\n.h-21rem {\n height: 21rem !important;\n}\n\n.h-22rem {\n height: 22rem !important;\n}\n\n.h-23rem {\n height: 23rem !important;\n}\n\n.h-24rem {\n height: 24rem !important;\n}\n\n.h-25rem {\n height: 25rem !important;\n}\n\n.h-26rem {\n height: 26rem !important;\n}\n\n.h-27rem {\n height: 27rem !important;\n}\n\n.h-28rem {\n height: 28rem !important;\n}\n\n.h-29rem {\n height: 29rem !important;\n}\n\n.h-30rem {\n height: 30rem !important;\n}\n\n@media screen and (min-width: 576px) {\n .sm\\:h-full {\n height: 100% !important;\n }\n .sm\\:h-screen {\n height: 100vh !important;\n }\n .sm\\:h-auto {\n height: auto !important;\n }\n .sm\\:h-min {\n height: min-content !important;\n }\n .sm\\:h-max {\n height: max-content !important;\n }\n .sm\\:h-fit {\n height: fit-content !important;\n }\n .sm\\:h-1rem {\n height: 1rem !important;\n }\n .sm\\:h-2rem {\n height: 2rem !important;\n }\n .sm\\:h-3rem {\n height: 3rem !important;\n }\n .sm\\:h-4rem {\n height: 4rem !important;\n }\n .sm\\:h-5rem {\n height: 5rem !important;\n }\n .sm\\:h-6rem {\n height: 6rem !important;\n }\n .sm\\:h-7rem {\n height: 7rem !important;\n }\n .sm\\:h-8rem {\n height: 8rem !important;\n }\n .sm\\:h-9rem {\n height: 9rem !important;\n }\n .sm\\:h-10rem {\n height: 10rem !important;\n }\n .sm\\:h-11rem {\n height: 11rem !important;\n }\n .sm\\:h-12rem {\n height: 12rem !important;\n }\n .sm\\:h-13rem {\n height: 13rem !important;\n }\n .sm\\:h-14rem {\n height: 14rem !important;\n }\n .sm\\:h-15rem {\n height: 15rem !important;\n }\n .sm\\:h-16rem {\n height: 16rem !important;\n }\n .sm\\:h-17rem {\n height: 17rem !important;\n }\n .sm\\:h-18rem {\n height: 18rem !important;\n }\n .sm\\:h-19rem {\n height: 19rem !important;\n }\n .sm\\:h-20rem {\n height: 20rem !important;\n }\n .sm\\:h-21rem {\n height: 21rem !important;\n }\n .sm\\:h-22rem {\n height: 22rem !important;\n }\n .sm\\:h-23rem {\n height: 23rem !important;\n }\n .sm\\:h-24rem {\n height: 24rem !important;\n }\n .sm\\:h-25rem {\n height: 25rem !important;\n }\n .sm\\:h-26rem {\n height: 26rem !important;\n }\n .sm\\:h-27rem {\n height: 27rem !important;\n }\n .sm\\:h-28rem {\n height: 28rem !important;\n }\n .sm\\:h-29rem {\n height: 29rem !important;\n }\n .sm\\:h-30rem {\n height: 30rem !important;\n }\n}\n@media screen and (min-width: 768px) {\n .md\\:h-full {\n height: 100% !important;\n }\n .md\\:h-screen {\n height: 100vh !important;\n }\n .md\\:h-auto {\n height: auto !important;\n }\n .md\\:h-min {\n height: min-content !important;\n }\n .md\\:h-max {\n height: max-content !important;\n }\n .md\\:h-fit {\n height: fit-content !important;\n }\n .md\\:h-1rem {\n height: 1rem !important;\n }\n .md\\:h-2rem {\n height: 2rem !important;\n }\n .md\\:h-3rem {\n height: 3rem !important;\n }\n .md\\:h-4rem {\n height: 4rem !important;\n }\n .md\\:h-5rem {\n height: 5rem !important;\n }\n .md\\:h-6rem {\n height: 6rem !important;\n }\n .md\\:h-7rem {\n height: 7rem !important;\n }\n .md\\:h-8rem {\n height: 8rem !important;\n }\n .md\\:h-9rem {\n height: 9rem !important;\n }\n .md\\:h-10rem {\n height: 10rem !important;\n }\n .md\\:h-11rem {\n height: 11rem !important;\n }\n .md\\:h-12rem {\n height: 12rem !important;\n }\n .md\\:h-13rem {\n height: 13rem !important;\n }\n .md\\:h-14rem {\n height: 14rem !important;\n }\n .md\\:h-15rem {\n height: 15rem !important;\n }\n .md\\:h-16rem {\n height: 16rem !important;\n }\n .md\\:h-17rem {\n height: 17rem !important;\n }\n .md\\:h-18rem {\n height: 18rem !important;\n }\n .md\\:h-19rem {\n height: 19rem !important;\n }\n .md\\:h-20rem {\n height: 20rem !important;\n }\n .md\\:h-21rem {\n height: 21rem !important;\n }\n .md\\:h-22rem {\n height: 22rem !important;\n }\n .md\\:h-23rem {\n height: 23rem !important;\n }\n .md\\:h-24rem {\n height: 24rem !important;\n }\n .md\\:h-25rem {\n height: 25rem !important;\n }\n .md\\:h-26rem {\n height: 26rem !important;\n }\n .md\\:h-27rem {\n height: 27rem !important;\n }\n .md\\:h-28rem {\n height: 28rem !important;\n }\n .md\\:h-29rem {\n height: 29rem !important;\n }\n .md\\:h-30rem {\n height: 30rem !important;\n }\n}\n@media screen and (min-width: 992px) {\n .lg\\:h-full {\n height: 100% !important;\n }\n .lg\\:h-screen {\n height: 100vh !important;\n }\n .lg\\:h-auto {\n height: auto !important;\n }\n .lg\\:h-min {\n height: min-content !important;\n }\n .lg\\:h-max {\n height: max-content !important;\n }\n .lg\\:h-fit {\n height: fit-content !important;\n }\n .lg\\:h-1rem {\n height: 1rem !important;\n }\n .lg\\:h-2rem {\n height: 2rem !important;\n }\n .lg\\:h-3rem {\n height: 3rem !important;\n }\n .lg\\:h-4rem {\n height: 4rem !important;\n }\n .lg\\:h-5rem {\n height: 5rem !important;\n }\n .lg\\:h-6rem {\n height: 6rem !important;\n }\n .lg\\:h-7rem {\n height: 7rem !important;\n }\n .lg\\:h-8rem {\n height: 8rem !important;\n }\n .lg\\:h-9rem {\n height: 9rem !important;\n }\n .lg\\:h-10rem {\n height: 10rem !important;\n }\n .lg\\:h-11rem {\n height: 11rem !important;\n }\n .lg\\:h-12rem {\n height: 12rem !important;\n }\n .lg\\:h-13rem {\n height: 13rem !important;\n }\n .lg\\:h-14rem {\n height: 14rem !important;\n }\n .lg\\:h-15rem {\n height: 15rem !important;\n }\n .lg\\:h-16rem {\n height: 16rem !important;\n }\n .lg\\:h-17rem {\n height: 17rem !important;\n }\n .lg\\:h-18rem {\n height: 18rem !important;\n }\n .lg\\:h-19rem {\n height: 19rem !important;\n }\n .lg\\:h-20rem {\n height: 20rem !important;\n }\n .lg\\:h-21rem {\n height: 21rem !important;\n }\n .lg\\:h-22rem {\n height: 22rem !important;\n }\n .lg\\:h-23rem {\n height: 23rem !important;\n }\n .lg\\:h-24rem {\n height: 24rem !important;\n }\n .lg\\:h-25rem {\n height: 25rem !important;\n }\n .lg\\:h-26rem {\n height: 26rem !important;\n }\n .lg\\:h-27rem {\n height: 27rem !important;\n }\n .lg\\:h-28rem {\n height: 28rem !important;\n }\n .lg\\:h-29rem {\n height: 29rem !important;\n }\n .lg\\:h-30rem {\n height: 30rem !important;\n }\n}\n@media screen and (min-width: 1200px) {\n .xl\\:h-full {\n height: 100% !important;\n }\n .xl\\:h-screen {\n height: 100vh !important;\n }\n .xl\\:h-auto {\n height: auto !important;\n }\n .xl\\:h-min {\n height: min-content !important;\n }\n .xl\\:h-max {\n height: max-content !important;\n }\n .xl\\:h-fit {\n height: fit-content !important;\n }\n .xl\\:h-1rem {\n height: 1rem !important;\n }\n .xl\\:h-2rem {\n height: 2rem !important;\n }\n .xl\\:h-3rem {\n height: 3rem !important;\n }\n .xl\\:h-4rem {\n height: 4rem !important;\n }\n .xl\\:h-5rem {\n height: 5rem !important;\n }\n .xl\\:h-6rem {\n height: 6rem !important;\n }\n .xl\\:h-7rem {\n height: 7rem !important;\n }\n .xl\\:h-8rem {\n height: 8rem !important;\n }\n .xl\\:h-9rem {\n height: 9rem !important;\n }\n .xl\\:h-10rem {\n height: 10rem !important;\n }\n .xl\\:h-11rem {\n height: 11rem !important;\n }\n .xl\\:h-12rem {\n height: 12rem !important;\n }\n .xl\\:h-13rem {\n height: 13rem !important;\n }\n .xl\\:h-14rem {\n height: 14rem !important;\n }\n .xl\\:h-15rem {\n height: 15rem !important;\n }\n .xl\\:h-16rem {\n height: 16rem !important;\n }\n .xl\\:h-17rem {\n height: 17rem !important;\n }\n .xl\\:h-18rem {\n height: 18rem !important;\n }\n .xl\\:h-19rem {\n height: 19rem !important;\n }\n .xl\\:h-20rem {\n height: 20rem !important;\n }\n .xl\\:h-21rem {\n height: 21rem !important;\n }\n .xl\\:h-22rem {\n height: 22rem !important;\n }\n .xl\\:h-23rem {\n height: 23rem !important;\n }\n .xl\\:h-24rem {\n height: 24rem !important;\n }\n .xl\\:h-25rem {\n height: 25rem !important;\n }\n .xl\\:h-26rem {\n height: 26rem !important;\n }\n .xl\\:h-27rem {\n height: 27rem !important;\n }\n .xl\\:h-28rem {\n height: 28rem !important;\n }\n .xl\\:h-29rem {\n height: 29rem !important;\n }\n .xl\\:h-30rem {\n height: 30rem !important;\n }\n}\n.min-w-0 {\n min-width: 0px !important;\n}\n\n.min-w-full {\n min-width: 100% !important;\n}\n\n.min-w-screen {\n min-width: 100vw !important;\n}\n\n.min-w-min {\n min-width: min-content !important;\n}\n\n.min-w-max {\n min-width: max-content !important;\n}\n\n@media screen and (min-width: 576px) {\n .sm\\:min-w-0 {\n min-width: 0px !important;\n }\n .sm\\:min-w-full {\n min-width: 100% !important;\n }\n .sm\\:min-w-screen {\n min-width: 100vw !important;\n }\n .sm\\:min-w-min {\n min-width: min-content !important;\n }\n .sm\\:min-w-max {\n min-width: max-content !important;\n }\n}\n@media screen and (min-width: 768px) {\n .md\\:min-w-0 {\n min-width: 0px !important;\n }\n .md\\:min-w-full {\n min-width: 100% !important;\n }\n .md\\:min-w-screen {\n min-width: 100vw !important;\n }\n .md\\:min-w-min {\n min-width: min-content !important;\n }\n .md\\:min-w-max {\n min-width: max-content !important;\n }\n}\n@media screen and (min-width: 992px) {\n .lg\\:min-w-0 {\n min-width: 0px !important;\n }\n .lg\\:min-w-full {\n min-width: 100% !important;\n }\n .lg\\:min-w-screen {\n min-width: 100vw !important;\n }\n .lg\\:min-w-min {\n min-width: min-content !important;\n }\n .lg\\:min-w-max {\n min-width: max-content !important;\n }\n}\n@media screen and (min-width: 1200px) {\n .xl\\:min-w-0 {\n min-width: 0px !important;\n }\n .xl\\:min-w-full {\n min-width: 100% !important;\n }\n .xl\\:min-w-screen {\n min-width: 100vw !important;\n }\n .xl\\:min-w-min {\n min-width: min-content !important;\n }\n .xl\\:min-w-max {\n min-width: max-content !important;\n }\n}\n.max-w-0 {\n max-width: 0px !important;\n}\n\n.max-w-full {\n max-width: 100% !important;\n}\n\n.max-w-screen {\n max-width: 100vw !important;\n}\n\n.max-w-min {\n max-width: min-content !important;\n}\n\n.max-w-max {\n max-width: max-content !important;\n}\n\n.max-w-fit {\n max-width: fit-content !important;\n}\n\n.max-w-1rem {\n max-width: 1rem !important;\n}\n\n.max-w-2rem {\n max-width: 2rem !important;\n}\n\n.max-w-3rem {\n max-width: 3rem !important;\n}\n\n.max-w-4rem {\n max-width: 4rem !important;\n}\n\n.max-w-5rem {\n max-width: 5rem !important;\n}\n\n.max-w-6rem {\n max-width: 6rem !important;\n}\n\n.max-w-7rem {\n max-width: 7rem !important;\n}\n\n.max-w-8rem {\n max-width: 8rem !important;\n}\n\n.max-w-9rem {\n max-width: 9rem !important;\n}\n\n.max-w-10rem {\n max-width: 10rem !important;\n}\n\n.max-w-11rem {\n max-width: 11rem !important;\n}\n\n.max-w-12rem {\n max-width: 12rem !important;\n}\n\n.max-w-13rem {\n max-width: 13rem !important;\n}\n\n.max-w-14rem {\n max-width: 14rem !important;\n}\n\n.max-w-15rem {\n max-width: 15rem !important;\n}\n\n.max-w-16rem {\n max-width: 16rem !important;\n}\n\n.max-w-17rem {\n max-width: 17rem !important;\n}\n\n.max-w-18rem {\n max-width: 18rem !important;\n}\n\n.max-w-19rem {\n max-width: 19rem !important;\n}\n\n.max-w-20rem {\n max-width: 20rem !important;\n}\n\n.max-w-21rem {\n max-width: 21rem !important;\n}\n\n.max-w-22rem {\n max-width: 22rem !important;\n}\n\n.max-w-23rem {\n max-width: 23rem !important;\n}\n\n.max-w-24rem {\n max-width: 24rem !important;\n}\n\n.max-w-25rem {\n max-width: 25rem !important;\n}\n\n.max-w-26rem {\n max-width: 26rem !important;\n}\n\n.max-w-27rem {\n max-width: 27rem !important;\n}\n\n.max-w-28rem {\n max-width: 28rem !important;\n}\n\n.max-w-29rem {\n max-width: 29rem !important;\n}\n\n.max-w-30rem {\n max-width: 30rem !important;\n}\n\n@media screen and (min-width: 576px) {\n .sm\\:max-w-0 {\n max-width: 0px !important;\n }\n .sm\\:max-w-full {\n max-width: 100% !important;\n }\n .sm\\:max-w-screen {\n max-width: 100vw !important;\n }\n .sm\\:max-w-min {\n max-width: min-content !important;\n }\n .sm\\:max-w-max {\n max-width: max-content !important;\n }\n .sm\\:max-w-fit {\n max-width: fit-content !important;\n }\n .sm\\:max-w-1rem {\n max-width: 1rem !important;\n }\n .sm\\:max-w-2rem {\n max-width: 2rem !important;\n }\n .sm\\:max-w-3rem {\n max-width: 3rem !important;\n }\n .sm\\:max-w-4rem {\n max-width: 4rem !important;\n }\n .sm\\:max-w-5rem {\n max-width: 5rem !important;\n }\n .sm\\:max-w-6rem {\n max-width: 6rem !important;\n }\n .sm\\:max-w-7rem {\n max-width: 7rem !important;\n }\n .sm\\:max-w-8rem {\n max-width: 8rem !important;\n }\n .sm\\:max-w-9rem {\n max-width: 9rem !important;\n }\n .sm\\:max-w-10rem {\n max-width: 10rem !important;\n }\n .sm\\:max-w-11rem {\n max-width: 11rem !important;\n }\n .sm\\:max-w-12rem {\n max-width: 12rem !important;\n }\n .sm\\:max-w-13rem {\n max-width: 13rem !important;\n }\n .sm\\:max-w-14rem {\n max-width: 14rem !important;\n }\n .sm\\:max-w-15rem {\n max-width: 15rem !important;\n }\n .sm\\:max-w-16rem {\n max-width: 16rem !important;\n }\n .sm\\:max-w-17rem {\n max-width: 17rem !important;\n }\n .sm\\:max-w-18rem {\n max-width: 18rem !important;\n }\n .sm\\:max-w-19rem {\n max-width: 19rem !important;\n }\n .sm\\:max-w-20rem {\n max-width: 20rem !important;\n }\n .sm\\:max-w-21rem {\n max-width: 21rem !important;\n }\n .sm\\:max-w-22rem {\n max-width: 22rem !important;\n }\n .sm\\:max-w-23rem {\n max-width: 23rem !important;\n }\n .sm\\:max-w-24rem {\n max-width: 24rem !important;\n }\n .sm\\:max-w-25rem {\n max-width: 25rem !important;\n }\n .sm\\:max-w-26rem {\n max-width: 26rem !important;\n }\n .sm\\:max-w-27rem {\n max-width: 27rem !important;\n }\n .sm\\:max-w-28rem {\n max-width: 28rem !important;\n }\n .sm\\:max-w-29rem {\n max-width: 29rem !important;\n }\n .sm\\:max-w-30rem {\n max-width: 30rem !important;\n }\n}\n@media screen and (min-width: 768px) {\n .md\\:max-w-0 {\n max-width: 0px !important;\n }\n .md\\:max-w-full {\n max-width: 100% !important;\n }\n .md\\:max-w-screen {\n max-width: 100vw !important;\n }\n .md\\:max-w-min {\n max-width: min-content !important;\n }\n .md\\:max-w-max {\n max-width: max-content !important;\n }\n .md\\:max-w-fit {\n max-width: fit-content !important;\n }\n .md\\:max-w-1rem {\n max-width: 1rem !important;\n }\n .md\\:max-w-2rem {\n max-width: 2rem !important;\n }\n .md\\:max-w-3rem {\n max-width: 3rem !important;\n }\n .md\\:max-w-4rem {\n max-width: 4rem !important;\n }\n .md\\:max-w-5rem {\n max-width: 5rem !important;\n }\n .md\\:max-w-6rem {\n max-width: 6rem !important;\n }\n .md\\:max-w-7rem {\n max-width: 7rem !important;\n }\n .md\\:max-w-8rem {\n max-width: 8rem !important;\n }\n .md\\:max-w-9rem {\n max-width: 9rem !important;\n }\n .md\\:max-w-10rem {\n max-width: 10rem !important;\n }\n .md\\:max-w-11rem {\n max-width: 11rem !important;\n }\n .md\\:max-w-12rem {\n max-width: 12rem !important;\n }\n .md\\:max-w-13rem {\n max-width: 13rem !important;\n }\n .md\\:max-w-14rem {\n max-width: 14rem !important;\n }\n .md\\:max-w-15rem {\n max-width: 15rem !important;\n }\n .md\\:max-w-16rem {\n max-width: 16rem !important;\n }\n .md\\:max-w-17rem {\n max-width: 17rem !important;\n }\n .md\\:max-w-18rem {\n max-width: 18rem !important;\n }\n .md\\:max-w-19rem {\n max-width: 19rem !important;\n }\n .md\\:max-w-20rem {\n max-width: 20rem !important;\n }\n .md\\:max-w-21rem {\n max-width: 21rem !important;\n }\n .md\\:max-w-22rem {\n max-width: 22rem !important;\n }\n .md\\:max-w-23rem {\n max-width: 23rem !important;\n }\n .md\\:max-w-24rem {\n max-width: 24rem !important;\n }\n .md\\:max-w-25rem {\n max-width: 25rem !important;\n }\n .md\\:max-w-26rem {\n max-width: 26rem !important;\n }\n .md\\:max-w-27rem {\n max-width: 27rem !important;\n }\n .md\\:max-w-28rem {\n max-width: 28rem !important;\n }\n .md\\:max-w-29rem {\n max-width: 29rem !important;\n }\n .md\\:max-w-30rem {\n max-width: 30rem !important;\n }\n}\n@media screen and (min-width: 992px) {\n .lg\\:max-w-0 {\n max-width: 0px !important;\n }\n .lg\\:max-w-full {\n max-width: 100% !important;\n }\n .lg\\:max-w-screen {\n max-width: 100vw !important;\n }\n .lg\\:max-w-min {\n max-width: min-content !important;\n }\n .lg\\:max-w-max {\n max-width: max-content !important;\n }\n .lg\\:max-w-fit {\n max-width: fit-content !important;\n }\n .lg\\:max-w-1rem {\n max-width: 1rem !important;\n }\n .lg\\:max-w-2rem {\n max-width: 2rem !important;\n }\n .lg\\:max-w-3rem {\n max-width: 3rem !important;\n }\n .lg\\:max-w-4rem {\n max-width: 4rem !important;\n }\n .lg\\:max-w-5rem {\n max-width: 5rem !important;\n }\n .lg\\:max-w-6rem {\n max-width: 6rem !important;\n }\n .lg\\:max-w-7rem {\n max-width: 7rem !important;\n }\n .lg\\:max-w-8rem {\n max-width: 8rem !important;\n }\n .lg\\:max-w-9rem {\n max-width: 9rem !important;\n }\n .lg\\:max-w-10rem {\n max-width: 10rem !important;\n }\n .lg\\:max-w-11rem {\n max-width: 11rem !important;\n }\n .lg\\:max-w-12rem {\n max-width: 12rem !important;\n }\n .lg\\:max-w-13rem {\n max-width: 13rem !important;\n }\n .lg\\:max-w-14rem {\n max-width: 14rem !important;\n }\n .lg\\:max-w-15rem {\n max-width: 15rem !important;\n }\n .lg\\:max-w-16rem {\n max-width: 16rem !important;\n }\n .lg\\:max-w-17rem {\n max-width: 17rem !important;\n }\n .lg\\:max-w-18rem {\n max-width: 18rem !important;\n }\n .lg\\:max-w-19rem {\n max-width: 19rem !important;\n }\n .lg\\:max-w-20rem {\n max-width: 20rem !important;\n }\n .lg\\:max-w-21rem {\n max-width: 21rem !important;\n }\n .lg\\:max-w-22rem {\n max-width: 22rem !important;\n }\n .lg\\:max-w-23rem {\n max-width: 23rem !important;\n }\n .lg\\:max-w-24rem {\n max-width: 24rem !important;\n }\n .lg\\:max-w-25rem {\n max-width: 25rem !important;\n }\n .lg\\:max-w-26rem {\n max-width: 26rem !important;\n }\n .lg\\:max-w-27rem {\n max-width: 27rem !important;\n }\n .lg\\:max-w-28rem {\n max-width: 28rem !important;\n }\n .lg\\:max-w-29rem {\n max-width: 29rem !important;\n }\n .lg\\:max-w-30rem {\n max-width: 30rem !important;\n }\n}\n@media screen and (min-width: 1200px) {\n .xl\\:max-w-0 {\n max-width: 0px !important;\n }\n .xl\\:max-w-full {\n max-width: 100% !important;\n }\n .xl\\:max-w-screen {\n max-width: 100vw !important;\n }\n .xl\\:max-w-min {\n max-width: min-content !important;\n }\n .xl\\:max-w-max {\n max-width: max-content !important;\n }\n .xl\\:max-w-fit {\n max-width: fit-content !important;\n }\n .xl\\:max-w-1rem {\n max-width: 1rem !important;\n }\n .xl\\:max-w-2rem {\n max-width: 2rem !important;\n }\n .xl\\:max-w-3rem {\n max-width: 3rem !important;\n }\n .xl\\:max-w-4rem {\n max-width: 4rem !important;\n }\n .xl\\:max-w-5rem {\n max-width: 5rem !important;\n }\n .xl\\:max-w-6rem {\n max-width: 6rem !important;\n }\n .xl\\:max-w-7rem {\n max-width: 7rem !important;\n }\n .xl\\:max-w-8rem {\n max-width: 8rem !important;\n }\n .xl\\:max-w-9rem {\n max-width: 9rem !important;\n }\n .xl\\:max-w-10rem {\n max-width: 10rem !important;\n }\n .xl\\:max-w-11rem {\n max-width: 11rem !important;\n }\n .xl\\:max-w-12rem {\n max-width: 12rem !important;\n }\n .xl\\:max-w-13rem {\n max-width: 13rem !important;\n }\n .xl\\:max-w-14rem {\n max-width: 14rem !important;\n }\n .xl\\:max-w-15rem {\n max-width: 15rem !important;\n }\n .xl\\:max-w-16rem {\n max-width: 16rem !important;\n }\n .xl\\:max-w-17rem {\n max-width: 17rem !important;\n }\n .xl\\:max-w-18rem {\n max-width: 18rem !important;\n }\n .xl\\:max-w-19rem {\n max-width: 19rem !important;\n }\n .xl\\:max-w-20rem {\n max-width: 20rem !important;\n }\n .xl\\:max-w-21rem {\n max-width: 21rem !important;\n }\n .xl\\:max-w-22rem {\n max-width: 22rem !important;\n }\n .xl\\:max-w-23rem {\n max-width: 23rem !important;\n }\n .xl\\:max-w-24rem {\n max-width: 24rem !important;\n }\n .xl\\:max-w-25rem {\n max-width: 25rem !important;\n }\n .xl\\:max-w-26rem {\n max-width: 26rem !important;\n }\n .xl\\:max-w-27rem {\n max-width: 27rem !important;\n }\n .xl\\:max-w-28rem {\n max-width: 28rem !important;\n }\n .xl\\:max-w-29rem {\n max-width: 29rem !important;\n }\n .xl\\:max-w-30rem {\n max-width: 30rem !important;\n }\n}\n.min-h-0 {\n min-height: 0px !important;\n}\n\n.min-h-full {\n min-height: 100% !important;\n}\n\n.min-h-screen {\n min-height: 100vh !important;\n}\n\n@media screen and (min-width: 576px) {\n .sm\\:min-h-0 {\n min-height: 0px !important;\n }\n .sm\\:min-h-full {\n min-height: 100% !important;\n }\n .sm\\:min-h-screen {\n min-height: 100vh !important;\n }\n}\n@media screen and (min-width: 768px) {\n .md\\:min-h-0 {\n min-height: 0px !important;\n }\n .md\\:min-h-full {\n min-height: 100% !important;\n }\n .md\\:min-h-screen {\n min-height: 100vh !important;\n }\n}\n@media screen and (min-width: 992px) {\n .lg\\:min-h-0 {\n min-height: 0px !important;\n }\n .lg\\:min-h-full {\n min-height: 100% !important;\n }\n .lg\\:min-h-screen {\n min-height: 100vh !important;\n }\n}\n@media screen and (min-width: 1200px) {\n .xl\\:min-h-0 {\n min-height: 0px !important;\n }\n .xl\\:min-h-full {\n min-height: 100% !important;\n }\n .xl\\:min-h-screen {\n min-height: 100vh !important;\n }\n}\n.max-h-0 {\n max-height: 0px !important;\n}\n\n.max-h-full {\n max-height: 100% !important;\n}\n\n.max-h-screen {\n max-height: 100vh !important;\n}\n\n.max-h-min {\n max-height: min-content !important;\n}\n\n.max-h-max {\n max-height: max-content !important;\n}\n\n.max-h-fit {\n max-height: fit-content !important;\n}\n\n.max-h-1rem {\n max-height: 1rem !important;\n}\n\n.max-h-2rem {\n max-height: 2rem !important;\n}\n\n.max-h-3rem {\n max-height: 3rem !important;\n}\n\n.max-h-4rem {\n max-height: 4rem !important;\n}\n\n.max-h-5rem {\n max-height: 5rem !important;\n}\n\n.max-h-6rem {\n max-height: 6rem !important;\n}\n\n.max-h-7rem {\n max-height: 7rem !important;\n}\n\n.max-h-8rem {\n max-height: 8rem !important;\n}\n\n.max-h-9rem {\n max-height: 9rem !important;\n}\n\n.max-h-10rem {\n max-height: 10rem !important;\n}\n\n.max-h-11rem {\n max-height: 11rem !important;\n}\n\n.max-h-12rem {\n max-height: 12rem !important;\n}\n\n.max-h-13rem {\n max-height: 13rem !important;\n}\n\n.max-h-14rem {\n max-height: 14rem !important;\n}\n\n.max-h-15rem {\n max-height: 15rem !important;\n}\n\n.max-h-16rem {\n max-height: 16rem !important;\n}\n\n.max-h-17rem {\n max-height: 17rem !important;\n}\n\n.max-h-18rem {\n max-height: 18rem !important;\n}\n\n.max-h-19rem {\n max-height: 19rem !important;\n}\n\n.max-h-20rem {\n max-height: 20rem !important;\n}\n\n.max-h-21rem {\n max-height: 21rem !important;\n}\n\n.max-h-22rem {\n max-height: 22rem !important;\n}\n\n.max-h-23rem {\n max-height: 23rem !important;\n}\n\n.max-h-24rem {\n max-height: 24rem !important;\n}\n\n.max-h-25rem {\n max-height: 25rem !important;\n}\n\n.max-h-26rem {\n max-height: 26rem !important;\n}\n\n.max-h-27rem {\n max-height: 27rem !important;\n}\n\n.max-h-28rem {\n max-height: 28rem !important;\n}\n\n.max-h-29rem {\n max-height: 29rem !important;\n}\n\n.max-h-30rem {\n max-height: 30rem !important;\n}\n\n@media screen and (min-width: 576px) {\n .sm\\:max-h-0 {\n max-height: 0px !important;\n }\n .sm\\:max-h-full {\n max-height: 100% !important;\n }\n .sm\\:max-h-screen {\n max-height: 100vh !important;\n }\n .sm\\:max-h-min {\n max-height: min-content !important;\n }\n .sm\\:max-h-max {\n max-height: max-content !important;\n }\n .sm\\:max-h-fit {\n max-height: fit-content !important;\n }\n .sm\\:max-h-1rem {\n max-height: 1rem !important;\n }\n .sm\\:max-h-2rem {\n max-height: 2rem !important;\n }\n .sm\\:max-h-3rem {\n max-height: 3rem !important;\n }\n .sm\\:max-h-4rem {\n max-height: 4rem !important;\n }\n .sm\\:max-h-5rem {\n max-height: 5rem !important;\n }\n .sm\\:max-h-6rem {\n max-height: 6rem !important;\n }\n .sm\\:max-h-7rem {\n max-height: 7rem !important;\n }\n .sm\\:max-h-8rem {\n max-height: 8rem !important;\n }\n .sm\\:max-h-9rem {\n max-height: 9rem !important;\n }\n .sm\\:max-h-10rem {\n max-height: 10rem !important;\n }\n .sm\\:max-h-11rem {\n max-height: 11rem !important;\n }\n .sm\\:max-h-12rem {\n max-height: 12rem !important;\n }\n .sm\\:max-h-13rem {\n max-height: 13rem !important;\n }\n .sm\\:max-h-14rem {\n max-height: 14rem !important;\n }\n .sm\\:max-h-15rem {\n max-height: 15rem !important;\n }\n .sm\\:max-h-16rem {\n max-height: 16rem !important;\n }\n .sm\\:max-h-17rem {\n max-height: 17rem !important;\n }\n .sm\\:max-h-18rem {\n max-height: 18rem !important;\n }\n .sm\\:max-h-19rem {\n max-height: 19rem !important;\n }\n .sm\\:max-h-20rem {\n max-height: 20rem !important;\n }\n .sm\\:max-h-21rem {\n max-height: 21rem !important;\n }\n .sm\\:max-h-22rem {\n max-height: 22rem !important;\n }\n .sm\\:max-h-23rem {\n max-height: 23rem !important;\n }\n .sm\\:max-h-24rem {\n max-height: 24rem !important;\n }\n .sm\\:max-h-25rem {\n max-height: 25rem !important;\n }\n .sm\\:max-h-26rem {\n max-height: 26rem !important;\n }\n .sm\\:max-h-27rem {\n max-height: 27rem !important;\n }\n .sm\\:max-h-28rem {\n max-height: 28rem !important;\n }\n .sm\\:max-h-29rem {\n max-height: 29rem !important;\n }\n .sm\\:max-h-30rem {\n max-height: 30rem !important;\n }\n}\n@media screen and (min-width: 768px) {\n .md\\:max-h-0 {\n max-height: 0px !important;\n }\n .md\\:max-h-full {\n max-height: 100% !important;\n }\n .md\\:max-h-screen {\n max-height: 100vh !important;\n }\n .md\\:max-h-min {\n max-height: min-content !important;\n }\n .md\\:max-h-max {\n max-height: max-content !important;\n }\n .md\\:max-h-fit {\n max-height: fit-content !important;\n }\n .md\\:max-h-1rem {\n max-height: 1rem !important;\n }\n .md\\:max-h-2rem {\n max-height: 2rem !important;\n }\n .md\\:max-h-3rem {\n max-height: 3rem !important;\n }\n .md\\:max-h-4rem {\n max-height: 4rem !important;\n }\n .md\\:max-h-5rem {\n max-height: 5rem !important;\n }\n .md\\:max-h-6rem {\n max-height: 6rem !important;\n }\n .md\\:max-h-7rem {\n max-height: 7rem !important;\n }\n .md\\:max-h-8rem {\n max-height: 8rem !important;\n }\n .md\\:max-h-9rem {\n max-height: 9rem !important;\n }\n .md\\:max-h-10rem {\n max-height: 10rem !important;\n }\n .md\\:max-h-11rem {\n max-height: 11rem !important;\n }\n .md\\:max-h-12rem {\n max-height: 12rem !important;\n }\n .md\\:max-h-13rem {\n max-height: 13rem !important;\n }\n .md\\:max-h-14rem {\n max-height: 14rem !important;\n }\n .md\\:max-h-15rem {\n max-height: 15rem !important;\n }\n .md\\:max-h-16rem {\n max-height: 16rem !important;\n }\n .md\\:max-h-17rem {\n max-height: 17rem !important;\n }\n .md\\:max-h-18rem {\n max-height: 18rem !important;\n }\n .md\\:max-h-19rem {\n max-height: 19rem !important;\n }\n .md\\:max-h-20rem {\n max-height: 20rem !important;\n }\n .md\\:max-h-21rem {\n max-height: 21rem !important;\n }\n .md\\:max-h-22rem {\n max-height: 22rem !important;\n }\n .md\\:max-h-23rem {\n max-height: 23rem !important;\n }\n .md\\:max-h-24rem {\n max-height: 24rem !important;\n }\n .md\\:max-h-25rem {\n max-height: 25rem !important;\n }\n .md\\:max-h-26rem {\n max-height: 26rem !important;\n }\n .md\\:max-h-27rem {\n max-height: 27rem !important;\n }\n .md\\:max-h-28rem {\n max-height: 28rem !important;\n }\n .md\\:max-h-29rem {\n max-height: 29rem !important;\n }\n .md\\:max-h-30rem {\n max-height: 30rem !important;\n }\n}\n@media screen and (min-width: 992px) {\n .lg\\:max-h-0 {\n max-height: 0px !important;\n }\n .lg\\:max-h-full {\n max-height: 100% !important;\n }\n .lg\\:max-h-screen {\n max-height: 100vh !important;\n }\n .lg\\:max-h-min {\n max-height: min-content !important;\n }\n .lg\\:max-h-max {\n max-height: max-content !important;\n }\n .lg\\:max-h-fit {\n max-height: fit-content !important;\n }\n .lg\\:max-h-1rem {\n max-height: 1rem !important;\n }\n .lg\\:max-h-2rem {\n max-height: 2rem !important;\n }\n .lg\\:max-h-3rem {\n max-height: 3rem !important;\n }\n .lg\\:max-h-4rem {\n max-height: 4rem !important;\n }\n .lg\\:max-h-5rem {\n max-height: 5rem !important;\n }\n .lg\\:max-h-6rem {\n max-height: 6rem !important;\n }\n .lg\\:max-h-7rem {\n max-height: 7rem !important;\n }\n .lg\\:max-h-8rem {\n max-height: 8rem !important;\n }\n .lg\\:max-h-9rem {\n max-height: 9rem !important;\n }\n .lg\\:max-h-10rem {\n max-height: 10rem !important;\n }\n .lg\\:max-h-11rem {\n max-height: 11rem !important;\n }\n .lg\\:max-h-12rem {\n max-height: 12rem !important;\n }\n .lg\\:max-h-13rem {\n max-height: 13rem !important;\n }\n .lg\\:max-h-14rem {\n max-height: 14rem !important;\n }\n .lg\\:max-h-15rem {\n max-height: 15rem !important;\n }\n .lg\\:max-h-16rem {\n max-height: 16rem !important;\n }\n .lg\\:max-h-17rem {\n max-height: 17rem !important;\n }\n .lg\\:max-h-18rem {\n max-height: 18rem !important;\n }\n .lg\\:max-h-19rem {\n max-height: 19rem !important;\n }\n .lg\\:max-h-20rem {\n max-height: 20rem !important;\n }\n .lg\\:max-h-21rem {\n max-height: 21rem !important;\n }\n .lg\\:max-h-22rem {\n max-height: 22rem !important;\n }\n .lg\\:max-h-23rem {\n max-height: 23rem !important;\n }\n .lg\\:max-h-24rem {\n max-height: 24rem !important;\n }\n .lg\\:max-h-25rem {\n max-height: 25rem !important;\n }\n .lg\\:max-h-26rem {\n max-height: 26rem !important;\n }\n .lg\\:max-h-27rem {\n max-height: 27rem !important;\n }\n .lg\\:max-h-28rem {\n max-height: 28rem !important;\n }\n .lg\\:max-h-29rem {\n max-height: 29rem !important;\n }\n .lg\\:max-h-30rem {\n max-height: 30rem !important;\n }\n}\n@media screen and (min-width: 1200px) {\n .xl\\:max-h-0 {\n max-height: 0px !important;\n }\n .xl\\:max-h-full {\n max-height: 100% !important;\n }\n .xl\\:max-h-screen {\n max-height: 100vh !important;\n }\n .xl\\:max-h-min {\n max-height: min-content !important;\n }\n .xl\\:max-h-max {\n max-height: max-content !important;\n }\n .xl\\:max-h-fit {\n max-height: fit-content !important;\n }\n .xl\\:max-h-1rem {\n max-height: 1rem !important;\n }\n .xl\\:max-h-2rem {\n max-height: 2rem !important;\n }\n .xl\\:max-h-3rem {\n max-height: 3rem !important;\n }\n .xl\\:max-h-4rem {\n max-height: 4rem !important;\n }\n .xl\\:max-h-5rem {\n max-height: 5rem !important;\n }\n .xl\\:max-h-6rem {\n max-height: 6rem !important;\n }\n .xl\\:max-h-7rem {\n max-height: 7rem !important;\n }\n .xl\\:max-h-8rem {\n max-height: 8rem !important;\n }\n .xl\\:max-h-9rem {\n max-height: 9rem !important;\n }\n .xl\\:max-h-10rem {\n max-height: 10rem !important;\n }\n .xl\\:max-h-11rem {\n max-height: 11rem !important;\n }\n .xl\\:max-h-12rem {\n max-height: 12rem !important;\n }\n .xl\\:max-h-13rem {\n max-height: 13rem !important;\n }\n .xl\\:max-h-14rem {\n max-height: 14rem !important;\n }\n .xl\\:max-h-15rem {\n max-height: 15rem !important;\n }\n .xl\\:max-h-16rem {\n max-height: 16rem !important;\n }\n .xl\\:max-h-17rem {\n max-height: 17rem !important;\n }\n .xl\\:max-h-18rem {\n max-height: 18rem !important;\n }\n .xl\\:max-h-19rem {\n max-height: 19rem !important;\n }\n .xl\\:max-h-20rem {\n max-height: 20rem !important;\n }\n .xl\\:max-h-21rem {\n max-height: 21rem !important;\n }\n .xl\\:max-h-22rem {\n max-height: 22rem !important;\n }\n .xl\\:max-h-23rem {\n max-height: 23rem !important;\n }\n .xl\\:max-h-24rem {\n max-height: 24rem !important;\n }\n .xl\\:max-h-25rem {\n max-height: 25rem !important;\n }\n .xl\\:max-h-26rem {\n max-height: 26rem !important;\n }\n .xl\\:max-h-27rem {\n max-height: 27rem !important;\n }\n .xl\\:max-h-28rem {\n max-height: 28rem !important;\n }\n .xl\\:max-h-29rem {\n max-height: 29rem !important;\n }\n .xl\\:max-h-30rem {\n max-height: 30rem !important;\n }\n}\n.static {\n position: static !important;\n}\n\n.fixed {\n position: fixed !important;\n}\n\n.absolute {\n position: absolute !important;\n}\n\n.relative {\n position: relative !important;\n}\n\n.sticky {\n position: sticky !important;\n}\n\n@media screen and (min-width: 576px) {\n .sm\\:static {\n position: static !important;\n }\n .sm\\:fixed {\n position: fixed !important;\n }\n .sm\\:absolute {\n position: absolute !important;\n }\n .sm\\:relative {\n position: relative !important;\n }\n .sm\\:sticky {\n position: sticky !important;\n }\n}\n@media screen and (min-width: 768px) {\n .md\\:static {\n position: static !important;\n }\n .md\\:fixed {\n position: fixed !important;\n }\n .md\\:absolute {\n position: absolute !important;\n }\n .md\\:relative {\n position: relative !important;\n }\n .md\\:sticky {\n position: sticky !important;\n }\n}\n@media screen and (min-width: 992px) {\n .lg\\:static {\n position: static !important;\n }\n .lg\\:fixed {\n position: fixed !important;\n }\n .lg\\:absolute {\n position: absolute !important;\n }\n .lg\\:relative {\n position: relative !important;\n }\n .lg\\:sticky {\n position: sticky !important;\n }\n}\n@media screen and (min-width: 1200px) {\n .xl\\:static {\n position: static !important;\n }\n .xl\\:fixed {\n position: fixed !important;\n }\n .xl\\:absolute {\n position: absolute !important;\n }\n .xl\\:relative {\n position: relative !important;\n }\n .xl\\:sticky {\n position: sticky !important;\n }\n}\n.top-auto {\n top: auto !important;\n}\n\n.top-0 {\n top: 0px !important;\n}\n\n.top-50 {\n top: 50% !important;\n}\n\n.top-100 {\n top: 100% !important;\n}\n\n@media screen and (min-width: 576px) {\n .sm\\:top-auto {\n top: auto !important;\n }\n .sm\\:top-0 {\n top: 0px !important;\n }\n .sm\\:top-50 {\n top: 50% !important;\n }\n .sm\\:top-100 {\n top: 100% !important;\n }\n}\n@media screen and (min-width: 768px) {\n .md\\:top-auto {\n top: auto !important;\n }\n .md\\:top-0 {\n top: 0px !important;\n }\n .md\\:top-50 {\n top: 50% !important;\n }\n .md\\:top-100 {\n top: 100% !important;\n }\n}\n@media screen and (min-width: 992px) {\n .lg\\:top-auto {\n top: auto !important;\n }\n .lg\\:top-0 {\n top: 0px !important;\n }\n .lg\\:top-50 {\n top: 50% !important;\n }\n .lg\\:top-100 {\n top: 100% !important;\n }\n}\n@media screen and (min-width: 1200px) {\n .xl\\:top-auto {\n top: auto !important;\n }\n .xl\\:top-0 {\n top: 0px !important;\n }\n .xl\\:top-50 {\n top: 50% !important;\n }\n .xl\\:top-100 {\n top: 100% !important;\n }\n}\n.left-auto {\n left: auto !important;\n}\n\n.left-0 {\n left: 0px !important;\n}\n\n.left-50 {\n left: 50% !important;\n}\n\n.left-100 {\n left: 100% !important;\n}\n\n@media screen and (min-width: 576px) {\n .sm\\:left-auto {\n left: auto !important;\n }\n .sm\\:left-0 {\n left: 0px !important;\n }\n .sm\\:left-50 {\n left: 50% !important;\n }\n .sm\\:left-100 {\n left: 100% !important;\n }\n}\n@media screen and (min-width: 768px) {\n .md\\:left-auto {\n left: auto !important;\n }\n .md\\:left-0 {\n left: 0px !important;\n }\n .md\\:left-50 {\n left: 50% !important;\n }\n .md\\:left-100 {\n left: 100% !important;\n }\n}\n@media screen and (min-width: 992px) {\n .lg\\:left-auto {\n left: auto !important;\n }\n .lg\\:left-0 {\n left: 0px !important;\n }\n .lg\\:left-50 {\n left: 50% !important;\n }\n .lg\\:left-100 {\n left: 100% !important;\n }\n}\n@media screen and (min-width: 1200px) {\n .xl\\:left-auto {\n left: auto !important;\n }\n .xl\\:left-0 {\n left: 0px !important;\n }\n .xl\\:left-50 {\n left: 50% !important;\n }\n .xl\\:left-100 {\n left: 100% !important;\n }\n}\n.right-auto {\n right: auto !important;\n}\n\n.right-0 {\n right: 0px !important;\n}\n\n.right-50 {\n right: 50% !important;\n}\n\n.right-100 {\n right: 100% !important;\n}\n\n@media screen and (min-width: 576px) {\n .sm\\:right-auto {\n right: auto !important;\n }\n .sm\\:right-0 {\n right: 0px !important;\n }\n .sm\\:right-50 {\n right: 50% !important;\n }\n .sm\\:right-100 {\n right: 100% !important;\n }\n}\n@media screen and (min-width: 768px) {\n .md\\:right-auto {\n right: auto !important;\n }\n .md\\:right-0 {\n right: 0px !important;\n }\n .md\\:right-50 {\n right: 50% !important;\n }\n .md\\:right-100 {\n right: 100% !important;\n }\n}\n@media screen and (min-width: 992px) {\n .lg\\:right-auto {\n right: auto !important;\n }\n .lg\\:right-0 {\n right: 0px !important;\n }\n .lg\\:right-50 {\n right: 50% !important;\n }\n .lg\\:right-100 {\n right: 100% !important;\n }\n}\n@media screen and (min-width: 1200px) {\n .xl\\:right-auto {\n right: auto !important;\n }\n .xl\\:right-0 {\n right: 0px !important;\n }\n .xl\\:right-50 {\n right: 50% !important;\n }\n .xl\\:right-100 {\n right: 100% !important;\n }\n}\n.bottom-auto {\n bottom: auto !important;\n}\n\n.bottom-0 {\n bottom: 0px !important;\n}\n\n.bottom-50 {\n bottom: 50% !important;\n}\n\n.bottom-100 {\n bottom: 100% !important;\n}\n\n@media screen and (min-width: 576px) {\n .sm\\:bottom-auto {\n bottom: auto !important;\n }\n .sm\\:bottom-0 {\n bottom: 0px !important;\n }\n .sm\\:bottom-50 {\n bottom: 50% !important;\n }\n .sm\\:bottom-100 {\n bottom: 100% !important;\n }\n}\n@media screen and (min-width: 768px) {\n .md\\:bottom-auto {\n bottom: auto !important;\n }\n .md\\:bottom-0 {\n bottom: 0px !important;\n }\n .md\\:bottom-50 {\n bottom: 50% !important;\n }\n .md\\:bottom-100 {\n bottom: 100% !important;\n }\n}\n@media screen and (min-width: 992px) {\n .lg\\:bottom-auto {\n bottom: auto !important;\n }\n .lg\\:bottom-0 {\n bottom: 0px !important;\n }\n .lg\\:bottom-50 {\n bottom: 50% !important;\n }\n .lg\\:bottom-100 {\n bottom: 100% !important;\n }\n}\n@media screen and (min-width: 1200px) {\n .xl\\:bottom-auto {\n bottom: auto !important;\n }\n .xl\\:bottom-0 {\n bottom: 0px !important;\n }\n .xl\\:bottom-50 {\n bottom: 50% !important;\n }\n .xl\\:bottom-100 {\n bottom: 100% !important;\n }\n}\n.overflow-auto {\n overflow: auto !important;\n}\n\n.overflow-hidden {\n overflow: hidden !important;\n}\n\n.overflow-visible {\n overflow: visible !important;\n}\n\n.overflow-scroll {\n overflow: scroll !important;\n}\n\n@media screen and (min-width: 576px) {\n .sm\\:overflow-auto {\n overflow: auto !important;\n }\n .sm\\:overflow-hidden {\n overflow: hidden !important;\n }\n .sm\\:overflow-visible {\n overflow: visible !important;\n }\n .sm\\:overflow-scroll {\n overflow: scroll !important;\n }\n}\n@media screen and (min-width: 768px) {\n .md\\:overflow-auto {\n overflow: auto !important;\n }\n .md\\:overflow-hidden {\n overflow: hidden !important;\n }\n .md\\:overflow-visible {\n overflow: visible !important;\n }\n .md\\:overflow-scroll {\n overflow: scroll !important;\n }\n}\n@media screen and (min-width: 992px) {\n .lg\\:overflow-auto {\n overflow: auto !important;\n }\n .lg\\:overflow-hidden {\n overflow: hidden !important;\n }\n .lg\\:overflow-visible {\n overflow: visible !important;\n }\n .lg\\:overflow-scroll {\n overflow: scroll !important;\n }\n}\n@media screen and (min-width: 1200px) {\n .xl\\:overflow-auto {\n overflow: auto !important;\n }\n .xl\\:overflow-hidden {\n overflow: hidden !important;\n }\n .xl\\:overflow-visible {\n overflow: visible !important;\n }\n .xl\\:overflow-scroll {\n overflow: scroll !important;\n }\n}\n.overflow-x-auto {\n overflow-x: auto !important;\n}\n\n.overflow-x-hidden {\n overflow-x: hidden !important;\n}\n\n.overflow-x-visible {\n overflow-x: visible !important;\n}\n\n.overflow-x-scroll {\n overflow-x: scroll !important;\n}\n\n@media screen and (min-width: 576px) {\n .sm\\:overflow-x-auto {\n overflow-x: auto !important;\n }\n .sm\\:overflow-x-hidden {\n overflow-x: hidden !important;\n }\n .sm\\:overflow-x-visible {\n overflow-x: visible !important;\n }\n .sm\\:overflow-x-scroll {\n overflow-x: scroll !important;\n }\n}\n@media screen and (min-width: 768px) {\n .md\\:overflow-x-auto {\n overflow-x: auto !important;\n }\n .md\\:overflow-x-hidden {\n overflow-x: hidden !important;\n }\n .md\\:overflow-x-visible {\n overflow-x: visible !important;\n }\n .md\\:overflow-x-scroll {\n overflow-x: scroll !important;\n }\n}\n@media screen and (min-width: 992px) {\n .lg\\:overflow-x-auto {\n overflow-x: auto !important;\n }\n .lg\\:overflow-x-hidden {\n overflow-x: hidden !important;\n }\n .lg\\:overflow-x-visible {\n overflow-x: visible !important;\n }\n .lg\\:overflow-x-scroll {\n overflow-x: scroll !important;\n }\n}\n@media screen and (min-width: 1200px) {\n .xl\\:overflow-x-auto {\n overflow-x: auto !important;\n }\n .xl\\:overflow-x-hidden {\n overflow-x: hidden !important;\n }\n .xl\\:overflow-x-visible {\n overflow-x: visible !important;\n }\n .xl\\:overflow-x-scroll {\n overflow-x: scroll !important;\n }\n}\n.overflow-y-auto {\n overflow-y: auto !important;\n}\n\n.overflow-y-hidden {\n overflow-y: hidden !important;\n}\n\n.overflow-y-visible {\n overflow-y: visible !important;\n}\n\n.overflow-y-scroll {\n overflow-y: scroll !important;\n}\n\n@media screen and (min-width: 576px) {\n .sm\\:overflow-y-auto {\n overflow-y: auto !important;\n }\n .sm\\:overflow-y-hidden {\n overflow-y: hidden !important;\n }\n .sm\\:overflow-y-visible {\n overflow-y: visible !important;\n }\n .sm\\:overflow-y-scroll {\n overflow-y: scroll !important;\n }\n}\n@media screen and (min-width: 768px) {\n .md\\:overflow-y-auto {\n overflow-y: auto !important;\n }\n .md\\:overflow-y-hidden {\n overflow-y: hidden !important;\n }\n .md\\:overflow-y-visible {\n overflow-y: visible !important;\n }\n .md\\:overflow-y-scroll {\n overflow-y: scroll !important;\n }\n}\n@media screen and (min-width: 992px) {\n .lg\\:overflow-y-auto {\n overflow-y: auto !important;\n }\n .lg\\:overflow-y-hidden {\n overflow-y: hidden !important;\n }\n .lg\\:overflow-y-visible {\n overflow-y: visible !important;\n }\n .lg\\:overflow-y-scroll {\n overflow-y: scroll !important;\n }\n}\n@media screen and (min-width: 1200px) {\n .xl\\:overflow-y-auto {\n overflow-y: auto !important;\n }\n .xl\\:overflow-y-hidden {\n overflow-y: hidden !important;\n }\n .xl\\:overflow-y-visible {\n overflow-y: visible !important;\n }\n .xl\\:overflow-y-scroll {\n overflow-y: scroll !important;\n }\n}\n.z-auto {\n z-index: auto !important;\n}\n\n.z-0 {\n z-index: 0 !important;\n}\n\n.z-1 {\n z-index: 1 !important;\n}\n\n.z-2 {\n z-index: 2 !important;\n}\n\n.z-3 {\n z-index: 3 !important;\n}\n\n.z-4 {\n z-index: 4 !important;\n}\n\n.z-5 {\n z-index: 5 !important;\n}\n\n@media screen and (min-width: 576px) {\n .sm\\:z-auto {\n z-index: auto !important;\n }\n .sm\\:z-0 {\n z-index: 0 !important;\n }\n .sm\\:z-1 {\n z-index: 1 !important;\n }\n .sm\\:z-2 {\n z-index: 2 !important;\n }\n .sm\\:z-3 {\n z-index: 3 !important;\n }\n .sm\\:z-4 {\n z-index: 4 !important;\n }\n .sm\\:z-5 {\n z-index: 5 !important;\n }\n}\n@media screen and (min-width: 768px) {\n .md\\:z-auto {\n z-index: auto !important;\n }\n .md\\:z-0 {\n z-index: 0 !important;\n }\n .md\\:z-1 {\n z-index: 1 !important;\n }\n .md\\:z-2 {\n z-index: 2 !important;\n }\n .md\\:z-3 {\n z-index: 3 !important;\n }\n .md\\:z-4 {\n z-index: 4 !important;\n }\n .md\\:z-5 {\n z-index: 5 !important;\n }\n}\n@media screen and (min-width: 992px) {\n .lg\\:z-auto {\n z-index: auto !important;\n }\n .lg\\:z-0 {\n z-index: 0 !important;\n }\n .lg\\:z-1 {\n z-index: 1 !important;\n }\n .lg\\:z-2 {\n z-index: 2 !important;\n }\n .lg\\:z-3 {\n z-index: 3 !important;\n }\n .lg\\:z-4 {\n z-index: 4 !important;\n }\n .lg\\:z-5 {\n z-index: 5 !important;\n }\n}\n@media screen and (min-width: 1200px) {\n .xl\\:z-auto {\n z-index: auto !important;\n }\n .xl\\:z-0 {\n z-index: 0 !important;\n }\n .xl\\:z-1 {\n z-index: 1 !important;\n }\n .xl\\:z-2 {\n z-index: 2 !important;\n }\n .xl\\:z-3 {\n z-index: 3 !important;\n }\n .xl\\:z-4 {\n z-index: 4 !important;\n }\n .xl\\:z-5 {\n z-index: 5 !important;\n }\n}\n.bg-repeat {\n background-repeat: repeat !important;\n}\n\n.bg-no-repeat {\n background-repeat: no-repeat !important;\n}\n\n.bg-repeat-x {\n background-repeat: repeat-x !important;\n}\n\n.bg-repeat-y {\n background-repeat: repeat-y !important;\n}\n\n.bg-repeat-round {\n background-repeat: round !important;\n}\n\n.bg-repeat-space {\n background-repeat: space !important;\n}\n\n@media screen and (min-width: 576px) {\n .sm\\:bg-repeat {\n background-repeat: repeat !important;\n }\n .sm\\:bg-no-repeat {\n background-repeat: no-repeat !important;\n }\n .sm\\:bg-repeat-x {\n background-repeat: repeat-x !important;\n }\n .sm\\:bg-repeat-y {\n background-repeat: repeat-y !important;\n }\n .sm\\:bg-repeat-round {\n background-repeat: round !important;\n }\n .sm\\:bg-repeat-space {\n background-repeat: space !important;\n }\n}\n@media screen and (min-width: 768px) {\n .md\\:bg-repeat {\n background-repeat: repeat !important;\n }\n .md\\:bg-no-repeat {\n background-repeat: no-repeat !important;\n }\n .md\\:bg-repeat-x {\n background-repeat: repeat-x !important;\n }\n .md\\:bg-repeat-y {\n background-repeat: repeat-y !important;\n }\n .md\\:bg-repeat-round {\n background-repeat: round !important;\n }\n .md\\:bg-repeat-space {\n background-repeat: space !important;\n }\n}\n@media screen and (min-width: 992px) {\n .lg\\:bg-repeat {\n background-repeat: repeat !important;\n }\n .lg\\:bg-no-repeat {\n background-repeat: no-repeat !important;\n }\n .lg\\:bg-repeat-x {\n background-repeat: repeat-x !important;\n }\n .lg\\:bg-repeat-y {\n background-repeat: repeat-y !important;\n }\n .lg\\:bg-repeat-round {\n background-repeat: round !important;\n }\n .lg\\:bg-repeat-space {\n background-repeat: space !important;\n }\n}\n@media screen and (min-width: 1200px) {\n .xl\\:bg-repeat {\n background-repeat: repeat !important;\n }\n .xl\\:bg-no-repeat {\n background-repeat: no-repeat !important;\n }\n .xl\\:bg-repeat-x {\n background-repeat: repeat-x !important;\n }\n .xl\\:bg-repeat-y {\n background-repeat: repeat-y !important;\n }\n .xl\\:bg-repeat-round {\n background-repeat: round !important;\n }\n .xl\\:bg-repeat-space {\n background-repeat: space !important;\n }\n}\n.bg-auto {\n background-size: auto !important;\n}\n\n.bg-cover {\n background-size: cover !important;\n}\n\n.bg-contain {\n background-size: contain !important;\n}\n\n@media screen and (min-width: 576px) {\n .sm\\:bg-auto {\n background-size: auto !important;\n }\n .sm\\:bg-cover {\n background-size: cover !important;\n }\n .sm\\:bg-contain {\n background-size: contain !important;\n }\n}\n@media screen and (min-width: 768px) {\n .md\\:bg-auto {\n background-size: auto !important;\n }\n .md\\:bg-cover {\n background-size: cover !important;\n }\n .md\\:bg-contain {\n background-size: contain !important;\n }\n}\n@media screen and (min-width: 992px) {\n .lg\\:bg-auto {\n background-size: auto !important;\n }\n .lg\\:bg-cover {\n background-size: cover !important;\n }\n .lg\\:bg-contain {\n background-size: contain !important;\n }\n}\n@media screen and (min-width: 1200px) {\n .xl\\:bg-auto {\n background-size: auto !important;\n }\n .xl\\:bg-cover {\n background-size: cover !important;\n }\n .xl\\:bg-contain {\n background-size: contain !important;\n }\n}\n.bg-bottom {\n background-position: bottom !important;\n}\n\n.bg-center {\n background-position: center !important;\n}\n\n.bg-left {\n background-position: left !important;\n}\n\n.bg-left-bottom {\n background-position: left bottom !important;\n}\n\n.bg-left-top {\n background-position: left top !important;\n}\n\n.bg-right {\n background-position: right !important;\n}\n\n.bg-right-bottom {\n background-position: right bottom !important;\n}\n\n.bg-right-top {\n background-position: right top !important;\n}\n\n.bg-top {\n background-position: top !important;\n}\n\n@media screen and (min-width: 576px) {\n .sm\\:bg-bottom {\n background-position: bottom !important;\n }\n .sm\\:bg-center {\n background-position: center !important;\n }\n .sm\\:bg-left {\n background-position: left !important;\n }\n .sm\\:bg-left-bottom {\n background-position: left bottom !important;\n }\n .sm\\:bg-left-top {\n background-position: left top !important;\n }\n .sm\\:bg-right {\n background-position: right !important;\n }\n .sm\\:bg-right-bottom {\n background-position: right bottom !important;\n }\n .sm\\:bg-right-top {\n background-position: right top !important;\n }\n .sm\\:bg-top {\n background-position: top !important;\n }\n}\n@media screen and (min-width: 768px) {\n .md\\:bg-bottom {\n background-position: bottom !important;\n }\n .md\\:bg-center {\n background-position: center !important;\n }\n .md\\:bg-left {\n background-position: left !important;\n }\n .md\\:bg-left-bottom {\n background-position: left bottom !important;\n }\n .md\\:bg-left-top {\n background-position: left top !important;\n }\n .md\\:bg-right {\n background-position: right !important;\n }\n .md\\:bg-right-bottom {\n background-position: right bottom !important;\n }\n .md\\:bg-right-top {\n background-position: right top !important;\n }\n .md\\:bg-top {\n background-position: top !important;\n }\n}\n@media screen and (min-width: 992px) {\n .lg\\:bg-bottom {\n background-position: bottom !important;\n }\n .lg\\:bg-center {\n background-position: center !important;\n }\n .lg\\:bg-left {\n background-position: left !important;\n }\n .lg\\:bg-left-bottom {\n background-position: left bottom !important;\n }\n .lg\\:bg-left-top {\n background-position: left top !important;\n }\n .lg\\:bg-right {\n background-position: right !important;\n }\n .lg\\:bg-right-bottom {\n background-position: right bottom !important;\n }\n .lg\\:bg-right-top {\n background-position: right top !important;\n }\n .lg\\:bg-top {\n background-position: top !important;\n }\n}\n@media screen and (min-width: 1200px) {\n .xl\\:bg-bottom {\n background-position: bottom !important;\n }\n .xl\\:bg-center {\n background-position: center !important;\n }\n .xl\\:bg-left {\n background-position: left !important;\n }\n .xl\\:bg-left-bottom {\n background-position: left bottom !important;\n }\n .xl\\:bg-left-top {\n background-position: left top !important;\n }\n .xl\\:bg-right {\n background-position: right !important;\n }\n .xl\\:bg-right-bottom {\n background-position: right bottom !important;\n }\n .xl\\:bg-right-top {\n background-position: right top !important;\n }\n .xl\\:bg-top {\n background-position: top !important;\n }\n}\n.select-none {\n user-select: none !important;\n}\n\n.select-text {\n user-select: text !important;\n}\n\n.select-all {\n user-select: all !important;\n}\n\n.select-auto {\n user-select: auto !important;\n}\n\n.list-none {\n list-style: none !important;\n}\n\n.list-disc {\n list-style: disc !important;\n}\n\n.list-decimal {\n list-style: decimal !important;\n}\n\n.appearance-none {\n appearance: none !important;\n}\n\n.outline-none {\n outline: none !important;\n}\n\n.pointer-events-none {\n pointer-events: none !important;\n}\n\n.pointer-events-auto {\n pointer-events: auto !important;\n}\n\n.cursor-auto {\n cursor: auto !important;\n}\n\n.cursor-pointer {\n cursor: pointer !important;\n}\n\n.cursor-wait {\n cursor: wait !important;\n}\n\n.cursor-move {\n cursor: move !important;\n}\n\n.select-none {\n user-select: none !important;\n}\n\n.select-text {\n user-select: text !important;\n}\n\n.select-all {\n user-select: all !important;\n}\n\n.select-auto {\n user-select: auto !important;\n}\n\n.opacity-0 {\n opacity: 0 !important;\n}\n\n.opacity-10 {\n opacity: .1 !important;\n}\n\n.opacity-20 {\n opacity: .2 !important;\n}\n\n.opacity-30 {\n opacity: .3 !important;\n}\n\n.opacity-40 {\n opacity: .4 !important;\n}\n\n.opacity-50 {\n opacity: .5 !important;\n}\n\n.opacity-60 {\n opacity: .6 !important;\n}\n\n.opacity-70 {\n opacity: .7 !important;\n}\n\n.opacity-80 {\n opacity: .8 !important;\n}\n\n.opacity-90 {\n opacity: .9 !important;\n}\n\n.opacity-100 {\n opacity: 1 !important;\n}\n\n.reset {\n all: unset;\n}\n\n.transition-none {\n transition-property: none !important;\n}\n\n.transition-all {\n transition-property: all !important;\n}\n\n.transition-colors {\n transition-property: background-color,border-color,color !important;\n}\n\n.transition-transform {\n transition-property: transform !important;\n}\n\n.transition-duration-100 {\n transition-duration: 100ms !important;\n}\n\n.transition-duration-150 {\n transition-duration: 150ms !important;\n}\n\n.transition-duration-200 {\n transition-duration: 200ms !important;\n}\n\n.transition-duration-300 {\n transition-duration: 300ms !important;\n}\n\n.transition-duration-400 {\n transition-duration: 400ms !important;\n}\n\n.transition-duration-500 {\n transition-duration: 500ms !important;\n}\n\n.transition-duration-1000 {\n transition-duration: 1000ms !important;\n}\n\n.transition-duration-2000 {\n transition-duration: 2000ms !important;\n}\n\n.transition-duration-3000 {\n transition-duration: 3000ms !important;\n}\n\n.transition-linear {\n transition-timing-function: linear !important;\n}\n\n.transition-ease-in {\n transition-timing-function: cubic-bezier(0.4, 0, 1, 1) !important;\n}\n\n.transition-ease-out {\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1) !important;\n}\n\n.transition-ease-in-out {\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1) !important;\n}\n\n.transition-delay-100 {\n transition-delay: 100ms !important;\n}\n\n.transition-delay-150 {\n transition-delay: 150ms !important;\n}\n\n.transition-delay-200 {\n transition-delay: 200ms !important;\n}\n\n.transition-delay-300 {\n transition-delay: 300ms !important;\n}\n\n.transition-delay-400 {\n transition-delay: 400ms !important;\n}\n\n.transition-delay-500 {\n transition-delay: 500ms !important;\n}\n\n.transition-delay-1000 {\n transition-delay: 1000ms !important;\n}\n\n.translate-x-0 {\n transform: translateX(0%) !important;\n}\n\n.translate-x-100 {\n transform: translateX(100%) !important;\n}\n\n.-translate-x-100 {\n transform: translateX(-100%) !important;\n}\n\n.translate-y-0 {\n transform: translateY(0%) !important;\n}\n\n.translate-y-100 {\n transform: translateY(100%) !important;\n}\n\n.-translate-y-100 {\n transform: translateY(-100%) !important;\n}\n\n@media screen and (min-width: 576px) {\n .sm\\:translate-x-0 {\n transform: translateX(0%) !important;\n }\n .sm\\:translate-x-100 {\n transform: translateX(100%) !important;\n }\n .sm\\:-translate-x-100 {\n transform: translateX(-100%) !important;\n }\n .sm\\:translate-y-0 {\n transform: translateY(0%) !important;\n }\n .sm\\:translate-y-100 {\n transform: translateY(100%) !important;\n }\n .sm\\:-translate-y-100 {\n transform: translateY(-100%) !important;\n }\n}\n@media screen and (min-width: 768px) {\n .md\\:translate-x-0 {\n transform: translateX(0%) !important;\n }\n .md\\:translate-x-100 {\n transform: translateX(100%) !important;\n }\n .md\\:-translate-x-100 {\n transform: translateX(-100%) !important;\n }\n .md\\:translate-y-0 {\n transform: translateY(0%) !important;\n }\n .md\\:translate-y-100 {\n transform: translateY(100%) !important;\n }\n .md\\:-translate-y-100 {\n transform: translateY(-100%) !important;\n }\n}\n@media screen and (min-width: 992px) {\n .lg\\:translate-x-0 {\n transform: translateX(0%) !important;\n }\n .lg\\:translate-x-100 {\n transform: translateX(100%) !important;\n }\n .lg\\:-translate-x-100 {\n transform: translateX(-100%) !important;\n }\n .lg\\:translate-y-0 {\n transform: translateY(0%) !important;\n }\n .lg\\:translate-y-100 {\n transform: translateY(100%) !important;\n }\n .lg\\:-translate-y-100 {\n transform: translateY(-100%) !important;\n }\n}\n@media screen and (min-width: 1200px) {\n .xl\\:translate-x-0 {\n transform: translateX(0%) !important;\n }\n .xl\\:translate-x-100 {\n transform: translateX(100%) !important;\n }\n .xl\\:-translate-x-100 {\n transform: translateX(-100%) !important;\n }\n .xl\\:translate-y-0 {\n transform: translateY(0%) !important;\n }\n .xl\\:translate-y-100 {\n transform: translateY(100%) !important;\n }\n .xl\\:-translate-y-100 {\n transform: translateY(-100%) !important;\n }\n}\n.rotate-45 {\n transform: rotate(45deg) !important;\n}\n\n.-rotate-45 {\n transform: rotate(-45deg) !important;\n}\n\n.rotate-90 {\n transform: rotate(90deg) !important;\n}\n\n.-rotate-90 {\n transform: rotate(-90deg) !important;\n}\n\n.rotate-180 {\n transform: rotate(180deg) !important;\n}\n\n.-rotate-180 {\n transform: rotate(-180deg) !important;\n}\n\n@media screen and (min-width: 576px) {\n .sm\\:rotate-45 {\n transform: rotate(45deg) !important;\n }\n .sm\\:-rotate-45 {\n transform: rotate(-45deg) !important;\n }\n .sm\\:rotate-90 {\n transform: rotate(90deg) !important;\n }\n .sm\\:-rotate-90 {\n transform: rotate(-90deg) !important;\n }\n .sm\\:rotate-180 {\n transform: rotate(180deg) !important;\n }\n .sm\\:-rotate-180 {\n transform: rotate(-180deg) !important;\n }\n}\n@media screen and (min-width: 768px) {\n .md\\:rotate-45 {\n transform: rotate(45deg) !important;\n }\n .md\\:-rotate-45 {\n transform: rotate(-45deg) !important;\n }\n .md\\:rotate-90 {\n transform: rotate(90deg) !important;\n }\n .md\\:-rotate-90 {\n transform: rotate(-90deg) !important;\n }\n .md\\:rotate-180 {\n transform: rotate(180deg) !important;\n }\n .md\\:-rotate-180 {\n transform: rotate(-180deg) !important;\n }\n}\n@media screen and (min-width: 992px) {\n .lg\\:rotate-45 {\n transform: rotate(45deg) !important;\n }\n .lg\\:-rotate-45 {\n transform: rotate(-45deg) !important;\n }\n .lg\\:rotate-90 {\n transform: rotate(90deg) !important;\n }\n .lg\\:-rotate-90 {\n transform: rotate(-90deg) !important;\n }\n .lg\\:rotate-180 {\n transform: rotate(180deg) !important;\n }\n .lg\\:-rotate-180 {\n transform: rotate(-180deg) !important;\n }\n}\n@media screen and (min-width: 1200px) {\n .xl\\:rotate-45 {\n transform: rotate(45deg) !important;\n }\n .xl\\:-rotate-45 {\n transform: rotate(-45deg) !important;\n }\n .xl\\:rotate-90 {\n transform: rotate(90deg) !important;\n }\n .xl\\:-rotate-90 {\n transform: rotate(-90deg) !important;\n }\n .xl\\:rotate-180 {\n transform: rotate(180deg) !important;\n }\n .xl\\:-rotate-180 {\n transform: rotate(-180deg) !important;\n }\n}\n.origin-center {\n transform-origin: center !important;\n}\n\n.origin-top {\n transform-origin: top !important;\n}\n\n.origin-top-right {\n transform-origin: top right !important;\n}\n\n.origin-right {\n transform-origin: right !important;\n}\n\n.origin-bottom-right {\n transform-origin: bottom right !important;\n}\n\n.origin-bottom {\n transform-origin: bottom !important;\n}\n\n.origin-bottom-left {\n transform-origin: bottom left !important;\n}\n\n.origin-left {\n transform-origin: left !important;\n}\n\n.origin-top-left {\n transform-origin: top-left !important;\n}\n\n@media screen and (min-width: 576px) {\n .sm\\:origin-center {\n transform-origin: center !important;\n }\n .sm\\:origin-top {\n transform-origin: top !important;\n }\n .sm\\:origin-top-right {\n transform-origin: top right !important;\n }\n .sm\\:origin-right {\n transform-origin: right !important;\n }\n .sm\\:origin-bottom-right {\n transform-origin: bottom right !important;\n }\n .sm\\:origin-bottom {\n transform-origin: bottom !important;\n }\n .sm\\:origin-bottom-left {\n transform-origin: bottom left !important;\n }\n .sm\\:origin-left {\n transform-origin: left !important;\n }\n .sm\\:origin-top-left {\n transform-origin: top-left !important;\n }\n}\n@media screen and (min-width: 768px) {\n .md\\:origin-center {\n transform-origin: center !important;\n }\n .md\\:origin-top {\n transform-origin: top !important;\n }\n .md\\:origin-top-right {\n transform-origin: top right !important;\n }\n .md\\:origin-right {\n transform-origin: right !important;\n }\n .md\\:origin-bottom-right {\n transform-origin: bottom right !important;\n }\n .md\\:origin-bottom {\n transform-origin: bottom !important;\n }\n .md\\:origin-bottom-left {\n transform-origin: bottom left !important;\n }\n .md\\:origin-left {\n transform-origin: left !important;\n }\n .md\\:origin-top-left {\n transform-origin: top-left !important;\n }\n}\n@media screen and (min-width: 992px) {\n .lg\\:origin-center {\n transform-origin: center !important;\n }\n .lg\\:origin-top {\n transform-origin: top !important;\n }\n .lg\\:origin-top-right {\n transform-origin: top right !important;\n }\n .lg\\:origin-right {\n transform-origin: right !important;\n }\n .lg\\:origin-bottom-right {\n transform-origin: bottom right !important;\n }\n .lg\\:origin-bottom {\n transform-origin: bottom !important;\n }\n .lg\\:origin-bottom-left {\n transform-origin: bottom left !important;\n }\n .lg\\:origin-left {\n transform-origin: left !important;\n }\n .lg\\:origin-top-left {\n transform-origin: top-left !important;\n }\n}\n@media screen and (min-width: 1200px) {\n .xl\\:origin-center {\n transform-origin: center !important;\n }\n .xl\\:origin-top {\n transform-origin: top !important;\n }\n .xl\\:origin-top-right {\n transform-origin: top right !important;\n }\n .xl\\:origin-right {\n transform-origin: right !important;\n }\n .xl\\:origin-bottom-right {\n transform-origin: bottom right !important;\n }\n .xl\\:origin-bottom {\n transform-origin: bottom !important;\n }\n .xl\\:origin-bottom-left {\n transform-origin: bottom left !important;\n }\n .xl\\:origin-left {\n transform-origin: left !important;\n }\n .xl\\:origin-top-left {\n transform-origin: top-left !important;\n }\n}\n@keyframes fadein {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n@keyframes fadeout {\n 0% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n }\n}\n@keyframes scalein {\n 0% {\n opacity: 0;\n transform: scaleY(0.8);\n transition: transform 0.12s cubic-bezier(0, 0, 0.2, 1), opacity 0.12s cubic-bezier(0, 0, 0.2, 1);\n }\n 100% {\n opacity: 1;\n transform: scaleY(1);\n }\n}\n@keyframes slidedown {\n 0% {\n max-height: 0;\n }\n 100% {\n max-height: auto;\n }\n}\n@keyframes slideup {\n 0% {\n max-height: 1000px;\n }\n 100% {\n max-height: 0;\n }\n}\n@keyframes fadeinleft {\n 0% {\n opacity: 0;\n transform: translateX(-100%);\n transition: transform 0.12s cubic-bezier(0, 0, 0.2, 1), opacity 0.12s cubic-bezier(0, 0, 0.2, 1);\n }\n 100% {\n opacity: 1;\n transform: translateX(0%);\n }\n}\n@keyframes fadeoutleft {\n 0% {\n opacity: 1;\n transform: translateX(0%);\n transition: transform 0.12s cubic-bezier(0, 0, 0.2, 1), opacity 0.12s cubic-bezier(0, 0, 0.2, 1);\n }\n 100% {\n opacity: 0;\n transform: translateX(-100%);\n }\n}\n@keyframes fadeinright {\n 0% {\n opacity: 0;\n transform: translateX(100%);\n transition: transform 0.12s cubic-bezier(0, 0, 0.2, 1), opacity 0.12s cubic-bezier(0, 0, 0.2, 1);\n }\n 100% {\n opacity: 1;\n transform: translateX(0%);\n }\n}\n@keyframes fadeoutright {\n 0% {\n opacity: 1;\n transform: translateX(0%);\n transition: transform 0.12s cubic-bezier(0, 0, 0.2, 1), opacity 0.12s cubic-bezier(0, 0, 0.2, 1);\n }\n 100% {\n opacity: 0;\n transform: translateX(100%);\n }\n}\n@keyframes fadeinup {\n 0% {\n opacity: 0;\n transform: translateY(-100%);\n transition: transform 0.12s cubic-bezier(0, 0, 0.2, 1), opacity 0.12s cubic-bezier(0, 0, 0.2, 1);\n }\n 100% {\n opacity: 1;\n transform: translateY(0%);\n }\n}\n@keyframes fadeoutup {\n 0% {\n opacity: 1;\n transform: translateY(0%);\n transition: transform 0.12s cubic-bezier(0, 0, 0.2, 1), opacity 0.12s cubic-bezier(0, 0, 0.2, 1);\n }\n 100% {\n opacity: 0;\n transform: translateY(-100%);\n }\n}\n@keyframes fadeindown {\n 0% {\n opacity: 0;\n transform: translateY(100%);\n transition: transform 0.12s cubic-bezier(0, 0, 0.2, 1), opacity 0.12s cubic-bezier(0, 0, 0.2, 1);\n }\n 100% {\n opacity: 1;\n transform: translateY(0%);\n }\n}\n@keyframes fadeoutdown {\n 0% {\n opacity: 1;\n transform: translateY(0%);\n transition: transform 0.12s cubic-bezier(0, 0, 0.2, 1), opacity 0.12s cubic-bezier(0, 0, 0.2, 1);\n }\n 100% {\n opacity: 0;\n transform: translateY(100%);\n }\n}\n@keyframes animate-width {\n 0% {\n width: 0;\n }\n 100% {\n width: 100%;\n }\n}\n@keyframes flip {\n from {\n transform: perspective(2000px) rotateX(-100deg);\n }\n to {\n transform: perspective(2000px) rotateX(0);\n }\n}\n@keyframes flipleft {\n from {\n transform: perspective(2000px) rotateY(-100deg);\n opacity: 0;\n }\n to {\n transform: perspective(2000px) rotateY(0);\n opacity: 1;\n }\n}\n@keyframes flipright {\n from {\n transform: perspective(2000px) rotateY(100deg);\n opacity: 0;\n }\n to {\n transform: perspective(2000px) rotateY(0);\n opacity: 1;\n }\n}\n@keyframes flipup {\n from {\n transform: perspective(2000px) rotateX(-100deg);\n opacity: 0;\n }\n to {\n transform: perspective(2000px) rotateX(0);\n opacity: 1;\n }\n}\n@keyframes zoomin {\n from {\n opacity: 0;\n transform: scale3d(0.3, 0.3, 0.3);\n }\n 50% {\n opacity: 1;\n }\n}\n@keyframes zoomindown {\n from {\n opacity: 0;\n transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);\n }\n 60% {\n opacity: 1;\n transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);\n }\n}\n@keyframes zoominleft {\n from {\n opacity: 0;\n transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);\n }\n 60% {\n opacity: 1;\n transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);\n }\n}\n@keyframes zoominright {\n from {\n opacity: 0;\n transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);\n }\n 60% {\n opacity: 1;\n transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);\n }\n}\n@keyframes zoominup {\n from {\n opacity: 0;\n transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);\n }\n 60% {\n opacity: 1;\n transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);\n }\n}\n.fadein {\n animation: fadein 0.15s linear;\n}\n\n.fadeout {\n animation: fadeout 0.15s linear;\n}\n\n.slidedown {\n animation: slidedown 0.45s ease-in-out;\n}\n\n.slideup {\n animation: slideup 0.45s cubic-bezier(0, 1, 0, 1);\n}\n\n.scalein {\n animation: scalein 0.15s linear;\n}\n\n.fadeinleft {\n animation: fadeinleft 0.15s linear;\n}\n\n.fadeoutleft {\n animation: fadeoutleft 0.15s linear;\n}\n\n.fadeinright {\n animation: fadeinright 0.15s linear;\n}\n\n.fadeoutright {\n animation: fadeoutright 0.15s linear;\n}\n\n.fadeinup {\n animation: fadeinup 0.15s linear;\n}\n\n.fadeoutup {\n animation: fadeoutup 0.15s linear;\n}\n\n.fadeindown {\n animation: fadeindown 0.15s linear;\n}\n\n.fadeoutdown {\n animation: fadeoutdown 0.15s linear;\n}\n\n.animate-width {\n animation: animate-width 1000ms linear;\n}\n\n.flip {\n backface-visibility: visible;\n animation: flip 0.15s linear;\n}\n\n.flipup {\n backface-visibility: visible;\n animation: flipup 0.15s linear;\n}\n\n.flipleft {\n backface-visibility: visible;\n animation: flipleft 0.15s linear;\n}\n\n.flipright {\n backface-visibility: visible;\n animation: flipright 0.15s linear;\n}\n\n.zoomin {\n animation: zoomin 0.15s linear;\n}\n\n.zoomindown {\n animation: zoomindown 0.15s linear;\n}\n\n.zoominleft {\n animation: zoominleft 0.15s linear;\n}\n\n.zoominright {\n animation: zoominright 0.15s linear;\n}\n\n.zoominup {\n animation: zoominup 0.15s linear;\n}\n\n.animation-duration-100 {\n animation-duration: 100ms !important;\n}\n\n.animation-duration-150 {\n animation-duration: 150ms !important;\n}\n\n.animation-duration-200 {\n animation-duration: 200ms !important;\n}\n\n.animation-duration-300 {\n animation-duration: 300ms !important;\n}\n\n.animation-duration-400 {\n animation-duration: 400ms !important;\n}\n\n.animation-duration-500 {\n animation-duration: 500ms !important;\n}\n\n.animation-duration-1000 {\n animation-duration: 1000ms !important;\n}\n\n.animation-duration-2000 {\n animation-duration: 2000ms !important;\n}\n\n.animation-duration-3000 {\n animation-duration: 3000ms !important;\n}\n\n.animation-delay-100 {\n animation-delay: 100ms !important;\n}\n\n.animation-delay-150 {\n animation-delay: 150ms !important;\n}\n\n.animation-delay-200 {\n animation-delay: 200ms !important;\n}\n\n.animation-delay-300 {\n animation-delay: 300ms !important;\n}\n\n.animation-delay-400 {\n animation-delay: 400ms !important;\n}\n\n.animation-delay-500 {\n animation-delay: 500ms !important;\n}\n\n.animation-delay-1000 {\n animation-delay: 1000ms !important;\n}\n\n.animation-iteration-1 {\n animation-iteration-count: 1 !important;\n}\n\n.animation-iteration-2 {\n animation-iteration-count: 2 !important;\n}\n\n.animation-iteration-infinite {\n animation-iteration-count: infinite !important;\n}\n\n.animation-linear {\n animation-timing-function: linear !important;\n}\n\n.animation-ease-in {\n animation-timing-function: cubic-bezier(0.4, 0, 1, 1) !important;\n}\n\n.animation-ease-out {\n animation-timing-function: cubic-bezier(0, 0, 0.2, 1) !important;\n}\n\n.animation-ease-in-out {\n animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1) !important;\n}\n\n.animation-fill-none {\n animation-fill-mode: none !important;\n}\n\n.animation-fill-forwards {\n animation-fill-mode: forwards !important;\n}\n\n.animation-fill-backwards {\n animation-fill-mode: backwards !important;\n}\n\n.animation-fill-both {\n animation-fill-mode: both !important;\n}`;\n","import { css, LitElement, unsafeCSS } from \"lit\";\nimport { state } from \"lit/decorators.js\";\nimport { chatStore, type ChatStoreState, type ThemeConfig } from \"@chativa/core\";\nimport i18next from \"../i18n/i18n\";\nimport commonStyles from \"../styles/commonStyles?inline\" with { type: \"css\" };\nimport styless from \"../styles.css?inline\" with { type: \"css\" };\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype Constructor<T = object> = new (...args: any[]) => T;\nconst styles = css`${unsafeCSS(styless)}`;\n\nexport declare class ChatbotMixinInterface {\n lang: string;\n theme: ThemeConfig;\n themeState: ChatStoreState;\n}\n\nexport const ChatbotMixin = <T extends Constructor<LitElement>>(\n superClass: T\n) => {\n class ChatbotMixinClass extends superClass {\n @state()\n private _lang = i18next.language;\n\n get lang() {\n return this._lang;\n }\n\n static styles = [styles, commonStyles];\n\n private _unsubscribeChatStore!: () => void;\n\n private _onLanguageChanged = () => {\n this._lang = i18next.language;\n };\n\n connectedCallback() {\n super.connectedCallback();\n this._unsubscribeChatStore = chatStore.subscribe(() =>\n this.requestUpdate()\n );\n i18next.on(\"languageChanged\", this._onLanguageChanged);\n }\n\n disconnectedCallback() {\n this._unsubscribeChatStore?.();\n i18next.off(\"languageChanged\", this._onLanguageChanged);\n super.disconnectedCallback();\n }\n\n get themeState(): ChatStoreState {\n return chatStore.getState();\n }\n\n get theme(): ThemeConfig {\n return chatStore.getState().theme;\n }\n }\n\n return ChatbotMixinClass as unknown as Constructor<ChatbotMixinInterface> & T;\n};\n","/**\n * marked v13.0.3 - a markdown parser\n * Copyright (c) 2011-2024, Christopher Jeffrey. (MIT Licensed)\n * https://github.com/markedjs/marked\n */\n\n/**\n * DO NOT EDIT THIS FILE\n * The code in this file is generated from files in ./src/\n */\n\n/**\n * Gets the original marked default options.\n */\nfunction _getDefaults() {\n return {\n async: false,\n breaks: false,\n extensions: null,\n gfm: true,\n hooks: null,\n pedantic: false,\n renderer: null,\n silent: false,\n tokenizer: null,\n walkTokens: null,\n };\n}\nlet _defaults = _getDefaults();\nfunction changeDefaults(newDefaults) {\n _defaults = newDefaults;\n}\n\n/**\n * Helpers\n */\nconst escapeTest = /[&<>\"']/;\nconst escapeReplace = new RegExp(escapeTest.source, 'g');\nconst escapeTestNoEncode = /[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/;\nconst escapeReplaceNoEncode = new RegExp(escapeTestNoEncode.source, 'g');\nconst escapeReplacements = {\n '&': '&amp;',\n '<': '&lt;',\n '>': '&gt;',\n '\"': '&quot;',\n \"'\": '&#39;',\n};\nconst getEscapeReplacement = (ch) => escapeReplacements[ch];\nfunction escape$1(html, encode) {\n if (encode) {\n if (escapeTest.test(html)) {\n return html.replace(escapeReplace, getEscapeReplacement);\n }\n }\n else {\n if (escapeTestNoEncode.test(html)) {\n return html.replace(escapeReplaceNoEncode, getEscapeReplacement);\n }\n }\n return html;\n}\nconst unescapeTest = /&(#(?:\\d+)|(?:#x[0-9A-Fa-f]+)|(?:\\w+));?/ig;\nfunction unescape(html) {\n // explicitly match decimal, hex, and named HTML entities\n return html.replace(unescapeTest, (_, n) => {\n n = n.toLowerCase();\n if (n === 'colon')\n return ':';\n if (n.charAt(0) === '#') {\n return n.charAt(1) === 'x'\n ? String.fromCharCode(parseInt(n.substring(2), 16))\n : String.fromCharCode(+n.substring(1));\n }\n return '';\n });\n}\nconst caret = /(^|[^\\[])\\^/g;\nfunction edit(regex, opt) {\n let source = typeof regex === 'string' ? regex : regex.source;\n opt = opt || '';\n const obj = {\n replace: (name, val) => {\n let valSource = typeof val === 'string' ? val : val.source;\n valSource = valSource.replace(caret, '$1');\n source = source.replace(name, valSource);\n return obj;\n },\n getRegex: () => {\n return new RegExp(source, opt);\n },\n };\n return obj;\n}\nfunction cleanUrl(href) {\n try {\n href = encodeURI(href).replace(/%25/g, '%');\n }\n catch {\n return null;\n }\n return href;\n}\nconst noopTest = { exec: () => null };\nfunction splitCells(tableRow, count) {\n // ensure that every cell-delimiting pipe has a space\n // before it to distinguish it from an escaped pipe\n const row = tableRow.replace(/\\|/g, (match, offset, str) => {\n let escaped = false;\n let curr = offset;\n while (--curr >= 0 && str[curr] === '\\\\')\n escaped = !escaped;\n if (escaped) {\n // odd number of slashes means | is escaped\n // so we leave it alone\n return '|';\n }\n else {\n // add space before unescaped |\n return ' |';\n }\n }), cells = row.split(/ \\|/);\n let i = 0;\n // First/last cell in a row cannot be empty if it has no leading/trailing pipe\n if (!cells[0].trim()) {\n cells.shift();\n }\n if (cells.length > 0 && !cells[cells.length - 1].trim()) {\n cells.pop();\n }\n if (count) {\n if (cells.length > count) {\n cells.splice(count);\n }\n else {\n while (cells.length < count)\n cells.push('');\n }\n }\n for (; i < cells.length; i++) {\n // leading or trailing whitespace is ignored per the gfm spec\n cells[i] = cells[i].trim().replace(/\\\\\\|/g, '|');\n }\n return cells;\n}\n/**\n * Remove trailing 'c's. Equivalent to str.replace(/c*$/, '').\n * /c*$/ is vulnerable to REDOS.\n *\n * @param str\n * @param c\n * @param invert Remove suffix of non-c chars instead. Default falsey.\n */\nfunction rtrim(str, c, invert) {\n const l = str.length;\n if (l === 0) {\n return '';\n }\n // Length of suffix matching the invert condition.\n let suffLen = 0;\n // Step left until we fail to match the invert condition.\n while (suffLen < l) {\n const currChar = str.charAt(l - suffLen - 1);\n if (currChar === c && !invert) {\n suffLen++;\n }\n else if (currChar !== c && invert) {\n suffLen++;\n }\n else {\n break;\n }\n }\n return str.slice(0, l - suffLen);\n}\nfunction findClosingBracket(str, b) {\n if (str.indexOf(b[1]) === -1) {\n return -1;\n }\n let level = 0;\n for (let i = 0; i < str.length; i++) {\n if (str[i] === '\\\\') {\n i++;\n }\n else if (str[i] === b[0]) {\n level++;\n }\n else if (str[i] === b[1]) {\n level--;\n if (level < 0) {\n return i;\n }\n }\n }\n return -1;\n}\n\nfunction outputLink(cap, link, raw, lexer) {\n const href = link.href;\n const title = link.title ? escape$1(link.title) : null;\n const text = cap[1].replace(/\\\\([\\[\\]])/g, '$1');\n if (cap[0].charAt(0) !== '!') {\n lexer.state.inLink = true;\n const token = {\n type: 'link',\n raw,\n href,\n title,\n text,\n tokens: lexer.inlineTokens(text),\n };\n lexer.state.inLink = false;\n return token;\n }\n return {\n type: 'image',\n raw,\n href,\n title,\n text: escape$1(text),\n };\n}\nfunction indentCodeCompensation(raw, text) {\n const matchIndentToCode = raw.match(/^(\\s+)(?:```)/);\n if (matchIndentToCode === null) {\n return text;\n }\n const indentToCode = matchIndentToCode[1];\n return text\n .split('\\n')\n .map(node => {\n const matchIndentInNode = node.match(/^\\s+/);\n if (matchIndentInNode === null) {\n return node;\n }\n const [indentInNode] = matchIndentInNode;\n if (indentInNode.length >= indentToCode.length) {\n return node.slice(indentToCode.length);\n }\n return node;\n })\n .join('\\n');\n}\n/**\n * Tokenizer\n */\nclass _Tokenizer {\n options;\n rules; // set by the lexer\n lexer; // set by the lexer\n constructor(options) {\n this.options = options || _defaults;\n }\n space(src) {\n const cap = this.rules.block.newline.exec(src);\n if (cap && cap[0].length > 0) {\n return {\n type: 'space',\n raw: cap[0],\n };\n }\n }\n code(src) {\n const cap = this.rules.block.code.exec(src);\n if (cap) {\n const text = cap[0].replace(/^ {1,4}/gm, '');\n return {\n type: 'code',\n raw: cap[0],\n codeBlockStyle: 'indented',\n text: !this.options.pedantic\n ? rtrim(text, '\\n')\n : text,\n };\n }\n }\n fences(src) {\n const cap = this.rules.block.fences.exec(src);\n if (cap) {\n const raw = cap[0];\n const text = indentCodeCompensation(raw, cap[3] || '');\n return {\n type: 'code',\n raw,\n lang: cap[2] ? cap[2].trim().replace(this.rules.inline.anyPunctuation, '$1') : cap[2],\n text,\n };\n }\n }\n heading(src) {\n const cap = this.rules.block.heading.exec(src);\n if (cap) {\n let text = cap[2].trim();\n // remove trailing #s\n if (/#$/.test(text)) {\n const trimmed = rtrim(text, '#');\n if (this.options.pedantic) {\n text = trimmed.trim();\n }\n else if (!trimmed || / $/.test(trimmed)) {\n // CommonMark requires space before trailing #s\n text = trimmed.trim();\n }\n }\n return {\n type: 'heading',\n raw: cap[0],\n depth: cap[1].length,\n text,\n tokens: this.lexer.inline(text),\n };\n }\n }\n hr(src) {\n const cap = this.rules.block.hr.exec(src);\n if (cap) {\n return {\n type: 'hr',\n raw: rtrim(cap[0], '\\n'),\n };\n }\n }\n blockquote(src) {\n const cap = this.rules.block.blockquote.exec(src);\n if (cap) {\n let lines = rtrim(cap[0], '\\n').split('\\n');\n let raw = '';\n let text = '';\n const tokens = [];\n while (lines.length > 0) {\n let inBlockquote = false;\n const currentLines = [];\n let i;\n for (i = 0; i < lines.length; i++) {\n // get lines up to a continuation\n if (/^ {0,3}>/.test(lines[i])) {\n currentLines.push(lines[i]);\n inBlockquote = true;\n }\n else if (!inBlockquote) {\n currentLines.push(lines[i]);\n }\n else {\n break;\n }\n }\n lines = lines.slice(i);\n const currentRaw = currentLines.join('\\n');\n const currentText = currentRaw\n // precede setext continuation with 4 spaces so it isn't a setext\n .replace(/\\n {0,3}((?:=+|-+) *)(?=\\n|$)/g, '\\n $1')\n .replace(/^ {0,3}>[ \\t]?/gm, '');\n raw = raw ? `${raw}\\n${currentRaw}` : currentRaw;\n text = text ? `${text}\\n${currentText}` : currentText;\n // parse blockquote lines as top level tokens\n // merge paragraphs if this is a continuation\n const top = this.lexer.state.top;\n this.lexer.state.top = true;\n this.lexer.blockTokens(currentText, tokens, true);\n this.lexer.state.top = top;\n // if there is no continuation then we are done\n if (lines.length === 0) {\n break;\n }\n const lastToken = tokens[tokens.length - 1];\n if (lastToken?.type === 'code') {\n // blockquote continuation cannot be preceded by a code block\n break;\n }\n else if (lastToken?.type === 'blockquote') {\n // include continuation in nested blockquote\n const oldToken = lastToken;\n const newText = oldToken.raw + '\\n' + lines.join('\\n');\n const newToken = this.blockquote(newText);\n tokens[tokens.length - 1] = newToken;\n raw = raw.substring(0, raw.length - oldToken.raw.length) + newToken.raw;\n text = text.substring(0, text.length - oldToken.text.length) + newToken.text;\n break;\n }\n else if (lastToken?.type === 'list') {\n // include continuation in nested list\n const oldToken = lastToken;\n const newText = oldToken.raw + '\\n' + lines.join('\\n');\n const newToken = this.list(newText);\n tokens[tokens.length - 1] = newToken;\n raw = raw.substring(0, raw.length - lastToken.raw.length) + newToken.raw;\n text = text.substring(0, text.length - oldToken.raw.length) + newToken.raw;\n lines = newText.substring(tokens[tokens.length - 1].raw.length).split('\\n');\n continue;\n }\n }\n return {\n type: 'blockquote',\n raw,\n tokens,\n text,\n };\n }\n }\n list(src) {\n let cap = this.rules.block.list.exec(src);\n if (cap) {\n let bull = cap[1].trim();\n const isordered = bull.length > 1;\n const list = {\n type: 'list',\n raw: '',\n ordered: isordered,\n start: isordered ? +bull.slice(0, -1) : '',\n loose: false,\n items: [],\n };\n bull = isordered ? `\\\\d{1,9}\\\\${bull.slice(-1)}` : `\\\\${bull}`;\n if (this.options.pedantic) {\n bull = isordered ? bull : '[*+-]';\n }\n // Get next list item\n const itemRegex = new RegExp(`^( {0,3}${bull})((?:[\\t ][^\\\\n]*)?(?:\\\\n|$))`);\n let endsWithBlankLine = false;\n // Check if current bullet point can start a new List Item\n while (src) {\n let endEarly = false;\n let raw = '';\n let itemContents = '';\n if (!(cap = itemRegex.exec(src))) {\n break;\n }\n if (this.rules.block.hr.test(src)) { // End list if bullet was actually HR (possibly move into itemRegex?)\n break;\n }\n raw = cap[0];\n src = src.substring(raw.length);\n let line = cap[2].split('\\n', 1)[0].replace(/^\\t+/, (t) => ' '.repeat(3 * t.length));\n let nextLine = src.split('\\n', 1)[0];\n let blankLine = !line.trim();\n let indent = 0;\n if (this.options.pedantic) {\n indent = 2;\n itemContents = line.trimStart();\n }\n else if (blankLine) {\n indent = cap[1].length + 1;\n }\n else {\n indent = cap[2].search(/[^ ]/); // Find first non-space char\n indent = indent > 4 ? 1 : indent; // Treat indented code blocks (> 4 spaces) as having only 1 indent\n itemContents = line.slice(indent);\n indent += cap[1].length;\n }\n if (blankLine && /^ *$/.test(nextLine)) { // Items begin with at most one blank line\n raw += nextLine + '\\n';\n src = src.substring(nextLine.length + 1);\n endEarly = true;\n }\n if (!endEarly) {\n const nextBulletRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:[*+-]|\\\\d{1,9}[.)])((?:[ \\t][^\\\\n]*)?(?:\\\\n|$))`);\n const hrRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$)`);\n const fencesBeginRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:\\`\\`\\`|~~~)`);\n const headingBeginRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}#`);\n // Check if following lines should be included in List Item\n while (src) {\n const rawLine = src.split('\\n', 1)[0];\n nextLine = rawLine;\n // Re-align to follow commonmark nesting rules\n if (this.options.pedantic) {\n nextLine = nextLine.replace(/^ {1,4}(?=( {4})*[^ ])/g, ' ');\n }\n // End list item if found code fences\n if (fencesBeginRegex.test(nextLine)) {\n break;\n }\n // End list item if found start of new heading\n if (headingBeginRegex.test(nextLine)) {\n break;\n }\n // End list item if found start of new bullet\n if (nextBulletRegex.test(nextLine)) {\n break;\n }\n // Horizontal rule found\n if (hrRegex.test(src)) {\n break;\n }\n if (nextLine.search(/[^ ]/) >= indent || !nextLine.trim()) { // Dedent if possible\n itemContents += '\\n' + nextLine.slice(indent);\n }\n else {\n // not enough indentation\n if (blankLine) {\n break;\n }\n // paragraph continuation unless last line was a different block level element\n if (line.search(/[^ ]/) >= 4) { // indented code block\n break;\n }\n if (fencesBeginRegex.test(line)) {\n break;\n }\n if (headingBeginRegex.test(line)) {\n break;\n }\n if (hrRegex.test(line)) {\n break;\n }\n itemContents += '\\n' + nextLine;\n }\n if (!blankLine && !nextLine.trim()) { // Check if current line is blank\n blankLine = true;\n }\n raw += rawLine + '\\n';\n src = src.substring(rawLine.length + 1);\n line = nextLine.slice(indent);\n }\n }\n if (!list.loose) {\n // If the previous item ended with a blank line, the list is loose\n if (endsWithBlankLine) {\n list.loose = true;\n }\n else if (/\\n *\\n *$/.test(raw)) {\n endsWithBlankLine = true;\n }\n }\n let istask = null;\n let ischecked;\n // Check for task list items\n if (this.options.gfm) {\n istask = /^\\[[ xX]\\] /.exec(itemContents);\n if (istask) {\n ischecked = istask[0] !== '[ ] ';\n itemContents = itemContents.replace(/^\\[[ xX]\\] +/, '');\n }\n }\n list.items.push({\n type: 'list_item',\n raw,\n task: !!istask,\n checked: ischecked,\n loose: false,\n text: itemContents,\n tokens: [],\n });\n list.raw += raw;\n }\n // Do not consume newlines at end of final item. Alternatively, make itemRegex *start* with any newlines to simplify/speed up endsWithBlankLine logic\n list.items[list.items.length - 1].raw = list.items[list.items.length - 1].raw.trimEnd();\n list.items[list.items.length - 1].text = list.items[list.items.length - 1].text.trimEnd();\n list.raw = list.raw.trimEnd();\n // Item child tokens handled here at end because we needed to have the final item to trim it first\n for (let i = 0; i < list.items.length; i++) {\n this.lexer.state.top = false;\n list.items[i].tokens = this.lexer.blockTokens(list.items[i].text, []);\n if (!list.loose) {\n // Check if list should be loose\n const spacers = list.items[i].tokens.filter(t => t.type === 'space');\n const hasMultipleLineBreaks = spacers.length > 0 && spacers.some(t => /\\n.*\\n/.test(t.raw));\n list.loose = hasMultipleLineBreaks;\n }\n }\n // Set all items to loose if list is loose\n if (list.loose) {\n for (let i = 0; i < list.items.length; i++) {\n list.items[i].loose = true;\n }\n }\n return list;\n }\n }\n html(src) {\n const cap = this.rules.block.html.exec(src);\n if (cap) {\n const token = {\n type: 'html',\n block: true,\n raw: cap[0],\n pre: cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style',\n text: cap[0],\n };\n return token;\n }\n }\n def(src) {\n const cap = this.rules.block.def.exec(src);\n if (cap) {\n const tag = cap[1].toLowerCase().replace(/\\s+/g, ' ');\n const href = cap[2] ? cap[2].replace(/^<(.*)>$/, '$1').replace(this.rules.inline.anyPunctuation, '$1') : '';\n const title = cap[3] ? cap[3].substring(1, cap[3].length - 1).replace(this.rules.inline.anyPunctuation, '$1') : cap[3];\n return {\n type: 'def',\n tag,\n raw: cap[0],\n href,\n title,\n };\n }\n }\n table(src) {\n const cap = this.rules.block.table.exec(src);\n if (!cap) {\n return;\n }\n if (!/[:|]/.test(cap[2])) {\n // delimiter row must have a pipe (|) or colon (:) otherwise it is a setext heading\n return;\n }\n const headers = splitCells(cap[1]);\n const aligns = cap[2].replace(/^\\||\\| *$/g, '').split('|');\n const rows = cap[3] && cap[3].trim() ? cap[3].replace(/\\n[ \\t]*$/, '').split('\\n') : [];\n const item = {\n type: 'table',\n raw: cap[0],\n header: [],\n align: [],\n rows: [],\n };\n if (headers.length !== aligns.length) {\n // header and align columns must be equal, rows can be different.\n return;\n }\n for (const align of aligns) {\n if (/^ *-+: *$/.test(align)) {\n item.align.push('right');\n }\n else if (/^ *:-+: *$/.test(align)) {\n item.align.push('center');\n }\n else if (/^ *:-+ *$/.test(align)) {\n item.align.push('left');\n }\n else {\n item.align.push(null);\n }\n }\n for (let i = 0; i < headers.length; i++) {\n item.header.push({\n text: headers[i],\n tokens: this.lexer.inline(headers[i]),\n header: true,\n align: item.align[i],\n });\n }\n for (const row of rows) {\n item.rows.push(splitCells(row, item.header.length).map((cell, i) => {\n return {\n text: cell,\n tokens: this.lexer.inline(cell),\n header: false,\n align: item.align[i],\n };\n }));\n }\n return item;\n }\n lheading(src) {\n const cap = this.rules.block.lheading.exec(src);\n if (cap) {\n return {\n type: 'heading',\n raw: cap[0],\n depth: cap[2].charAt(0) === '=' ? 1 : 2,\n text: cap[1],\n tokens: this.lexer.inline(cap[1]),\n };\n }\n }\n paragraph(src) {\n const cap = this.rules.block.paragraph.exec(src);\n if (cap) {\n const text = cap[1].charAt(cap[1].length - 1) === '\\n'\n ? cap[1].slice(0, -1)\n : cap[1];\n return {\n type: 'paragraph',\n raw: cap[0],\n text,\n tokens: this.lexer.inline(text),\n };\n }\n }\n text(src) {\n const cap = this.rules.block.text.exec(src);\n if (cap) {\n return {\n type: 'text',\n raw: cap[0],\n text: cap[0],\n tokens: this.lexer.inline(cap[0]),\n };\n }\n }\n escape(src) {\n const cap = this.rules.inline.escape.exec(src);\n if (cap) {\n return {\n type: 'escape',\n raw: cap[0],\n text: escape$1(cap[1]),\n };\n }\n }\n tag(src) {\n const cap = this.rules.inline.tag.exec(src);\n if (cap) {\n if (!this.lexer.state.inLink && /^<a /i.test(cap[0])) {\n this.lexer.state.inLink = true;\n }\n else if (this.lexer.state.inLink && /^<\\/a>/i.test(cap[0])) {\n this.lexer.state.inLink = false;\n }\n if (!this.lexer.state.inRawBlock && /^<(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.lexer.state.inRawBlock = true;\n }\n else if (this.lexer.state.inRawBlock && /^<\\/(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.lexer.state.inRawBlock = false;\n }\n return {\n type: 'html',\n raw: cap[0],\n inLink: this.lexer.state.inLink,\n inRawBlock: this.lexer.state.inRawBlock,\n block: false,\n text: cap[0],\n };\n }\n }\n link(src) {\n const cap = this.rules.inline.link.exec(src);\n if (cap) {\n const trimmedUrl = cap[2].trim();\n if (!this.options.pedantic && /^</.test(trimmedUrl)) {\n // commonmark requires matching angle brackets\n if (!(/>$/.test(trimmedUrl))) {\n return;\n }\n // ending angle bracket cannot be escaped\n const rtrimSlash = rtrim(trimmedUrl.slice(0, -1), '\\\\');\n if ((trimmedUrl.length - rtrimSlash.length) % 2 === 0) {\n return;\n }\n }\n else {\n // find closing parenthesis\n const lastParenIndex = findClosingBracket(cap[2], '()');\n if (lastParenIndex > -1) {\n const start = cap[0].indexOf('!') === 0 ? 5 : 4;\n const linkLen = start + cap[1].length + lastParenIndex;\n cap[2] = cap[2].substring(0, lastParenIndex);\n cap[0] = cap[0].substring(0, linkLen).trim();\n cap[3] = '';\n }\n }\n let href = cap[2];\n let title = '';\n if (this.options.pedantic) {\n // split pedantic href and title\n const link = /^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/.exec(href);\n if (link) {\n href = link[1];\n title = link[3];\n }\n }\n else {\n title = cap[3] ? cap[3].slice(1, -1) : '';\n }\n href = href.trim();\n if (/^</.test(href)) {\n if (this.options.pedantic && !(/>$/.test(trimmedUrl))) {\n // pedantic allows starting angle bracket without ending angle bracket\n href = href.slice(1);\n }\n else {\n href = href.slice(1, -1);\n }\n }\n return outputLink(cap, {\n href: href ? href.replace(this.rules.inline.anyPunctuation, '$1') : href,\n title: title ? title.replace(this.rules.inline.anyPunctuation, '$1') : title,\n }, cap[0], this.lexer);\n }\n }\n reflink(src, links) {\n let cap;\n if ((cap = this.rules.inline.reflink.exec(src))\n || (cap = this.rules.inline.nolink.exec(src))) {\n const linkString = (cap[2] || cap[1]).replace(/\\s+/g, ' ');\n const link = links[linkString.toLowerCase()];\n if (!link) {\n const text = cap[0].charAt(0);\n return {\n type: 'text',\n raw: text,\n text,\n };\n }\n return outputLink(cap, link, cap[0], this.lexer);\n }\n }\n emStrong(src, maskedSrc, prevChar = '') {\n let match = this.rules.inline.emStrongLDelim.exec(src);\n if (!match)\n return;\n // _ can't be between two alphanumerics. \\p{L}\\p{N} includes non-english alphabet/numbers as well\n if (match[3] && prevChar.match(/[\\p{L}\\p{N}]/u))\n return;\n const nextChar = match[1] || match[2] || '';\n if (!nextChar || !prevChar || this.rules.inline.punctuation.exec(prevChar)) {\n // unicode Regex counts emoji as 1 char; spread into array for proper count (used multiple times below)\n const lLength = [...match[0]].length - 1;\n let rDelim, rLength, delimTotal = lLength, midDelimTotal = 0;\n const endReg = match[0][0] === '*' ? this.rules.inline.emStrongRDelimAst : this.rules.inline.emStrongRDelimUnd;\n endReg.lastIndex = 0;\n // Clip maskedSrc to same section of string as src (move to lexer?)\n maskedSrc = maskedSrc.slice(-1 * src.length + lLength);\n while ((match = endReg.exec(maskedSrc)) != null) {\n rDelim = match[1] || match[2] || match[3] || match[4] || match[5] || match[6];\n if (!rDelim)\n continue; // skip single * in __abc*abc__\n rLength = [...rDelim].length;\n if (match[3] || match[4]) { // found another Left Delim\n delimTotal += rLength;\n continue;\n }\n else if (match[5] || match[6]) { // either Left or Right Delim\n if (lLength % 3 && !((lLength + rLength) % 3)) {\n midDelimTotal += rLength;\n continue; // CommonMark Emphasis Rules 9-10\n }\n }\n delimTotal -= rLength;\n if (delimTotal > 0)\n continue; // Haven't found enough closing delimiters\n // Remove extra characters. *a*** -> *a*\n rLength = Math.min(rLength, rLength + delimTotal + midDelimTotal);\n // char length can be >1 for unicode characters;\n const lastCharLength = [...match[0]][0].length;\n const raw = src.slice(0, lLength + match.index + lastCharLength + rLength);\n // Create `em` if smallest delimiter has odd char count. *a***\n if (Math.min(lLength, rLength) % 2) {\n const text = raw.slice(1, -1);\n return {\n type: 'em',\n raw,\n text,\n tokens: this.lexer.inlineTokens(text),\n };\n }\n // Create 'strong' if smallest delimiter has even char count. **a***\n const text = raw.slice(2, -2);\n return {\n type: 'strong',\n raw,\n text,\n tokens: this.lexer.inlineTokens(text),\n };\n }\n }\n }\n codespan(src) {\n const cap = this.rules.inline.code.exec(src);\n if (cap) {\n let text = cap[2].replace(/\\n/g, ' ');\n const hasNonSpaceChars = /[^ ]/.test(text);\n const hasSpaceCharsOnBothEnds = /^ /.test(text) && / $/.test(text);\n if (hasNonSpaceChars && hasSpaceCharsOnBothEnds) {\n text = text.substring(1, text.length - 1);\n }\n text = escape$1(text, true);\n return {\n type: 'codespan',\n raw: cap[0],\n text,\n };\n }\n }\n br(src) {\n const cap = this.rules.inline.br.exec(src);\n if (cap) {\n return {\n type: 'br',\n raw: cap[0],\n };\n }\n }\n del(src) {\n const cap = this.rules.inline.del.exec(src);\n if (cap) {\n return {\n type: 'del',\n raw: cap[0],\n text: cap[2],\n tokens: this.lexer.inlineTokens(cap[2]),\n };\n }\n }\n autolink(src) {\n const cap = this.rules.inline.autolink.exec(src);\n if (cap) {\n let text, href;\n if (cap[2] === '@') {\n text = escape$1(cap[1]);\n href = 'mailto:' + text;\n }\n else {\n text = escape$1(cap[1]);\n href = text;\n }\n return {\n type: 'link',\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: 'text',\n raw: text,\n text,\n },\n ],\n };\n }\n }\n url(src) {\n let cap;\n if (cap = this.rules.inline.url.exec(src)) {\n let text, href;\n if (cap[2] === '@') {\n text = escape$1(cap[0]);\n href = 'mailto:' + text;\n }\n else {\n // do extended autolink path validation\n let prevCapZero;\n do {\n prevCapZero = cap[0];\n cap[0] = this.rules.inline._backpedal.exec(cap[0])?.[0] ?? '';\n } while (prevCapZero !== cap[0]);\n text = escape$1(cap[0]);\n if (cap[1] === 'www.') {\n href = 'http://' + cap[0];\n }\n else {\n href = cap[0];\n }\n }\n return {\n type: 'link',\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: 'text',\n raw: text,\n text,\n },\n ],\n };\n }\n }\n inlineText(src) {\n const cap = this.rules.inline.text.exec(src);\n if (cap) {\n let text;\n if (this.lexer.state.inRawBlock) {\n text = cap[0];\n }\n else {\n text = escape$1(cap[0]);\n }\n return {\n type: 'text',\n raw: cap[0],\n text,\n };\n }\n }\n}\n\n/**\n * Block-Level Grammar\n */\nconst newline = /^(?: *(?:\\n|$))+/;\nconst blockCode = /^( {4}[^\\n]+(?:\\n(?: *(?:\\n|$))*)?)+/;\nconst fences = /^ {0,3}(`{3,}(?=[^`\\n]*(?:\\n|$))|~{3,})([^\\n]*)(?:\\n|$)(?:|([\\s\\S]*?)(?:\\n|$))(?: {0,3}\\1[~`]* *(?=\\n|$)|$)/;\nconst hr = /^ {0,3}((?:-[\\t ]*){3,}|(?:_[ \\t]*){3,}|(?:\\*[ \\t]*){3,})(?:\\n+|$)/;\nconst heading = /^ {0,3}(#{1,6})(?=\\s|$)(.*)(?:\\n+|$)/;\nconst bullet = /(?:[*+-]|\\d{1,9}[.)])/;\nconst lheading = edit(/^(?!bull |blockCode|fences|blockquote|heading|html)((?:.|\\n(?!\\s*?\\n|bull |blockCode|fences|blockquote|heading|html))+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/)\n .replace(/bull/g, bullet) // lists can interrupt\n .replace(/blockCode/g, / {4}/) // indented code blocks can interrupt\n .replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/) // fenced code blocks can interrupt\n .replace(/blockquote/g, / {0,3}>/) // blockquote can interrupt\n .replace(/heading/g, / {0,3}#{1,6}/) // ATX heading can interrupt\n .replace(/html/g, / {0,3}<[^\\n>]+>\\n/) // block html can interrupt\n .getRegex();\nconst _paragraph = /^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\\n)[^\\n]+)*)/;\nconst blockText = /^[^\\n]+/;\nconst _blockLabel = /(?!\\s*\\])(?:\\\\.|[^\\[\\]\\\\])+/;\nconst def = edit(/^ {0,3}\\[(label)\\]: *(?:\\n *)?([^<\\s][^\\s]*|<.*?>)(?:(?: +(?:\\n *)?| *\\n *)(title))? *(?:\\n+|$)/)\n .replace('label', _blockLabel)\n .replace('title', /(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/)\n .getRegex();\nconst list = edit(/^( {0,3}bull)([ \\t][^\\n]+?)?(?:\\n|$)/)\n .replace(/bull/g, bullet)\n .getRegex();\nconst _tag = 'address|article|aside|base|basefont|blockquote|body|caption'\n + '|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption'\n + '|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe'\n + '|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option'\n + '|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title'\n + '|tr|track|ul';\nconst _comment = /<!--(?:-?>|[\\s\\S]*?(?:-->|$))/;\nconst html = edit('^ {0,3}(?:' // optional indentation\n + '<(script|pre|style|textarea)[\\\\s>][\\\\s\\\\S]*?(?:</\\\\1>[^\\\\n]*\\\\n+|$)' // (1)\n + '|comment[^\\\\n]*(\\\\n+|$)' // (2)\n + '|<\\\\?[\\\\s\\\\S]*?(?:\\\\?>\\\\n*|$)' // (3)\n + '|<![A-Z][\\\\s\\\\S]*?(?:>\\\\n*|$)' // (4)\n + '|<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?(?:\\\\]\\\\]>\\\\n*|$)' // (5)\n + '|</?(tag)(?: +|\\\\n|/?>)[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (6)\n + '|<(?!script|pre|style|textarea)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (7) open tag\n + '|</(?!script|pre|style|textarea)[a-z][\\\\w-]*\\\\s*>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (7) closing tag\n + ')', 'i')\n .replace('comment', _comment)\n .replace('tag', _tag)\n .replace('attribute', / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/)\n .getRegex();\nconst paragraph = edit(_paragraph)\n .replace('hr', hr)\n .replace('heading', ' {0,3}#{1,6}(?:\\\\s|$)')\n .replace('|lheading', '') // setext headings don't interrupt commonmark paragraphs\n .replace('|table', '')\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', '</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)')\n .replace('tag', _tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\nconst blockquote = edit(/^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/)\n .replace('paragraph', paragraph)\n .getRegex();\n/**\n * Normal Block Grammar\n */\nconst blockNormal = {\n blockquote,\n code: blockCode,\n def,\n fences,\n heading,\n hr,\n html,\n lheading,\n list,\n newline,\n paragraph,\n table: noopTest,\n text: blockText,\n};\n/**\n * GFM Block Grammar\n */\nconst gfmTable = edit('^ *([^\\\\n ].*)\\\\n' // Header\n + ' {0,3}((?:\\\\| *)?:?-+:? *(?:\\\\| *:?-+:? *)*(?:\\\\| *)?)' // Align\n + '(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)') // Cells\n .replace('hr', hr)\n .replace('heading', ' {0,3}#{1,6}(?:\\\\s|$)')\n .replace('blockquote', ' {0,3}>')\n .replace('code', ' {4}[^\\\\n]')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', '</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)')\n .replace('tag', _tag) // tables can be interrupted by type (6) html blocks\n .getRegex();\nconst blockGfm = {\n ...blockNormal,\n table: gfmTable,\n paragraph: edit(_paragraph)\n .replace('hr', hr)\n .replace('heading', ' {0,3}#{1,6}(?:\\\\s|$)')\n .replace('|lheading', '') // setext headings don't interrupt commonmark paragraphs\n .replace('table', gfmTable) // interrupt paragraphs with table\n .replace('blockquote', ' {0,3}>')\n .replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n')\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', '</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)')\n .replace('tag', _tag) // pars can be interrupted by type (6) html blocks\n .getRegex(),\n};\n/**\n * Pedantic grammar (original John Gruber's loose markdown specification)\n */\nconst blockPedantic = {\n ...blockNormal,\n html: edit('^ *(?:comment *(?:\\\\n|\\\\s*$)'\n + '|<(tag)[\\\\s\\\\S]+?</\\\\1> *(?:\\\\n{2,}|\\\\s*$)' // closed tag\n + '|<tag(?:\"[^\"]*\"|\\'[^\\']*\\'|\\\\s[^\\'\"/>\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))')\n .replace('comment', _comment)\n .replace(/tag/g, '(?!(?:'\n + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub'\n + '|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)'\n + '\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b')\n .getRegex(),\n def: /^ *\\[([^\\]]+)\\]: *<?([^\\s>]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,\n heading: /^(#{1,6})(.*)(?:\\n+|$)/,\n fences: noopTest, // fences not supported\n lheading: /^(.+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/,\n paragraph: edit(_paragraph)\n .replace('hr', hr)\n .replace('heading', ' *#{1,6} *[^\\n]')\n .replace('lheading', lheading)\n .replace('|table', '')\n .replace('blockquote', ' {0,3}>')\n .replace('|fences', '')\n .replace('|list', '')\n .replace('|html', '')\n .replace('|tag', '')\n .getRegex(),\n};\n/**\n * Inline-Level Grammar\n */\nconst escape = /^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/;\nconst inlineCode = /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/;\nconst br = /^( {2,}|\\\\)\\n(?!\\s*$)/;\nconst inlineText = /^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*_]|\\b_|$)|[^ ](?= {2,}\\n)))/;\n// list of unicode punctuation marks, plus any missing characters from CommonMark spec\nconst _punctuation = '\\\\p{P}\\\\p{S}';\nconst punctuation = edit(/^((?![*_])[\\spunctuation])/, 'u')\n .replace(/punctuation/g, _punctuation).getRegex();\n// sequences em should skip over [title](link), `code`, <html>\nconst blockSkip = /\\[[^[\\]]*?\\]\\([^\\(\\)]*?\\)|`[^`]*?`|<[^<>]*?>/g;\nconst emStrongLDelim = edit(/^(?:\\*+(?:((?!\\*)[punct])|[^\\s*]))|^_+(?:((?!_)[punct])|([^\\s_]))/, 'u')\n .replace(/punct/g, _punctuation)\n .getRegex();\nconst emStrongRDelimAst = edit('^[^_*]*?__[^_*]*?\\\\*[^_*]*?(?=__)' // Skip orphan inside strong\n + '|[^*]+(?=[^*])' // Consume to delim\n + '|(?!\\\\*)[punct](\\\\*+)(?=[\\\\s]|$)' // (1) #*** can only be a Right Delimiter\n + '|[^punct\\\\s](\\\\*+)(?!\\\\*)(?=[punct\\\\s]|$)' // (2) a***#, a*** can only be a Right Delimiter\n + '|(?!\\\\*)[punct\\\\s](\\\\*+)(?=[^punct\\\\s])' // (3) #***a, ***a can only be Left Delimiter\n + '|[\\\\s](\\\\*+)(?!\\\\*)(?=[punct])' // (4) ***# can only be Left Delimiter\n + '|(?!\\\\*)[punct](\\\\*+)(?!\\\\*)(?=[punct])' // (5) #***# can be either Left or Right Delimiter\n + '|[^punct\\\\s](\\\\*+)(?=[^punct\\\\s])', 'gu') // (6) a***a can be either Left or Right Delimiter\n .replace(/punct/g, _punctuation)\n .getRegex();\n// (6) Not allowed for _\nconst emStrongRDelimUnd = edit('^[^_*]*?\\\\*\\\\*[^_*]*?_[^_*]*?(?=\\\\*\\\\*)' // Skip orphan inside strong\n + '|[^_]+(?=[^_])' // Consume to delim\n + '|(?!_)[punct](_+)(?=[\\\\s]|$)' // (1) #___ can only be a Right Delimiter\n + '|[^punct\\\\s](_+)(?!_)(?=[punct\\\\s]|$)' // (2) a___#, a___ can only be a Right Delimiter\n + '|(?!_)[punct\\\\s](_+)(?=[^punct\\\\s])' // (3) #___a, ___a can only be Left Delimiter\n + '|[\\\\s](_+)(?!_)(?=[punct])' // (4) ___# can only be Left Delimiter\n + '|(?!_)[punct](_+)(?!_)(?=[punct])', 'gu') // (5) #___# can be either Left or Right Delimiter\n .replace(/punct/g, _punctuation)\n .getRegex();\nconst anyPunctuation = edit(/\\\\([punct])/, 'gu')\n .replace(/punct/g, _punctuation)\n .getRegex();\nconst autolink = edit(/^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/)\n .replace('scheme', /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/)\n .replace('email', /[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 .getRegex();\nconst _inlineComment = edit(_comment).replace('(?:-->|$)', '-->').getRegex();\nconst tag = edit('^comment'\n + '|^</[a-zA-Z][\\\\w:-]*\\\\s*>' // self-closing tag\n + '|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>' // open tag\n + '|^<\\\\?[\\\\s\\\\S]*?\\\\?>' // processing instruction, e.g. <?php ?>\n + '|^<![a-zA-Z]+\\\\s[\\\\s\\\\S]*?>' // declaration, e.g. <!DOCTYPE html>\n + '|^<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>') // CDATA section\n .replace('comment', _inlineComment)\n .replace('attribute', /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/)\n .getRegex();\nconst _inlineLabel = /(?:\\[(?:\\\\.|[^\\[\\]\\\\])*\\]|\\\\.|`[^`]*`|[^\\[\\]\\\\`])*?/;\nconst link = edit(/^!?\\[(label)\\]\\(\\s*(href)(?:\\s+(title))?\\s*\\)/)\n .replace('label', _inlineLabel)\n .replace('href', /<(?:\\\\.|[^\\n<>\\\\])+>|[^\\s\\x00-\\x1f]*/)\n .replace('title', /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/)\n .getRegex();\nconst reflink = edit(/^!?\\[(label)\\]\\[(ref)\\]/)\n .replace('label', _inlineLabel)\n .replace('ref', _blockLabel)\n .getRegex();\nconst nolink = edit(/^!?\\[(ref)\\](?:\\[\\])?/)\n .replace('ref', _blockLabel)\n .getRegex();\nconst reflinkSearch = edit('reflink|nolink(?!\\\\()', 'g')\n .replace('reflink', reflink)\n .replace('nolink', nolink)\n .getRegex();\n/**\n * Normal Inline Grammar\n */\nconst inlineNormal = {\n _backpedal: noopTest, // only used for GFM url\n anyPunctuation,\n autolink,\n blockSkip,\n br,\n code: inlineCode,\n del: noopTest,\n emStrongLDelim,\n emStrongRDelimAst,\n emStrongRDelimUnd,\n escape,\n link,\n nolink,\n punctuation,\n reflink,\n reflinkSearch,\n tag,\n text: inlineText,\n url: noopTest,\n};\n/**\n * Pedantic Inline Grammar\n */\nconst inlinePedantic = {\n ...inlineNormal,\n link: edit(/^!?\\[(label)\\]\\((.*?)\\)/)\n .replace('label', _inlineLabel)\n .getRegex(),\n reflink: edit(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/)\n .replace('label', _inlineLabel)\n .getRegex(),\n};\n/**\n * GFM Inline Grammar\n */\nconst inlineGfm = {\n ...inlineNormal,\n escape: edit(escape).replace('])', '~|])').getRegex(),\n url: edit(/^((?:ftp|https?):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/, 'i')\n .replace('email', /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/)\n .getRegex(),\n _backpedal: /(?:[^?!.,:;*_'\"~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'\"~)]+(?!$))+/,\n del: /^(~~?)(?=[^\\s~])([\\s\\S]*?[^\\s~])\\1(?=[^~]|$)/,\n text: /^([`~]+|[^`~])(?:(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*~_]|\\b_|https?:\\/\\/|ftp:\\/\\/|www\\.|$)|[^ ](?= {2,}\\n)|[^a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-](?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)))/,\n};\n/**\n * GFM + Line Breaks Inline Grammar\n */\nconst inlineBreaks = {\n ...inlineGfm,\n br: edit(br).replace('{2,}', '*').getRegex(),\n text: edit(inlineGfm.text)\n .replace('\\\\b_', '\\\\b_| {2,}\\\\n')\n .replace(/\\{2,\\}/g, '*')\n .getRegex(),\n};\n/**\n * exports\n */\nconst block = {\n normal: blockNormal,\n gfm: blockGfm,\n pedantic: blockPedantic,\n};\nconst inline = {\n normal: inlineNormal,\n gfm: inlineGfm,\n breaks: inlineBreaks,\n pedantic: inlinePedantic,\n};\n\n/**\n * Block Lexer\n */\nclass _Lexer {\n tokens;\n options;\n state;\n tokenizer;\n inlineQueue;\n constructor(options) {\n // TokenList cannot be created in one go\n this.tokens = [];\n this.tokens.links = Object.create(null);\n this.options = options || _defaults;\n this.options.tokenizer = this.options.tokenizer || new _Tokenizer();\n this.tokenizer = this.options.tokenizer;\n this.tokenizer.options = this.options;\n this.tokenizer.lexer = this;\n this.inlineQueue = [];\n this.state = {\n inLink: false,\n inRawBlock: false,\n top: true,\n };\n const rules = {\n block: block.normal,\n inline: inline.normal,\n };\n if (this.options.pedantic) {\n rules.block = block.pedantic;\n rules.inline = inline.pedantic;\n }\n else if (this.options.gfm) {\n rules.block = block.gfm;\n if (this.options.breaks) {\n rules.inline = inline.breaks;\n }\n else {\n rules.inline = inline.gfm;\n }\n }\n this.tokenizer.rules = rules;\n }\n /**\n * Expose Rules\n */\n static get rules() {\n return {\n block,\n inline,\n };\n }\n /**\n * Static Lex Method\n */\n static lex(src, options) {\n const lexer = new _Lexer(options);\n return lexer.lex(src);\n }\n /**\n * Static Lex Inline Method\n */\n static lexInline(src, options) {\n const lexer = new _Lexer(options);\n return lexer.inlineTokens(src);\n }\n /**\n * Preprocessing\n */\n lex(src) {\n src = src\n .replace(/\\r\\n|\\r/g, '\\n');\n this.blockTokens(src, this.tokens);\n for (let i = 0; i < this.inlineQueue.length; i++) {\n const next = this.inlineQueue[i];\n this.inlineTokens(next.src, next.tokens);\n }\n this.inlineQueue = [];\n return this.tokens;\n }\n blockTokens(src, tokens = [], lastParagraphClipped = false) {\n if (this.options.pedantic) {\n src = src.replace(/\\t/g, ' ').replace(/^ +$/gm, '');\n }\n else {\n src = src.replace(/^( *)(\\t+)/gm, (_, leading, tabs) => {\n return leading + ' '.repeat(tabs.length);\n });\n }\n let token;\n let lastToken;\n let cutSrc;\n while (src) {\n if (this.options.extensions\n && this.options.extensions.block\n && this.options.extensions.block.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n // newline\n if (token = this.tokenizer.space(src)) {\n src = src.substring(token.raw.length);\n if (token.raw.length === 1 && tokens.length > 0) {\n // if there's a single \\n as a spacer, it's terminating the last line,\n // so move it there so that we don't get unnecessary paragraph tags\n tokens[tokens.length - 1].raw += '\\n';\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n // code\n if (token = this.tokenizer.code(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n // An indented code block cannot interrupt a paragraph.\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n // fences\n if (token = this.tokenizer.fences(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // heading\n if (token = this.tokenizer.heading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // hr\n if (token = this.tokenizer.hr(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // blockquote\n if (token = this.tokenizer.blockquote(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // list\n if (token = this.tokenizer.list(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // html\n if (token = this.tokenizer.html(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // def\n if (token = this.tokenizer.def(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.raw;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n }\n else if (!this.tokens.links[token.tag]) {\n this.tokens.links[token.tag] = {\n href: token.href,\n title: token.title,\n };\n }\n continue;\n }\n // table (gfm)\n if (token = this.tokenizer.table(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // lheading\n if (token = this.tokenizer.lheading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // top-level paragraph\n // prevent paragraph consuming extensions by clipping 'src' to extension start\n cutSrc = src;\n if (this.options.extensions && this.options.extensions.startBlock) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startBlock.forEach((getStartIndex) => {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) {\n startIndex = Math.min(startIndex, tempStart);\n }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (this.state.top && (token = this.tokenizer.paragraph(cutSrc))) {\n lastToken = tokens[tokens.length - 1];\n if (lastParagraphClipped && lastToken?.type === 'paragraph') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n }\n else {\n tokens.push(token);\n }\n lastParagraphClipped = (cutSrc.length !== src.length);\n src = src.substring(token.raw.length);\n continue;\n }\n // text\n if (token = this.tokenizer.text(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n if (src) {\n const errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n }\n else {\n throw new Error(errMsg);\n }\n }\n }\n this.state.top = true;\n return tokens;\n }\n inline(src, tokens = []) {\n this.inlineQueue.push({ src, tokens });\n return tokens;\n }\n /**\n * Lexing/Compiling\n */\n inlineTokens(src, tokens = []) {\n let token, lastToken, cutSrc;\n // String with links masked to avoid interference with em and strong\n let maskedSrc = src;\n let match;\n let keepPrevChar, prevChar;\n // Mask out reflinks\n if (this.tokens.links) {\n const links = Object.keys(this.tokens.links);\n if (links.length > 0) {\n while ((match = this.tokenizer.rules.inline.reflinkSearch.exec(maskedSrc)) != null) {\n if (links.includes(match[0].slice(match[0].lastIndexOf('[') + 1, -1))) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + 'a'.repeat(match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex);\n }\n }\n }\n }\n // Mask out other blocks\n while ((match = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + 'a'.repeat(match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);\n }\n // Mask out escaped characters\n while ((match = this.tokenizer.rules.inline.anyPunctuation.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '++' + maskedSrc.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);\n }\n while (src) {\n if (!keepPrevChar) {\n prevChar = '';\n }\n keepPrevChar = false;\n // extensions\n if (this.options.extensions\n && this.options.extensions.inline\n && this.options.extensions.inline.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n // escape\n if (token = this.tokenizer.escape(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // tag\n if (token = this.tokenizer.tag(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n // link\n if (token = this.tokenizer.link(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // reflink, nolink\n if (token = this.tokenizer.reflink(src, this.tokens.links)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n // em & strong\n if (token = this.tokenizer.emStrong(src, maskedSrc, prevChar)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // code\n if (token = this.tokenizer.codespan(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // br\n if (token = this.tokenizer.br(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // del (gfm)\n if (token = this.tokenizer.del(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // autolink\n if (token = this.tokenizer.autolink(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // url (gfm)\n if (!this.state.inLink && (token = this.tokenizer.url(src))) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n // text\n // prevent inlineText consuming extensions by clipping 'src' to extension start\n cutSrc = src;\n if (this.options.extensions && this.options.extensions.startInline) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startInline.forEach((getStartIndex) => {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === 'number' && tempStart >= 0) {\n startIndex = Math.min(startIndex, tempStart);\n }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (token = this.tokenizer.inlineText(cutSrc)) {\n src = src.substring(token.raw.length);\n if (token.raw.slice(-1) !== '_') { // Track prevChar before string of ____ started\n prevChar = token.raw.slice(-1);\n }\n keepPrevChar = true;\n lastToken = tokens[tokens.length - 1];\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n }\n else {\n tokens.push(token);\n }\n continue;\n }\n if (src) {\n const errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n }\n else {\n throw new Error(errMsg);\n }\n }\n }\n return tokens;\n }\n}\n\n/**\n * Renderer\n */\nclass _Renderer {\n options;\n parser; // set by the parser\n constructor(options) {\n this.options = options || _defaults;\n }\n space(token) {\n return '';\n }\n code({ text, lang, escaped }) {\n const langString = (lang || '').match(/^\\S*/)?.[0];\n const code = text.replace(/\\n$/, '') + '\\n';\n if (!langString) {\n return '<pre><code>'\n + (escaped ? code : escape$1(code, true))\n + '</code></pre>\\n';\n }\n return '<pre><code class=\"language-'\n + escape$1(langString)\n + '\">'\n + (escaped ? code : escape$1(code, true))\n + '</code></pre>\\n';\n }\n blockquote({ tokens }) {\n const body = this.parser.parse(tokens);\n return `<blockquote>\\n${body}</blockquote>\\n`;\n }\n html({ text }) {\n return text;\n }\n heading({ tokens, depth }) {\n return `<h${depth}>${this.parser.parseInline(tokens)}</h${depth}>\\n`;\n }\n hr(token) {\n return '<hr>\\n';\n }\n list(token) {\n const ordered = token.ordered;\n const start = token.start;\n let body = '';\n for (let j = 0; j < token.items.length; j++) {\n const item = token.items[j];\n body += this.listitem(item);\n }\n const type = ordered ? 'ol' : 'ul';\n const startAttr = (ordered && start !== 1) ? (' start=\"' + start + '\"') : '';\n return '<' + type + startAttr + '>\\n' + body + '</' + type + '>\\n';\n }\n listitem(item) {\n let itemBody = '';\n if (item.task) {\n const checkbox = this.checkbox({ checked: !!item.checked });\n if (item.loose) {\n if (item.tokens.length > 0 && item.tokens[0].type === 'paragraph') {\n item.tokens[0].text = checkbox + ' ' + item.tokens[0].text;\n if (item.tokens[0].tokens && item.tokens[0].tokens.length > 0 && item.tokens[0].tokens[0].type === 'text') {\n item.tokens[0].tokens[0].text = checkbox + ' ' + item.tokens[0].tokens[0].text;\n }\n }\n else {\n item.tokens.unshift({\n type: 'text',\n raw: checkbox + ' ',\n text: checkbox + ' ',\n });\n }\n }\n else {\n itemBody += checkbox + ' ';\n }\n }\n itemBody += this.parser.parse(item.tokens, !!item.loose);\n return `<li>${itemBody}</li>\\n`;\n }\n checkbox({ checked }) {\n return '<input '\n + (checked ? 'checked=\"\" ' : '')\n + 'disabled=\"\" type=\"checkbox\">';\n }\n paragraph({ tokens }) {\n return `<p>${this.parser.parseInline(tokens)}</p>\\n`;\n }\n table(token) {\n let header = '';\n // header\n let cell = '';\n for (let j = 0; j < token.header.length; j++) {\n cell += this.tablecell(token.header[j]);\n }\n header += this.tablerow({ text: cell });\n let body = '';\n for (let j = 0; j < token.rows.length; j++) {\n const row = token.rows[j];\n cell = '';\n for (let k = 0; k < row.length; k++) {\n cell += this.tablecell(row[k]);\n }\n body += this.tablerow({ text: cell });\n }\n if (body)\n body = `<tbody>${body}</tbody>`;\n return '<table>\\n'\n + '<thead>\\n'\n + header\n + '</thead>\\n'\n + body\n + '</table>\\n';\n }\n tablerow({ text }) {\n return `<tr>\\n${text}</tr>\\n`;\n }\n tablecell(token) {\n const content = this.parser.parseInline(token.tokens);\n const type = token.header ? 'th' : 'td';\n const tag = token.align\n ? `<${type} align=\"${token.align}\">`\n : `<${type}>`;\n return tag + content + `</${type}>\\n`;\n }\n /**\n * span level renderer\n */\n strong({ tokens }) {\n return `<strong>${this.parser.parseInline(tokens)}</strong>`;\n }\n em({ tokens }) {\n return `<em>${this.parser.parseInline(tokens)}</em>`;\n }\n codespan({ text }) {\n return `<code>${text}</code>`;\n }\n br(token) {\n return '<br>';\n }\n del({ tokens }) {\n return `<del>${this.parser.parseInline(tokens)}</del>`;\n }\n link({ href, title, tokens }) {\n const text = this.parser.parseInline(tokens);\n const cleanHref = cleanUrl(href);\n if (cleanHref === null) {\n return text;\n }\n href = cleanHref;\n let out = '<a href=\"' + href + '\"';\n if (title) {\n out += ' title=\"' + title + '\"';\n }\n out += '>' + text + '</a>';\n return out;\n }\n image({ href, title, text }) {\n const cleanHref = cleanUrl(href);\n if (cleanHref === null) {\n return text;\n }\n href = cleanHref;\n let out = `<img src=\"${href}\" alt=\"${text}\"`;\n if (title) {\n out += ` title=\"${title}\"`;\n }\n out += '>';\n return out;\n }\n text(token) {\n return 'tokens' in token && token.tokens ? this.parser.parseInline(token.tokens) : token.text;\n }\n}\n\n/**\n * TextRenderer\n * returns only the textual part of the token\n */\nclass _TextRenderer {\n // no need for block level renderers\n strong({ text }) {\n return text;\n }\n em({ text }) {\n return text;\n }\n codespan({ text }) {\n return text;\n }\n del({ text }) {\n return text;\n }\n html({ text }) {\n return text;\n }\n text({ text }) {\n return text;\n }\n link({ text }) {\n return '' + text;\n }\n image({ text }) {\n return '' + text;\n }\n br() {\n return '';\n }\n}\n\n/**\n * Parsing & Compiling\n */\nclass _Parser {\n options;\n renderer;\n textRenderer;\n constructor(options) {\n this.options = options || _defaults;\n this.options.renderer = this.options.renderer || new _Renderer();\n this.renderer = this.options.renderer;\n this.renderer.options = this.options;\n this.renderer.parser = this;\n this.textRenderer = new _TextRenderer();\n }\n /**\n * Static Parse Method\n */\n static parse(tokens, options) {\n const parser = new _Parser(options);\n return parser.parse(tokens);\n }\n /**\n * Static Parse Inline Method\n */\n static parseInline(tokens, options) {\n const parser = new _Parser(options);\n return parser.parseInline(tokens);\n }\n /**\n * Parse Loop\n */\n parse(tokens, top = true) {\n let out = '';\n for (let i = 0; i < tokens.length; i++) {\n const anyToken = tokens[i];\n // Run any renderer extensions\n if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[anyToken.type]) {\n const genericToken = anyToken;\n const ret = this.options.extensions.renderers[genericToken.type].call({ parser: this }, genericToken);\n if (ret !== false || !['space', 'hr', 'heading', 'code', 'table', 'blockquote', 'list', 'html', 'paragraph', 'text'].includes(genericToken.type)) {\n out += ret || '';\n continue;\n }\n }\n const token = anyToken;\n switch (token.type) {\n case 'space': {\n out += this.renderer.space(token);\n continue;\n }\n case 'hr': {\n out += this.renderer.hr(token);\n continue;\n }\n case 'heading': {\n out += this.renderer.heading(token);\n continue;\n }\n case 'code': {\n out += this.renderer.code(token);\n continue;\n }\n case 'table': {\n out += this.renderer.table(token);\n continue;\n }\n case 'blockquote': {\n out += this.renderer.blockquote(token);\n continue;\n }\n case 'list': {\n out += this.renderer.list(token);\n continue;\n }\n case 'html': {\n out += this.renderer.html(token);\n continue;\n }\n case 'paragraph': {\n out += this.renderer.paragraph(token);\n continue;\n }\n case 'text': {\n let textToken = token;\n let body = this.renderer.text(textToken);\n while (i + 1 < tokens.length && tokens[i + 1].type === 'text') {\n textToken = tokens[++i];\n body += '\\n' + this.renderer.text(textToken);\n }\n if (top) {\n out += this.renderer.paragraph({\n type: 'paragraph',\n raw: body,\n text: body,\n tokens: [{ type: 'text', raw: body, text: body }],\n });\n }\n else {\n out += body;\n }\n continue;\n }\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return '';\n }\n else {\n throw new Error(errMsg);\n }\n }\n }\n }\n return out;\n }\n /**\n * Parse Inline Tokens\n */\n parseInline(tokens, renderer) {\n renderer = renderer || this.renderer;\n let out = '';\n for (let i = 0; i < tokens.length; i++) {\n const anyToken = tokens[i];\n // Run any renderer extensions\n if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[anyToken.type]) {\n const ret = this.options.extensions.renderers[anyToken.type].call({ parser: this }, anyToken);\n if (ret !== false || !['escape', 'html', 'link', 'image', 'strong', 'em', 'codespan', 'br', 'del', 'text'].includes(anyToken.type)) {\n out += ret || '';\n continue;\n }\n }\n const token = anyToken;\n switch (token.type) {\n case 'escape': {\n out += renderer.text(token);\n break;\n }\n case 'html': {\n out += renderer.html(token);\n break;\n }\n case 'link': {\n out += renderer.link(token);\n break;\n }\n case 'image': {\n out += renderer.image(token);\n break;\n }\n case 'strong': {\n out += renderer.strong(token);\n break;\n }\n case 'em': {\n out += renderer.em(token);\n break;\n }\n case 'codespan': {\n out += renderer.codespan(token);\n break;\n }\n case 'br': {\n out += renderer.br(token);\n break;\n }\n case 'del': {\n out += renderer.del(token);\n break;\n }\n case 'text': {\n out += renderer.text(token);\n break;\n }\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return '';\n }\n else {\n throw new Error(errMsg);\n }\n }\n }\n }\n return out;\n }\n}\n\nclass _Hooks {\n options;\n constructor(options) {\n this.options = options || _defaults;\n }\n static passThroughHooks = new Set([\n 'preprocess',\n 'postprocess',\n 'processAllTokens',\n ]);\n /**\n * Process markdown before marked\n */\n preprocess(markdown) {\n return markdown;\n }\n /**\n * Process HTML after marked is finished\n */\n postprocess(html) {\n return html;\n }\n /**\n * Process all tokens before walk tokens\n */\n processAllTokens(tokens) {\n return tokens;\n }\n}\n\nclass Marked {\n defaults = _getDefaults();\n options = this.setOptions;\n parse = this.#parseMarkdown(_Lexer.lex, _Parser.parse);\n parseInline = this.#parseMarkdown(_Lexer.lexInline, _Parser.parseInline);\n Parser = _Parser;\n Renderer = _Renderer;\n TextRenderer = _TextRenderer;\n Lexer = _Lexer;\n Tokenizer = _Tokenizer;\n Hooks = _Hooks;\n constructor(...args) {\n this.use(...args);\n }\n /**\n * Run callback for every token\n */\n walkTokens(tokens, callback) {\n let values = [];\n for (const token of tokens) {\n values = values.concat(callback.call(this, token));\n switch (token.type) {\n case 'table': {\n const tableToken = token;\n for (const cell of tableToken.header) {\n values = values.concat(this.walkTokens(cell.tokens, callback));\n }\n for (const row of tableToken.rows) {\n for (const cell of row) {\n values = values.concat(this.walkTokens(cell.tokens, callback));\n }\n }\n break;\n }\n case 'list': {\n const listToken = token;\n values = values.concat(this.walkTokens(listToken.items, callback));\n break;\n }\n default: {\n const genericToken = token;\n if (this.defaults.extensions?.childTokens?.[genericToken.type]) {\n this.defaults.extensions.childTokens[genericToken.type].forEach((childTokens) => {\n const tokens = genericToken[childTokens].flat(Infinity);\n values = values.concat(this.walkTokens(tokens, callback));\n });\n }\n else if (genericToken.tokens) {\n values = values.concat(this.walkTokens(genericToken.tokens, callback));\n }\n }\n }\n }\n return values;\n }\n use(...args) {\n const extensions = this.defaults.extensions || { renderers: {}, childTokens: {} };\n args.forEach((pack) => {\n // copy options to new object\n const opts = { ...pack };\n // set async to true if it was set to true before\n opts.async = this.defaults.async || opts.async || false;\n // ==-- Parse \"addon\" extensions --== //\n if (pack.extensions) {\n pack.extensions.forEach((ext) => {\n if (!ext.name) {\n throw new Error('extension name required');\n }\n if ('renderer' in ext) { // Renderer extensions\n const prevRenderer = extensions.renderers[ext.name];\n if (prevRenderer) {\n // Replace extension with func to run new extension but fall back if false\n extensions.renderers[ext.name] = function (...args) {\n let ret = ext.renderer.apply(this, args);\n if (ret === false) {\n ret = prevRenderer.apply(this, args);\n }\n return ret;\n };\n }\n else {\n extensions.renderers[ext.name] = ext.renderer;\n }\n }\n if ('tokenizer' in ext) { // Tokenizer Extensions\n if (!ext.level || (ext.level !== 'block' && ext.level !== 'inline')) {\n throw new Error(\"extension level must be 'block' or 'inline'\");\n }\n const extLevel = extensions[ext.level];\n if (extLevel) {\n extLevel.unshift(ext.tokenizer);\n }\n else {\n extensions[ext.level] = [ext.tokenizer];\n }\n if (ext.start) { // Function to check for start of token\n if (ext.level === 'block') {\n if (extensions.startBlock) {\n extensions.startBlock.push(ext.start);\n }\n else {\n extensions.startBlock = [ext.start];\n }\n }\n else if (ext.level === 'inline') {\n if (extensions.startInline) {\n extensions.startInline.push(ext.start);\n }\n else {\n extensions.startInline = [ext.start];\n }\n }\n }\n }\n if ('childTokens' in ext && ext.childTokens) { // Child tokens to be visited by walkTokens\n extensions.childTokens[ext.name] = ext.childTokens;\n }\n });\n opts.extensions = extensions;\n }\n // ==-- Parse \"overwrite\" extensions --== //\n if (pack.renderer) {\n const renderer = this.defaults.renderer || new _Renderer(this.defaults);\n for (const prop in pack.renderer) {\n if (!(prop in renderer)) {\n throw new Error(`renderer '${prop}' does not exist`);\n }\n if (['options', 'parser'].includes(prop)) {\n // ignore options property\n continue;\n }\n const rendererProp = prop;\n let rendererFunc = pack.renderer[rendererProp];\n if (!pack.useNewRenderer) {\n // TODO: Remove this in next major version\n rendererFunc = this.#convertRendererFunction(rendererFunc, rendererProp, renderer);\n }\n const prevRenderer = renderer[rendererProp];\n // Replace renderer with func to run extension, but fall back if false\n renderer[rendererProp] = (...args) => {\n let ret = rendererFunc.apply(renderer, args);\n if (ret === false) {\n ret = prevRenderer.apply(renderer, args);\n }\n return ret || '';\n };\n }\n opts.renderer = renderer;\n }\n if (pack.tokenizer) {\n const tokenizer = this.defaults.tokenizer || new _Tokenizer(this.defaults);\n for (const prop in pack.tokenizer) {\n if (!(prop in tokenizer)) {\n throw new Error(`tokenizer '${prop}' does not exist`);\n }\n if (['options', 'rules', 'lexer'].includes(prop)) {\n // ignore options, rules, and lexer properties\n continue;\n }\n const tokenizerProp = prop;\n const tokenizerFunc = pack.tokenizer[tokenizerProp];\n const prevTokenizer = tokenizer[tokenizerProp];\n // Replace tokenizer with func to run extension, but fall back if false\n // @ts-expect-error cannot type tokenizer function dynamically\n tokenizer[tokenizerProp] = (...args) => {\n let ret = tokenizerFunc.apply(tokenizer, args);\n if (ret === false) {\n ret = prevTokenizer.apply(tokenizer, args);\n }\n return ret;\n };\n }\n opts.tokenizer = tokenizer;\n }\n // ==-- Parse Hooks extensions --== //\n if (pack.hooks) {\n const hooks = this.defaults.hooks || new _Hooks();\n for (const prop in pack.hooks) {\n if (!(prop in hooks)) {\n throw new Error(`hook '${prop}' does not exist`);\n }\n if (prop === 'options') {\n // ignore options property\n continue;\n }\n const hooksProp = prop;\n const hooksFunc = pack.hooks[hooksProp];\n const prevHook = hooks[hooksProp];\n if (_Hooks.passThroughHooks.has(prop)) {\n // @ts-expect-error cannot type hook function dynamically\n hooks[hooksProp] = (arg) => {\n if (this.defaults.async) {\n return Promise.resolve(hooksFunc.call(hooks, arg)).then(ret => {\n return prevHook.call(hooks, ret);\n });\n }\n const ret = hooksFunc.call(hooks, arg);\n return prevHook.call(hooks, ret);\n };\n }\n else {\n // @ts-expect-error cannot type hook function dynamically\n hooks[hooksProp] = (...args) => {\n let ret = hooksFunc.apply(hooks, args);\n if (ret === false) {\n ret = prevHook.apply(hooks, args);\n }\n return ret;\n };\n }\n }\n opts.hooks = hooks;\n }\n // ==-- Parse WalkTokens extensions --== //\n if (pack.walkTokens) {\n const walkTokens = this.defaults.walkTokens;\n const packWalktokens = pack.walkTokens;\n opts.walkTokens = function (token) {\n let values = [];\n values.push(packWalktokens.call(this, token));\n if (walkTokens) {\n values = values.concat(walkTokens.call(this, token));\n }\n return values;\n };\n }\n this.defaults = { ...this.defaults, ...opts };\n });\n return this;\n }\n // TODO: Remove this in next major release\n #convertRendererFunction(func, prop, renderer) {\n switch (prop) {\n case 'heading':\n return function (token) {\n if (!token.type || token.type !== prop) {\n // @ts-ignore\n // eslint-disable-next-line prefer-rest-params\n return func.apply(this, arguments);\n }\n return func.call(this, renderer.parser.parseInline(token.tokens), token.depth, unescape(renderer.parser.parseInline(token.tokens, renderer.parser.textRenderer)));\n };\n case 'code':\n return function (token) {\n if (!token.type || token.type !== prop) {\n // @ts-ignore\n // eslint-disable-next-line prefer-rest-params\n return func.apply(this, arguments);\n }\n return func.call(this, token.text, token.lang, !!token.escaped);\n };\n case 'table':\n return function (token) {\n if (!token.type || token.type !== prop) {\n // @ts-ignore\n // eslint-disable-next-line prefer-rest-params\n return func.apply(this, arguments);\n }\n let header = '';\n // header\n let cell = '';\n for (let j = 0; j < token.header.length; j++) {\n cell += this.tablecell({\n text: token.header[j].text,\n tokens: token.header[j].tokens,\n header: true,\n align: token.align[j],\n });\n }\n header += this.tablerow({ text: cell });\n let body = '';\n for (let j = 0; j < token.rows.length; j++) {\n const row = token.rows[j];\n cell = '';\n for (let k = 0; k < row.length; k++) {\n cell += this.tablecell({\n text: row[k].text,\n tokens: row[k].tokens,\n header: false,\n align: token.align[k],\n });\n }\n body += this.tablerow({ text: cell });\n }\n return func.call(this, header, body);\n };\n case 'blockquote':\n return function (token) {\n if (!token.type || token.type !== prop) {\n // @ts-ignore\n // eslint-disable-next-line prefer-rest-params\n return func.apply(this, arguments);\n }\n const body = this.parser.parse(token.tokens);\n return func.call(this, body);\n };\n case 'list':\n return function (token) {\n if (!token.type || token.type !== prop) {\n // @ts-ignore\n // eslint-disable-next-line prefer-rest-params\n return func.apply(this, arguments);\n }\n const ordered = token.ordered;\n const start = token.start;\n const loose = token.loose;\n let body = '';\n for (let j = 0; j < token.items.length; j++) {\n const item = token.items[j];\n const checked = item.checked;\n const task = item.task;\n let itemBody = '';\n if (item.task) {\n const checkbox = this.checkbox({ checked: !!checked });\n if (loose) {\n if (item.tokens.length > 0 && item.tokens[0].type === 'paragraph') {\n item.tokens[0].text = checkbox + ' ' + item.tokens[0].text;\n if (item.tokens[0].tokens && item.tokens[0].tokens.length > 0 && item.tokens[0].tokens[0].type === 'text') {\n item.tokens[0].tokens[0].text = checkbox + ' ' + item.tokens[0].tokens[0].text;\n }\n }\n else {\n item.tokens.unshift({\n type: 'text',\n text: checkbox + ' ',\n });\n }\n }\n else {\n itemBody += checkbox + ' ';\n }\n }\n itemBody += this.parser.parse(item.tokens, loose);\n body += this.listitem({\n type: 'list_item',\n raw: itemBody,\n text: itemBody,\n task,\n checked: !!checked,\n loose,\n tokens: item.tokens,\n });\n }\n return func.call(this, body, ordered, start);\n };\n case 'html':\n return function (token) {\n if (!token.type || token.type !== prop) {\n // @ts-ignore\n // eslint-disable-next-line prefer-rest-params\n return func.apply(this, arguments);\n }\n return func.call(this, token.text, token.block);\n };\n case 'paragraph':\n return function (token) {\n if (!token.type || token.type !== prop) {\n // @ts-ignore\n // eslint-disable-next-line prefer-rest-params\n return func.apply(this, arguments);\n }\n return func.call(this, this.parser.parseInline(token.tokens));\n };\n case 'escape':\n return function (token) {\n if (!token.type || token.type !== prop) {\n // @ts-ignore\n // eslint-disable-next-line prefer-rest-params\n return func.apply(this, arguments);\n }\n return func.call(this, token.text);\n };\n case 'link':\n return function (token) {\n if (!token.type || token.type !== prop) {\n // @ts-ignore\n // eslint-disable-next-line prefer-rest-params\n return func.apply(this, arguments);\n }\n return func.call(this, token.href, token.title, this.parser.parseInline(token.tokens));\n };\n case 'image':\n return function (token) {\n if (!token.type || token.type !== prop) {\n // @ts-ignore\n // eslint-disable-next-line prefer-rest-params\n return func.apply(this, arguments);\n }\n return func.call(this, token.href, token.title, token.text);\n };\n case 'strong':\n return function (token) {\n if (!token.type || token.type !== prop) {\n // @ts-ignore\n // eslint-disable-next-line prefer-rest-params\n return func.apply(this, arguments);\n }\n return func.call(this, this.parser.parseInline(token.tokens));\n };\n case 'em':\n return function (token) {\n if (!token.type || token.type !== prop) {\n // @ts-ignore\n // eslint-disable-next-line prefer-rest-params\n return func.apply(this, arguments);\n }\n return func.call(this, this.parser.parseInline(token.tokens));\n };\n case 'codespan':\n return function (token) {\n if (!token.type || token.type !== prop) {\n // @ts-ignore\n // eslint-disable-next-line prefer-rest-params\n return func.apply(this, arguments);\n }\n return func.call(this, token.text);\n };\n case 'del':\n return function (token) {\n if (!token.type || token.type !== prop) {\n // @ts-ignore\n // eslint-disable-next-line prefer-rest-params\n return func.apply(this, arguments);\n }\n return func.call(this, this.parser.parseInline(token.tokens));\n };\n case 'text':\n return function (token) {\n if (!token.type || token.type !== prop) {\n // @ts-ignore\n // eslint-disable-next-line prefer-rest-params\n return func.apply(this, arguments);\n }\n return func.call(this, token.text);\n };\n // do nothing\n }\n return func;\n }\n setOptions(opt) {\n this.defaults = { ...this.defaults, ...opt };\n return this;\n }\n lexer(src, options) {\n return _Lexer.lex(src, options ?? this.defaults);\n }\n parser(tokens, options) {\n return _Parser.parse(tokens, options ?? this.defaults);\n }\n #parseMarkdown(lexer, parser) {\n return (src, options) => {\n const origOpt = { ...options };\n const opt = { ...this.defaults, ...origOpt };\n // Show warning if an extension set async to true but the parse was called with async: false\n if (this.defaults.async === true && origOpt.async === false) {\n if (!opt.silent) {\n console.warn('marked(): The async option was set to true by an extension. The async: false option sent to parse will be ignored.');\n }\n opt.async = true;\n }\n const throwError = this.#onError(!!opt.silent, !!opt.async);\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n return throwError(new Error('marked(): input parameter is undefined or null'));\n }\n if (typeof src !== 'string') {\n return throwError(new Error('marked(): input parameter is of type '\n + Object.prototype.toString.call(src) + ', string expected'));\n }\n if (opt.hooks) {\n opt.hooks.options = opt;\n }\n if (opt.async) {\n return Promise.resolve(opt.hooks ? opt.hooks.preprocess(src) : src)\n .then(src => lexer(src, opt))\n .then(tokens => opt.hooks ? opt.hooks.processAllTokens(tokens) : tokens)\n .then(tokens => opt.walkTokens ? Promise.all(this.walkTokens(tokens, opt.walkTokens)).then(() => tokens) : tokens)\n .then(tokens => parser(tokens, opt))\n .then(html => opt.hooks ? opt.hooks.postprocess(html) : html)\n .catch(throwError);\n }\n try {\n if (opt.hooks) {\n src = opt.hooks.preprocess(src);\n }\n let tokens = lexer(src, opt);\n if (opt.hooks) {\n tokens = opt.hooks.processAllTokens(tokens);\n }\n if (opt.walkTokens) {\n this.walkTokens(tokens, opt.walkTokens);\n }\n let html = parser(tokens, opt);\n if (opt.hooks) {\n html = opt.hooks.postprocess(html);\n }\n return html;\n }\n catch (e) {\n return throwError(e);\n }\n };\n }\n #onError(silent, async) {\n return (e) => {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n if (silent) {\n const msg = '<p>An error occurred:</p><pre>'\n + escape$1(e.message + '', true)\n + '</pre>';\n if (async) {\n return Promise.resolve(msg);\n }\n return msg;\n }\n if (async) {\n return Promise.reject(e);\n }\n throw e;\n };\n }\n}\n\nconst markedInstance = new Marked();\nfunction marked(src, opt) {\n return markedInstance.parse(src, opt);\n}\n/**\n * Sets the default options.\n *\n * @param options Hash of options\n */\nmarked.options =\n marked.setOptions = function (options) {\n markedInstance.setOptions(options);\n marked.defaults = markedInstance.defaults;\n changeDefaults(marked.defaults);\n return marked;\n };\n/**\n * Gets the original marked default options.\n */\nmarked.getDefaults = _getDefaults;\nmarked.defaults = _defaults;\n/**\n * Use Extension\n */\nmarked.use = function (...args) {\n markedInstance.use(...args);\n marked.defaults = markedInstance.defaults;\n changeDefaults(marked.defaults);\n return marked;\n};\n/**\n * Run callback for every token\n */\nmarked.walkTokens = function (tokens, callback) {\n return markedInstance.walkTokens(tokens, callback);\n};\n/**\n * Compiles markdown to HTML without enclosing `p` tag.\n *\n * @param src String of markdown source to be compiled\n * @param options Hash of options\n * @return String of compiled HTML\n */\nmarked.parseInline = markedInstance.parseInline;\n/**\n * Expose\n */\nmarked.Parser = _Parser;\nmarked.parser = _Parser.parse;\nmarked.Renderer = _Renderer;\nmarked.TextRenderer = _TextRenderer;\nmarked.Lexer = _Lexer;\nmarked.lexer = _Lexer.lex;\nmarked.Tokenizer = _Tokenizer;\nmarked.Hooks = _Hooks;\nmarked.parse = marked;\nconst options = marked.options;\nconst setOptions = marked.setOptions;\nconst use = marked.use;\nconst walkTokens = marked.walkTokens;\nconst parseInline = marked.parseInline;\nconst parse = marked;\nconst parser = _Parser.parse;\nconst lexer = _Lexer.lex;\n\nexport { _Hooks as Hooks, _Lexer as Lexer, Marked, _Parser as Parser, _Renderer as Renderer, _TextRenderer as TextRenderer, _Tokenizer as Tokenizer, _defaults as defaults, _getDefaults as getDefaults, lexer, marked, options, parse, parseInline, parser, setOptions, use, walkTokens };\n//# sourceMappingURL=marked.esm.js.map\n","import { LitElement, html, css, nothing } from \"lit\";\nimport { customElement, property, state } from \"lit/decorators.js\";\nimport { unsafeHTML } from \"lit/directives/unsafe-html.js\";\nimport { marked } from \"marked\";\nimport { MessageTypeRegistry, chatStore, type MessageSender, type MessageStatus } from \"@chativa/core\";\n\n\n@customElement(\"default-text-message\")\nexport class DefaultTextMessage extends LitElement {\n static override styles = css`\n :host {\n display: block;\n }\n\n .message {\n display: flex;\n align-items: flex-end;\n gap: 8px;\n max-width: 82%;\n margin-bottom: 2px;\n }\n\n .message.bot {\n margin-right: auto;\n }\n\n .message.user {\n margin-left: auto;\n flex-direction: row-reverse;\n }\n\n .avatar {\n width: 28px;\n height: 28px;\n border-radius: 50%;\n background: #ede9fe;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n overflow: hidden;\n }\n\n .avatar.hidden { visibility: hidden; }\n\n .avatar.user-avatar {\n background: #e0f2fe;\n }\n\n .avatar svg {\n width: 16px;\n height: 16px;\n color: #7c3aed;\n }\n\n .avatar.user-avatar svg {\n color: #0369a1;\n }\n\n .avatar img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 50%;\n }\n\n /* Markdown styles for bot bubbles */\n .message.bot .bubble p { margin: 0 0 6px; }\n .message.bot .bubble p:last-child { margin: 0; }\n .message.bot .bubble code {\n background: rgba(0,0,0,0.08);\n border-radius: 3px;\n padding: 1px 5px;\n font-size: 0.82em;\n font-family: monospace;\n }\n .message.bot .bubble pre {\n background: rgba(0,0,0,0.06);\n border-radius: 6px;\n padding: 8px 12px;\n overflow-x: auto;\n margin: 6px 0;\n }\n .message.bot .bubble pre code { background: none; padding: 0; }\n .message.bot .bubble a { color: #4f46e5; text-decoration: underline; }\n .message.bot .bubble ul,\n .message.bot .bubble ol { margin: 4px 0; padding-left: 18px; }\n .message.bot .bubble strong { font-weight: 600; }\n .message.bot .bubble em { font-style: italic; }\n\n .content {\n display: flex;\n flex-direction: column;\n gap: 3px;\n }\n\n .message.user .content {\n align-items: flex-end;\n }\n\n .bubble {\n padding: 9px 13px;\n font-size: 0.875rem;\n line-height: 1.5;\n word-break: break-word;\n max-width: 100%;\n }\n\n .message.bot .bubble {\n background: #f1f5f9;\n color: #0f172a;\n border-radius: 4px 16px 16px 16px;\n }\n\n .message.user .bubble {\n background: var(--chativa-primary-color, #4f46e5);\n color: #ffffff;\n border-radius: 16px 4px 16px 16px;\n }\n\n .meta {\n display: flex;\n align-items: center;\n gap: 4px;\n }\n\n .message.user .meta {\n justify-content: flex-end;\n }\n\n .time {\n font-size: 0.6875rem;\n color: #94a3b8;\n padding: 0 2px;\n }\n\n /* Status tick icons */\n .status-icon {\n display: flex;\n align-items: center;\n line-height: 1;\n }\n\n .status-icon svg {\n width: 14px;\n height: 14px;\n }\n\n .feedback {\n display: flex;\n gap: 2px;\n opacity: 0;\n transition: opacity 0.15s;\n padding: 0 2px;\n }\n\n .message.bot:hover .feedback,\n .feedback.active {\n opacity: 1;\n }\n\n .feedback-btn {\n background: none;\n border: 1px solid transparent;\n border-radius: 6px;\n padding: 2px 5px;\n cursor: pointer;\n font-size: 0.75rem;\n line-height: 1;\n color: #94a3b8;\n transition: border-color 0.15s, background 0.15s, color 0.15s;\n }\n\n .feedback-btn:hover {\n border-color: #e2e8f0;\n background: #f8fafc;\n color: #64748b;\n }\n\n .feedback-btn.selected-like {\n border-color: #bbf7d0;\n background: #f0fdf4;\n color: #16a34a;\n }\n\n .feedback-btn.selected-dislike {\n border-color: #fecaca;\n background: #fef2f2;\n color: #dc2626;\n }\n `;\n\n @property({ type: Object }) messageData: Record<string, unknown> = {};\n @property({ type: String }) sender: MessageSender = \"bot\";\n @property({ type: String }) messageId = \"\";\n @property({ type: Number }) timestamp = 0;\n /** When true the avatar is invisible (still occupies space for alignment). */\n @property({ type: Boolean }) hideAvatar = false;\n @property({ type: String }) status: MessageStatus = \"sent\";\n\n @state() private _feedback: \"like\" | \"dislike\" | null = null;\n\n private _onFeedback(type: \"like\" | \"dislike\") {\n if (this._feedback === type) {\n this._feedback = null;\n return;\n }\n this._feedback = type;\n this.dispatchEvent(\n new CustomEvent(\"chativa-feedback\", {\n bubbles: true,\n composed: true,\n detail: { messageId: this.messageId, feedback: type },\n })\n );\n }\n\n private get _time(): string {\n if (!this.timestamp) return \"\";\n return new Date(this.timestamp).toLocaleTimeString([], {\n hour: \"2-digit\",\n minute: \"2-digit\",\n });\n }\n\n private _renderBotAvatar(avatarUrl?: string) {\n return html`\n <div class=\"avatar ${this.hideAvatar ? \"hidden\" : \"\"}\">\n ${avatarUrl\n ? html`<img src=${avatarUrl} alt=\"bot avatar\" />`\n : html`\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"5\" y=\"8\" width=\"14\" height=\"12\" rx=\"2.5\" />\n <circle cx=\"9.5\" cy=\"13\" r=\"1.5\" fill=\"white\" />\n <circle cx=\"14.5\" cy=\"13\" r=\"1.5\" fill=\"white\" />\n <path\n d=\"M9.5 17c.5.5 1.4.8 2.5.8s2-.3 2.5-.8\"\n stroke=\"white\"\n stroke-width=\"1.2\"\n stroke-linecap=\"round\"\n fill=\"none\"\n />\n </svg>\n `}\n </div>\n `;\n }\n\n private _renderUserAvatar(avatarUrl?: string) {\n return html`\n <div class=\"avatar user-avatar ${this.hideAvatar ? \"hidden\" : \"\"}\">\n ${avatarUrl\n ? html`<img src=${avatarUrl} alt=\"user avatar\" />`\n : html`\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M12 12c2.7 0 4.8-2.1 4.8-4.8S14.7 2.4 12 2.4 7.2 4.5 7.2 7.2 9.3 12 12 12zm0 2.4c-3.2 0-9.6 1.6-9.6 4.8v2.4h19.2v-2.4c0-3.2-6.4-4.8-9.6-4.8z\"/>\n </svg>\n `}\n </div>\n `;\n }\n\n private _renderStatusIcon() {\n const color = this.status === \"sending\" ? \"#94a3b8\" : \"var(--chativa-primary-color, #4f46e5)\";\n if (this.status === \"read\") {\n // Double tick\n return html`\n <span class=\"status-icon\" title=\"Read\">\n <svg viewBox=\"0 0 18 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M1 6l4 4L13 1\" stroke=${color} stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M6 6l4 4L18 1\" stroke=${color} stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </span>\n `;\n }\n // Single tick (sending = gray, sent = primary)\n return html`\n <span class=\"status-icon\" title=${this.status === \"sending\" ? \"Sending…\" : \"Sent\"}>\n <svg viewBox=\"0 0 14 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M1 5l4 4L13 1\" stroke=${color} stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </span>\n `;\n }\n\n render() {\n const isUser = this.sender === \"user\";\n const raw = String(this.messageData?.text ?? \"\");\n const bubbleContent = isUser\n ? raw\n : unsafeHTML(marked.parse(raw, { async: false }) as string);\n\n const theme = chatStore.getState().theme;\n const avatarCfg = theme.avatar;\n const showBotAvatar = avatarCfg?.showBot !== false;\n const showUserAvatar = avatarCfg?.showUser !== false;\n const showStatus = theme.showMessageStatus === true && isUser;\n\n return html`\n <div class=\"message ${isUser ? \"user\" : \"bot\"}\">\n ${!isUser && showBotAvatar ? this._renderBotAvatar(avatarCfg?.bot) : nothing}\n ${isUser && showUserAvatar ? this._renderUserAvatar(avatarCfg?.user) : nothing}\n <div class=\"content\">\n <div class=\"bubble\">${bubbleContent}</div>\n ${!isUser ? html`\n <div class=\"feedback ${this._feedback ? \"active\" : \"\"}\">\n <button\n class=\"feedback-btn ${this._feedback === \"like\" ? \"selected-like\" : \"\"}\"\n title=\"Like\"\n @click=${() => this._onFeedback(\"like\")}\n >👍</button>\n <button\n class=\"feedback-btn ${this._feedback === \"dislike\" ? \"selected-dislike\" : \"\"}\"\n title=\"Dislike\"\n @click=${() => this._onFeedback(\"dislike\")}\n >👎</button>\n </div>\n ` : nothing}\n ${this._time || showStatus ? html`\n <div class=\"meta\">\n ${this._time ? html`<span class=\"time\">${this._time}</span>` : nothing}\n ${showStatus ? this._renderStatusIcon() : nothing}\n </div>\n ` : nothing}\n </div>\n </div>\n `;\n }\n}\n\nMessageTypeRegistry.register(\n \"text\",\n DefaultTextMessage as unknown as typeof HTMLElement\n);\n\nexport default DefaultTextMessage;\n","import { LitElement, html, css, nothing } from \"lit\";\nimport { customElement, property, state } from \"lit/decorators.js\";\nimport { MessageTypeRegistry, type MessageSender, type MessageAction } from \"@chativa/core\";\n\n/**\n * Quick-reply message component.\n * Renders a text bubble followed by tappable chip buttons.\n * On chip click, fires a `chat-action` event (bubbles + composed) with the\n * action value as detail, then hides the chips (one-time use).\n *\n * Register a message of type \"quick-reply\" with:\n * { text: \"...\", actions: [{ label: \"Yes\" }, { label: \"No\", value: \"/no\" }] }\n */\n@customElement(\"quick-reply-message\")\nexport class QuickReplyMessage extends LitElement {\n static override styles = css`\n :host {\n display: block;\n }\n\n .message {\n display: flex;\n align-items: flex-end;\n gap: 8px;\n max-width: 82%;\n margin-bottom: 2px;\n }\n\n .message.bot { margin-right: auto; }\n .message.user { margin-left: auto; flex-direction: row-reverse; }\n\n .avatar {\n width: 28px;\n height: 28px;\n border-radius: 50%;\n background: #ede9fe;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n }\n\n .avatar.hidden { visibility: hidden; }\n\n .avatar svg { width: 16px; height: 16px; color: #7c3aed; }\n\n .content {\n display: flex;\n flex-direction: column;\n gap: 3px;\n }\n\n .message.user .content { align-items: flex-end; }\n\n .bubble {\n padding: 9px 13px;\n font-size: 0.875rem;\n line-height: 1.5;\n word-break: break-word;\n max-width: 100%;\n }\n\n .message.bot .bubble {\n background: #f1f5f9;\n color: #0f172a;\n border-radius: 4px 16px 16px 16px;\n }\n\n .message.user .bubble {\n background: var(--chativa-primary-color, #4f46e5);\n color: #ffffff;\n border-radius: 16px 4px 16px 16px;\n }\n\n .time {\n font-size: 0.6875rem;\n color: #94a3b8;\n padding: 0 4px;\n }\n\n /* Quick reply chips */\n .chips {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n margin-top: 6px;\n max-width: 260px;\n }\n\n .chip {\n padding: 6px 14px;\n border: 1.5px solid var(--chativa-primary-color, #4f46e5);\n border-radius: 999px;\n background: transparent;\n color: var(--chativa-primary-color, #4f46e5);\n font-size: 0.8125rem;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.15s, color 0.15s;\n font-family: inherit;\n }\n\n .chip:hover {\n background: var(--chativa-primary-color, #4f46e5);\n color: #fff;\n }\n\n .chip:active { opacity: 0.8; }\n `;\n\n @property({ type: Object }) messageData: Record<string, unknown> = {};\n @property({ type: String }) sender: MessageSender = \"bot\";\n @property({ type: Number }) timestamp = 0;\n @property({ type: Boolean }) hideAvatar = false;\n\n /** True once a chip has been tapped — chips disappear (one-time use). */\n @state() private _used = false;\n\n private get _time(): string {\n if (!this.timestamp) return \"\";\n return new Date(this.timestamp).toLocaleTimeString([], {\n hour: \"2-digit\",\n minute: \"2-digit\",\n });\n }\n\n private _onChipClick(action: MessageAction) {\n if (this._used) return;\n this._used = true;\n this.dispatchEvent(\n new CustomEvent<string>(\"chat-action\", {\n detail: action.value ?? action.label,\n bubbles: true,\n composed: true,\n })\n );\n }\n\n render() {\n const isUser = this.sender === \"user\";\n const actions = this.messageData?.actions as MessageAction[] | undefined;\n\n return html`\n <div class=\"message ${isUser ? \"user\" : \"bot\"}\">\n ${!isUser\n ? html`\n <div class=\"avatar ${this.hideAvatar ? \"hidden\" : \"\"}\">\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"5\" y=\"8\" width=\"14\" height=\"12\" rx=\"2.5\" />\n <circle cx=\"9.5\" cy=\"13\" r=\"1.5\" fill=\"white\" />\n <circle cx=\"14.5\" cy=\"13\" r=\"1.5\" fill=\"white\" />\n <path\n d=\"M9.5 17c.5.5 1.4.8 2.5.8s2-.3 2.5-.8\"\n stroke=\"white\"\n stroke-width=\"1.2\"\n stroke-linecap=\"round\"\n fill=\"none\"\n />\n </svg>\n </div>\n `\n : nothing}\n <div class=\"content\">\n <div class=\"bubble\">${this.messageData?.text as string}</div>\n ${!this._used && actions && actions.length > 0 ? html`\n <div class=\"chips\">\n ${actions.map(\n (action) => html`\n <button\n class=\"chip\"\n type=\"button\"\n @click=${() => this._onChipClick(action)}\n >${action.label}</button>\n `\n )}\n </div>\n ` : nothing}\n ${this._time && !this.hideAvatar\n ? html`<span class=\"time\">${this._time}</span>`\n : nothing}\n </div>\n </div>\n `;\n }\n}\n\nMessageTypeRegistry.register(\n \"quick-reply\",\n QuickReplyMessage as unknown as typeof HTMLElement\n);\n\nexport default QuickReplyMessage;\n","import { LitElement, html, css, nothing } from \"lit\";\nimport { customElement, property, state } from \"lit/decorators.js\";\nimport { MessageTypeRegistry, type MessageSender } from \"@chativa/core\";\n\n/**\n * Image message component.\n * Renders a bot bubble containing an image, with an optional caption below.\n *\n * Register a message of type \"image\" with:\n * { src: \"https://...\", alt?: \"description\", caption?: \"Caption text\" }\n */\n@customElement(\"image-message\")\nexport class ImageMessage extends LitElement {\n static override styles = css`\n :host {\n display: block;\n }\n\n .message {\n display: flex;\n align-items: flex-end;\n gap: 8px;\n max-width: 82%;\n margin-bottom: 2px;\n }\n\n .message.bot { margin-right: auto; }\n .message.user { margin-left: auto; flex-direction: row-reverse; }\n\n .avatar {\n width: 28px;\n height: 28px;\n border-radius: 50%;\n background: #ede9fe;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n }\n\n .avatar.hidden { visibility: hidden; }\n .avatar svg { width: 16px; height: 16px; color: #7c3aed; }\n\n .content {\n display: flex;\n flex-direction: column;\n gap: 3px;\n }\n\n .image-wrap {\n border-radius: 4px 16px 16px 16px;\n overflow: hidden;\n background: #f1f5f9;\n max-width: 240px;\n cursor: pointer;\n }\n\n .message.user .image-wrap {\n border-radius: 16px 4px 16px 16px;\n }\n\n .image-wrap img {\n display: block;\n width: 100%;\n max-width: 240px;\n object-fit: cover;\n transition: opacity 0.2s;\n }\n\n .image-wrap img.loading {\n opacity: 0;\n }\n\n .skeleton {\n width: 240px;\n height: 160px;\n background: linear-gradient(90deg, #f1f5f9 25%, #e2e8f0 50%, #f1f5f9 75%);\n background-size: 200% 100%;\n animation: shimmer 1.4s infinite;\n }\n\n @keyframes shimmer {\n 0% { background-position: 200% 0; }\n 100% { background-position: -200% 0; }\n }\n\n .caption {\n font-size: 0.8125rem;\n color: #64748b;\n padding: 0 4px;\n max-width: 240px;\n line-height: 1.4;\n }\n\n .time {\n font-size: 0.6875rem;\n color: #94a3b8;\n padding: 0 4px;\n }\n `;\n\n @property({ type: Object }) messageData: Record<string, unknown> = {};\n @property({ type: String }) sender: MessageSender = \"bot\";\n @property({ type: Number }) timestamp = 0;\n @property({ type: Boolean }) hideAvatar = false;\n\n @state() private _loaded = false;\n\n private get _time(): string {\n if (!this.timestamp) return \"\";\n return new Date(this.timestamp).toLocaleTimeString([], {\n hour: \"2-digit\",\n minute: \"2-digit\",\n });\n }\n\n render() {\n const isUser = this.sender === \"user\";\n const src = String(this.messageData?.src ?? \"\");\n const alt = String(this.messageData?.alt ?? \"\");\n const caption = this.messageData?.caption\n ? String(this.messageData.caption)\n : null;\n\n return html`\n <div class=\"message ${isUser ? \"user\" : \"bot\"}\">\n ${!isUser\n ? html`\n <div class=\"avatar ${this.hideAvatar ? \"hidden\" : \"\"}\">\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"5\" y=\"8\" width=\"14\" height=\"12\" rx=\"2.5\" />\n <circle cx=\"9.5\" cy=\"13\" r=\"1.5\" fill=\"white\" />\n <circle cx=\"14.5\" cy=\"13\" r=\"1.5\" fill=\"white\" />\n <path\n d=\"M9.5 17c.5.5 1.4.8 2.5.8s2-.3 2.5-.8\"\n stroke=\"white\"\n stroke-width=\"1.2\"\n stroke-linecap=\"round\"\n fill=\"none\"\n />\n </svg>\n </div>\n `\n : nothing}\n <div class=\"content\">\n <div\n class=\"image-wrap\"\n @click=${() => src && window.open(src, \"_blank\")}\n title=\"${alt || \"image\"}\"\n >\n ${!this._loaded ? html`<div class=\"skeleton\"></div>` : nothing}\n <img\n src=\"${src}\"\n alt=\"${alt}\"\n class=\"${this._loaded ? \"\" : \"loading\"}\"\n @load=${() => { this._loaded = true; }}\n />\n </div>\n ${caption ? html`<span class=\"caption\">${caption}</span>` : nothing}\n ${this._time ? html`<span class=\"time\">${this._time}</span>` : nothing}\n </div>\n </div>\n `;\n }\n}\n\nMessageTypeRegistry.register(\n \"image\",\n ImageMessage as unknown as typeof HTMLElement\n);\n\nexport default ImageMessage;\n","import { LitElement, html, css, nothing } from \"lit\";\nimport { customElement, property, state } from \"lit/decorators.js\";\nimport { MessageTypeRegistry, type MessageSender, type MessageAction } from \"@chativa/core\";\n\n/**\n * Hero card message component.\n * Renders a structured card with an optional image, title, subtitle and action buttons.\n * Buttons dispatch `chat-action` events (bubbles + composed) with the action value.\n *\n * Register a message of type \"card\" with:\n * {\n * image?: \"https://...\",\n * title: \"Card Title\",\n * subtitle?: \"Supporting text\",\n * buttons?: [{ label: \"Learn More\", value?: \"/learn-more\" }]\n * }\n */\n@customElement(\"card-message\")\nexport class CardMessage extends LitElement {\n static override styles = css`\n :host {\n display: block;\n }\n\n .message {\n display: flex;\n align-items: flex-end;\n gap: 8px;\n max-width: 82%;\n margin-bottom: 2px;\n }\n\n .message.bot { margin-right: auto; }\n .message.user { margin-left: auto; flex-direction: row-reverse; }\n\n .avatar {\n width: 28px;\n height: 28px;\n border-radius: 50%;\n background: #ede9fe;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n }\n\n .avatar.hidden { visibility: hidden; }\n .avatar svg { width: 16px; height: 16px; color: #7c3aed; }\n\n .content {\n display: flex;\n flex-direction: column;\n gap: 3px;\n }\n\n .card {\n background: #ffffff;\n border: 1px solid #e2e8f0;\n border-radius: 12px;\n overflow: hidden;\n width: 260px;\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);\n }\n\n .card-image {\n width: 100%;\n height: 140px;\n object-fit: cover;\n display: block;\n }\n\n .card-image-skeleton {\n width: 100%;\n height: 140px;\n background: linear-gradient(90deg, #f1f5f9 25%, #e2e8f0 50%, #f1f5f9 75%);\n background-size: 200% 100%;\n animation: shimmer 1.4s infinite;\n }\n\n @keyframes shimmer {\n 0% { background-position: 200% 0; }\n 100% { background-position: -200% 0; }\n }\n\n .card-body {\n padding: 12px 14px;\n }\n\n .card-title {\n font-size: 0.9375rem;\n font-weight: 600;\n color: #0f172a;\n margin: 0 0 4px;\n line-height: 1.35;\n }\n\n .card-subtitle {\n font-size: 0.8125rem;\n color: #64748b;\n margin: 0;\n line-height: 1.45;\n }\n\n .card-divider {\n height: 1px;\n background: #f1f5f9;\n margin: 0;\n }\n\n .card-actions {\n display: flex;\n flex-direction: column;\n }\n\n .card-btn {\n background: none;\n border: none;\n border-bottom: 1px solid #f1f5f9;\n padding: 10px 14px;\n font-size: 0.875rem;\n font-weight: 500;\n color: var(--chativa-primary-color, #4f46e5);\n cursor: pointer;\n text-align: left;\n font-family: inherit;\n transition: background 0.15s;\n }\n\n .card-btn:last-child {\n border-bottom: none;\n }\n\n .card-btn:hover {\n background: #f8fafc;\n }\n\n .card-btn:active {\n background: #f1f5f9;\n }\n\n .time {\n font-size: 0.6875rem;\n color: #94a3b8;\n padding: 0 4px;\n }\n `;\n\n @property({ type: Object }) messageData: Record<string, unknown> = {};\n @property({ type: String }) sender: MessageSender = \"bot\";\n @property({ type: Number }) timestamp = 0;\n @property({ type: Boolean }) hideAvatar = false;\n\n @state() private _imgLoaded = false;\n\n private get _time(): string {\n if (!this.timestamp) return \"\";\n return new Date(this.timestamp).toLocaleTimeString([], {\n hour: \"2-digit\",\n minute: \"2-digit\",\n });\n }\n\n private _onButtonClick(action: MessageAction) {\n this.dispatchEvent(\n new CustomEvent<string>(\"chat-action\", {\n detail: action.value ?? action.label,\n bubbles: true,\n composed: true,\n })\n );\n }\n\n render() {\n const isUser = this.sender === \"user\";\n const image = this.messageData?.image ? String(this.messageData.image) : null;\n const title = String(this.messageData?.title ?? \"\");\n const subtitle = this.messageData?.subtitle\n ? String(this.messageData.subtitle)\n : null;\n const buttons = (this.messageData?.buttons ?? []) as MessageAction[];\n\n return html`\n <div class=\"message ${isUser ? \"user\" : \"bot\"}\">\n ${!isUser\n ? html`\n <div class=\"avatar ${this.hideAvatar ? \"hidden\" : \"\"}\">\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"5\" y=\"8\" width=\"14\" height=\"12\" rx=\"2.5\" />\n <circle cx=\"9.5\" cy=\"13\" r=\"1.5\" fill=\"white\" />\n <circle cx=\"14.5\" cy=\"13\" r=\"1.5\" fill=\"white\" />\n <path\n d=\"M9.5 17c.5.5 1.4.8 2.5.8s2-.3 2.5-.8\"\n stroke=\"white\"\n stroke-width=\"1.2\"\n stroke-linecap=\"round\"\n fill=\"none\"\n />\n </svg>\n </div>\n `\n : nothing}\n <div class=\"content\">\n <div class=\"card\">\n ${image\n ? html`\n ${!this._imgLoaded ? html`<div class=\"card-image-skeleton\"></div>` : nothing}\n <img\n class=\"card-image\"\n src=\"${image}\"\n alt=\"${title}\"\n style=\"${this._imgLoaded ? \"\" : \"display:none\"}\"\n @load=${() => { this._imgLoaded = true; }}\n />\n `\n : nothing}\n <div class=\"card-body\">\n <p class=\"card-title\">${title}</p>\n ${subtitle ? html`<p class=\"card-subtitle\">${subtitle}</p>` : nothing}\n </div>\n ${buttons.length > 0 ? html`\n <div class=\"card-divider\"></div>\n <div class=\"card-actions\">\n ${buttons.map(\n (btn) => html`\n <button\n class=\"card-btn\"\n type=\"button\"\n @click=${() => this._onButtonClick(btn)}\n >${btn.label}</button>\n `\n )}\n </div>\n ` : nothing}\n </div>\n ${this._time ? html`<span class=\"time\">${this._time}</span>` : nothing}\n </div>\n </div>\n `;\n }\n}\n\nMessageTypeRegistry.register(\n \"card\",\n CardMessage as unknown as typeof HTMLElement\n);\n\nexport default CardMessage;\n","import { LitElement, html, css, nothing } from \"lit\";\nimport { customElement, property, state } from \"lit/decorators.js\";\nimport { MessageTypeRegistry, type MessageSender, type MessageAction } from \"@chativa/core\";\n\n/**\n * Buttons message component.\n * Renders a bot text bubble followed by a vertical list of full-width action buttons.\n *\n * Default (one-time) mode — `data.persistent` omitted or false:\n * Once a button is tapped, the list is replaced by \"✓ Selected label\".\n * Further clicks are ignored.\n *\n * Persistent mode — `data.persistent: true`:\n * Buttons remain visible after selection. The chosen button is highlighted.\n * The user can re-click another button to change their selection.\n *\n * Register a message of type \"buttons\" with:\n * {\n * text?: \"Please choose an option:\",\n * persistent?: true, // optional — default false\n * buttons: [{ label: \"Option A\" }, { label: \"Option B\", value: \"/b\" }]\n * }\n */\n@customElement(\"buttons-message\")\nexport class ButtonsMessage extends LitElement {\n static override styles = css`\n :host {\n display: block;\n }\n\n .message {\n display: flex;\n align-items: flex-end;\n gap: 8px;\n max-width: 82%;\n margin-bottom: 2px;\n }\n\n .message.bot { margin-right: auto; }\n .message.user { margin-left: auto; flex-direction: row-reverse; }\n\n .avatar {\n width: 28px;\n height: 28px;\n border-radius: 50%;\n background: #ede9fe;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n }\n\n .avatar.hidden { visibility: hidden; }\n .avatar svg { width: 16px; height: 16px; color: #7c3aed; }\n\n .content {\n display: flex;\n flex-direction: column;\n gap: 6px;\n }\n\n .bubble {\n padding: 9px 13px;\n font-size: 0.875rem;\n line-height: 1.5;\n word-break: break-word;\n background: #f1f5f9;\n color: #0f172a;\n border-radius: 4px 16px 16px 16px;\n }\n\n .btn-list {\n display: flex;\n flex-direction: column;\n gap: 6px;\n width: 220px;\n }\n\n .action-btn {\n width: 100%;\n padding: 9px 14px;\n background: #ffffff;\n border: 1.5px solid var(--chativa-primary-color, #4f46e5);\n border-radius: 10px;\n color: var(--chativa-primary-color, #4f46e5);\n font-size: 0.875rem;\n font-weight: 500;\n cursor: pointer;\n text-align: center;\n font-family: inherit;\n transition: background 0.15s, color 0.15s, opacity 0.15s;\n }\n\n .action-btn:hover:not(:disabled) {\n background: var(--chativa-primary-color, #4f46e5);\n color: #ffffff;\n }\n\n .action-btn:active:not(:disabled) {\n opacity: 0.85;\n }\n\n /* Persistent mode — selected state */\n .action-btn.selected {\n background: var(--chativa-primary-color, #4f46e5);\n color: #ffffff;\n }\n\n /* Persistent mode — unselected but locked (after another is picked) */\n .action-btn.unselected {\n opacity: 0.45;\n cursor: default;\n }\n\n .selected-label {\n font-size: 0.8125rem;\n color: #64748b;\n padding: 2px 4px;\n }\n\n .time {\n font-size: 0.6875rem;\n color: #94a3b8;\n padding: 0 4px;\n }\n `;\n\n @property({ type: Object }) messageData: Record<string, unknown> = {};\n @property({ type: String }) sender: MessageSender = \"bot\";\n @property({ type: Number }) timestamp = 0;\n @property({ type: Boolean }) hideAvatar = false;\n\n @state() private _selected: string | null = null;\n\n private get _persistent(): boolean {\n return Boolean(this.messageData?.persistent);\n }\n\n private get _time(): string {\n if (!this.timestamp) return \"\";\n return new Date(this.timestamp).toLocaleTimeString([], {\n hour: \"2-digit\",\n minute: \"2-digit\",\n });\n }\n\n private _onButtonClick(action: MessageAction) {\n if (this._persistent) {\n // Allow re-selection; deselect if same button clicked again\n if (this._selected === action.label) {\n this._selected = null;\n return;\n }\n this._selected = action.label;\n } else {\n // One-time mode: lock after first click\n if (this._selected !== null) return;\n this._selected = action.label;\n }\n\n this.dispatchEvent(\n new CustomEvent<string>(\"chat-action\", {\n detail: action.value ?? action.label,\n bubbles: true,\n composed: true,\n })\n );\n }\n\n render() {\n const isUser = this.sender === \"user\";\n const text = this.messageData?.text ? String(this.messageData.text) : null;\n const buttons = (this.messageData?.buttons ?? []) as MessageAction[];\n const persistent = this._persistent;\n\n return html`\n <div class=\"message ${isUser ? \"user\" : \"bot\"}\">\n ${!isUser\n ? html`\n <div class=\"avatar ${this.hideAvatar ? \"hidden\" : \"\"}\">\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"5\" y=\"8\" width=\"14\" height=\"12\" rx=\"2.5\" />\n <circle cx=\"9.5\" cy=\"13\" r=\"1.5\" fill=\"white\" />\n <circle cx=\"14.5\" cy=\"13\" r=\"1.5\" fill=\"white\" />\n <path\n d=\"M9.5 17c.5.5 1.4.8 2.5.8s2-.3 2.5-.8\"\n stroke=\"white\"\n stroke-width=\"1.2\"\n stroke-linecap=\"round\"\n fill=\"none\"\n />\n </svg>\n </div>\n `\n : nothing}\n <div class=\"content\">\n ${text ? html`<div class=\"bubble\">${text}</div>` : nothing}\n\n ${!persistent && this._selected !== null\n /* One-time mode: replace buttons with confirmation label */\n ? html`<span class=\"selected-label\">✓ ${this._selected}</span>`\n /* Persistent mode or pre-selection: show full button list */\n : html`\n <div class=\"btn-list\">\n ${buttons.map((btn) => {\n const isSelected = this._selected === btn.label;\n const isOther = persistent && this._selected !== null && !isSelected;\n return html`\n <button\n class=\"action-btn ${isSelected ? \"selected\" : \"\"} ${isOther ? \"unselected\" : \"\"}\"\n type=\"button\"\n ?disabled=${isOther}\n @click=${() => this._onButtonClick(btn)}\n >${btn.label}</button>\n `;\n })}\n </div>\n `}\n\n ${this._time ? html`<span class=\"time\">${this._time}</span>` : nothing}\n </div>\n </div>\n `;\n }\n}\n\nMessageTypeRegistry.register(\n \"buttons\",\n ButtonsMessage as unknown as typeof HTMLElement\n);\n\nexport default ButtonsMessage;\n","import { LitElement, html, css, nothing } from \"lit\";\nimport { customElement, property } from \"lit/decorators.js\";\nimport { MessageTypeRegistry, type MessageSender } from \"@chativa/core\";\n\n/**\n * File attachment message component.\n * Renders a downloadable file card with file type icon, name and size.\n *\n * Register a message of type \"file\" with:\n * { url: \"https://...\", name: \"report.pdf\", size?: 2048000, mimeType?: \"application/pdf\" }\n */\n\nfunction formatBytes(bytes: number): string {\n if (bytes < 1024) return `${bytes} B`;\n if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`;\n if (bytes < 1024 * 1024 * 1024) return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;\n return `${(bytes / (1024 * 1024 * 1024)).toFixed(1)} GB`;\n}\n\nfunction fileIconAndColor(mimeType: string, name: string): { icon: string; color: string; bg: string } {\n const ext = name.split(\".\").pop()?.toLowerCase() ?? \"\";\n const mime = mimeType.toLowerCase();\n\n if (mime.includes(\"pdf\") || ext === \"pdf\")\n return { icon: \"pdf\", color: \"#dc2626\", bg: \"#fef2f2\" };\n if (mime.includes(\"image\") || [\"jpg\", \"jpeg\", \"png\", \"gif\", \"webp\", \"svg\"].includes(ext))\n return { icon: \"image\", color: \"#0284c7\", bg: \"#f0f9ff\" };\n if (mime.includes(\"video\") || [\"mp4\", \"webm\", \"mov\", \"avi\"].includes(ext))\n return { icon: \"video\", color: \"#7c3aed\", bg: \"#f5f3ff\" };\n if (mime.includes(\"audio\") || [\"mp3\", \"wav\", \"ogg\", \"m4a\"].includes(ext))\n return { icon: \"audio\", color: \"#db2777\", bg: \"#fdf2f8\" };\n if (mime.includes(\"zip\") || mime.includes(\"archive\") || [\"zip\", \"rar\", \"7z\", \"tar\", \"gz\"].includes(ext))\n return { icon: \"zip\", color: \"#ea580c\", bg: \"#fff7ed\" };\n if (mime.includes(\"spreadsheet\") || mime.includes(\"excel\") || [\"xls\", \"xlsx\", \"csv\"].includes(ext))\n return { icon: \"sheet\", color: \"#16a34a\", bg: \"#f0fdf4\" };\n if (mime.includes(\"presentation\") || mime.includes(\"powerpoint\") || [\"ppt\", \"pptx\"].includes(ext))\n return { icon: \"slide\", color: \"#ea580c\", bg: \"#fff7ed\" };\n if (mime.includes(\"word\") || mime.includes(\"document\") || [\"doc\", \"docx\"].includes(ext))\n return { icon: \"doc\", color: \"#0284c7\", bg: \"#f0f9ff\" };\n return { icon: \"file\", color: \"#64748b\", bg: \"#f8fafc\" };\n}\n\nfunction renderFileIcon(icon: string, color: string) {\n // All icons are simple SVG shapes\n const icons: Record<string, string> = {\n pdf: `<path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8l-6-6zm4 18H6V4h7v5h5v11zm-4-8H9v-1h5v1zm0 2H9v-1h5v1zm-2 2H9v-1h3v1z\" fill=\"${color}\"/>`,\n image: `<path d=\"M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z\" fill=\"${color}\"/>`,\n video: `<path d=\"M17 10.5V7c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-3.5l4 4v-11l-4 4z\" fill=\"${color}\"/>`,\n audio: `<path d=\"M12 3v10.55c-.59-.34-1.27-.55-2-.55-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4V7h4V3h-6z\" fill=\"${color}\"/>`,\n zip: `<path d=\"M20 6h-2.18c.07-.33.18-.65.18-1 0-1.66-1.34-3-3-3-1.05 0-1.96.54-2.5 1.35l-.5.67-.5-.68C10.96 2.54 10.05 2 9 2 7.34 2 6 3.34 6 5c0 .35.11.67.18 1H4c-1.11 0-1.99.89-1.99 2L2 19c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-5-2c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zM9 4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm11 15H4v-2l8-5 8 5v2zm0-4.5l-8-5-8 5V8h3v1h2V8h2v1h2V8h3v6.5z\" fill=\"${color}\"/>`,\n sheet: `<path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 14H7v-2h5v2zm5-4H7v-2h10v2zm0-4H7V7h10v2z\" fill=\"${color}\"/>`,\n slide: `<path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 3c1.93 0 3.5 1.57 3.5 3.5S13.93 13 12 13s-3.5-1.57-3.5-3.5S10.07 6 12 6zm7 13H5v-.23c0-.62.28-1.2.76-1.58C7.47 15.82 9.64 15 12 15s4.53.82 6.24 2.19c.48.38.76.97.76 1.58V19z\" fill=\"${color}\"/>`,\n doc: `<path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8l-6-6zm2 16H8v-2h8v2zm0-4H8v-2h8v2zm-3-5V3.5L18.5 9H13z\" fill=\"${color}\"/>`,\n file: `<path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8l-6-6zm4 18H6V4h7v5h5v11z\" fill=\"${color}\"/>`,\n };\n return `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\">${icons[icon] ?? icons.file}</svg>`;\n}\n\n@customElement(\"file-message\")\nexport class FileMessage extends LitElement {\n static override styles = css`\n :host { display: block; }\n\n .message {\n display: flex;\n align-items: flex-end;\n gap: 8px;\n max-width: 82%;\n margin-bottom: 2px;\n }\n\n .message.bot { margin-right: auto; }\n .message.user { margin-left: auto; flex-direction: row-reverse; }\n\n .avatar {\n width: 28px;\n height: 28px;\n border-radius: 50%;\n background: #ede9fe;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n }\n\n .avatar.hidden { visibility: hidden; }\n .avatar svg { width: 16px; height: 16px; color: #7c3aed; }\n\n .content {\n display: flex;\n flex-direction: column;\n gap: 3px;\n }\n\n .file-card {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 11px 14px;\n background: #f8fafc;\n border: 1px solid #e2e8f0;\n border-radius: 12px;\n text-decoration: none;\n min-width: 200px;\n max-width: 260px;\n transition: background 0.15s, border-color 0.15s;\n cursor: pointer;\n }\n\n .file-card:hover {\n background: #f1f5f9;\n border-color: #cbd5e1;\n }\n\n .file-icon {\n width: 40px;\n height: 40px;\n border-radius: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n }\n\n .file-info {\n flex: 1;\n min-width: 0;\n }\n\n .file-name {\n font-size: 0.8125rem;\n font-weight: 600;\n color: #0f172a;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n margin-bottom: 2px;\n }\n\n .file-meta {\n font-size: 0.75rem;\n color: #94a3b8;\n }\n\n .download-icon {\n flex-shrink: 0;\n color: #94a3b8;\n }\n\n .time {\n font-size: 0.6875rem;\n color: #94a3b8;\n padding: 0 4px;\n }\n `;\n\n @property({ type: Object }) messageData: Record<string, unknown> = {};\n @property({ type: String }) sender: MessageSender = \"bot\";\n @property({ type: Number }) timestamp = 0;\n @property({ type: Boolean }) hideAvatar = false;\n\n private get _time(): string {\n if (!this.timestamp) return \"\";\n return new Date(this.timestamp).toLocaleTimeString([], {\n hour: \"2-digit\",\n minute: \"2-digit\",\n });\n }\n\n render() {\n const isUser = this.sender === \"user\";\n const url = String(this.messageData?.url ?? \"#\");\n const name = String(this.messageData?.name ?? \"file\");\n const size = this.messageData?.size as number | undefined;\n const mimeType = String(this.messageData?.mimeType ?? \"\");\n\n const { icon, color, bg } = fileIconAndColor(mimeType, name);\n\n return html`\n <div class=\"message ${isUser ? \"user\" : \"bot\"}\">\n ${!isUser\n ? html`\n <div class=\"avatar ${this.hideAvatar ? \"hidden\" : \"\"}\">\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"5\" y=\"8\" width=\"14\" height=\"12\" rx=\"2.5\" />\n <circle cx=\"9.5\" cy=\"13\" r=\"1.5\" fill=\"white\" />\n <circle cx=\"14.5\" cy=\"13\" r=\"1.5\" fill=\"white\" />\n <path d=\"M9.5 17c.5.5 1.4.8 2.5.8s2-.3 2.5-.8\" stroke=\"white\" stroke-width=\"1.2\" stroke-linecap=\"round\" fill=\"none\" />\n </svg>\n </div>\n `\n : nothing}\n <div class=\"content\">\n <a class=\"file-card\" href=\"${url}\" download=\"${name}\" target=\"_blank\" rel=\"noopener\">\n <div class=\"file-icon\" style=\"background: ${bg}\">\n <div .innerHTML=${renderFileIcon(icon, color)}></div>\n </div>\n <div class=\"file-info\">\n <div class=\"file-name\" title=\"${name}\">${name}</div>\n <div class=\"file-meta\">${size ? formatBytes(size) : \"Download\"}</div>\n </div>\n <svg class=\"download-icon\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n <path d=\"M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z\"/>\n </svg>\n </a>\n ${this._time ? html`<span class=\"time\">${this._time}</span>` : nothing}\n </div>\n </div>\n `;\n }\n}\n\nMessageTypeRegistry.register(\n \"file\",\n FileMessage as unknown as typeof HTMLElement\n);\n\nexport default FileMessage;\n","import { LitElement, html, css, nothing } from \"lit\";\nimport { customElement, property } from \"lit/decorators.js\";\nimport { MessageTypeRegistry, type MessageSender } from \"@chativa/core\";\n\n/**\n * Video message component.\n * Renders a native HTML5 video player with optional poster and caption.\n *\n * Register a message of type \"video\" with:\n * { src: \"https://...\", poster?: \"https://...\", caption?: \"Caption text\" }\n */\n@customElement(\"video-message\")\nexport class VideoMessage extends LitElement {\n static override styles = css`\n :host { display: block; }\n\n .message {\n display: flex;\n align-items: flex-end;\n gap: 8px;\n max-width: 82%;\n margin-bottom: 2px;\n }\n\n .message.bot { margin-right: auto; }\n .message.user { margin-left: auto; flex-direction: row-reverse; }\n\n .avatar {\n width: 28px;\n height: 28px;\n border-radius: 50%;\n background: #ede9fe;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n }\n\n .avatar.hidden { visibility: hidden; }\n .avatar svg { width: 16px; height: 16px; color: #7c3aed; }\n\n .content {\n display: flex;\n flex-direction: column;\n gap: 3px;\n }\n\n .video-wrap {\n border-radius: 4px 16px 16px 16px;\n overflow: hidden;\n background: #0f172a;\n max-width: 280px;\n }\n\n .message.user .video-wrap {\n border-radius: 16px 4px 16px 16px;\n }\n\n video {\n display: block;\n width: 100%;\n max-width: 280px;\n max-height: 200px;\n object-fit: contain;\n background: #0f172a;\n }\n\n .caption {\n font-size: 0.8125rem;\n color: #64748b;\n padding: 0 4px;\n max-width: 280px;\n line-height: 1.4;\n }\n\n .time {\n font-size: 0.6875rem;\n color: #94a3b8;\n padding: 0 4px;\n }\n `;\n\n @property({ type: Object }) messageData: Record<string, unknown> = {};\n @property({ type: String }) sender: MessageSender = \"bot\";\n @property({ type: Number }) timestamp = 0;\n @property({ type: Boolean }) hideAvatar = false;\n\n private get _time(): string {\n if (!this.timestamp) return \"\";\n return new Date(this.timestamp).toLocaleTimeString([], {\n hour: \"2-digit\",\n minute: \"2-digit\",\n });\n }\n\n render() {\n const isUser = this.sender === \"user\";\n const src = String(this.messageData?.src ?? \"\");\n const poster = this.messageData?.poster ? String(this.messageData.poster) : undefined;\n const caption = this.messageData?.caption ? String(this.messageData.caption) : null;\n\n return html`\n <div class=\"message ${isUser ? \"user\" : \"bot\"}\">\n ${!isUser\n ? html`\n <div class=\"avatar ${this.hideAvatar ? \"hidden\" : \"\"}\">\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"5\" y=\"8\" width=\"14\" height=\"12\" rx=\"2.5\" />\n <circle cx=\"9.5\" cy=\"13\" r=\"1.5\" fill=\"white\" />\n <circle cx=\"14.5\" cy=\"13\" r=\"1.5\" fill=\"white\" />\n <path d=\"M9.5 17c.5.5 1.4.8 2.5.8s2-.3 2.5-.8\" stroke=\"white\" stroke-width=\"1.2\" stroke-linecap=\"round\" fill=\"none\" />\n </svg>\n </div>\n `\n : nothing}\n <div class=\"content\">\n <div class=\"video-wrap\">\n <video\n src=\"${src}\"\n poster=\"${poster ?? \"\"}\"\n controls\n preload=\"metadata\"\n playsinline\n ></video>\n </div>\n ${caption ? html`<span class=\"caption\">${caption}</span>` : nothing}\n ${this._time ? html`<span class=\"time\">${this._time}</span>` : nothing}\n </div>\n </div>\n `;\n }\n}\n\nMessageTypeRegistry.register(\n \"video\",\n VideoMessage as unknown as typeof HTMLElement\n);\n\nexport default VideoMessage;\n","import { LitElement, html, css, nothing } from \"lit\";\nimport { customElement, property, state } from \"lit/decorators.js\";\nimport { MessageTypeRegistry, type MessageSender, type MessageAction } from \"@chativa/core\";\n\n/**\n * Carousel message component.\n * Renders a horizontal scrollable row of rich cards with prev/next navigation.\n * Card buttons dispatch `chat-action` events (bubbles + composed).\n *\n * Register a message of type \"carousel\" with:\n * {\n * cards: [\n * {\n * image?: \"https://...\",\n * title: \"Card Title\",\n * subtitle?: \"Supporting text\",\n * buttons?: [{ label: \"Learn More\", value?: \"/learn-more\" }]\n * }\n * ]\n * }\n */\n\ninterface CarouselCard {\n image?: string;\n title: string;\n subtitle?: string;\n buttons?: MessageAction[];\n}\n\n@customElement(\"carousel-message\")\nexport class CarouselMessage extends LitElement {\n static override styles = css`\n :host { display: block; }\n\n .message {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n max-width: 100%;\n margin-bottom: 2px;\n }\n\n .message.bot { margin-right: auto; }\n .message.user { margin-left: auto; flex-direction: row-reverse; }\n\n .avatar {\n width: 28px;\n height: 28px;\n border-radius: 50%;\n background: #ede9fe;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n margin-top: 2px;\n }\n\n .avatar.hidden { visibility: hidden; }\n .avatar svg { width: 16px; height: 16px; color: #7c3aed; }\n\n .content {\n display: flex;\n flex-direction: column;\n gap: 6px;\n min-width: 0;\n flex: 1;\n }\n\n /* ── Navigation row ── */\n .carousel-nav {\n display: flex;\n align-items: center;\n gap: 6px;\n }\n\n .nav-btn {\n flex-shrink: 0;\n width: 26px;\n height: 26px;\n border-radius: 50%;\n border: 1.5px solid #e2e8f0;\n background: #ffffff;\n color: #475569;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);\n transition: background 0.15s, border-color 0.15s, opacity 0.15s;\n padding: 0;\n }\n\n .nav-btn:hover:not(:disabled) {\n background: #f1f5f9;\n border-color: #cbd5e1;\n }\n\n .nav-btn:disabled {\n opacity: 0.3;\n cursor: default;\n box-shadow: none;\n }\n\n .nav-btn svg {\n width: 14px;\n height: 14px;\n flex-shrink: 0;\n }\n\n /* ── Carousel track ── */\n .carousel {\n display: flex;\n gap: 10px;\n overflow-x: auto;\n scroll-snap-type: x mandatory;\n -webkit-overflow-scrolling: touch;\n flex: 1;\n min-width: 0;\n }\n\n /* Hide scrollbar */\n .carousel::-webkit-scrollbar { display: none; }\n .carousel { scrollbar-width: none; }\n\n .card {\n background: #ffffff;\n border: 1px solid #e2e8f0;\n border-radius: 12px;\n overflow: hidden;\n width: 200px;\n flex-shrink: 0;\n scroll-snap-align: start;\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);\n }\n\n .card-image {\n width: 100%;\n height: 120px;\n object-fit: cover;\n display: block;\n }\n\n .card-image-skeleton {\n width: 100%;\n height: 120px;\n background: linear-gradient(90deg, #f1f5f9 25%, #e2e8f0 50%, #f1f5f9 75%);\n background-size: 200% 100%;\n animation: shimmer 1.4s infinite;\n }\n\n @keyframes shimmer {\n 0% { background-position: 200% 0; }\n 100% { background-position: -200% 0; }\n }\n\n .card-body {\n padding: 10px 12px;\n }\n\n .card-title {\n font-size: 0.875rem;\n font-weight: 600;\n color: #0f172a;\n margin: 0 0 3px;\n line-height: 1.3;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .card-subtitle {\n font-size: 0.75rem;\n color: #64748b;\n margin: 0;\n line-height: 1.4;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n }\n\n .card-divider {\n height: 1px;\n background: #f1f5f9;\n }\n\n .card-actions { display: flex; flex-direction: column; }\n\n .card-btn {\n background: none;\n border: none;\n border-bottom: 1px solid #f1f5f9;\n padding: 8px 12px;\n font-size: 0.8125rem;\n font-weight: 500;\n color: var(--chativa-primary-color, #4f46e5);\n cursor: pointer;\n text-align: center;\n font-family: inherit;\n transition: background 0.15s;\n }\n\n .card-btn:last-child { border-bottom: none; }\n .card-btn:hover { background: #f8fafc; }\n .card-btn:active { background: #f1f5f9; }\n\n /* ── Dot indicators ── */\n .dots {\n display: flex;\n gap: 5px;\n justify-content: center;\n }\n\n .dot {\n width: 5px;\n height: 5px;\n border-radius: 50%;\n background: #e2e8f0;\n transition: background 0.2s, transform 0.2s;\n }\n\n .dot.active {\n background: var(--chativa-primary-color, #4f46e5);\n transform: scale(1.3);\n }\n\n .time {\n font-size: 0.6875rem;\n color: #94a3b8;\n padding: 0 4px;\n }\n `;\n\n @property({ type: Object }) messageData: Record<string, unknown> = {};\n @property({ type: String }) sender: MessageSender = \"bot\";\n @property({ type: Number }) timestamp = 0;\n @property({ type: Boolean }) hideAvatar = false;\n\n @state() private _currentIndex = 0;\n @state() private _loadedImages = new Set<number>();\n\n private get _time(): string {\n if (!this.timestamp) return \"\";\n return new Date(this.timestamp).toLocaleTimeString([], {\n hour: \"2-digit\",\n minute: \"2-digit\",\n });\n }\n\n private _scrollTo(index: number) {\n const carousel = this.renderRoot.querySelector(\".carousel\") as HTMLElement | null;\n if (!carousel) return;\n const cards = carousel.querySelectorAll<HTMLElement>(\".card\");\n const card = cards[index];\n if (!card) return;\n this._currentIndex = index;\n carousel.scrollTo({ left: card.offsetLeft, behavior: \"smooth\" });\n }\n\n private _onButtonClick(action: MessageAction) {\n this.dispatchEvent(\n new CustomEvent<string>(\"chat-action\", {\n detail: action.value ?? action.label,\n bubbles: true,\n composed: true,\n })\n );\n }\n\n private _onImageLoad(index: number) {\n this._loadedImages = new Set(this._loadedImages).add(index);\n }\n\n render() {\n const isUser = this.sender === \"user\";\n const cards = (this.messageData?.cards ?? []) as CarouselCard[];\n const total = cards.length;\n const atStart = this._currentIndex === 0;\n const atEnd = this._currentIndex >= total - 1;\n\n return html`\n <div class=\"message ${isUser ? \"user\" : \"bot\"}\">\n ${!isUser\n ? html`\n <div class=\"avatar ${this.hideAvatar ? \"hidden\" : \"\"}\">\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"5\" y=\"8\" width=\"14\" height=\"12\" rx=\"2.5\" />\n <circle cx=\"9.5\" cy=\"13\" r=\"1.5\" fill=\"white\" />\n <circle cx=\"14.5\" cy=\"13\" r=\"1.5\" fill=\"white\" />\n <path d=\"M9.5 17c.5.5 1.4.8 2.5.8s2-.3 2.5-.8\" stroke=\"white\" stroke-width=\"1.2\" stroke-linecap=\"round\" fill=\"none\" />\n </svg>\n </div>\n `\n : nothing}\n <div class=\"content\">\n <div class=\"carousel-nav\">\n <!-- Prev button -->\n <button\n class=\"nav-btn\"\n ?disabled=${atStart}\n @click=${() => this._scrollTo(this._currentIndex - 1)}\n title=\"Previous\"\n >\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\">\n <path d=\"M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z\"/>\n </svg>\n </button>\n\n <!-- Scrollable track -->\n <div class=\"carousel\">\n ${cards.map(\n (card, i) => html`\n <div class=\"card\">\n ${card.image\n ? html`\n ${!this._loadedImages.has(i)\n ? html`<div class=\"card-image-skeleton\"></div>`\n : nothing}\n <img\n class=\"card-image\"\n src=\"${card.image}\"\n alt=\"${card.title}\"\n style=\"${this._loadedImages.has(i) ? \"\" : \"display:none\"}\"\n @load=${() => this._onImageLoad(i)}\n />\n `\n : nothing}\n <div class=\"card-body\">\n <p class=\"card-title\" title=\"${card.title}\">${card.title}</p>\n ${card.subtitle\n ? html`<p class=\"card-subtitle\">${card.subtitle}</p>`\n : nothing}\n </div>\n ${card.buttons && card.buttons.length > 0\n ? html`\n <div class=\"card-divider\"></div>\n <div class=\"card-actions\">\n ${card.buttons.map(\n (btn) => html`\n <button\n class=\"card-btn\"\n type=\"button\"\n @click=${() => this._onButtonClick(btn)}\n >${btn.label}</button>\n `\n )}\n </div>\n `\n : nothing}\n </div>\n `\n )}\n </div>\n\n <!-- Next button -->\n <button\n class=\"nav-btn\"\n ?disabled=${atEnd}\n @click=${() => this._scrollTo(this._currentIndex + 1)}\n title=\"Next\"\n >\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\">\n <path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"/>\n </svg>\n </button>\n </div>\n\n <!-- Dot indicators (only when > 1 card) -->\n ${total > 1 ? html`\n <div class=\"dots\">\n ${cards.map(\n (_, i) => html`\n <div\n class=\"dot ${i === this._currentIndex ? \"active\" : \"\"}\"\n @click=${() => this._scrollTo(i)}\n style=\"cursor: pointer\"\n ></div>\n `\n )}\n </div>\n ` : nothing}\n\n ${this._time ? html`<span class=\"time\">${this._time}</span>` : nothing}\n </div>\n </div>\n `;\n }\n}\n\nMessageTypeRegistry.register(\n \"carousel\",\n CarouselMessage as unknown as typeof HTMLElement\n);\n\nexport default CarouselMessage;\n","import { LitElement, html, css } from \"lit\";\nimport { customElement, state } from \"lit/decorators.js\";\nimport { t } from \"i18next\";\nimport i18next from \"../i18n/i18n\";\n\ninterface EmojiCategory {\n label: string;\n icon: string;\n emojis: string[];\n}\n\nconst CATEGORIES: EmojiCategory[] = [\n {\n label: \"Smileys\",\n icon: \"😀\",\n emojis: [\n \"😀\",\"😃\",\"😄\",\"😁\",\"😆\",\"😅\",\"🤣\",\"😂\",\"🙂\",\"🙃\",\n \"😉\",\"😊\",\"😇\",\"🥰\",\"😍\",\"🤩\",\"😘\",\"😗\",\"😚\",\"😙\",\n \"🥲\",\"😋\",\"😛\",\"😜\",\"🤪\",\"😝\",\"🤑\",\"🤗\",\"🤭\",\"🤫\",\n \"🤔\",\"🤐\",\"🤨\",\"😐\",\"😑\",\"😶\",\"😏\",\"😒\",\"🙄\",\"😬\",\n \"🤥\",\"😌\",\"😔\",\"😪\",\"🤤\",\"😴\",\"😷\",\"🤒\",\"🤕\",\"🤢\",\n \"🤮\",\"🤧\",\"🥵\",\"🥶\",\"🥴\",\"😵\",\"🤯\",\"🤠\",\"🥳\",\"🥸\",\n \"😎\",\"🤓\",\"🧐\",\"😕\",\"😟\",\"🙁\",\"☹️\",\"😮\",\"😯\",\"😲\",\n \"😳\",\"🥺\",\"😦\",\"😧\",\"😨\",\"😰\",\"😥\",\"😢\",\"😭\",\"😱\",\n ],\n },\n {\n label: \"Gestures\",\n icon: \"👍\",\n emojis: [\n \"👋\",\"🤚\",\"🖐️\",\"✋\",\"🖖\",\"👌\",\"🤌\",\"🤏\",\"✌️\",\"🤞\",\n \"🤟\",\"🤘\",\"🤙\",\"👈\",\"👉\",\"👆\",\"🖕\",\"👇\",\"☝️\",\"👍\",\n \"👎\",\"✊\",\"👊\",\"🤛\",\"🤜\",\"👏\",\"🙌\",\"👐\",\"🤲\",\"🤝\",\n \"🙏\",\"✍️\",\"💅\",\"🤳\",\"💪\",\"🦾\",\"🦿\",\"🦵\",\"🦶\",\"👂\",\n ],\n },\n {\n label: \"Hearts\",\n icon: \"❤️\",\n emojis: [\n \"❤️\",\"🧡\",\"💛\",\"💚\",\"💙\",\"💜\",\"🖤\",\"🤍\",\"🤎\",\"💔\",\n \"❣️\",\"💕\",\"💞\",\"💓\",\"💗\",\"💖\",\"💘\",\"💝\",\"💟\",\"☮️\",\n \"✝️\",\"☪️\",\"🕉️\",\"✡️\",\"🔯\",\"🕎\",\"☯️\",\"☦️\",\"🛐\",\"⛎\",\n ],\n },\n {\n label: \"Animals\",\n icon: \"🐶\",\n emojis: [\n \"🐶\",\"🐱\",\"🐭\",\"🐹\",\"🐰\",\"🦊\",\"🐻\",\"🐼\",\"🐻‍❄️\",\"🐨\",\n \"🐯\",\"🦁\",\"🐮\",\"🐷\",\"🐸\",\"🐵\",\"🙈\",\"🙉\",\"🙊\",\"🐔\",\n \"🐧\",\"🐦\",\"🐤\",\"🦆\",\"🦅\",\"🦉\",\"🦇\",\"🐺\",\"🐗\",\"🐴\",\n \"🦄\",\"🐝\",\"🐛\",\"🦋\",\"🐌\",\"🐞\",\"🐜\",\"🦟\",\"🦗\",\"🐢\",\n ],\n },\n {\n label: \"Food\",\n icon: \"🍕\",\n emojis: [\n \"🍎\",\"🍊\",\"🍋\",\"🍇\",\"🍓\",\"🍒\",\"🍑\",\"🥭\",\"🍍\",\"🥥\",\n \"🍅\",\"🍆\",\"🥑\",\"🌽\",\"🌶️\",\"🥕\",\"🧅\",\"🧄\",\"🥔\",\"🍠\",\n \"🍞\",\"🥐\",\"🧀\",\"🍳\",\"🥞\",\"🧇\",\"🥓\",\"🌭\",\"🍔\",\"🍟\",\n \"🍕\",\"🌮\",\"🌯\",\"🥗\",\"🍝\",\"🍜\",\"🍲\",\"🍛\",\"🍣\",\"🍱\",\n ],\n },\n {\n label: \"Travel\",\n icon: \"✈️\",\n emojis: [\n \"🚗\",\"🚕\",\"🚙\",\"🚌\",\"🏎️\",\"🚓\",\"🚑\",\"🚒\",\"🚐\",\"🛻\",\n \"🚚\",\"🚛\",\"🚜\",\"🏍️\",\"🛵\",\"🚲\",\"🛴\",\"🛺\",\"🚁\",\"✈️\",\n \"🚀\",\"🛸\",\"🛶\",\"⛵\",\"🚤\",\"🛥️\",\"🛳️\",\"⛴️\",\"🚢\",\"🏠\",\n \"🗼\",\"🗽\",\"⛪\",\"🕌\",\"🛕\",\"🕍\",\"⛩️\",\"🏰\",\"🏯\",\"🗺️\",\n ],\n },\n {\n label: \"Objects\",\n icon: \"💡\",\n emojis: [\n \"⌚\",\"📱\",\"💻\",\"⌨️\",\"🖥️\",\"🖨️\",\"📷\",\"📸\",\"📹\",\"🎥\",\n \"📞\",\"☎️\",\"📺\",\"📻\",\"🎙️\",\"🎚️\",\"🎛️\",\"🧭\",\"⏱️\",\"⏰\",\n \"💡\",\"🔦\",\"🕯️\",\"🪔\",\"🧲\",\"🔋\",\"💰\",\"💳\",\"💎\",\"🔑\",\n \"🗝️\",\"🔨\",\"🪓\",\"⛏️\",\"🔧\",\"🔩\",\"🪛\",\"🔫\",\"🧨\",\"💣\",\n ],\n },\n {\n label: \"Symbols\",\n icon: \"✨\",\n emojis: [\n \"✨\",\"🌟\",\"💫\",\"⭐\",\"🌙\",\"☀️\",\"🌈\",\"⚡\",\"❄️\",\"🔥\",\n \"💥\",\"🌊\",\"🌀\",\"🌪️\",\"🌫️\",\"🌤️\",\"⛅\",\"🌦️\",\"🌧️\",\"⛈️\",\n \"❓\",\"❗\",\"💯\",\"🔴\",\"🟠\",\"🟡\",\"🟢\",\"🔵\",\"🟣\",\"⚫\",\n \"⚪\",\"🟤\",\"🔶\",\"🔷\",\"🔸\",\"🔹\",\"🔺\",\"🔻\",\"💠\",\"🔘\",\n ],\n },\n];\n\n@customElement(\"emoji-picker\")\nexport class EmojiPicker extends LitElement {\n static override styles = css`\n :host {\n display: block;\n }\n\n .picker {\n width: 300px;\n background: #ffffff;\n border: 1px solid #e2e8f0;\n border-radius: 14px;\n box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12), 0 2px 8px rgba(0, 0, 0, 0.06);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n }\n\n /* Category tabs */\n .tabs {\n display: flex;\n padding: 8px 8px 0;\n gap: 2px;\n background: #f8fafc;\n border-bottom: 1px solid #e2e8f0;\n overflow-x: auto;\n scrollbar-width: none;\n }\n\n .tabs::-webkit-scrollbar {\n display: none;\n }\n\n .tab {\n flex-shrink: 0;\n width: 32px;\n height: 32px;\n border: none;\n background: transparent;\n border-radius: 8px 8px 0 0;\n cursor: pointer;\n font-size: 1.1rem;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: background 0.1s;\n position: relative;\n }\n\n .tab:hover {\n background: #e2e8f0;\n }\n\n .tab.active {\n background: #ffffff;\n }\n\n .tab.active::after {\n content: \"\";\n position: absolute;\n bottom: -1px;\n left: 0;\n right: 0;\n height: 2px;\n background: var(--chativa-primary-color, #4f46e5);\n border-radius: 2px 2px 0 0;\n }\n\n /* Search */\n .search-wrap {\n padding: 8px 10px 6px;\n border-bottom: 1px solid #f1f5f9;\n }\n\n .search-input {\n width: 100%;\n height: 30px;\n padding: 0 10px;\n border: 1.5px solid #e2e8f0;\n border-radius: 8px;\n font-size: 0.8125rem;\n color: #0f172a;\n background: #f8fafc;\n outline: none;\n box-sizing: border-box;\n font-family: inherit;\n transition: border-color 0.15s;\n }\n\n .search-input:focus {\n border-color: var(--chativa-primary-color, #4f46e5);\n }\n\n .search-input::placeholder {\n color: #94a3b8;\n }\n\n /* Emoji grid */\n .grid {\n display: grid;\n grid-template-columns: repeat(8, 1fr);\n padding: 8px;\n gap: 2px;\n max-height: 200px;\n overflow-y: auto;\n scrollbar-width: thin;\n scrollbar-color: #e2e8f0 transparent;\n }\n\n .grid::-webkit-scrollbar {\n width: 4px;\n }\n\n .grid::-webkit-scrollbar-track {\n background: transparent;\n }\n\n .grid::-webkit-scrollbar-thumb {\n background: #e2e8f0;\n border-radius: 4px;\n }\n\n .emoji-btn {\n width: 100%;\n aspect-ratio: 1;\n border: none;\n background: transparent;\n border-radius: 6px;\n font-size: 1.25rem;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n line-height: 1;\n transition: background 0.1s, transform 0.1s;\n padding: 0;\n }\n\n .emoji-btn:hover {\n background: #f1f5f9;\n transform: scale(1.2);\n }\n\n .emoji-btn:active {\n transform: scale(0.9);\n }\n\n .no-results {\n grid-column: 1 / -1;\n padding: 20px;\n text-align: center;\n font-size: 0.8125rem;\n color: #94a3b8;\n }\n `;\n\n @state() private _activeCategory = 0;\n @state() private _search = \"\";\n private _onLangChange = () => { this.requestUpdate(); };\n\n override connectedCallback() {\n super.connectedCallback();\n i18next.on(\"languageChanged\", this._onLangChange);\n }\n\n override disconnectedCallback() {\n i18next.off(\"languageChanged\", this._onLangChange);\n super.disconnectedCallback();\n }\n\n private _onSearch(e: Event) {\n this._search = (e.target as HTMLInputElement).value;\n }\n\n private _selectEmoji(emoji: string) {\n this.dispatchEvent(\n new CustomEvent<string>(\"emoji-select\", {\n detail: emoji,\n bubbles: true,\n composed: true,\n })\n );\n }\n\n private get _visibleEmojis(): string[] {\n const q = this._search.trim();\n if (q) {\n // Simple search: look in all categories\n return CATEGORIES.flatMap((c) => c.emojis).filter((e) => e.includes(q));\n }\n return CATEGORIES[this._activeCategory].emojis;\n }\n\n render() {\n const emojis = this._visibleEmojis;\n\n return html`\n <div class=\"picker\">\n <div class=\"tabs\">\n ${CATEGORIES.map(\n (cat, i) => html`\n <button\n class=\"tab ${i === this._activeCategory && !this._search ? \"active\" : \"\"}\"\n @click=${() => { this._activeCategory = i; this._search = \"\"; }}\n title=${cat.label}\n >${cat.icon}</button>\n `\n )}\n </div>\n\n <div class=\"search-wrap\">\n <input\n class=\"search-input\"\n type=\"text\"\n placeholder=\"${t(\"emojiPicker.searchPlaceholder\")}\"\n .value=${this._search}\n @input=${this._onSearch}\n autocomplete=\"off\"\n />\n </div>\n\n <div class=\"grid\">\n ${emojis.length === 0\n ? html`<span class=\"no-results\">${t(\"emojiPicker.noResults\")}</span>`\n : emojis.map(\n (emoji) => html`\n <button\n class=\"emoji-btn\"\n type=\"button\"\n @click=${() => this._selectEmoji(emoji)}\n >${emoji}</button>\n `\n )}\n </div>\n </div>\n `;\n }\n}\n\nexport default EmojiPicker;\n","import { LitElement, html, css, nothing } from \"lit\";\nimport { customElement, property, state } from \"lit/decorators.js\";\nimport { t } from \"i18next\";\nimport i18next from \"../i18n/i18n\";\nimport { chatStore, SlashCommandRegistry, resolveText, type ISlashCommand } from \"@chativa/core\";\nimport \"./EmojiPicker\";\n\n@customElement(\"chat-input\")\nclass ChatInput extends LitElement {\n static override styles = css`\n :host {\n display: block;\n flex-shrink: 0;\n position: relative;\n }\n\n .input-area {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 12px 12px;\n background: #ffffff;\n border-top: 1px solid #f1f5f9;\n position: relative;\n }\n\n .input-area.drag-over {\n background: #ede9fe;\n border-top-color: var(--chativa-primary-color, #4f46e5);\n }\n\n .icon-btn {\n width: 34px;\n height: 34px;\n border-radius: 50%;\n border: none;\n background: transparent;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #94a3b8;\n flex-shrink: 0;\n padding: 0;\n transition: color 0.15s, background 0.15s;\n }\n\n .icon-btn:hover {\n color: #64748b;\n background: #f1f5f9;\n }\n\n .icon-btn.active {\n color: var(--chativa-primary-color, #4f46e5);\n background: #ede9fe;\n }\n\n .icon-btn svg {\n width: 20px;\n height: 20px;\n }\n\n .text-input {\n flex: 1;\n min-width: 0;\n min-height: 36px;\n max-height: 120px;\n padding: 8px 14px;\n border: 1.5px solid #e2e8f0;\n border-radius: 18px;\n font-size: 0.875rem;\n line-height: 1.4;\n color: #0f172a;\n background: #f8fafc;\n outline: none;\n font-family: inherit;\n transition: border-color 0.15s, background 0.15s;\n resize: none;\n overflow-y: auto;\n box-sizing: border-box;\n display: block;\n }\n\n .text-input::placeholder {\n color: #94a3b8;\n }\n\n .text-input:focus {\n border-color: var(--chativa-primary-color, #4f46e5);\n background: #ffffff;\n }\n\n .text-input:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n .input-area.disconnected {\n opacity: 0.6;\n pointer-events: none;\n }\n\n .send-btn {\n width: 36px;\n height: 36px;\n border-radius: 50%;\n border: none;\n background: var(--chativa-primary-color, #4f46e5);\n color: white;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n padding: 0;\n transition: opacity 0.15s, transform 0.15s;\n }\n\n .send-btn:hover {\n opacity: 0.9;\n }\n\n .send-btn:active {\n transform: scale(0.92);\n }\n\n .send-btn:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n transform: none;\n }\n\n .send-btn svg {\n width: 18px;\n height: 18px;\n }\n\n /* Hidden file input */\n .file-input {\n display: none;\n }\n\n /* File previews */\n .file-previews {\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n padding: 8px 12px 0;\n background: #ffffff;\n }\n\n .file-chip {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 4px 10px 4px 8px;\n background: #f1f5f9;\n border: 1px solid #e2e8f0;\n border-radius: 999px;\n font-size: 0.75rem;\n color: #374151;\n max-width: 200px;\n }\n\n .file-chip-name {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .file-chip-size {\n color: #94a3b8;\n flex-shrink: 0;\n }\n\n .file-chip-remove {\n flex-shrink: 0;\n width: 16px;\n height: 16px;\n border: none;\n background: none;\n padding: 0;\n cursor: pointer;\n color: #94a3b8;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n transition: background 0.1s, color 0.1s;\n }\n\n .file-chip-remove:hover {\n background: #e2e8f0;\n color: #374151;\n }\n\n /* Emoji picker popup */\n .picker-popup {\n position: absolute;\n bottom: calc(100% + 8px);\n left: 8px;\n z-index: 100;\n }\n\n /* Slash command popup */\n .slash-popup {\n position: absolute;\n bottom: calc(100% + 8px);\n left: 12px;\n right: 12px;\n z-index: 101;\n background: #ffffff;\n border: 1px solid #e2e8f0;\n border-radius: 10px;\n box-shadow: 0 8px 24px rgba(0,0,0,0.12);\n overflow: hidden;\n }\n\n .slash-item {\n display: flex;\n align-items: baseline;\n gap: 8px;\n padding: 9px 14px;\n cursor: pointer;\n transition: background 0.1s;\n border: none;\n background: none;\n width: 100%;\n text-align: left;\n }\n\n .slash-item:hover,\n .slash-item.focused {\n background: #f1f5f9;\n }\n\n .slash-item-name {\n font-size: 0.875rem;\n font-weight: 600;\n color: var(--chativa-primary-color, #4f46e5);\n }\n\n .slash-item-desc {\n font-size: 0.8125rem;\n color: #64748b;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n `;\n\n @property({ type: String }) value = \"\";\n @state() private _pickerOpen = false;\n @state() private _files: File[] = [];\n @state() private _dragOver = false;\n @state() private _slashMatches: ISlashCommand[] = [];\n @state() private _slashFocusIdx = 0;\n\n private _onLangChange = () => { this.requestUpdate(); };\n private _unsubscribeChatStore!: () => void;\n\n // ── Text input ────────────────────────────────────────────\n\n private _onInput(e: Event) {\n const el = e.target as HTMLTextAreaElement;\n this.value = el.value;\n el.style.height = \"auto\";\n el.style.height = `${el.scrollHeight}px`;\n this._updateSlashMatches();\n }\n\n private _updateSlashMatches() {\n if (this.value.startsWith(\"/\")) {\n const query = this.value.slice(1).toLowerCase();\n this._slashMatches = SlashCommandRegistry.list().filter(\n (cmd) => cmd.name.toLowerCase().startsWith(query)\n );\n this._slashFocusIdx = 0;\n } else {\n this._slashMatches = [];\n }\n }\n\n private _onKeyDown(e: KeyboardEvent) {\n // Navigate slash popup with arrow keys\n if (this._slashMatches.length > 0) {\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n this._slashFocusIdx = (this._slashFocusIdx + 1) % this._slashMatches.length;\n return;\n }\n if (e.key === \"ArrowUp\") {\n e.preventDefault();\n this._slashFocusIdx =\n (this._slashFocusIdx - 1 + this._slashMatches.length) % this._slashMatches.length;\n return;\n }\n if (e.key === \"Tab\" || (e.key === \"Enter\" && this._slashMatches.length > 0)) {\n e.preventDefault();\n this._selectSlashCommand(this._slashMatches[this._slashFocusIdx]);\n return;\n }\n if (e.key === \"Escape\") {\n this._slashMatches = [];\n return;\n }\n }\n\n if (e.key === \"Enter\" && !e.shiftKey) {\n e.preventDefault();\n this._send();\n }\n if (e.key === \"Escape\" && this._pickerOpen) {\n this._pickerOpen = false;\n }\n }\n\n private _selectSlashCommand(cmd: ISlashCommand) {\n this.value = `/${cmd.name} `;\n this._slashMatches = [];\n this.updateComplete.then(() => {\n const ta = this.shadowRoot?.querySelector<HTMLTextAreaElement>(\".text-input\");\n if (ta) {\n ta.focus();\n ta.style.height = \"auto\";\n ta.style.height = `${ta.scrollHeight}px`;\n }\n });\n }\n\n private _send() {\n const text = this.value.trim();\n const hasFiles = this._files.length > 0;\n\n // Execute slash command if exact match\n if (text.startsWith(\"/\")) {\n const parts = text.slice(1).split(\" \");\n const name = parts[0];\n const args = parts.slice(1).join(\" \");\n if (SlashCommandRegistry.execute(name, args)) {\n this.value = \"\";\n this._slashMatches = [];\n this._resetTextarea();\n return;\n }\n }\n\n if (hasFiles) {\n this.dispatchEvent(\n new CustomEvent<{ files: File[]; text: string }>(\"send-file\", {\n detail: { files: [...this._files], text },\n bubbles: true,\n composed: true,\n })\n );\n this._files = [];\n }\n\n if (text && !hasFiles) {\n this.dispatchEvent(\n new CustomEvent<string>(\"send-message\", {\n detail: text,\n bubbles: true,\n composed: true,\n })\n );\n } else if (text && hasFiles) {\n // text sent as part of send-file event — nothing extra needed\n }\n\n this.value = \"\";\n this._slashMatches = [];\n this._resetTextarea();\n }\n\n private _resetTextarea() {\n this.updateComplete.then(() => {\n const ta = this.shadowRoot?.querySelector<HTMLTextAreaElement>(\".text-input\");\n if (ta) ta.style.height = \"auto\";\n });\n }\n\n // ── Emoji picker ──────────────────────────────────────────\n\n private _togglePicker() {\n this._pickerOpen = !this._pickerOpen;\n }\n\n private _onEmojiSelect(e: CustomEvent<string>) {\n const emoji = e.detail;\n const ta = this.shadowRoot?.querySelector<HTMLTextAreaElement>(\".text-input\");\n if (ta) {\n const start = ta.selectionStart ?? this.value.length;\n const end = ta.selectionEnd ?? this.value.length;\n this.value = this.value.slice(0, start) + emoji + this.value.slice(end);\n this.updateComplete.then(() => {\n const el = this.shadowRoot?.querySelector<HTMLTextAreaElement>(\".text-input\");\n if (el) {\n el.focus();\n const pos = start + emoji.length;\n el.setSelectionRange(pos, pos);\n }\n });\n } else {\n this.value += emoji;\n }\n this._pickerOpen = false;\n }\n\n // ── File upload ───────────────────────────────────────────\n\n private _openFilePicker() {\n this.shadowRoot?.querySelector<HTMLInputElement>(\".file-input\")?.click();\n }\n\n private _onFileChange(e: Event) {\n const input = e.target as HTMLInputElement;\n if (input.files) this._addFiles(Array.from(input.files));\n input.value = \"\";\n }\n\n private _addFiles(files: File[]) {\n this._files = [...this._files, ...files];\n }\n\n private _removeFile(index: number) {\n this._files = this._files.filter((_, i) => i !== index);\n }\n\n private _formatSize(bytes: number): string {\n if (bytes < 1024) return `${bytes} B`;\n if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`;\n return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;\n }\n\n private _onDragOver(e: DragEvent) {\n e.preventDefault();\n this._dragOver = true;\n }\n\n private _onDragLeave() {\n this._dragOver = false;\n }\n\n private _onDrop(e: DragEvent) {\n e.preventDefault();\n this._dragOver = false;\n const files = e.dataTransfer?.files;\n if (files && files.length > 0) this._addFiles(Array.from(files));\n }\n\n // ── Document click (close popups) ─────────────────────────\n\n private _onDocumentClick = (e: MouseEvent) => {\n if (!this._pickerOpen && this._slashMatches.length === 0) return;\n const path = e.composedPath();\n if (!path.includes(this)) {\n this._pickerOpen = false;\n this._slashMatches = [];\n }\n };\n\n // ── Lifecycle ─────────────────────────────────────────────\n\n connectedCallback() {\n super.connectedCallback();\n document.addEventListener(\"click\", this._onDocumentClick);\n i18next.on(\"languageChanged\", this._onLangChange);\n this._unsubscribeChatStore = chatStore.subscribe(() => this.requestUpdate());\n }\n\n disconnectedCallback() {\n document.removeEventListener(\"click\", this._onDocumentClick);\n i18next.off(\"languageChanged\", this._onLangChange);\n this._unsubscribeChatStore?.();\n super.disconnectedCallback();\n }\n\n // ── Render ────────────────────────────────────────────────\n\n render() {\n const hasText = this.value.trim().length > 0;\n const hasFiles = this._files.length > 0;\n const connected = chatStore.getState().connectorStatus === \"connected\";\n\n return html`\n ${this._files.length > 0 ? html`\n <div class=\"file-previews\">\n ${this._files.map((f, i) => html`\n <div class=\"file-chip\">\n <span class=\"file-chip-name\" title=${f.name}>${f.name}</span>\n <span class=\"file-chip-size\">${this._formatSize(f.size)}</span>\n <button\n class=\"file-chip-remove\"\n type=\"button\"\n aria-label=\"Remove file\"\n @click=${() => this._removeFile(i)}\n >\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" width=\"10\" height=\"10\">\n <path d=\"M18 6L6 18M6 6l12 12\" stroke-linecap=\"round\"/>\n </svg>\n </button>\n </div>\n `)}\n </div>\n ` : nothing}\n\n <div\n class=\"input-area ${connected ? \"\" : \"disconnected\"} ${this._dragOver ? \"drag-over\" : \"\"}\"\n @dragover=${this._onDragOver}\n @dragleave=${this._onDragLeave}\n @drop=${this._onDrop}\n >\n <!-- File attachment button -->\n <input\n class=\"file-input\"\n type=\"file\"\n multiple\n @change=${this._onFileChange}\n />\n <button\n class=\"icon-btn ${hasFiles ? \"active\" : \"\"}\"\n type=\"button\"\n aria-label=\"Attach file\"\n ?disabled=${!connected}\n @click=${(e: MouseEvent) => { e.stopPropagation(); this._openFilePicker(); }}\n >\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.75\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </button>\n\n <!-- Emoji button -->\n <button\n class=\"icon-btn ${this._pickerOpen ? \"active\" : \"\"}\"\n type=\"button\"\n aria-label=\"${t(\"input.emoji\")}\"\n ?disabled=${!connected}\n @click=${(e: MouseEvent) => { e.stopPropagation(); this._togglePicker(); }}\n >\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.75\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"M8 13s1.5 2 4 2 4-2 4-2\" stroke-linecap=\"round\" />\n <circle cx=\"9\" cy=\"9.5\" r=\"1\" fill=\"currentColor\" stroke=\"none\" />\n <circle cx=\"15\" cy=\"9.5\" r=\"1\" fill=\"currentColor\" stroke=\"none\" />\n </svg>\n </button>\n\n <textarea\n class=\"text-input\"\n rows=\"1\"\n .value=${this.value}\n @input=${this._onInput}\n @keydown=${this._onKeyDown}\n placeholder=\"${t(\"input.placeholder\")}\"\n autocomplete=\"off\"\n spellcheck=\"true\"\n ?disabled=${!connected}\n ></textarea>\n\n <button\n class=\"send-btn\"\n type=\"button\"\n ?disabled=${(!hasText && !hasFiles) || !connected}\n @click=${this._send}\n aria-label=\"${t(\"input.send\")}\"\n >\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M2.01 21L23 12 2.01 3 2 10l15 2-15 2z\" />\n </svg>\n </button>\n </div>\n\n <!-- Slash command popup -->\n ${this._slashMatches.length > 0 ? html`\n <div class=\"slash-popup\">\n ${this._slashMatches.map((cmd, i) => html`\n <button\n class=\"slash-item ${i === this._slashFocusIdx ? \"focused\" : \"\"}\"\n type=\"button\"\n @click=${() => this._selectSlashCommand(cmd)}\n >\n <span class=\"slash-item-name\">/${cmd.name}</span>\n <span class=\"slash-item-desc\">${resolveText(cmd.description)}</span>\n </button>\n `)}\n </div>\n ` : nothing}\n\n <!-- Emoji picker popup -->\n ${this._pickerOpen ? html`\n <div class=\"picker-popup\" @click=${(e: MouseEvent) => e.stopPropagation()}>\n <emoji-picker @emoji-select=${this._onEmojiSelect}></emoji-picker>\n </div>\n ` : nothing}\n `;\n }\n}\n\nexport default ChatInput;\n","import { LitElement, html, css } from \"lit\";\nimport { customElement } from \"lit/decorators.js\";\nimport { unsafeStatic } from \"lit/static-html.js\";\nimport { html as staticHtml } from \"lit/static-html.js\";\nimport { t } from \"i18next\";\nimport i18next from \"../i18n/i18n\";\n\nimport { messageStore, chatStore, type StoredMessage } from \"@chativa/core\";\n\nfunction resolveTag(component: typeof HTMLElement): string {\n const name = customElements.getName?.(component);\n return name ?? \"default-text-message\";\n}\n\n@customElement(\"chat-message-list\")\nclass ChatMessageList extends LitElement {\n static override styles = css`\n :host {\n display: flex;\n flex-direction: column;\n flex: 1;\n min-height: 0;\n position: relative;\n }\n\n .list {\n flex: 1;\n overflow-y: auto;\n padding: 16px;\n display: flex;\n flex-direction: column;\n gap: 2px;\n scroll-behavior: smooth;\n }\n\n /* Custom scrollbar */\n .list::-webkit-scrollbar {\n width: 4px;\n }\n .list::-webkit-scrollbar-track {\n background: transparent;\n }\n .list::-webkit-scrollbar-thumb {\n background: #e2e8f0;\n border-radius: 4px;\n }\n .list::-webkit-scrollbar-thumb:hover {\n background: #cbd5e1;\n }\n\n /* Load more history button */\n .load-more-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n width: 100%;\n padding: 8px 12px;\n margin-bottom: 8px;\n border: 1px solid #e2e8f0;\n border-radius: 8px;\n background: #f8fafc;\n color: #64748b;\n font-size: 0.8125rem;\n font-weight: 500;\n cursor: pointer;\n transition: background 0.15s, border-color 0.15s;\n flex-shrink: 0;\n }\n\n .load-more-btn:hover {\n background: #f1f5f9;\n border-color: #cbd5e1;\n }\n\n .load-more-btn:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n }\n\n .empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n flex: 1;\n gap: 12px;\n padding: 24px;\n text-align: center;\n }\n\n .empty-icon {\n width: 56px;\n height: 56px;\n border-radius: 50%;\n background: #ede9fe;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .empty-icon svg {\n width: 28px;\n height: 28px;\n color: #7c3aed;\n }\n\n .empty-title {\n font-size: 0.9375rem;\n font-weight: 600;\n color: #0f172a;\n margin: 0;\n }\n\n .empty-subtitle {\n font-size: 0.8125rem;\n color: #64748b;\n margin: 0;\n }\n\n /* Loading state */\n .connecting {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n flex: 1;\n gap: 14px;\n padding: 24px;\n text-align: center;\n }\n\n .spinner {\n width: 36px;\n height: 36px;\n border: 3px solid #e2e8f0;\n border-top-color: var(--chativa-primary-color, #4f46e5);\n border-radius: 50%;\n animation: spin 0.8s linear infinite;\n }\n\n @keyframes spin {\n to { transform: rotate(360deg); }\n }\n\n .connecting-text {\n font-size: 0.8125rem;\n color: #64748b;\n margin: 0;\n }\n\n /* Typing indicator */\n .typing-bubble {\n display: flex;\n align-items: center;\n gap: 5px;\n padding: 10px 14px;\n background: #f1f5f9;\n border-radius: 18px 18px 18px 4px;\n width: fit-content;\n margin-top: 4px;\n }\n\n .typing-bubble span {\n display: block;\n width: 7px;\n height: 7px;\n background: #94a3b8;\n border-radius: 50%;\n animation: typing-bounce 1.2s infinite ease-in-out;\n }\n\n .typing-bubble span:nth-child(1) { animation-delay: 0s; }\n .typing-bubble span:nth-child(2) { animation-delay: 0.2s; }\n .typing-bubble span:nth-child(3) { animation-delay: 0.4s; }\n\n @keyframes typing-bounce {\n 0%, 60%, 100% { transform: translateY(0); opacity: 0.5; }\n 30% { transform: translateY(-5px); opacity: 1; }\n }\n\n /* New-message pill */\n .new-msg-pill {\n position: absolute;\n bottom: 12px;\n left: 50%;\n transform: translateX(-50%);\n background: var(--chativa-primary-color, #4f46e5);\n color: #fff;\n font-size: 0.75rem;\n font-weight: 600;\n padding: 6px 14px;\n border-radius: 999px;\n cursor: pointer;\n border: none;\n box-shadow: 0 4px 14px rgba(79,70,229,0.35);\n display: flex;\n align-items: center;\n gap: 6px;\n animation: pill-in 0.2s ease;\n white-space: nowrap;\n z-index: 10;\n }\n\n @keyframes pill-in {\n from { opacity: 0; transform: translateX(-50%) translateY(8px); }\n to { opacity: 1; transform: translateX(-50%) translateY(0); }\n }\n\n /* Reconnecting banner */\n .reconnecting-banner {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 14px;\n background: #fefce8;\n border: 1px solid #fde047;\n border-radius: 10px;\n margin-bottom: 8px;\n font-size: 0.8125rem;\n color: #854d0e;\n flex-shrink: 0;\n }\n\n .mini-spinner {\n width: 14px;\n height: 14px;\n border: 2px solid #fde047;\n border-top-color: #854d0e;\n border-radius: 50%;\n animation: spin 0.8s linear infinite;\n flex-shrink: 0;\n }\n\n /* Error state */\n .error-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n flex: 1;\n gap: 14px;\n padding: 24px;\n text-align: center;\n }\n\n .error-icon {\n width: 52px;\n height: 52px;\n border-radius: 50%;\n background: #fee2e2;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .error-icon svg { width: 26px; height: 26px; color: #ef4444; }\n\n .error-title { font-size: 0.9375rem; font-weight: 600; color: #0f172a; margin: 0; }\n .error-subtitle { font-size: 0.8125rem; color: #64748b; margin: 0; }\n\n .retry-btn {\n padding: 8px 20px;\n background: var(--chativa-primary-color, #4f46e5);\n color: #fff;\n border: none;\n border-radius: 20px;\n font-size: 0.875rem;\n font-weight: 600;\n cursor: pointer;\n transition: opacity 0.15s;\n }\n\n .retry-btn:hover { opacity: 0.88; }\n `;\n\n private _onLangChange = () => { this.requestUpdate(); };\n\n private _unsubscribeMessages!: () => void;\n private _unsubscribeChatStore!: () => void;\n private _isAtBottom = true;\n private _hasNewMessages = false;\n private _prevMessageCount = 0;\n private _prevIsTyping = false;\n /** Set to true while a history load is in-flight; cleared in updated(). */\n private _prevIsLoadingHistory = false;\n /** scrollHeight captured just before history load starts. */\n private _scrollHeightBeforeHistory = 0;\n\n private get _list(): Element | null {\n return this.shadowRoot?.querySelector(\".list\") ?? null;\n }\n\n connectedCallback() {\n super.connectedCallback();\n this._unsubscribeMessages = messageStore.subscribe(() =>\n this.requestUpdate()\n );\n this._unsubscribeChatStore = chatStore.subscribe(() =>\n this.requestUpdate()\n );\n i18next.on(\"languageChanged\", this._onLangChange);\n }\n\n disconnectedCallback() {\n this._unsubscribeMessages?.();\n this._unsubscribeChatStore?.();\n i18next.off(\"languageChanged\", this._onLangChange);\n this._list?.removeEventListener(\"scroll\", this._onScroll);\n super.disconnectedCallback();\n }\n\n private _onScroll = () => {\n const list = this._list;\n if (!list) return;\n const threshold = 60;\n this._isAtBottom =\n list.scrollTop + list.clientHeight >= list.scrollHeight - threshold;\n if (this._isAtBottom) {\n this._hasNewMessages = false;\n this.requestUpdate();\n }\n };\n\n firstUpdated() {\n this._list?.addEventListener(\"scroll\", this._onScroll, { passive: true });\n }\n\n updated() {\n const currentCount = messageStore.getState().messages.length;\n const { isTyping, isLoadingHistory } = chatStore.getState();\n\n const typingChanged = isTyping !== this._prevIsTyping;\n this._prevIsTyping = isTyping;\n\n // Detect when history loading just finished (true → false transition)\n const historyJustLoaded = this._prevIsLoadingHistory && !isLoadingHistory;\n this._prevIsLoadingHistory = isLoadingHistory;\n\n if (historyJustLoaded && this._scrollHeightBeforeHistory > 0) {\n // Restore scroll so the user stays at the same visual position after prepend\n requestAnimationFrame(() => {\n const list = this._list;\n if (list) {\n const delta = list.scrollHeight - this._scrollHeightBeforeHistory;\n list.scrollTop += delta;\n }\n this._scrollHeightBeforeHistory = 0;\n });\n this._prevMessageCount = currentCount;\n return;\n }\n\n const countIncreased = currentCount > this._prevMessageCount;\n this._prevMessageCount = currentCount;\n\n // While history is being prepended at the top, skip auto-scroll logic entirely\n if (isLoadingHistory) return;\n\n // After /clear — reset scroll flags\n if (currentCount === 0) {\n this._hasNewMessages = false;\n this._isAtBottom = true;\n return;\n }\n\n if (countIncreased) {\n if (this._isAtBottom) {\n this._pinToBottom();\n } else {\n this._hasNewMessages = true;\n this.requestUpdate();\n }\n } else if (typingChanged && this._isAtBottom) {\n this._pinToBottom();\n }\n }\n\n private _pinToBottom() {\n requestAnimationFrame(() => {\n if (!this._isAtBottom) return;\n const list = this._list;\n if (list) list.scrollTop = list.scrollHeight;\n });\n }\n\n private _scrollToBottom() {\n const list = this._list;\n if (!list) return;\n list.scrollTo({ top: list.scrollHeight, behavior: \"smooth\" });\n this._isAtBottom = true;\n this._hasNewMessages = false;\n this.requestUpdate();\n }\n\n private _retry() {\n this.dispatchEvent(\n new CustomEvent(\"chat-retry\", { bubbles: true, composed: true })\n );\n }\n\n private _loadHistory() {\n // Capture scrollHeight now; updated() will apply the delta after data loads\n this._scrollHeightBeforeHistory = this._list?.scrollHeight ?? 0;\n this.dispatchEvent(\n new CustomEvent(\"chat-load-history\", { bubbles: true, composed: true })\n );\n }\n\n private _renderMessage(msg: StoredMessage, i: number, messages: StoredMessage[]) {\n const tag = msg.component\n ? resolveTag(msg.component)\n : \"default-text-message\";\n const next = messages[i + 1];\n const isLastInGroup = !next || next.from !== msg.from;\n return staticHtml`<${unsafeStatic(tag)}\n .messageData=${msg.data}\n .sender=${msg.from ?? \"bot\"}\n .messageId=${msg.id}\n .timestamp=${isLastInGroup ? (msg.timestamp ?? 0) : 0}\n .hideAvatar=${!isLastInGroup}\n .status=${msg.status ?? \"sent\"}\n ></${unsafeStatic(tag)}>`;\n }\n\n render() {\n const messages = messageStore.getState().messages;\n const { connectorStatus, isTyping, reconnectAttempt, hasMoreHistory, isLoadingHistory } = chatStore.getState();\n\n // Error state: all reconnect attempts exhausted\n if (connectorStatus === \"error\") {\n return html`\n <div class=\"list\">\n <div class=\"error-state\">\n <div class=\"error-icon\">\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z\"/>\n </svg>\n </div>\n <p class=\"error-title\">${t(\"messageList.errorTitle\")}</p>\n <p class=\"error-subtitle\">${t(\"messageList.errorSubtitle\")}</p>\n <button class=\"retry-btn\" @click=${this._retry}>${t(\"messageList.retry\")}</button>\n </div>\n </div>\n `;\n }\n\n // Initial connecting (no messages yet)\n if (connectorStatus === \"connecting\" && messages.length === 0) {\n return html`\n <div class=\"list\">\n <div class=\"connecting\">\n <div class=\"spinner\"></div>\n <p class=\"connecting-text\">${t(\"messageList.connecting\")}</p>\n </div>\n </div>\n `;\n }\n\n return html`\n <div\n class=\"list\"\n role=\"log\"\n aria-live=\"polite\"\n aria-label=\"Chat messages\"\n aria-relevant=\"additions\"\n >\n ${connectorStatus === \"connecting\" && messages.length > 0 ? html`\n <div class=\"reconnecting-banner\">\n <div class=\"mini-spinner\"></div>\n ${t(\"messageList.reconnecting\", { attempt: reconnectAttempt })}\n </div>\n ` : null}\n\n ${hasMoreHistory ? html`\n <button\n class=\"load-more-btn\"\n ?disabled=${isLoadingHistory}\n @click=${this._loadHistory}\n >\n ${isLoadingHistory\n ? html`<div class=\"mini-spinner\"></div>`\n : html`↑ ${t(\"messageList.loadMore\", { defaultValue: \"Load previous messages\" })}`}\n </button>\n ` : null}\n\n ${messages.length === 0\n ? html`\n <div class=\"empty\">\n <div class=\"empty-icon\">\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M20 2H4a2 2 0 0 0-2 2v18l4-4h14a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2zm-2 10H6V10h12v2zm0-3H6V7h12v2z\"\n />\n </svg>\n </div>\n <p class=\"empty-title\">${t(\"messageList.emptyTitle\")}</p>\n <p class=\"empty-subtitle\">${t(\"messageList.emptySubtitle\")}</p>\n </div>\n `\n : messages.map((msg, i) => this._renderMessage(msg, i, messages))}\n\n ${isTyping ? html`\n <div class=\"typing-bubble\">\n <span></span><span></span><span></span>\n </div>\n ` : null}\n </div>\n ${this._hasNewMessages ? html`\n <button class=\"new-msg-pill\" @click=${this._scrollToBottom}>\n ↓ ${t(\"messageList.newMessage\")}\n </button>\n ` : null}\n `;\n }\n}\n\nexport default ChatMessageList;\n","import { LitElement, html, css, nothing } from \"lit\";\nimport { customElement } from \"lit/decorators.js\";\nimport { t } from \"i18next\";\nimport { ChatbotMixin } from \"../mixins/ChatbotMixin\";\n\n@customElement(\"chat-header\")\nclass ChatHeader extends ChatbotMixin(LitElement) {\n static override styles = css`\n :host {\n display: block;\n flex-shrink: 0;\n }\n\n .header {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 14px 16px;\n background: linear-gradient(\n 135deg,\n var(--chativa-primary-color, #4f46e5) 0%,\n var(--chativa-primary-dark, #7c3aed) 100%\n );\n cursor: grab;\n user-select: none;\n }\n\n .header:active {\n cursor: grabbing;\n }\n\n .avatar {\n width: 40px;\n height: 40px;\n border-radius: 50%;\n background: rgba(255, 255, 255, 0.18);\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n pointer-events: none;\n }\n\n .avatar svg {\n width: 22px;\n height: 22px;\n color: white;\n }\n\n .info {\n flex: 1;\n min-width: 0;\n pointer-events: none;\n }\n\n .title {\n display: block;\n color: white;\n font-weight: 700;\n font-size: 0.9375rem;\n letter-spacing: -0.01em;\n line-height: 1.25;\n }\n\n .status {\n display: flex;\n align-items: center;\n gap: 5px;\n margin-top: 3px;\n }\n\n .status-dot {\n width: 7px;\n height: 7px;\n border-radius: 50%;\n background: #4ade80;\n flex-shrink: 0;\n transition: background 0.3s ease;\n }\n\n .status-dot.connecting {\n background: #fbbf24;\n animation: pulse 1.2s ease-in-out infinite;\n }\n\n .status-dot.error {\n background: #f87171;\n }\n\n .status-dot.disconnected {\n background: #94a3b8;\n }\n\n @keyframes pulse {\n 0%, 100% { opacity: 1; transform: scale(1); }\n 50% { opacity: 0.45; transform: scale(0.75); }\n }\n\n .status-text {\n color: rgba(255, 255, 255, 0.75);\n font-size: 0.75rem;\n font-weight: 400;\n }\n\n .actions {\n display: flex;\n align-items: center;\n gap: 4px;\n flex-shrink: 0;\n }\n\n .icon-btn {\n width: 32px;\n height: 32px;\n border-radius: 50%;\n border: none;\n background: rgba(255, 255, 255, 0.12);\n color: white;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: background 0.15s ease;\n flex-shrink: 0;\n padding: 0;\n }\n\n .icon-btn:hover {\n background: rgba(255, 255, 255, 0.25);\n }\n\n .icon-btn svg {\n width: 15px;\n height: 15px;\n }\n `;\n\n private get _statusLabel(): string {\n switch (this.themeState.connectorStatus) {\n case \"connecting\": return t(\"header.status.connecting\");\n case \"connected\": return t(\"header.status.connected\");\n case \"error\": return t(\"header.status.error\");\n case \"disconnected\": return t(\"header.status.disconnected\");\n default: return t(\"header.status.offline\");\n }\n }\n\n private _onHeaderMouseDown(e: MouseEvent) {\n if ((e.target as Element).closest(\".actions\")) return;\n e.preventDefault();\n this.dispatchEvent(\n new CustomEvent(\"chat-drag-start\", {\n detail: { clientX: e.clientX, clientY: e.clientY },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n private _onHeaderTouchStart(e: TouchEvent) {\n if ((e.target as Element).closest(\".actions\")) return;\n const touch = e.touches[0];\n this.dispatchEvent(\n new CustomEvent(\"chat-drag-start\", {\n detail: { clientX: touch.clientX, clientY: touch.clientY },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n render() {\n const { connectorStatus, isFullscreen, allowFullscreen } = this.themeState;\n return html`\n <div\n class=\"header\"\n @mousedown=${this._onHeaderMouseDown}\n @touchstart=${this._onHeaderTouchStart}\n >\n <div class=\"avatar\">\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"5\" y=\"8\" width=\"14\" height=\"12\" rx=\"2.5\" />\n <circle cx=\"9.5\" cy=\"13\" r=\"1.5\" fill=\"white\" />\n <circle cx=\"14.5\" cy=\"13\" r=\"1.5\" fill=\"white\" />\n <path\n d=\"M9.5 17c.5.5 1.4.8 2.5.8s2-.3 2.5-.8\"\n stroke=\"white\"\n stroke-width=\"1.2\"\n stroke-linecap=\"round\"\n fill=\"none\"\n />\n <path d=\"M12 5v3\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" />\n <circle cx=\"12\" cy=\"4\" r=\"1.5\" fill=\"white\" />\n </svg>\n </div>\n\n <div class=\"info\">\n <span class=\"title\">${t(\"header.title\")}</span>\n <div class=\"status\">\n <span class=\"status-dot ${connectorStatus}\"></span>\n <span class=\"status-text\">${this._statusLabel}</span>\n </div>\n </div>\n\n <div class=\"actions\">\n ${allowFullscreen ? html`\n <button\n class=\"icon-btn\"\n @click=${() => this.themeState.toggleFullscreen()}\n aria-label=\"${isFullscreen ? t(\"header.fullscreen.exit\") : t(\"header.fullscreen.enter\")}\"\n title=\"${isFullscreen ? t(\"header.fullscreen.exit\") : t(\"header.fullscreen.enter\")}\"\n >\n ${isFullscreen\n ? html`<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M8 3v3a2 2 0 0 1-2 2H3M21 8h-3a2 2 0 0 1-2-2V3M3 16h3a2 2 0 0 1 2 2v3M16 21v-3a2 2 0 0 1 2-2h3\" />\n </svg>`\n : html`<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M8 3H5a2 2 0 0 0-2 2v3M21 8V5a2 2 0 0 0-2-2h-3M3 16v3a2 2 0 0 0 2 2h3M16 21h3a2 2 0 0 0 2-2v-3\" />\n </svg>`}\n </button>\n ` : nothing}\n\n <button\n class=\"icon-btn\"\n @click=${() => this.themeState.close()}\n aria-label=\"${t(\"header.close\")}\"\n title=\"${t(\"header.close\")}\"\n >\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M18 6L6 18M6 6l12 12\" />\n </svg>\n </button>\n </div>\n </div>\n `;\n }\n}\n\nexport default ChatHeader;\n","import { LitElement, html, css, nothing } from \"lit\";\nimport { customElement, property } from \"lit/decorators.js\";\nimport { t } from \"i18next\";\nimport {\n ChatEngine,\n ConnectorRegistry,\n MessageTypeRegistry,\n SlashCommandRegistry,\n messageStore,\n createOutgoingMessage,\n} from \"@chativa/core\";\nimport { ChatbotMixin } from \"../mixins/ChatbotMixin\";\n\nimport \"./DefaultTextMessage\";\nimport \"./QuickReplyMessage\";\nimport \"./ImageMessage\";\nimport \"./CardMessage\";\nimport \"./ButtonsMessage\";\nimport \"./FileMessage\";\nimport \"./VideoMessage\";\nimport \"./CarouselMessage\";\nimport \"./ChatInput\";\nimport \"./ChatMessageList\";\nimport \"./ChatHeader\";\nMessageTypeRegistry.setFallback(\n customElements.get(\"default-text-message\") as unknown as typeof HTMLElement\n);\n\nconst SIZE_PX: Record<string, number> = { small: 44, medium: 56, large: 68 };\n\n@customElement(\"chat-iva\")\nexport class ChatWidget extends ChatbotMixin(LitElement) {\n static override styles = css`\n :host {\n display: block;\n }\n\n @keyframes slideUp {\n from { opacity: 0; transform: translateY(18px) scale(0.96); }\n to { opacity: 1; transform: translateY(0) scale(1); }\n }\n\n @keyframes fadeIn {\n from { opacity: 0; }\n to { opacity: 1; }\n }\n\n .widget {\n position: fixed;\n display: flex;\n flex-direction: column;\n background: #ffffff;\n border-radius: 16px;\n box-shadow: 0 24px 64px rgba(0, 0, 0, 0.14), 0 6px 20px rgba(0, 0, 0, 0.08);\n overflow: hidden;\n animation: slideUp 0.28s cubic-bezier(0.34, 1.56, 0.64, 1);\n z-index: 9999;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n transition: border-radius 0.25s ease, box-shadow 0.25s ease;\n }\n\n .widget.fullscreen {\n inset: 0 !important;\n width: 100% !important;\n height: 100% !important;\n border-radius: 0 !important;\n animation: fadeIn 0.2s ease;\n }\n\n /* Applied directly via JS — no transition during drag */\n .widget.dragging {\n transition: none !important;\n animation: none !important;\n user-select: none;\n cursor: grabbing;\n }\n\n @media (max-width: 480px) {\n .widget {\n inset: 0 !important;\n width: 100% !important;\n height: 100% !important;\n border-radius: 0 !important;\n animation: fadeIn 0.18s ease;\n }\n }\n `;\n\n @property({ type: String }) connector = \"dummy\";\n\n /**\n * Set as HTML attribute to start in fullscreen and hide the toggle:\n * <chat-iva fullscreen-only></chat-iva>\n * Equivalent to: setFullscreen(true) + setAllowFullscreen(false)\n */\n @property({ type: Boolean, attribute: \"fullscreen-only\" })\n get fulllscreenOnly(): boolean { return false; }\n set fulllscreenOnly(_v: boolean) {\n this.themeState.setFullscreen(true);\n this.themeState.setAllowFullscreen(false);\n }\n\n // ── Drag state — NOT @state to avoid per-frame re-renders ────────────\n\n /** Last stable drag position (used in _positionStyle). Triggers a render only at drag start/end. */\n private _dragPos: { left: number; top: number } | null = null;\n\n private _dragAnchor: {\n mouseX: number;\n mouseY: number;\n widgetLeft: number;\n widgetTop: number;\n } | null = null;\n\n // ── Lifecycle ────────────────────────────────────────────────────────\n\n private _unsubscribeMessages!: () => void;\n private _engine!: ChatEngine;\n\n connectedCallback() {\n super.connectedCallback();\n\n // Register built-in slash commands with lazy i18n descriptions\n if (!SlashCommandRegistry.has(\"clear\")) {\n SlashCommandRegistry.register({\n name: \"clear\",\n description: () => t(\"commands.clear.description\"),\n execute() {\n messageStore.getState().clear();\n },\n });\n }\n\n const adapter = ConnectorRegistry.get(this.connector);\n this._engine = new ChatEngine(adapter);\n this._engine.init().catch((err: unknown) => {\n console.error(\"[ChatWidget] Engine init failed:\", err);\n });\n this._unsubscribeMessages = messageStore.subscribe(() => this.requestUpdate());\n this.addEventListener(\"chat-drag-start\", this._onDragStart as EventListener);\n this.addEventListener(\"chat-action\", this._onChatAction as EventListener);\n this.addEventListener(\"chat-retry\", this._onChatRetry as EventListener);\n this.addEventListener(\"chativa-feedback\", this._onFeedback as EventListener);\n this.addEventListener(\"send-file\", this._onSendFile as EventListener);\n this.addEventListener(\"chat-load-history\", this._onLoadHistory as EventListener);\n }\n\n disconnectedCallback() {\n this._unsubscribeMessages?.();\n this._engine?.destroy().catch(() => {});\n this.removeEventListener(\"chat-drag-start\", this._onDragStart as EventListener);\n this.removeEventListener(\"chat-action\", this._onChatAction as EventListener);\n this.removeEventListener(\"chat-retry\", this._onChatRetry as EventListener);\n this.removeEventListener(\"chativa-feedback\", this._onFeedback as EventListener);\n this.removeEventListener(\"send-file\", this._onSendFile as EventListener);\n this.removeEventListener(\"chat-load-history\", this._onLoadHistory as EventListener);\n this._detachDragListeners();\n super.disconnectedCallback();\n }\n\n // ── Drag handling — direct DOM, zero re-renders during drag ──────────\n\n private _onDragStart = (e: CustomEvent<{ clientX: number; clientY: number }>) => {\n if (this.themeState.isFullscreen) return;\n\n const widget = this._widget;\n if (!widget) return;\n\n const rect = widget.getBoundingClientRect();\n\n // Store anchor in current left/top coordinates\n this._dragAnchor = {\n mouseX: e.detail.clientX,\n mouseY: e.detail.clientY,\n widgetLeft: rect.left,\n widgetTop: rect.top,\n };\n\n // Switch from corner-based to left/top positioning (ONE re-render)\n this._dragPos = { left: rect.left, top: rect.top };\n this.requestUpdate();\n\n // Add dragging class directly — no re-render needed\n this.updateComplete.then(() => {\n this._widget?.classList.add(\"dragging\");\n });\n\n document.addEventListener(\"mousemove\", this._onMouseMove);\n document.addEventListener(\"mouseup\", this._onMouseUp);\n document.addEventListener(\"touchmove\", this._onTouchMove, { passive: false });\n document.addEventListener(\"touchend\", this._onMouseUp);\n };\n\n private _onMouseMove = (e: MouseEvent) => this._applyDrag(e.clientX, e.clientY);\n\n private _onTouchMove = (e: TouchEvent) => {\n e.preventDefault();\n this._applyDrag(e.touches[0].clientX, e.touches[0].clientY);\n };\n\n private _applyDrag(clientX: number, clientY: number) {\n if (!this._dragAnchor) return;\n\n const dx = clientX - this._dragAnchor.mouseX;\n const dy = clientY - this._dragAnchor.mouseY;\n\n const { layout } = this.theme;\n const w = parseInt(layout?.width ?? \"360\", 10) || 360;\n const h = parseInt(layout?.height ?? \"520\", 10) || 520;\n\n const left = Math.min(Math.max(this._dragAnchor.widgetLeft + dx, -w + 80), window.innerWidth - 80);\n const top = Math.min(Math.max(this._dragAnchor.widgetTop + dy, 0), window.innerHeight - Math.min(h, 80));\n\n // Direct DOM update — NO Lit re-render triggered\n const widget = this._widget;\n if (widget) {\n widget.style.left = `${left}px`;\n widget.style.top = `${top}px`;\n }\n // Keep in sync so _onMouseUp gets the final value cheaply\n this._dragPos = { left, top };\n }\n\n private _onMouseUp = () => {\n // Remove dragging class directly — no re-render\n this._widget?.classList.remove(\"dragging\");\n this._dragAnchor = null;\n this._detachDragListeners();\n // ONE re-render to bake final position into template style binding\n this.requestUpdate();\n };\n\n private _detachDragListeners() {\n document.removeEventListener(\"mousemove\", this._onMouseMove);\n document.removeEventListener(\"mouseup\", this._onMouseUp);\n document.removeEventListener(\"touchmove\", this._onTouchMove);\n document.removeEventListener(\"touchend\", this._onMouseUp);\n }\n\n private get _widget(): HTMLElement | null {\n return this.shadowRoot?.querySelector<HTMLElement>(\".widget\") ?? null;\n }\n\n // ── Message sending ──────────────────────────────────────────────────\n\n private handleSendMessage(e: CustomEvent<string>) {\n const text = e.detail?.trim();\n if (!text) return;\n this._engine\n .send(createOutgoingMessage(text))\n .catch((err: unknown) => console.error(\"[ChatWidget] Send failed:\", err));\n }\n\n private _onChatAction = (e: Event) => {\n const text = (e as CustomEvent<string>).detail?.trim();\n if (!text) return;\n this._engine\n .send(createOutgoingMessage(text))\n .catch((err: unknown) => console.error(\"[ChatWidget] Action send failed:\", err));\n };\n\n private _onFeedback = (e: CustomEvent<{ messageId: string; feedback: \"like\" | \"dislike\" }>) => {\n this._engine\n .sendFeedback(e.detail.messageId, e.detail.feedback)\n .catch((err: unknown) => console.error(\"[ChatWidget] Feedback failed:\", err));\n };\n\n private _onChatRetry = () => {\n this._engine.init().catch((err: unknown) =>\n console.error(\"[ChatWidget] Reconnect failed:\", err)\n );\n };\n\n private _onSendFile = (e: CustomEvent<{ files: File[]; text: string }>) => {\n const { files, text } = e.detail;\n for (const file of files) {\n this._engine.sendFile(file, text ? { caption: text } : undefined)\n .catch((err: unknown) => console.error(\"[ChatWidget] sendFile failed:\", err));\n }\n };\n\n private _onLoadHistory = () => {\n this._engine.loadHistory()\n .catch((err: unknown) => console.error(\"[ChatWidget] loadHistory failed:\", err));\n };\n\n // ── Focus management ─────────────────────────────────────────────────\n\n protected override updated(changed: Map<PropertyKey, unknown>) {\n super.updated?.(changed);\n // Focus the textarea when the chat panel opens\n if (this.themeState.isOpened) {\n this.updateComplete.then(() => {\n const input = this.shadowRoot\n ?.querySelector(\"chat-input\")\n ?.shadowRoot?.querySelector<HTMLElement>(\".text-input\");\n input?.focus();\n });\n }\n }\n\n // ── Positioning ──────────────────────────────────────────────────────\n\n private get _positionStyle(): string {\n const { isFullscreen } = this.themeState;\n if (isFullscreen) return \"\";\n\n const { positionMargin, layout, size, position } = this.theme;\n const w = layout?.width ?? \"360px\";\n const ht = layout?.height ?? \"520px\";\n\n if (this._dragPos) {\n return `left: ${this._dragPos.left}px; top: ${this._dragPos.top}px; width: ${w}; height: ${ht};`;\n }\n\n const m = positionMargin ? `${Number(positionMargin) * 0.5 + 0.5}rem` : \"1rem\";\n const btnPx = SIZE_PX[size ?? \"medium\"] ?? 56;\n const vOff = `calc(${m} + ${btnPx}px + 12px)`;\n const [v, h] = (position ?? \"bottom-right\").split(\"-\");\n return `${v}: ${vOff}; ${h}: ${m}; width: ${w}; height: ${ht};`;\n }\n\n // ── Render ───────────────────────────────────────────────────────────\n\n render() {\n if (!this.themeState.isOpened) return nothing;\n\n const cls = [\"widget\", this.themeState.isFullscreen ? \"fullscreen\" : \"\"]\n .filter(Boolean)\n .join(\" \");\n\n return html`\n <div class=\"${cls}\" style=\"${this._positionStyle}\">\n <chat-header></chat-header>\n <chat-message-list></chat-message-list>\n <chat-input @send-message=${this.handleSendMessage.bind(this)}></chat-input>\n </div>\n `;\n }\n\n}\n\nexport default ChatWidget;\n","import { LitElement, html, css, nothing } from \"lit\";\nimport { customElement, state } from \"lit/decorators.js\";\nimport { t } from \"i18next\";\nimport { ChatbotMixin } from \"../mixins/ChatbotMixin\";\n\nconst SIZE_PX: Record<string, number> = { small: 44, medium: 56, large: 68 };\n\n@customElement(\"chat-bot-button\")\nclass ChatBotButton extends ChatbotMixin(LitElement) {\n static override styles = css`\n :host {\n display: block;\n }\n\n /**\n * .launcher — the positioned wrapper that handles placement + click.\n * Expose via ::part(launcher) so consumers can fully override appearance.\n *\n * Default slot: if no children are provided the gradient circle + animated\n * icons are shown. When children ARE slotted in, the wrapper stays\n * positioned and handles the toggle, but the visual is entirely up to the\n * consumer.\n */\n .launcher {\n position: fixed;\n cursor: pointer;\n border: none;\n outline: none;\n border-radius: 50%;\n background: linear-gradient(\n 135deg,\n var(--chativa-primary-color, #4f46e5) 0%,\n var(--chativa-primary-dark, #7c3aed) 100%\n );\n color: white;\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 4px 20px rgba(79, 70, 229, 0.45),\n 0 2px 8px rgba(0, 0, 0, 0.12);\n transition: transform 0.2s cubic-bezier(0.34, 1.56, 0.64, 1),\n box-shadow 0.2s ease;\n z-index: 10000;\n padding: 0;\n }\n\n /* When the slot has custom content, reset the background so it doesn't\n interfere with user styles. Consumers can keep the gradient by NOT\n targeting ::part(launcher). */\n .launcher.has-slot {\n background: transparent;\n box-shadow: none;\n }\n\n .launcher:hover {\n transform: scale(1.08);\n box-shadow: 0 6px 28px rgba(79, 70, 229, 0.55),\n 0 4px 14px rgba(0, 0, 0, 0.18);\n }\n\n .launcher.has-slot:hover {\n transform: scale(1.08);\n box-shadow: none;\n }\n\n .launcher:active {\n transform: scale(0.94);\n }\n\n /* Default icon animation (only shown when no slot content) */\n .icon-wrap {\n position: relative;\n width: 24px;\n height: 24px;\n }\n\n .icon-wrap svg {\n position: absolute;\n inset: 0;\n width: 24px;\n height: 24px;\n transition: opacity 0.25s ease, transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);\n }\n\n .icon-chat {\n opacity: 1;\n transform: scale(1) rotate(0deg);\n }\n\n .icon-close {\n opacity: 0;\n transform: scale(0.4) rotate(-90deg);\n }\n\n .launcher.is-open .icon-chat {\n opacity: 0;\n transform: scale(0.4) rotate(90deg);\n }\n\n .launcher.is-open .icon-close {\n opacity: 1;\n transform: scale(1) rotate(0deg);\n }\n\n /* Slotted content fills the launcher area */\n ::slotted(*) {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n /* Unread badge */\n .badge {\n position: absolute;\n top: -4px;\n right: -4px;\n min-width: 18px;\n height: 18px;\n padding: 0 4px;\n background: #ef4444;\n color: #fff;\n border-radius: 999px;\n font-size: 0.6875rem;\n font-weight: 700;\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 0 0 2px #fff;\n pointer-events: none;\n line-height: 1;\n animation: badge-pop 0.2s cubic-bezier(0.34, 1.56, 0.64, 1);\n }\n\n @keyframes badge-pop {\n from { transform: scale(0); }\n to { transform: scale(1); }\n }\n\n /* On mobile chat goes fullscreen — hide the toggle button so it\n doesn't float above the open chat panel. */\n @media (max-width: 480px) {\n .launcher.is-open {\n display: none;\n }\n }\n `;\n\n /** True when consumer has placed content in the default slot */\n @state() private _hasSlot = false;\n\n private _onSlotChange(e: Event) {\n const slot = e.target as HTMLSlotElement;\n this._hasSlot = slot.assignedNodes({ flatten: true }).length > 0;\n }\n\n #positionStyle(): string {\n const { position, positionMargin, size } = this.theme;\n const m = positionMargin ? `${Number(positionMargin) * 0.5 + 0.5}rem` : \"1rem\";\n const [v, h] = (position ?? \"bottom-right\").split(\"-\");\n const px = SIZE_PX[size ?? \"medium\"] ?? 56;\n return `${v}: ${m}; ${h}: ${m}; width: ${px}px; height: ${px}px;`;\n }\n\n render() {\n const { isOpened: isOpen, unreadCount } = this.themeState;\n const classes = [\n \"launcher\",\n isOpen ? \"is-open\" : \"\",\n this._hasSlot ? \"has-slot\" : \"\",\n ]\n .filter(Boolean)\n .join(\" \");\n\n return html`\n <button\n class=\"${classes}\"\n part=\"launcher\"\n style=\"${this.#positionStyle()}\"\n @click=${() => this.themeState.toggle()}\n aria-label=\"${isOpen ? t(\"chatButton.close\") : t(\"chatButton.open\")}\"\n aria-expanded=\"${isOpen}\"\n >\n <slot @slotchange=${this._onSlotChange}>\n <!-- Default: animated chat / close icons -->\n <span class=\"icon-wrap\">\n <svg\n class=\"icon-chat\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M20 2H4a2 2 0 0 0-2 2v18l4-4h14a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2zm-2 10H6V10h12v2zm0-3H6V7h12v2z\"\n />\n </svg>\n <svg\n class=\"icon-close\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2.5\"\n stroke-linecap=\"round\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M18 6L6 18M6 6l12 12\" />\n </svg>\n </span>\n </slot>\n ${unreadCount > 0 && !isOpen\n ? html`<span class=\"badge\" aria-label=\"${unreadCount} unread messages\">\n ${unreadCount > 9 ? \"9+\" : unreadCount}\n </span>`\n : nothing}\n </button>\n `;\n }\n}\n\nexport default ChatBotButton;\n"],"names":["isString","obj","defer","res","rej","promise","resolve","reject","makeString","object","copy","a","s","m","lastOfPathSeparatorRegExp","cleanKey","key","canNotTraverseDeeper","getLastOfPath","path","Empty","stack","stackIndex","setPath","newValue","k","e","p","last","pushPath","concat","getPath","getPathWithDefaults","data","defaultData","value","deepExtend","target","source","overwrite","prop","regexEscape","str","_entityMap","escape","RegExpCache","capacity","pattern","regExpFromCache","regExpNew","chars","looksLikeObjectPathRegExpCache","looksLikeObjectPath","nsSeparator","keySeparator","possibleChars","c","r","matched","ki","deepFind","tokens","current","i","next","nextPath","j","getCleanedCode","code","consoleLogger","args","type","Logger","concreteLogger","options","lvl","prefix","debugOnly","moduleName","baseLogger","EventEmitter","events","listener","event","numListeners","observer","numTimesAdded","ResourceStore","ns","index","lng","ignoreJSONStructure","result","resources","deep","pack","v","postProcessor","module","processors","translator","processor","PATH_KEY","createProxy","state","handler","proxy","keysFromSelector","selector","opts","checkedLoadedFor","shouldHandleAsObject","Translator","services","o","opt","resolved","isObject","namespaces","wouldCheckForNsInKey","seemsNaturalLanguage","parts","keys","lastKey","returnDetails","namespace","appendNamespaceToCIMode","resUsedKey","resExactUsedKey","noObject","joinArrays","handleAsObjectInI18nFormat","needsPluralHandling","hasDefaultValue","defaultValueSuffix","defaultValueSuffixOrdinalFallback","needsZeroSuffixLookup","defaultValue","resForObjHndl","handleAsObject","resType","resTypeIsArray","newKeyToUse","deepKey","usedDefault","usedKey","resForMissing","updateMissing","fk","lngs","fallbackLngs","send","l","specificDefaultValue","defaultForMissing","language","suffixes","suffix","skipOnVariables","nestBef","nb","na","nestAft","postProcess","postProcessorNames","found","exactUsedKey","usedLng","usedNS","extracted","needsContextHandling","codes","finalKeys","pluralSuffix","zeroSuffix","ordinalPrefix","contextKey","possibleKey","optionsKeys","useOptionsReplaceForData","option","LanguageUtil","formattedCode","cleanedLng","lngScOnly","lngOnly","supportedLng","fallbacks","fallbackCode","fallbackCodes","addCode","fc","suffixesOrder","dummyRule","count","PluralResolver","languageUtils","cleanedCode","cacheKey","rule","lngPart","pluralCategory1","pluralCategory2","pluralCategory","deepFindWithDefaults","regexSafe","val","Interpolator","escape$1","escapeValue","useRawValueToEscape","prefixEscaped","suffixEscaped","formatSeparator","unescapeSuffix","unescapePrefix","nestingPrefix","nestingPrefixEscaped","nestingSuffix","nestingSuffixEscaped","nestingOptionsSeparator","maxReplaces","alwaysFormat","getOrResetRegExp","existingRegExp","match","replaces","handleFormat","f","missingInterpolationHandler","todo","matchedVar","temp","safeValue","clonedOptions","handleHasOptions","inheritedOptions","sep","optionsString","matchedSingleQuotes","matchedDoubleQuotes","formatters","keyEndIndex","elem","parseFormatStr","formatStr","formatName","formatOptions","optStr","rest","trimmedKey","createCachedFormatter","fn","cache","optForCache","frm","createNonCachedFormatter","Formatter","cf","formatter","name","format","formats","lastIndex","mem","formatted","valOptions","error","removePending","q","Connector","backend","store","languages","callback","toLoad","pending","toLoadLanguages","toLoadNamespaces","hasAllNamespaces","err","loaded","loadedKeys","n","fcName","tried","wait","resolver","fallbackValue","isUpdate","clb","get","ret","transformOptions","noop","bindMemberFunctions","inst","SUPPORT_NOTICE_KEY","getSupportNoticeShown","setSupportNoticeShown","usesLocize","b","I18n","defOpts","createClassOnDemand","ClassOrObject","lu","deferred","load","finish","t","usedCallback","append","li","lngInLngs","setLngProps","done","setLng","fl","keyPrefix","fixedT","resultKey","fallbackLng","lastLng","loadNotPending","loadState","preResult","preloaded","newLngs","ti","rtlLngs","instance","forkResourceStore","mergedOptions","clone","clonedData","prev","acc","mergedInterpolation","mergedForInterpolator","slice","forEach","defaults","hasXSS","input","fieldContentRegExp","serializeCookie","maxAge","cookie","minutes","domain","cookieOptions","nameEQ","ca","cookie$1","_ref","lookupCookie","_ref2","cookieMinutes","cookieDomain","querystring","lookupQuerystring","search","params","pos","hash","lookupHash","lookupFromHashIndex","query","hasLocalStorageSupport","localStorageAvailable","testKey","localStorage","lookupLocalStorage","hasSessionStorageSupport","sessionStorageAvailable","sessionStorage","lookupSessionStorage","navigator$1","userLanguage","htmlTag","internalHtmlTag","lookupFromPathIndex","subdomain","lookupFromSubdomainIndex","internalLookupFromSubdomainIndex","canCookies","order","getDefaults","Browser","i18nOptions","detector","detectionOrder","detected","detectorName","lookup","d","caches","cacheName","i18next","LanguageDetector","en","tr","commonStyles","css","styles","unsafeCSS","styless","ChatbotMixin","superClass","_ChatbotMixinClass","chatStore","ChatbotMixinClass","__decorateClass","_getDefaults","_defaults","changeDefaults","newDefaults","escapeTest","escapeReplace","escapeTestNoEncode","escapeReplaceNoEncode","escapeReplacements","getEscapeReplacement","ch","html","encode","unescapeTest","unescape","_","caret","edit","regex","valSource","cleanUrl","href","noopTest","splitCells","tableRow","row","offset","escaped","curr","cells","rtrim","invert","suffLen","findClosingBracket","level","outputLink","cap","link","raw","lexer","title","text","token","indentCodeCompensation","matchIndentToCode","indentToCode","node","matchIndentInNode","indentInNode","_Tokenizer","src","trimmed","lines","inBlockquote","currentLines","currentRaw","currentText","top","lastToken","oldToken","newText","newToken","bull","isordered","list","itemRegex","endsWithBlankLine","endEarly","itemContents","line","nextLine","blankLine","indent","nextBulletRegex","hrRegex","fencesBeginRegex","headingBeginRegex","rawLine","istask","ischecked","spacers","hasMultipleLineBreaks","tag","headers","aligns","rows","item","align","cell","trimmedUrl","rtrimSlash","lastParenIndex","linkLen","links","linkString","maskedSrc","prevChar","lLength","rDelim","rLength","delimTotal","midDelimTotal","endReg","lastCharLength","hasNonSpaceChars","hasSpaceCharsOnBothEnds","prevCapZero","newline","blockCode","fences","hr","heading","bullet","lheading","_paragraph","blockText","_blockLabel","def","_tag","_comment","paragraph","blockquote","blockNormal","gfmTable","blockGfm","blockPedantic","inlineCode","br","inlineText","_punctuation","punctuation","blockSkip","emStrongLDelim","emStrongRDelimAst","emStrongRDelimUnd","anyPunctuation","autolink","_inlineComment","_inlineLabel","reflink","nolink","reflinkSearch","inlineNormal","inlinePedantic","inlineGfm","inlineBreaks","block","inline","_Lexer","rules","lastParagraphClipped","leading","tabs","cutSrc","extTokenizer","startIndex","tempSrc","tempStart","getStartIndex","errMsg","keepPrevChar","_Renderer","lang","langString","depth","ordered","start","body","startAttr","itemBody","checkbox","checked","header","content","cleanHref","out","_TextRenderer","_Parser","anyToken","genericToken","textToken","renderer","_Hooks","markdown","Marked","#parseMarkdown","values","tableToken","listToken","childTokens","extensions","ext","prevRenderer","extLevel","rendererProp","rendererFunc","#convertRendererFunction","tokenizer","tokenizerProp","tokenizerFunc","prevTokenizer","hooks","hooksProp","hooksFunc","prevHook","arg","walkTokens","packWalktokens","func","loose","task","parser","origOpt","throwError","#onError","silent","async","msg","markedInstance","marked","DefaultTextMessage","LitElement","avatarUrl","color","isUser","bubbleContent","unsafeHTML","theme","avatarCfg","showBotAvatar","showUserAvatar","showStatus","nothing","property","customElement","MessageTypeRegistry","QuickReplyMessage","action","actions","ImageMessage","alt","caption","CardMessage","image","subtitle","buttons","btn","ButtonsMessage","persistent","isSelected","isOther","formatBytes","bytes","fileIconAndColor","mimeType","mime","renderFileIcon","icon","icons","FileMessage","url","size","bg","VideoMessage","poster","CarouselMessage","carousel","card","cards","total","atStart","atEnd","CATEGORIES","EmojiPicker","emoji","emojis","cat","ChatInput","el","SlashCommandRegistry","cmd","ta","hasFiles","end","files","hasText","connected","resolveText","resolveTag","component","ChatMessageList","threshold","messageStore","currentCount","isTyping","isLoadingHistory","typingChanged","historyJustLoaded","delta","countIncreased","messages","isLastInGroup","staticHtml","unsafeStatic","connectorStatus","reconnectAttempt","hasMoreHistory","ChatHeader","touch","isFullscreen","allowFullscreen","SIZE_PX","ChatWidget","widget","rect","createOutgoingMessage","file","_v","adapter","ConnectorRegistry","ChatEngine","clientX","clientY","dx","dy","layout","w","h","left","changed","positionMargin","position","ht","btnPx","vOff","cls","_ChatBotButton_instances","positionStyle_fn","ChatBotButton","__privateAdd","slot","isOpen","unreadCount","classes","__privateMethod","px","ChatBotButton_default"],"mappings":"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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA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","x_google_ignoreList":[0,1,5]}