@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.
- package/dist/index.cjs +22779 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +69 -0
- package/dist/index.js +27423 -0
- package/dist/index.js.map +1 -0
- package/package.json +61 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","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 '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/'\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 '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\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;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;A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","x_google_ignoreList":[0,1,5]}
|