shekel-fe-shared-lib 1.0.13 → 1.0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../src/components/Button/Button.tsx","../src/components/StatCard/StatCard.tsx","../src/components/SearchInput.tsx","../src/components/Card/Card.tsx","../src/components/Dropdown.tsx","../src/components/Select.tsx","../src/components/Table.tsx","../src/components/TableTop.tsx","../src/components/Modal.tsx","../src/components/Badge.tsx","../src/components/Steps.tsx","../src/components/Progress.tsx","../src/components/Checkbox.tsx","../src/components/SelectedItemsList.tsx","../src/components/Input/Input.tsx","../src/components/Input/PasswordInput.tsx","../src/components/Input/OTPInput.tsx","../src/components/Input/PhoneInput.tsx","../src/components/Input/CurrencyInput.tsx","../node_modules/@ant-design/icons/es/components/Context.js","../node_modules/clsx/dist/clsx.mjs","../node_modules/@ant-design/fast-color/es/presetColors.js","../node_modules/@ant-design/fast-color/es/FastColor.js","../node_modules/@ant-design/colors/es/generate.js","../node_modules/@ant-design/colors/es/presets.js","../node_modules/@rc-component/util/es/Dom/canUseDom.js","../node_modules/@rc-component/util/es/Dom/contains.js","../node_modules/@rc-component/util/es/Dom/dynamicCSS.js","../node_modules/@rc-component/util/es/Dom/shadow.js","../node_modules/@rc-component/util/es/warning.js","../node_modules/@ant-design/icons/es/utils.js","../node_modules/@ant-design/icons/es/components/IconBase.js","../node_modules/@ant-design/icons/es/components/twoTonePrimaryColor.js","../node_modules/@ant-design/icons/es/components/AntdIcon.js","../node_modules/@ant-design/icons-svg/es/asn/UserOutlined.js","../node_modules/@ant-design/icons/es/icons/UserOutlined.js","../src/components/UserPill/UserPill.tsx","../src/assets/card-border.svg","../src/components/UserCard/UserCard.tsx","../src/components/CountrySelector/CountrySelector.tsx","../src/components/UserProfileDropdown/UserProfileDropdown.tsx","../src/components/ActionCard/ActionCard.tsx","../src/components/DashboardCard/DashboardCard.tsx","../src/components/NotificationDropdown/NotificationDropdown.tsx","../src/components/TabsComponent/TabsComponent.tsx"],"sourcesContent":["import React from 'react';\nimport { Button as AntButton, ButtonProps as AntButtonProps } from 'antd';\n\nexport interface ButtonProps extends Omit<AntButtonProps, 'variant' | 'size'> {\n variant?: 'primary' | 'secondary' | 'outline' | 'ghost';\n size?: 'small' | 'medium' | 'large';\n}\n\nexport const Button: React.FC<ButtonProps> = ({\n variant = 'primary',\n size = 'large',\n className = '',\n children,\n ...props\n}) => {\n const getSizeHeight = () => {\n switch (size) {\n case 'small':\n return '40px';\n case 'medium':\n return '44px';\n case 'large':\n return '48px';\n default:\n return '48px';\n }\n };\n\n const getVariantStyles = () => {\n const height = getSizeHeight();\n\n switch (variant) {\n case 'primary':\n return {\n backgroundColor: '#EC615B',\n borderColor: '#EC615B',\n color: '#FFFFFF',\n height,\n borderRadius: '8px',\n };\n case 'secondary':\n return {\n backgroundColor: '#6B7280',\n borderColor: '#6B7280',\n color: '#FFFFFF',\n height,\n borderRadius: '8px',\n };\n case 'outline':\n return {\n backgroundColor: 'transparent',\n borderColor: '#D1D1D1',\n color: '#181918',\n height,\n borderRadius: '8px',\n };\n case 'ghost':\n return {\n backgroundColor: '#EFF2F3',\n borderColor: '#EFF2F3',\n color: '#181918',\n height,\n borderRadius: '8px',\n };\n default:\n return {};\n }\n };\n\n return (\n <AntButton\n className={className}\n {...props}\n style={{\n ...getVariantStyles(),\n ...props.style,\n }}\n onMouseEnter={(e) => {\n if (variant === 'primary') {\n (e.target as HTMLElement).style.backgroundColor = '#D8524D';\n } else if (variant === 'secondary') {\n (e.target as HTMLElement).style.backgroundColor = '#4B5563';\n } else if (variant === 'outline') {\n (e.target as HTMLElement).style.backgroundColor = '#F3F4F6';\n } else if (variant === 'ghost') {\n (e.target as HTMLElement).style.backgroundColor = '#E1E4E6';\n }\n props.onMouseEnter?.(e as any);\n }}\n onMouseLeave={(e) => {\n const styles = getVariantStyles();\n (e.target as HTMLElement).style.backgroundColor = styles.backgroundColor || '';\n props.onMouseLeave?.(e as any);\n }}\n >\n {children}\n </AntButton>\n );\n};\n","import React from 'react';\n\nexport interface StatCardProps {\n label: string;\n value: string | number;\n icon?: React.ReactNode;\n iconBackgroundColor?: string;\n iconColor?: string;\n valuePrefix?: string;\n progressText?: string;\n badge?: string;\n width?: string | number;\n className?: string;\n}\n\nexport const StatCard: React.FC<StatCardProps> = ({\n label,\n value,\n icon,\n iconBackgroundColor = '#E8F4FD',\n iconColor = '#4A9FD8',\n valuePrefix = '₦',\n progressText,\n badge,\n width = 347,\n className = '',\n}) => {\n const defaultIcon = (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <rect x=\"3\" y=\"6\" width=\"18\" height=\"12\" rx=\"2\" stroke=\"currentColor\" strokeWidth=\"2\" />\n <path d=\"M3 10h18M7 14h4\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n </svg>\n );\n\n return (\n <div\n className={`bg-white border border-[#E6E6E6] rounded-2xl p-4 flex flex-col justify-between transition-all duration-300 ease-in-out hover:border-gray-300 hover:-translate-y-1 cursor-pointer ${className}`}\n style={{\n width: typeof width === 'number' ? `${width}px` : width,\n boxShadow: '0 0 0 0 rgba(0, 0, 0, 0)',\n transition: 'all 0.3s ease-in-out',\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.boxShadow = '0 0 20px 0 rgba(0, 0, 0, 0.1)';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.boxShadow = '0 0 0 0 rgba(0, 0, 0, 0)';\n }}\n >\n <div>\n <div className=\"flex items-center justify-between mb-6\">\n <div\n className=\"w-9 h-9 rounded-full flex items-center justify-center shrink-0 [&>svg]:w-5 [&>svg]:h-5 transition-transform duration-300 ease-in-out group-hover:scale-110\"\n style={{\n backgroundColor: iconBackgroundColor,\n color: iconColor,\n }}\n >\n {icon || defaultIcon}\n </div>\n {badge && (\n <div className=\"bg-[#EBEBEB] text-[#181918] text-[11px] font-medium px-2 py-1 rounded-full border border-[#D1D1D1] transition-colors duration-200\">\n {badge}\n </div>\n )}\n </div>\n <div className=\"text-sm text-[#181918] font-light transition-colors duration-200\">\n {label}\n </div>\n <div className=\"text-[20px] font-bold text-[#181918] transition-all duration-200\">\n {valuePrefix} {value}\n </div>\n </div>\n {progressText && (\n <div className=\"text-xs text-gray-400 font-normal mt-4 transition-colors duration-200\">\n {progressText}\n </div>\n )}\n </div>\n );\n};\n","import type { FC, ReactNode, InputHTMLAttributes, CSSProperties } from 'react';\n\n/**\n * @deprecated SearchInput is deprecated as of v1.0.11. Please use the new Input component instead.\n * The new Input component provides better functionality and consistent styling with Ant Design.\n */\nexport interface SearchInputProps\n extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size'> {\n icon?: ReactNode;\n iconPosition?: 'left' | 'right';\n size?: 'sm' | 'md' | 'lg' | 'responsive';\n fullWidth?: boolean;\n onIconClick?: () => void;\n bgColor?: string;\n borderColor?: string;\n focusBorderColor?: string;\n iconColor?: string;\n textColor?: string;\n placeholderColor?: string;\n rounded?: 'none' | 'sm' | 'md' | 'lg' | 'full';\n style?: CSSProperties;\n}\n\n/**\n * @deprecated SearchInput is deprecated as of v1.0.11. Please use the new Input component instead.\n */\nexport const SearchInput: FC<SearchInputProps> = ({\n icon,\n iconPosition = 'left',\n size = 'md',\n fullWidth = false,\n className = '',\n onIconClick,\n bgColor,\n borderColor,\n focusBorderColor,\n iconColor,\n textColor,\n placeholderColor,\n rounded = 'md',\n style,\n ...props\n}) => {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n '[Shekel Shared Lib] SearchInput is deprecated as of v1.0.11. Please use the new Input component instead for better functionality and consistent styling.'\n );\n }\n\n const containerBaseClasses = 'relative inline-flex items-center';\n\n const inputBaseClasses =\n 'border focus:outline-none focus:ring-1 transition-all duration-200 ease-in-out';\n\n const sizeClasses = {\n sm: 'px-3 py-1.5 text-sm',\n md: 'px-4 py-2 text-base',\n lg: 'px-5 py-3 text-lg',\n responsive: 'px-3 sm:px-4 md:px-5 py-1.5 sm:py-2 md:py-3 text-sm sm:text-base md:text-lg',\n };\n\n const iconSizeClasses = {\n sm: 'w-4 h-4',\n md: 'w-5 h-5',\n lg: 'w-6 h-6',\n responsive: 'w-4 sm:w-5 md:w-6 h-4 sm:h-5 md:h-6',\n };\n\n const roundedClasses = {\n none: 'rounded-none',\n sm: 'rounded-sm',\n md: 'rounded-lg',\n lg: 'rounded-xl',\n full: 'rounded-full',\n };\n\n const paddingWithIcon =\n iconPosition === 'left'\n ? size === 'sm'\n ? 'pl-9'\n : size === 'md'\n ? 'pl-10'\n : size === 'lg'\n ? 'pl-12'\n : 'pl-9 sm:pl-10 md:pl-12'\n : size === 'sm'\n ? 'pr-9'\n : size === 'md'\n ? 'pr-10'\n : size === 'lg'\n ? 'pr-12'\n : 'pr-9 sm:pr-10 md:pr-12';\n\n const widthClass = fullWidth ? 'w-full' : '';\n\n // Build custom styles for colors\n const customStyles: CSSProperties = {\n backgroundColor: bgColor,\n borderColor: borderColor || '#D1D5DB',\n color: textColor,\n ...style,\n };\n\n // Determine placeholder color class\n const placeholderClass = placeholderColor\n ? ''\n : 'placeholder:text-gray-400';\n\n // Build border and default colors\n const defaultBorderClass = borderColor ? '' : 'border-gray-300';\n const defaultTextClass = textColor ? '' : 'text-gray-900';\n const defaultFocusClass = focusBorderColor\n ? ''\n : 'focus:ring-[#EC615B] focus:border-[#EC615B]';\n\n const inputClassName = `${inputBaseClasses} ${!className.includes('px-') && !className.includes('py-') ? sizeClasses[size] : ''} ${\n icon ? paddingWithIcon : ''\n } ${widthClass} ${!className.includes('rounded') ? roundedClasses[rounded] : ''} ${!className.includes('border-') ? defaultBorderClass : ''} ${defaultTextClass} ${defaultFocusClass} ${placeholderClass} ${className}`;\n\n const iconPositionClasses = iconPosition === 'left' ? 'left-3' : 'right-3';\n const defaultIconColor = iconColor || 'text-gray-400';\n const hoverIconColor = iconColor ? '' : 'hover:text-gray-600';\n\n const defaultSearchIcon = (\n <svg\n className={`${iconSizeClasses[size]} ${defaultIconColor}`}\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z\"\n />\n </svg>\n );\n\n return (\n <div className={`${containerBaseClasses} ${widthClass}`}>\n {icon && (\n <div\n className={`absolute ${iconPositionClasses} ${defaultIconColor} ${\n onIconClick ? 'cursor-pointer' : ''\n } ${hoverIconColor}`}\n onClick={onIconClick}\n >\n {icon === true ? defaultSearchIcon : icon}\n </div>\n )}\n <input\n type=\"text\"\n className={inputClassName}\n style={{\n ...customStyles,\n ...(focusBorderColor && {\n '--focus-border-color': focusBorderColor,\n } as CSSProperties),\n ...(placeholderColor && {\n '--placeholder-color': placeholderColor,\n } as CSSProperties),\n }}\n {...props}\n />\n </div>\n );\n};\n\nexport default SearchInput;\n","import React from 'react';\nimport { Card as AntCard, CardProps as AntCardProps } from 'antd';\n\nexport interface CardProps extends AntCardProps {\n shadow?: 'sm' | 'md' | 'lg' | 'xl';\n}\n\nexport const Card: React.FC<CardProps> = ({\n shadow = 'md',\n className = '',\n children,\n ...props\n}) => {\n const shadowClasses = {\n sm: 'shadow-sm',\n md: 'shadow-md',\n lg: 'shadow-lg',\n xl: 'shadow-xl'\n };\n\n const combinedClassName = `${shadowClasses[shadow]} rounded-lg ${className}`;\n\n return (\n <AntCard\n className={combinedClassName}\n {...props}\n >\n {children}\n </AntCard>\n );\n};\n","import { useState, useRef, useEffect } from 'react';\nimport type { FC, ReactNode, CSSProperties } from 'react';\n\nexport interface DropdownMenuItem {\n key: string;\n label: ReactNode;\n icon?: ReactNode;\n disabled?: boolean;\n danger?: boolean;\n onClick?: () => void;\n}\n\nexport interface DropdownProps {\n items: DropdownMenuItem[];\n trigger?: 'click' | 'hover';\n placement?: 'bottomLeft' | 'bottomRight' | 'topLeft' | 'topRight';\n children: ReactNode;\n className?: string;\n overlayClassName?: string;\n disabled?: boolean;\n size?: 'sm' | 'md' | 'lg' | 'responsive';\n menuBgColor?: string;\n menuItemHoverColor?: string;\n dangerColor?: string;\n borderColor?: string;\n style?: CSSProperties;\n}\n\nexport const Dropdown: FC<DropdownProps> = ({\n items,\n trigger = 'click',\n placement = 'bottomLeft',\n children,\n className = '',\n overlayClassName = '',\n disabled = false,\n size = 'md',\n menuBgColor,\n menuItemHoverColor,\n dangerColor,\n borderColor,\n style,\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n const dropdownRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const handleClickOutside = (event: Event) => {\n if (dropdownRef.current && !dropdownRef.current.contains(event.target as Node)) {\n setIsOpen(false);\n }\n };\n\n if (isOpen) {\n document.addEventListener('mousedown', handleClickOutside);\n }\n\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, [isOpen]);\n\n const handleTriggerClick = () => {\n if (!disabled && trigger === 'click') {\n setIsOpen(!isOpen);\n }\n };\n\n const handleTriggerMouseEnter = () => {\n if (!disabled && trigger === 'hover') {\n setIsOpen(true);\n }\n };\n\n const handleTriggerMouseLeave = () => {\n if (!disabled && trigger === 'hover') {\n setIsOpen(false);\n }\n };\n\n const handleMenuItemClick = (item: DropdownMenuItem) => {\n if (!item.disabled && item.onClick) {\n item.onClick();\n }\n setIsOpen(false);\n };\n\n const placementClasses = {\n bottomLeft: 'top-full left-0 mt-1',\n bottomRight: 'top-full right-0 mt-1',\n topLeft: 'bottom-full left-0 mb-1',\n topRight: 'bottom-full right-0 mb-1',\n };\n\n const animationClasses = placement.startsWith('bottom')\n ? 'dropdown-slide-down'\n : 'dropdown-slide-up';\n\n const sizeClasses = {\n sm: 'min-w-[120px] text-xs',\n md: 'min-w-[160px] text-sm',\n lg: 'min-w-[220px] text-base',\n responsive: 'min-w-[120px] sm:min-w-[160px] md:min-w-[200px] lg:min-w-[240px] text-xs sm:text-sm md:text-base',\n };\n\n const itemSizeClasses = {\n sm: 'px-3 py-1.5 text-xs gap-1.5',\n md: 'px-4 py-2 text-sm gap-2',\n lg: 'px-5 py-3 text-base gap-2.5',\n responsive: 'px-3 sm:px-4 md:px-5 py-1.5 sm:py-2 md:py-3 text-xs sm:text-sm md:text-base gap-1.5 sm:gap-2 md:gap-2.5',\n };\n\n // Color styling helpers\n const defaultHoverColor = 'hover:bg-gray-50';\n const defaultBorderColor = 'border-gray-200';\n const defaultDangerColor = 'text-red-600';\n\n // Hover color handling\n const hoverColorStyle = menuItemHoverColor ? { backgroundColor: menuItemHoverColor } : {};\n const customHoverClass = menuItemHoverColor ? '' : defaultHoverColor;\n\n // Danger color handling\n const customDangerStyle = dangerColor ? { color: dangerColor } : {};\n const dangerHoverBgStyle = dangerColor ? { backgroundColor: dangerColor + '15' } : {};\n\n // Border color handling\n const finalBorderColor = borderColor || defaultBorderColor;\n\n return (\n <div\n ref={dropdownRef}\n className={`relative inline-block ${className}`}\n onMouseEnter={handleTriggerMouseEnter}\n onMouseLeave={handleTriggerMouseLeave}\n style={style}\n >\n <div\n onClick={handleTriggerClick}\n className={`inline-flex ${disabled ? 'cursor-not-allowed opacity-50' : 'cursor-pointer'}`}\n >\n {children}\n </div>\n\n {isOpen && !disabled && (\n <div\n className={`absolute ${placementClasses[placement]} ${animationClasses} z-50 ${sizeClasses[size]} ${overlayClassName}`}\n >\n <div\n className={`dropdown-menu rounded-lg shadow-lg border py-1 overflow-hidden ${finalBorderColor}`}\n style={{ backgroundColor: menuBgColor || '#ffffff' }}\n >\n {items.map((item) => {\n // Determine item-specific styles\n let itemStyle: React.CSSProperties = {};\n\n if (!item.disabled) {\n if (item.danger) {\n // Danger items use custom danger color if provided\n itemStyle = {\n ...customDangerStyle,\n ...dangerHoverBgStyle,\n };\n } else if (menuItemHoverColor) {\n // Custom hover color applied inline\n itemStyle = hoverColorStyle;\n }\n }\n\n return (\n <div\n key={item.key}\n onClick={() => handleMenuItemClick(item)}\n className={`\n dropdown-menu-item\n flex items-center cursor-pointer transition-all duration-200 ease-out\n ${!overlayClassName.includes('px-') && !overlayClassName.includes('py-') ? itemSizeClasses[size] : ''}\n ${item.disabled ? 'opacity-50 cursor-not-allowed' : customHoverClass}\n ${item.danger ? (dangerColor ? '' : defaultDangerColor) : 'text-gray-700'}\n `}\n style={itemStyle}\n >\n {item.icon && <span className=\"flex-shrink-0\">{item.icon}</span>}\n <span>{item.label}</span>\n </div>\n );\n })}\n </div>\n </div>\n )}\n </div>\n );\n};\n\nexport default Dropdown;\n","import { useState, useRef, useEffect } from 'react';\nimport type { FC, MouseEvent, CSSProperties } from 'react';\n\nexport interface SelectOption {\n value: string | number;\n label: string;\n disabled?: boolean;\n}\n\nexport interface SelectProps {\n options: SelectOption[];\n value?: string | number;\n defaultValue?: string | number;\n placeholder?: string;\n onChange?: (value: string | number) => void;\n disabled?: boolean;\n size?: 'sm' | 'md' | 'lg' | 'responsive';\n fullWidth?: boolean;\n className?: string;\n allowClear?: boolean;\n showSearch?: boolean;\n searchPlaceholder?: string;\n bgColor?: string;\n borderColor?: string;\n focusBorderColor?: string;\n selectedBgColor?: string;\n selectedTextColor?: string;\n hoverBgColor?: string;\n rounded?: 'none' | 'sm' | 'md' | 'lg' | 'full';\n style?: CSSProperties;\n}\n\nexport const Select: FC<SelectProps> = ({\n options,\n value: controlledValue,\n defaultValue,\n placeholder = 'Select an option',\n onChange,\n disabled = false,\n size = 'md',\n fullWidth = false,\n className = '',\n allowClear = false,\n showSearch = false,\n searchPlaceholder = 'Search...',\n bgColor,\n borderColor,\n focusBorderColor = '#EC615B',\n selectedBgColor,\n selectedTextColor,\n hoverBgColor,\n rounded = 'lg',\n style,\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n const [internalValue, setInternalValue] = useState<string | number | undefined>(\n defaultValue\n );\n const [searchQuery, setSearchQuery] = useState('');\n const selectRef = useRef<HTMLDivElement>(null);\n const searchInputRef = useRef<HTMLInputElement>(null);\n\n const value = controlledValue !== undefined ? controlledValue : internalValue;\n\n useEffect(() => {\n const handleClickOutside = (event: Event) => {\n if (selectRef.current && !selectRef.current.contains(event.target as Node)) {\n setIsOpen(false);\n setSearchQuery('');\n }\n };\n\n if (isOpen) {\n document.addEventListener('mousedown', handleClickOutside);\n if (showSearch && searchInputRef.current) {\n searchInputRef.current.focus();\n }\n }\n\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, [isOpen, showSearch]);\n\n const handleSelect = (optionValue: string | number) => {\n if (controlledValue === undefined) {\n setInternalValue(optionValue);\n }\n onChange?.(optionValue);\n setIsOpen(false);\n setSearchQuery('');\n };\n\n const handleClear = (e: MouseEvent) => {\n e.stopPropagation();\n if (controlledValue === undefined) {\n setInternalValue(undefined);\n }\n onChange?.('' as any);\n };\n\n const selectedOption = options.find((opt) => opt.value === value);\n\n const filteredOptions = showSearch\n ? options.filter((option) =>\n option.label.toLowerCase().includes(searchQuery.toLowerCase())\n )\n : options;\n\n const sizeClasses = {\n sm: 'px-3 py-1.5 text-sm',\n md: 'px-4 py-2 text-base',\n lg: 'px-5 py-3 text-lg',\n responsive: 'px-3 sm:px-4 md:px-5 py-1.5 sm:py-2 md:py-3 text-sm sm:text-base md:text-lg',\n };\n\n const roundedClasses = {\n none: 'rounded-none',\n sm: 'rounded-sm',\n md: 'rounded-md',\n lg: 'rounded-lg',\n full: 'rounded-full',\n };\n\n const widthClass = fullWidth ? 'w-full' : 'min-w-[200px]';\n\n // Helper function to apply custom colors to inline styles\n const getTriggerStyles = (): CSSProperties => {\n const styles: CSSProperties = {};\n if (bgColor) styles.backgroundColor = bgColor;\n if (borderColor) styles.borderColor = borderColor;\n return styles;\n };\n\n const getSelectedOptionStyles = (): CSSProperties => {\n const styles: CSSProperties = {};\n if (selectedBgColor) styles.backgroundColor = selectedBgColor;\n if (selectedTextColor) styles.color = selectedTextColor;\n return styles;\n };\n\n const ChevronIcon = (\n <svg\n className={`w-4 h-4 transition-transform duration-200 ease-out ${isOpen ? 'rotate-180' : ''}`}\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M19 9l-7 7-7-7\" />\n </svg>\n );\n\n const ClearIcon = (\n <svg className=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M6 18L18 6M6 6l12 12\" />\n </svg>\n );\n\n return (\n <div ref={selectRef} className={`relative inline-block ${widthClass}`} style={style}>\n <div\n onClick={() => !disabled && setIsOpen(!isOpen)}\n className={`\n select-trigger\n flex items-center justify-between gap-2\n border transition-all duration-200 ease-out\n ${!className.includes('px-') && !className.includes('py-') && !className.includes('h-') ? sizeClasses[size] : ''}\n ${!className.includes('rounded') ? roundedClasses[rounded] : ''}\n ${disabled ? 'opacity-50 cursor-not-allowed' : 'cursor-pointer'}\n ${isOpen ? 'ring-2 ring-opacity-20' : ''}\n ${className}\n `}\n style={{\n ...getTriggerStyles(),\n backgroundColor: bgColor || getTriggerStyles().backgroundColor || '#FFFFFF',\n borderColor: borderColor || getTriggerStyles().borderColor || '#D1D5DB',\n ...(isOpen && {\n borderColor: focusBorderColor,\n boxShadow: `0 0 0 2px ${focusBorderColor}20`,\n }),\n ...(!disabled && !isOpen && hoverBgColor && {\n cursor: 'pointer',\n }),\n }}\n onMouseEnter={(e) => {\n if (!disabled && hoverBgColor) {\n e.currentTarget.style.backgroundColor = hoverBgColor;\n }\n }}\n onMouseLeave={(e) => {\n if (bgColor) {\n e.currentTarget.style.backgroundColor = bgColor;\n } else {\n e.currentTarget.style.backgroundColor = '#FFFFFF';\n }\n }}\n >\n <span className={selectedOption ? 'text-gray-900' : 'text-gray-400'}>\n {selectedOption ? selectedOption.label : placeholder}\n </span>\n <div className=\"flex items-center gap-1\">\n {allowClear && value && !disabled && (\n <span\n onClick={handleClear}\n className=\"text-gray-400 hover:text-gray-600 transition-colors duration-200 ease-out\"\n >\n {ClearIcon}\n </span>\n )}\n <span className=\"text-gray-400\">{ChevronIcon}</span>\n </div>\n </div>\n\n {isOpen && !disabled && (\n <div className=\"absolute top-full left-0 right-0 mt-1 z-50 dropdown-slide-down\">\n <div className={`select-dropdown bg-white shadow-lg border border-gray-200 py-1 max-h-[300px] overflow-auto ${roundedClasses[rounded]}`}>\n {showSearch && (\n <div className=\"px-2 py-2 border-b border-gray-200\">\n <input\n ref={searchInputRef}\n type=\"text\"\n value={searchQuery}\n onChange={(e) => setSearchQuery(e.target.value)}\n placeholder={searchPlaceholder}\n className=\"w-full px-3 py-1.5 text-sm border border-gray-300 rounded focus:outline-none focus:ring-2 transition-all duration-200 ease-out\"\n style={{\n borderColor: borderColor,\n boxShadow: `0 0 0 2px ${focusBorderColor}20`,\n }}\n onClick={(e) => e.stopPropagation()}\n />\n </div>\n )}\n {filteredOptions.length === 0 ? (\n <div className=\"px-4 py-3 text-sm text-gray-500 text-center\">\n No results found\n </div>\n ) : (\n filteredOptions.map((option) => (\n <div\n key={option.value}\n onClick={() => !option.disabled && handleSelect(option.value)}\n className={`\n select-option\n px-4 py-2 text-sm transition-all duration-200 ease-out\n ${option.disabled ? 'opacity-50 cursor-not-allowed' : 'cursor-pointer'}\n `}\n style={{\n ...(option.value === value ? getSelectedOptionStyles() : {}),\n backgroundColor: option.value === value ? (selectedBgColor || '#FCEAE9') : undefined,\n color: option.value === value ? (selectedTextColor || '#EC615B') : '#181918',\n fontWeight: option.value === value ? 'medium' : undefined,\n }}\n onMouseEnter={(e) => {\n if (!option.disabled && option.value !== value) {\n e.currentTarget.style.backgroundColor = hoverBgColor || '#F3F4F6';\n }\n }}\n onMouseLeave={(e) => {\n if (option.value !== value) {\n e.currentTarget.style.backgroundColor = 'transparent';\n }\n }}\n >\n {option.label}\n </div>\n ))\n )}\n </div>\n </div>\n )}\n </div>\n );\n};\n\nexport default Select;\n","import { useState } from 'react';\nimport type { FC, ReactNode, HTMLAttributes, CSSProperties } from 'react';\nimport { Select } from './Select';\n\nexport interface ColumnDef<T = any> {\n key: string;\n title: string;\n dataIndex?: string;\n render?: (value: any, record: T, index: number) => ReactNode;\n width?: string | number;\n align?: 'left' | 'center' | 'right';\n sortable?: boolean;\n}\n\nexport interface TableProps<T = any> {\n columns: ColumnDef<T>[];\n dataSource: T[];\n rowKey?: string | ((record: T) => string);\n pagination?: PaginationConfig | false;\n loading?: boolean;\n onRow?: (record: T, index: number) => HTMLAttributes<HTMLTableRowElement>;\n className?: string;\n bordered?: boolean;\n striped?: boolean;\n size?: 'sm' | 'md' | 'lg' | 'responsive';\n headerBgColor?: string;\n headerTextColor?: string;\n rowHoverColor?: string;\n borderColor?: string;\n stripedRowColor?: string;\n rounded?: 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';\n style?: CSSProperties;\n}\n\nexport interface PaginationConfig {\n current?: number;\n pageSize?: number;\n total?: number;\n onChange?: (page: number, pageSize: number) => void;\n showSizeChanger?: boolean;\n pageSizeOptions?: number[];\n showTotal?: boolean;\n size?: 'sm' | 'md' | 'lg';\n}\n\nexport const Table = <T extends Record<string, any>>({\n columns,\n dataSource,\n rowKey = 'id',\n pagination,\n loading = false,\n onRow,\n className = '',\n bordered = false,\n striped = false,\n size = 'md',\n headerBgColor,\n headerTextColor,\n rowHoverColor,\n borderColor,\n stripedRowColor,\n rounded = 'md',\n style,\n}: TableProps<T>) => {\n const [currentPage, setCurrentPage] = useState(\n pagination && typeof pagination === 'object' ? pagination.current || 1 : 1\n );\n const [pageSize, setPageSize] = useState(\n pagination && typeof pagination === 'object' ? pagination.pageSize || 10 : 10\n );\n\n // Size configuration for responsive sizing\n const sizeConfig = {\n sm: {\n headerPadding: 'px-3 py-2',\n headerFontSize: 'text-xs',\n rowPadding: 'px-3 py-2',\n rowFontSize: 'text-xs',\n containerRounded: 'rounded-md',\n },\n md: {\n headerPadding: 'px-4 py-3',\n headerFontSize: 'text-xs',\n rowPadding: 'px-4 py-3',\n rowFontSize: 'text-sm',\n containerRounded: 'rounded-lg',\n },\n lg: {\n headerPadding: 'px-6 py-4',\n headerFontSize: 'text-sm',\n rowPadding: 'px-6 py-4',\n rowFontSize: 'text-base',\n containerRounded: 'rounded-xl',\n },\n responsive: {\n headerPadding: 'px-2 sm:px-3 md:px-4 py-2 sm:py-2.5 md:py-3',\n headerFontSize: 'text-xs sm:text-xs md:text-sm',\n rowPadding: 'px-2 sm:px-3 md:px-4 py-2 sm:py-2.5 md:py-3',\n rowFontSize: 'text-xs sm:text-xs md:text-sm',\n containerRounded: 'rounded-md sm:rounded-lg md:rounded-lg',\n },\n };\n\n // Rounded configuration\n const roundedClasses = {\n none: '',\n sm: 'rounded-sm',\n md: 'rounded-md',\n lg: 'rounded-lg',\n xl: 'rounded-xl',\n '2xl': 'rounded-2xl',\n };\n\n const currentSizeConfig = sizeConfig[size];\n const currentRoundedClass = roundedClasses[rounded];\n\n const getRowKey = (record: T, index: number): string => {\n if (typeof rowKey === 'function') {\n return rowKey(record);\n }\n return record[rowKey] || String(index);\n };\n\n const getValue = (record: T, dataIndex?: string) => {\n if (!dataIndex) return record;\n return dataIndex.split('.').reduce((obj, key) => obj?.[key], record);\n };\n\n // Pagination logic\n const paginatedData =\n pagination === false\n ? dataSource\n : dataSource.slice((currentPage - 1) * pageSize, currentPage * pageSize);\n\n const handlePageChange = (page: number) => {\n setCurrentPage(page);\n if (pagination && typeof pagination === 'object' && pagination.onChange) {\n pagination.onChange(page, pageSize);\n }\n };\n\n const handlePageSizeChange = (newPageSize: number) => {\n setPageSize(newPageSize);\n setCurrentPage(1);\n if (pagination && typeof pagination === 'object' && pagination.onChange) {\n pagination.onChange(1, newPageSize);\n }\n };\n\n return (\n <div className=\"w-full\" style={style}>\n <div\n className={`overflow-x-auto ${currentRoundedClass || 'rounded-2xl'} border`}\n style={{ borderColor: borderColor || '#EEEEEE' }}\n >\n <table className={`w-full ${bordered ? 'border-collapse' : ''} ${className}`}>\n <thead\n style={{\n backgroundColor: headerBgColor || '#F5F6F7',\n color: headerTextColor || '#333333',\n }}\n >\n <tr>\n {columns.map((column, idx) => (\n <th\n key={column.key}\n className={`${currentSizeConfig.headerPadding} text-left ${currentSizeConfig.headerFontSize} font-medium uppercase tracking-wider ${\n bordered && idx !== columns.length - 1 ? 'border-r' : ''\n } ${\n column.align === 'center'\n ? 'text-center'\n : column.align === 'right'\n ? 'text-right'\n : ''\n }`}\n style={{\n width: column.width,\n borderColor: borderColor || '#EEEEEE',\n color: headerTextColor || '#333333',\n }}\n >\n {column.title}\n </th>\n ))}\n </tr>\n </thead>\n <tbody\n className=\"bg-white divide-y\"\n style={{ borderColor: borderColor || '#e5e5e5' }}\n >\n {loading ? (\n <tr>\n <td\n colSpan={columns.length}\n className={`${currentSizeConfig.rowPadding} py-8 text-center`}\n style={{ color: '#333333' }}\n >\n <div className=\"flex justify-center items-center\">\n <svg\n className=\"animate-spin h-5 w-5 mr-2\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <circle\n className=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n strokeWidth=\"4\"\n />\n <path\n className=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n />\n </svg>\n Loading...\n </div>\n </td>\n </tr>\n ) : paginatedData.length === 0 ? (\n <tr>\n <td\n colSpan={columns.length}\n className={`${currentSizeConfig.rowPadding} py-8 text-center`}\n style={{ color: '#333333' }}\n >\n No data\n </td>\n </tr>\n ) : (\n paginatedData.map((record, index) => {\n const rowProps = onRow ? onRow(record, index) : {};\n const stripedBg = striped && index % 2 === 1 ? (stripedRowColor || '#F5F6F7') : 'transparent';\n const hoverBg = rowHoverColor || '#f3f4f6';\n return (\n <tr\n key={getRowKey(record, index)}\n className=\"transition-colors duration-200 ease-out\"\n style={{\n backgroundColor: stripedBg,\n }}\n onMouseEnter={(e) => {\n if (rowHoverColor || !striped || index % 2 === 0) {\n e.currentTarget.style.backgroundColor = hoverBg;\n }\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = stripedBg;\n }}\n {...rowProps}\n >\n {columns.map((column, colIdx) => {\n const value = getValue(record, column.dataIndex);\n const content = column.render ? column.render(value, record, index) : value;\n\n return (\n <td\n key={column.key}\n className={`${currentSizeConfig.rowPadding} ${currentSizeConfig.rowFontSize} text-gray-900 ${\n bordered && colIdx !== columns.length - 1 ? 'border-r' : ''\n } ${\n column.align === 'center'\n ? 'text-center'\n : column.align === 'right'\n ? 'text-right'\n : ''\n }`}\n style={{\n borderColor: borderColor || '#EEEEEE',\n }}\n >\n {content as ReactNode}\n </td>\n );\n })}\n </tr>\n );\n })\n )}\n </tbody>\n </table>\n </div>\n\n {/* Pagination */}\n {pagination !== false && (\n <Pagination\n current={currentPage}\n pageSize={pageSize}\n total={dataSource.length}\n onChange={handlePageChange}\n onPageSizeChange={handlePageSizeChange}\n showSizeChanger={\n pagination && typeof pagination === 'object' ? pagination.showSizeChanger : true\n }\n pageSizeOptions={\n pagination && typeof pagination === 'object'\n ? pagination.pageSizeOptions\n : [10, 20, 50, 100]\n }\n showTotal={pagination && typeof pagination === 'object' ? pagination.showTotal : true}\n size={\n pagination && typeof pagination === 'object' && pagination.size\n ? pagination.size\n : size === 'responsive'\n ? 'md'\n : size\n }\n />\n )}\n </div>\n );\n};\n\ninterface PaginationProps {\n current: number;\n pageSize: number;\n total: number;\n onChange: (page: number) => void;\n onPageSizeChange: (pageSize: number) => void;\n showSizeChanger?: boolean;\n pageSizeOptions?: number[];\n showTotal?: boolean;\n size?: 'sm' | 'md' | 'lg';\n}\n\nconst Pagination: FC<PaginationProps> = ({\n current,\n pageSize,\n total,\n onChange,\n onPageSizeChange,\n showSizeChanger = true,\n pageSizeOptions = [10, 20, 50, 100],\n showTotal = true,\n size = 'md',\n}) => {\n const totalPages = Math.ceil(total / pageSize);\n const startItem = (current - 1) * pageSize + 1;\n const endItem = Math.min(current * pageSize, total);\n\n const sizeClasses = {\n sm: {\n button: 'px-2.5 py-1 text-xs',\n icon: 'h-3.5 w-3.5',\n nav: 'px-1.5 py-1.5',\n },\n md: {\n button: 'px-4 py-2 text-sm',\n icon: 'h-5 w-5',\n nav: 'px-2 py-2',\n },\n lg: {\n button: 'px-5 py-2.5 text-base',\n icon: 'h-6 w-6',\n nav: 'px-3 py-3',\n },\n };\n\n const getPageNumbers = () => {\n const pages: (number | string)[] = [];\n const maxVisible = 7;\n\n if (totalPages <= maxVisible) {\n for (let i = 1; i <= totalPages; i++) {\n pages.push(i);\n }\n } else {\n if (current <= 3) {\n for (let i = 1; i <= 5; i++) pages.push(i);\n pages.push('...');\n pages.push(totalPages);\n } else if (current >= totalPages - 2) {\n pages.push(1);\n pages.push('...');\n for (let i = totalPages - 4; i <= totalPages; i++) pages.push(i);\n } else {\n pages.push(1);\n pages.push('...');\n for (let i = current - 1; i <= current + 1; i++) pages.push(i);\n pages.push('...');\n pages.push(totalPages);\n }\n }\n\n return pages;\n };\n\n return (\n <div className=\"flex items-center justify-between px-4 py-3 border-t border-[#EEEEEE] sm:px-6 mt-4\">\n {showTotal && (\n <div className=\"text-sm text-[#181918]\">\n {startItem}-{endItem} of {total} items\n </div>\n )}\n\n <div className=\"flex items-center gap-2\">\n {showSizeChanger && (\n <Select\n value={pageSize.toString()}\n onChange={(value) => onPageSizeChange(Number(value))}\n options={pageSizeOptions.map((size) => ({\n value: size.toString(),\n label: `${size} / page`,\n }))}\n size=\"sm\"\n className=\"w-32\"\n />\n )}\n\n <nav className=\"inline-flex gap-1 items-center\" aria-label=\"Pagination\">\n <button\n onClick={() => onChange(current - 1)}\n disabled={current === 1}\n className={`relative inline-flex items-center justify-center rounded-md ${sizeClasses[size].nav} text-[#181918] hover:bg-gray-100 focus:z-20 disabled:opacity-30 disabled:cursor-not-allowed disabled:hover:bg-transparent transition-all duration-300 ease-out hover:scale-110 active:scale-95`}\n >\n <svg className={sizeClasses[size].icon} viewBox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\">\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M15 19l-7-7 7-7\"\n />\n </svg>\n </button>\n\n {getPageNumbers().map((page, index) => {\n if (page === '...') {\n return (\n <span\n key={`ellipsis-${index}`}\n className={`relative inline-flex items-center justify-center ${sizeClasses[size].button} font-normal text-[#181918]`}\n >\n ...\n </span>\n );\n }\n\n return (\n <button\n key={page}\n onClick={() => onChange(page as number)}\n className={`relative inline-flex items-center justify-center rounded-md ${sizeClasses[size].button} font-medium transition-all duration-300 ease-out focus:z-20 hover:scale-105 active:scale-95 ${\n current === page\n ? 'bg-[#EC615B] text-white shadow-sm'\n : 'text-[#181918] hover:bg-gray-100'\n }`}\n >\n {page}\n </button>\n );\n })}\n\n <button\n onClick={() => onChange(current + 1)}\n disabled={current === totalPages}\n className={`relative inline-flex items-center justify-center rounded-md ${sizeClasses[size].nav} text-[#181918] hover:bg-gray-100 focus:z-20 disabled:opacity-30 disabled:cursor-not-allowed disabled:hover:bg-transparent transition-all duration-300 ease-out hover:scale-110 active:scale-95`}\n >\n <svg className={sizeClasses[size].icon} viewBox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\">\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M9 5l7 7-7 7\"\n />\n </svg>\n </button>\n </nav>\n </div>\n </div>\n );\n};\n\nexport default Table;\n","import type { FC, ReactNode, ChangeEvent, CSSProperties } from 'react';\n\nexport interface TableTopProps {\n // Existing props\n title?: string;\n description?: string;\n searchPlaceholder?: string;\n onSearch?: (value: string) => void;\n actions?: ReactNode;\n filters?: ReactNode;\n className?: string;\n\n // New responsive props\n size?: 'sm' | 'md' | 'lg' | 'responsive';\n\n // Custom color props\n titleColor?: string;\n descriptionColor?: string;\n searchBgColor?: string;\n searchBorderColor?: string;\n searchFocusBorderColor?: string;\n\n // Search input border radius\n rounded?: 'none' | 'sm' | 'md' | 'lg' | 'full';\n\n // Custom styles\n style?: CSSProperties;\n\n // New props for conditional action button display\n hideActionButtons?: boolean;\n selectedActionButton?: ReactNode;\n}\n\nexport const TableTop: FC<TableTopProps> = ({\n title,\n description,\n searchPlaceholder = 'Search...',\n onSearch,\n actions,\n filters,\n className = '',\n size = 'responsive',\n titleColor,\n descriptionColor,\n searchBgColor = 'white',\n searchBorderColor = '#d1d5db',\n searchFocusBorderColor = '#3b82f6',\n rounded = 'md',\n style,\n hideActionButtons = false,\n selectedActionButton,\n}) => {\n const handleSearchChange = (e: ChangeEvent<HTMLInputElement>) => {\n onSearch?.(e.target.value);\n };\n\n // Size configuration\n const sizeConfig = {\n sm: {\n titleSize: 'text-lg',\n titleWeight: 'font-semibold',\n descriptionSize: 'text-xs',\n searchInputSize: 'text-xs',\n searchInputPy: 'py-1.5',\n searchPaddingLeft: 'pl-8',\n iconSize: 'h-4 w-4',\n spacing: 'space-y-2',\n gap: 'gap-2',\n maxWidth: 'max-w-sm',\n descriptionMargin: 'mt-0.5',\n },\n md: {\n titleSize: 'text-xl',\n titleWeight: 'font-semibold',\n descriptionSize: 'text-sm',\n searchInputSize: 'text-sm',\n searchInputPy: 'py-2',\n searchPaddingLeft: 'pl-10',\n iconSize: 'h-5 w-5',\n spacing: 'space-y-3',\n gap: 'gap-3',\n maxWidth: 'max-w-md',\n descriptionMargin: 'mt-1',\n },\n lg: {\n titleSize: 'text-2xl',\n titleWeight: 'font-bold',\n descriptionSize: 'text-base',\n searchInputSize: 'text-base',\n searchInputPy: 'py-2.5',\n searchPaddingLeft: 'pl-12',\n iconSize: 'h-6 w-6',\n spacing: 'space-y-4',\n gap: 'gap-4',\n maxWidth: 'max-w-lg',\n descriptionMargin: 'mt-2',\n },\n responsive: {\n titleSize: 'text-lg sm:text-xl md:text-2xl',\n titleWeight: 'font-semibold md:font-bold',\n descriptionSize: 'text-xs sm:text-sm md:text-base',\n searchInputSize: 'text-xs sm:text-sm md:text-base',\n searchInputPy: 'py-1.5 sm:py-2 md:py-2.5',\n searchPaddingLeft: 'pl-8 sm:pl-10 md:pl-12',\n iconSize: 'h-4 w-4 sm:h-5 sm:w-5 md:h-6 md:w-6',\n spacing: 'space-y-2 sm:space-y-3 md:space-y-4',\n gap: 'gap-2 sm:gap-3 md:gap-4',\n maxWidth: 'max-w-sm md:max-w-md lg:max-w-lg',\n descriptionMargin: 'mt-0.5 sm:mt-1 md:mt-2',\n },\n };\n\n const config = sizeConfig[size];\n\n // Border radius configuration\n const radiusConfig = {\n none: 'rounded-none',\n sm: 'rounded-sm',\n md: 'rounded-md',\n lg: 'rounded-lg',\n full: 'rounded-full',\n };\n\n const radiusClass = radiusConfig[rounded];\n\n // Build inline styles for custom colors\n const searchInputStyle: CSSProperties = {\n backgroundColor: searchBgColor,\n borderColor: searchBorderColor,\n };\n\n return (\n <div\n className={`${config.spacing} mb-4 ${className}`}\n style={style}\n >\n {/* Title and Description */}\n {(title || description) && (\n <div>\n {title && (\n <h2\n className={`${config.titleSize} ${config.titleWeight}`}\n style={{ color: titleColor || '#111827' }}\n >\n {title}\n </h2>\n )}\n {description && (\n <p\n className={`${config.descriptionSize} ${config.descriptionMargin}`}\n style={{ color: descriptionColor || '#6b7280' }}\n >\n {description}\n </p>\n )}\n </div>\n )}\n\n {/* Search and Actions Row */}\n <div className={`flex flex-col sm:flex-row items-stretch sm:items-center justify-between ${config.gap}`}>\n {/* Search Input */}\n {onSearch && (\n <div className={`flex-1 ${config.maxWidth}`}>\n <div className=\"relative\">\n <div className=\"absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none\">\n <svg\n className={`${config.iconSize} text-gray-400`}\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z\"\n />\n </svg>\n </div>\n <input\n type=\"text\"\n placeholder={searchPlaceholder}\n onChange={handleSearchChange}\n className={`block w-full ${config.searchPaddingLeft} pr-3 ${config.searchInputPy} border ${radiusClass} focus:outline-none focus:ring-2 focus:ring-opacity-50 ${config.searchInputSize} transition-colors duration-200`}\n style={searchInputStyle}\n onFocus={(e) => {\n e.currentTarget.style.borderColor = searchFocusBorderColor;\n e.currentTarget.style.boxShadow = `0 0 0 2px rgba(59, 130, 246, 0.1)`;\n }}\n onBlur={(e) => {\n e.currentTarget.style.borderColor = searchBorderColor;\n e.currentTarget.style.boxShadow = 'none';\n }}\n />\n </div>\n </div>\n )}\n\n {/* Actions (Buttons) */}\n <div className={`flex items-center gap-2 w-full sm:w-auto`}>\n {hideActionButtons && selectedActionButton ? (\n selectedActionButton\n ) : (\n actions\n )}\n </div>\n </div>\n\n {/* Filters Row */}\n {filters && (\n <div className={`flex flex-wrap items-center ${config.gap}`}>\n {filters}\n </div>\n )}\n </div>\n );\n};\n\nexport default TableTop;\n","import { useEffect, useState, CSSProperties } from 'react';\nimport type { FC, ReactNode, MouseEvent } from 'react';\n\ntype ModalSize = 'sm' | 'md' | 'lg' | 'xl' | 'full' | 'responsive';\n\nconst widthMap: Record<ModalSize, string> = {\n sm: '384px',\n md: '448px',\n lg: '512px',\n xl: '600px',\n full: '100%',\n responsive: '90vw',\n};\n\nexport interface ModalProps {\n open: boolean;\n onClose: () => void;\n title?: string;\n children: ReactNode;\n footer?: ReactNode;\n width?: string | number;\n size?: ModalSize;\n closable?: boolean;\n maskClosable?: boolean;\n centered?: boolean;\n className?: string;\n bgColor?: string;\n headerBgColor?: string;\n overlayColor?: string;\n bodyClassName?: string;\n headerClassName?: string;\n maxHeight?: string | number;\n}\n\nexport const Modal: FC<ModalProps> = ({\n open,\n onClose,\n title,\n children,\n footer,\n width,\n size = 'md',\n closable = true,\n maskClosable = true,\n centered = true,\n className = '',\n bgColor = '#ffffff',\n headerBgColor = '#ffffff',\n overlayColor = 'rgba(0, 0, 0, 0.5)',\n bodyClassName = '',\n headerClassName = '',\n maxHeight = '70vh',\n}) => {\n const [isVisible, setIsVisible] = useState(false);\n const [isAnimating, setIsAnimating] = useState(false);\n\n // Determine effective width\n const effectiveWidth = width || widthMap[size];\n const effectiveWidthNum = typeof effectiveWidth === 'number' ? `${effectiveWidth}px` : effectiveWidth;\n\n // Prepare modal style\n const modalStyle: CSSProperties = {\n width: effectiveWidthNum,\n maxWidth: '90vw',\n backgroundColor: bgColor,\n };\n\n // Prepare header style\n const headerStyle: CSSProperties = {\n backgroundColor: headerBgColor,\n };\n\n // Prepare overlay style\n const overlayStyle: CSSProperties = {\n backgroundColor: overlayColor,\n };\n\n useEffect(() => {\n if (open) {\n setIsVisible(true);\n // Small delay to trigger animation\n setTimeout(() => setIsAnimating(true), 10);\n document.body.style.overflow = 'hidden';\n } else {\n setIsAnimating(false);\n // Wait for animation to complete before unmounting\n const timer = setTimeout(() => {\n setIsVisible(false);\n }, 200);\n document.body.style.overflow = 'unset';\n return () => clearTimeout(timer);\n }\n }, [open]);\n\n // Close on Escape key\n useEffect(() => {\n const handleEscape = (e: KeyboardEvent) => {\n if (e.key === 'Escape' && closable && open) {\n onClose();\n }\n };\n\n if (open) {\n document.addEventListener('keydown', handleEscape);\n }\n\n return () => {\n document.removeEventListener('keydown', handleEscape);\n };\n }, [open, onClose, closable]);\n\n if (!isVisible) return null;\n\n const handleMaskClick = () => {\n if (maskClosable) {\n onClose();\n }\n };\n\n const handleModalClick = (e: MouseEvent) => {\n e.stopPropagation();\n };\n\n return (\n <div\n className=\"fixed inset-0 z-50 overflow-y-auto\"\n onClick={handleMaskClick}\n >\n {/* Backdrop */}\n <div\n className={`fixed inset-0 transition-opacity duration-200 ease-out ${\n isAnimating ? 'opacity-100' : 'opacity-0'\n }`}\n style={overlayStyle}\n />\n\n {/* Modal Container */}\n <div className={`flex min-h-full items-center justify-center p-4 ${centered ? 'items-center' : 'items-start pt-20'}`}>\n <div\n className={`relative rounded-lg shadow-xl transition-all duration-200 ease-out overflow-y-auto ${\n isAnimating\n ? 'opacity-100 scale-100 translate-y-0'\n : 'opacity-0 scale-95 -translate-y-4'\n } ${className}`}\n style={{...modalStyle, maxHeight: typeof maxHeight === 'number' ? `${maxHeight}px` : maxHeight}}\n onClick={handleModalClick}\n >\n {/* Header */}\n {(title || closable) && (\n <div\n className={`flex items-center justify-between px-6 py-4 border-b border-gray-200 ${headerClassName}`}\n style={headerStyle}\n >\n {title && <h3 className=\"text-lg font-semibold text-gray-900\">{title}</h3>}\n {closable && (\n <button\n onClick={onClose}\n className=\"text-gray-400 hover:text-gray-600 transition-colors duration-200 ease-out\"\n >\n <svg\n className=\"w-5 h-5\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M6 18L18 6M6 6l12 12\"\n />\n </svg>\n </button>\n )}\n </div>\n )}\n\n {/* Body */}\n <div\n className={`px-6 py-4 ${bodyClassName}`}\n >\n {children}\n </div>\n\n {/* Footer */}\n {footer && (\n <div className=\"px-6 py-4 border-t border-gray-200 flex justify-end gap-2\">\n {footer}\n </div>\n )}\n </div>\n </div>\n </div>\n );\n};\n\nexport default Modal;\n","import type { FC, ReactNode, CSSProperties } from 'react';\n\nexport interface BadgeProps {\n children: ReactNode;\n variant?: 'default' | 'primary' | 'success' | 'warning' | 'danger' | 'info';\n size?: 'sm' | 'md' | 'lg' | 'responsive';\n dot?: boolean;\n icon?: ReactNode;\n iconPosition?: 'left' | 'right';\n className?: string;\n bgColor?: string;\n textColor?: string;\n borderColor?: string;\n rounded?: 'none' | 'sm' | 'md' | 'lg' | 'full';\n style?: CSSProperties;\n}\n\nexport const Badge: FC<BadgeProps> = ({\n children,\n variant = 'default',\n size = 'md',\n dot = false,\n icon,\n iconPosition = 'left',\n className = '',\n bgColor,\n textColor,\n borderColor,\n rounded = 'full',\n style,\n}) => {\n const variantClasses = {\n default: 'bg-gray-100 text-[#181918]',\n primary: 'bg-[#FCEAE9] text-[#EC615B]',\n success: 'bg-green-100 text-green-800',\n warning: 'bg-yellow-100 text-yellow-800',\n danger: 'bg-red-100 text-red-800',\n info: 'bg-cyan-100 text-cyan-800',\n };\n\n const sizeClasses = {\n sm: 'px-2 py-0.5 text-xs',\n md: 'px-2.5 py-1 text-sm',\n lg: 'px-3 py-1.5 text-base',\n responsive: 'px-1.5 py-0.5 text-[10px] sm:px-2 sm:py-0.5 sm:text-xs md:px-2.5 md:py-1 md:text-sm lg:px-3 lg:py-1.5 lg:text-base',\n };\n\n const dotSizeClasses = {\n sm: 'w-1.5 h-1.5',\n md: 'w-2 h-2',\n lg: 'w-2.5 h-2.5',\n responsive: 'w-1 h-1 sm:w-1.5 sm:h-1.5 md:w-2 md:h-2 lg:w-2.5 lg:h-2.5',\n };\n\n const dotColorClasses = {\n default: 'bg-gray-600',\n primary: 'bg-[#EC615B]',\n success: 'bg-green-600',\n warning: 'bg-yellow-600',\n danger: 'bg-red-600',\n info: 'bg-cyan-600',\n };\n\n const iconSizeClasses = {\n sm: 'w-3 h-3',\n md: 'w-3.5 h-3.5',\n lg: 'w-4 h-4',\n responsive: 'w-2.5 h-2.5 sm:w-3 sm:h-3 md:w-3.5 md:h-3.5 lg:w-4 lg:h-4',\n };\n\n const roundedClasses = {\n none: 'rounded-none',\n sm: 'rounded-sm',\n md: 'rounded-md',\n lg: 'rounded-lg',\n full: 'rounded-full',\n };\n\n const customStyles: CSSProperties = {\n ...(bgColor && { backgroundColor: bgColor }),\n ...(textColor && { color: textColor }),\n ...(borderColor && { borderColor, borderWidth: '1px', borderStyle: 'solid' }),\n ...style,\n };\n\n return (\n <span\n className={`inline-flex items-center gap-1.5 font-medium transition-all duration-200 ${!bgColor ? variantClasses[variant] : ''} ${sizeClasses[size]} ${roundedClasses[rounded]} ${className}`}\n style={customStyles}\n >\n {dot && (\n <span className={`rounded-full ${dotSizeClasses[size]} ${dotColorClasses[variant]}`} />\n )}\n {icon && iconPosition === 'left' && (\n <span className={`inline-flex items-center ${iconSizeClasses[size]}`}>\n {icon}\n </span>\n )}\n {children}\n {icon && iconPosition === 'right' && (\n <span className={`inline-flex items-center ${iconSizeClasses[size]}`}>\n {icon}\n </span>\n )}\n </span>\n );\n};\n\nexport default Badge;\n","import type { FC, ReactNode, CSSProperties } from 'react';\n\nexport interface StepItem {\n title: string;\n description?: string;\n status?: 'wait' | 'process' | 'finish' | 'error';\n icon?: ReactNode;\n}\n\nexport interface StepsProps {\n items: StepItem[];\n current?: number;\n direction?: 'horizontal' | 'vertical';\n size?: 'sm' | 'md' | 'lg' | 'responsive';\n variant?: 'default' | 'outline';\n className?: string;\n style?: CSSProperties;\n finishColor?: string;\n processColor?: string;\n waitColor?: string;\n errorColor?: string;\n lineColor?: string;\n}\n\nexport const Steps: FC<StepsProps> = ({\n items,\n current = 0,\n direction = 'vertical',\n size = 'md',\n variant = 'default',\n className = '',\n style,\n finishColor,\n processColor,\n waitColor,\n errorColor,\n lineColor,\n}) => {\n const getStepStatus = (index: number, item: StepItem): StepItem['status'] => {\n if (item.status) return item.status;\n if (index < current) return 'finish';\n if (index === current) return 'process';\n return 'wait';\n };\n\n const iconSizeClasses = {\n sm: 'w-6 h-6',\n md: 'w-8 h-8',\n lg: 'w-10 h-10',\n responsive: 'w-6 h-6 sm:w-7 sm:h-7 md:w-8 md:h-8 lg:w-10 lg:h-10',\n };\n\n const textSizeClasses = {\n sm: 'text-sm',\n md: 'text-base',\n lg: 'text-lg',\n responsive: 'text-xs sm:text-sm md:text-base lg:text-lg',\n };\n\n const descriptionSizeClasses = {\n sm: 'text-xs',\n md: 'text-sm',\n lg: 'text-base',\n responsive: 'text-xs sm:text-xs md:text-sm lg:text-base',\n };\n\n const renderIcon = (status: StepItem['status'], icon?: ReactNode) => {\n if (icon) return icon;\n\n if (status === 'finish') {\n return (\n <svg className=\"w-5 h-5\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\"\n clipRule=\"evenodd\"\n />\n </svg>\n );\n }\n\n if (status === 'error') {\n return (\n <svg className=\"w-5 h-5\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\"\n clipRule=\"evenodd\"\n />\n </svg>\n );\n }\n\n return null;\n };\n\n const getStatusClasses = (status: StepItem['status']) => {\n const isOutline = variant === 'outline';\n\n switch (status) {\n case 'finish':\n return {\n icon: isOutline\n ? `bg-white text-white border ${finishColor ? `border-[${finishColor}]` : 'border-green-500'}`\n : `${finishColor ? `bg-[${finishColor}]` : 'bg-green-500'} text-white ${finishColor ? `border-[${finishColor}]` : 'border-green-500'}`,\n title: 'text-[#181918]',\n description: 'text-gray-600',\n line: lineColor ? `bg-[${lineColor}]` : 'bg-green-500',\n iconColor: finishColor,\n };\n case 'process':\n return {\n icon: isOutline\n ? `bg-white text-white border ${processColor ? `border-[${processColor}]` : 'border-[#EC615B]'}`\n : `${processColor ? `bg-[${processColor}]` : 'bg-[#EC615B]'} text-white ${processColor ? `border-[${processColor}]` : 'border-[#EC615B]'}`,\n title: 'text-[#181918] font-semibold',\n description: 'text-gray-700',\n line: lineColor ? `bg-[${lineColor}]` : 'bg-gray-300',\n iconColor: processColor,\n };\n case 'error':\n return {\n icon: isOutline\n ? `bg-white text-white border ${errorColor ? `border-[${errorColor}]` : 'border-red-500'}`\n : `${errorColor ? `bg-[${errorColor}]` : 'bg-red-500'} text-white ${errorColor ? `border-[${errorColor}]` : 'border-red-500'}`,\n title: 'text-red-600',\n description: 'text-red-500',\n line: lineColor ? `bg-[${lineColor}]` : 'bg-gray-300',\n iconColor: errorColor,\n };\n default:\n return {\n icon: 'bg-white text-gray-400 border-gray-300',\n title: 'text-gray-500',\n description: 'text-gray-400',\n line: lineColor ? `bg-[${lineColor}]` : 'bg-gray-300',\n iconColor: waitColor,\n };\n }\n };\n\n if (direction === 'horizontal') {\n return (\n <div className={`flex items-start ${className}`} style={style}>\n {items.map((item, index) => {\n const status = getStepStatus(index, item);\n const statusClasses = getStatusClasses(status);\n const isLast = index === items.length - 1;\n const iconStyle: CSSProperties = {};\n if (statusClasses.iconColor) {\n iconStyle.color = statusClasses.iconColor;\n }\n\n return (\n <div key={index} className=\"flex flex-1 items-start\">\n <div className=\"flex flex-col items-center\">\n <div\n className={`flex items-center justify-center ${iconSizeClasses[size]} rounded-full border transition-all duration-300 ${statusClasses.icon}`}\n style={iconStyle}\n >\n {renderIcon(status, item.icon)}\n </div>\n <div className=\"mt-2 text-center\">\n <div\n className={`${textSizeClasses[size]} ${statusClasses.title} transition-colors duration-300`}\n >\n {item.title}\n </div>\n {item.description && (\n <div\n className={`${descriptionSizeClasses[size]} ${statusClasses.description} mt-1 transition-colors duration-300`}\n >\n {item.description}\n </div>\n )}\n </div>\n </div>\n {!isLast && (\n <div\n className={`flex-1 h-0.5 mt-4 mx-2 ${statusClasses.line} transition-colors duration-300`}\n />\n )}\n </div>\n );\n })}\n </div>\n );\n }\n\n return (\n <div className={`flex flex-col ${className}`} style={style}>\n {items.map((item, index) => {\n const status = getStepStatus(index, item);\n const statusClasses = getStatusClasses(status);\n const isLast = index === items.length - 1;\n const iconStyle: CSSProperties = {};\n if (statusClasses.iconColor) {\n iconStyle.color = statusClasses.iconColor;\n }\n\n return (\n <div key={index} className=\"flex\">\n <div className=\"flex flex-col items-center mr-4\">\n <div\n className={`flex items-center justify-center ${iconSizeClasses[size]} rounded-full border transition-all duration-300 ${statusClasses.icon}`}\n style={iconStyle}\n >\n {renderIcon(status, item.icon)}\n </div>\n {!isLast && (\n <div\n className={`w-0.5 flex-1 my-1 ${statusClasses.line} transition-colors duration-300`}\n style={{ minHeight: '20px' }}\n />\n )}\n </div>\n <div className=\"flex-1 pb-6\">\n <div\n className={`${textSizeClasses[size]} ${statusClasses.title} transition-colors duration-300`}\n >\n {item.title}\n </div>\n {item.description && (\n <div\n className={`${descriptionSizeClasses[size]} ${statusClasses.description} mt-1 transition-colors duration-300`}\n >\n {item.description}\n </div>\n )}\n </div>\n </div>\n );\n })}\n </div>\n );\n};\n\nexport default Steps;\n","import type { FC, ReactNode } from 'react';\n\nexport interface ProgressProps {\n percent?: number;\n status?: 'normal' | 'success' | 'exception' | 'active';\n showInfo?: boolean;\n strokeColor?: string;\n strokeWidth?: number;\n size?: 'sm' | 'md' | 'lg' | 'responsive';\n className?: string;\n format?: (percent: number) => ReactNode;\n bgColor?: string;\n successColor?: string;\n exceptionColor?: string;\n trackColor?: string;\n rounded?: 'none' | 'sm' | 'md' | 'lg' | 'full';\n}\n\nexport const Progress: FC<ProgressProps> = ({\n percent = 0,\n status = 'normal',\n showInfo = true,\n strokeColor,\n strokeWidth,\n size = 'md',\n className = '',\n format,\n bgColor,\n successColor,\n exceptionColor,\n trackColor,\n rounded = 'full',\n}) => {\n const clampedPercent = Math.min(100, Math.max(0, percent));\n\n const heightClasses = {\n sm: 'h-1.5',\n md: 'h-2',\n lg: 'h-3',\n responsive: 'h-1.5 sm:h-2 md:h-3 lg:h-4',\n };\n\n const textSizeClasses = {\n sm: 'text-xs',\n md: 'text-sm',\n lg: 'text-base',\n responsive: 'text-xs sm:text-sm md:text-base lg:text-lg',\n };\n\n const roundedClasses = {\n none: 'rounded-none',\n sm: 'rounded-sm',\n md: 'rounded-md',\n lg: 'rounded-lg',\n full: 'rounded-full',\n };\n\n const getStatusColor = () => {\n if (strokeColor) return strokeColor;\n\n switch (status) {\n case 'success':\n return successColor || 'bg-green-500';\n case 'exception':\n return exceptionColor || 'bg-red-500';\n case 'active':\n return bgColor || 'bg-[#EC615B]';\n default:\n if (clampedPercent === 100) return successColor || 'bg-green-500';\n return bgColor || 'bg-[#EC615B]';\n }\n };\n\n const getTrackColor = () => {\n return trackColor || 'bg-gray-200';\n };\n\n const getStatusIcon = () => {\n if (status === 'success' || clampedPercent === 100) {\n return (\n <svg className=\"w-4 h-4 text-green-500\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z\"\n clipRule=\"evenodd\"\n />\n </svg>\n );\n }\n\n if (status === 'exception') {\n return (\n <svg className=\"w-4 h-4 text-red-500\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z\"\n clipRule=\"evenodd\"\n />\n </svg>\n );\n }\n\n return null;\n };\n\n const formatPercent = () => {\n if (format) return format(clampedPercent);\n return `${Math.round(clampedPercent)}%`;\n };\n\n const height = strokeWidth ? `${strokeWidth}px` : undefined;\n\n return (\n <div className={`flex items-center gap-2 ${className}`}>\n <div className=\"flex-1\">\n <div\n className={`w-full overflow-hidden ${heightClasses[size]} ${roundedClasses[rounded]} ${getTrackColor()}`}\n style={{ height }}\n >\n <div\n className={`${getStatusColor()} ${heightClasses[size]} ${roundedClasses[rounded]} transition-all duration-300 ease-out ${\n status === 'active' ? 'progress-active' : ''\n }`}\n style={{\n width: `${clampedPercent}%`,\n height,\n }}\n />\n </div>\n </div>\n\n {showInfo && (\n <div className={`flex items-center gap-1 ${textSizeClasses[size]} text-gray-600 font-normal`}>\n {getStatusIcon() || formatPercent()}\n </div>\n )}\n </div>\n );\n};\n\nexport default Progress;\n","import { useState } from 'react';\nimport type { FC, ChangeEvent, CSSProperties } from 'react';\n\nexport interface CheckboxProps {\n checked?: boolean;\n defaultChecked?: boolean;\n onChange?: (checked: boolean) => void;\n disabled?: boolean;\n indeterminate?: boolean;\n size?: 'sm' | 'md' | 'lg' | 'responsive';\n variant?: 'filled' | 'outline';\n className?: string;\n id?: string;\n name?: string;\n value?: string;\n checkedColor?: string;\n uncheckedColor?: string;\n checkedBorderColor?: string;\n style?: CSSProperties;\n}\n\nexport const Checkbox: FC<CheckboxProps> = ({\n checked: controlledChecked,\n defaultChecked = false,\n onChange,\n disabled = false,\n indeterminate = false,\n size = 'md',\n variant = 'filled',\n className = '',\n id,\n name,\n value,\n checkedColor = '#EC615B',\n uncheckedColor = '#ffffff',\n checkedBorderColor = '#EC615B',\n style,\n}) => {\n const [internalChecked, setInternalChecked] = useState(defaultChecked);\n\n const isControlled = controlledChecked !== undefined;\n const checked = isControlled ? controlledChecked : internalChecked;\n\n const handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n if (disabled) return;\n\n const newChecked = e.target.checked;\n\n if (!isControlled) {\n setInternalChecked(newChecked);\n }\n\n onChange?.(newChecked);\n };\n\n const sizeClasses = {\n sm: 'w-4 h-4',\n md: 'w-5 h-5',\n lg: 'w-6 h-6',\n responsive: 'w-4 h-4 sm:w-5 sm:h-5 lg:w-6 lg:h-6',\n };\n\n const iconSizeClasses = {\n sm: 'w-3 h-3',\n md: 'w-3.5 h-3.5',\n lg: 'w-4 h-4',\n responsive: 'w-2.5 h-2.5 sm:w-3.5 sm:h-3.5 lg:w-4 lg:h-4',\n };\n\n const isFilled = variant === 'filled';\n\n const getCheckboxClasses = () => {\n if (disabled) {\n return 'cursor-not-allowed opacity-50 border-gray-300 bg-gray-100';\n }\n\n if (isFilled) {\n // Filled variant\n if (!checked && !indeterminate) {\n return 'border-gray-300 bg-white hover:border-gray-400';\n }\n return '';\n } else {\n // Outline variant\n if (!checked && !indeterminate) {\n return 'border-gray-300 bg-white hover:border-gray-400';\n }\n return '';\n }\n };\n\n const getCheckboxInlineStyles = (): CSSProperties | undefined => {\n if (disabled) return undefined;\n\n if (!checked && !indeterminate) {\n return undefined;\n }\n\n if (isFilled) {\n return {\n borderColor: checkedBorderColor,\n backgroundColor: checkedColor,\n };\n } else {\n return {\n borderColor: checkedBorderColor,\n backgroundColor: uncheckedColor,\n };\n }\n };\n\n const getIconColor = () => {\n if (isFilled && (checked || indeterminate)) {\n return 'text-white';\n }\n return '';\n };\n\n return (\n <div className=\"inline-flex items-center\" style={style}>\n <input\n type=\"checkbox\"\n id={id}\n name={name}\n value={value}\n checked={checked}\n onChange={handleChange}\n disabled={disabled}\n className=\"sr-only\"\n />\n <label\n htmlFor={id}\n className={`\n relative flex items-center justify-center\n ${sizeClasses[size]}\n ${variant === 'outline' ? 'border' : 'border-2'}\n rounded\n transition-all duration-200 ease-out\n cursor-pointer\n ${getCheckboxClasses()}\n ${className}\n `}\n style={getCheckboxInlineStyles()}\n >\n {/* Checkmark Icon */}\n {checked && !indeterminate && (\n <svg\n className={`${iconSizeClasses[size]} ${getIconColor()}`}\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n strokeWidth={3}\n style={\n !isFilled && (checked || indeterminate)\n ? { color: checkedColor }\n : undefined\n }\n >\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M5 13l4 4L19 7\" />\n </svg>\n )}\n\n {/* Indeterminate Icon */}\n {indeterminate && (\n <svg\n className={`${iconSizeClasses[size]} ${getIconColor()}`}\n fill=\"currentColor\"\n viewBox=\"0 0 24 24\"\n style={\n !isFilled && (checked || indeterminate)\n ? { color: checkedColor }\n : undefined\n }\n >\n <rect x=\"4\" y=\"11\" width=\"16\" height=\"2\" rx=\"1\" />\n </svg>\n )}\n </label>\n </div>\n );\n};\n\nexport default Checkbox;\n","import type { FC, CSSProperties } from 'react';\n\nexport interface SelectedItem {\n id: string | number;\n label: string;\n sublabel?: string;\n}\n\nexport interface SelectedItemsListProps {\n items: SelectedItem[];\n onRemove: (id: string | number) => void;\n emptyMessage?: string;\n className?: string;\n itemClassName?: string;\n maxHeight?: string;\n // New size and responsive props\n size?: 'sm' | 'md' | 'lg' | 'responsive';\n // New custom color props\n bgColor?: string;\n hoverBgColor?: string;\n textColor?: string;\n sublabelColor?: string;\n removeButtonColor?: string;\n removeButtonHoverColor?: string;\n // New border radius prop\n rounded?: 'none' | 'sm' | 'md' | 'lg' | 'full';\n // New style prop\n style?: CSSProperties;\n}\n\n// Helper function to get size-based classes\nconst getSizeClasses = (size: 'sm' | 'md' | 'lg' | 'responsive' = 'md') => {\n const baseClasses = {\n sm: {\n container: 'space-y-1',\n item: 'px-2 py-1.5',\n label: 'text-xs',\n sublabel: 'text-[10px]',\n button: 'w-5 h-5',\n icon: 'w-3 h-3',\n },\n md: {\n container: 'space-y-2',\n item: 'px-4 py-3',\n label: 'text-sm',\n sublabel: 'text-xs',\n button: 'w-6 h-6',\n icon: 'w-4 h-4',\n },\n lg: {\n container: 'space-y-3',\n item: 'px-5 py-4',\n label: 'text-base',\n sublabel: 'text-sm',\n button: 'w-7 h-7',\n icon: 'w-5 h-5',\n },\n responsive: {\n container: 'space-y-1 sm:space-y-2 md:space-y-3',\n item: 'px-2 py-1.5 sm:px-3 sm:py-2 md:px-4 md:py-3 lg:px-5 lg:py-4',\n label: 'text-xs sm:text-sm md:text-base',\n sublabel: 'text-[10px] sm:text-xs md:text-sm',\n button: 'w-5 h-5 sm:w-5 sm:h-5 md:w-6 md:h-6 lg:w-7 lg:h-7',\n icon: 'w-3 h-3 sm:w-3 sm:h-3 md:w-4 md:h-4 lg:w-5 lg:h-5',\n },\n };\n\n return baseClasses[size];\n};\n\n// Helper function to get rounded corner classes\nconst getRoundedClasses = (rounded: 'none' | 'sm' | 'md' | 'lg' | 'full' = 'md') => {\n const roundedMap = {\n none: 'rounded-none',\n sm: 'rounded-sm',\n md: 'rounded-lg',\n lg: 'rounded-xl',\n full: 'rounded-full',\n };\n\n return roundedMap[rounded];\n};\n\nexport const SelectedItemsList: FC<SelectedItemsListProps> = ({\n items,\n onRemove,\n emptyMessage = 'No items selected',\n className = '',\n itemClassName = '',\n maxHeight = '300px',\n size = 'md',\n bgColor,\n hoverBgColor,\n textColor,\n sublabelColor,\n removeButtonColor,\n removeButtonHoverColor,\n rounded = 'md',\n style,\n}) => {\n const sizeClasses = getSizeClasses(size);\n const roundedClass = getRoundedClasses(rounded);\n\n // Default colors\n const defaultBgColor = '#F4F4F4';\n const defaultHoverBgColor = '#EBEBEB';\n const defaultTextColor = '#181918';\n const defaultSublabelColor = '#999999';\n const defaultRemoveButtonColor = '#9CA3AF';\n const defaultRemoveButtonHoverColor = '#EC615B';\n\n // Get final colors (use provided or default)\n const finalBgColor = bgColor || defaultBgColor;\n const finalHoverBgColor = hoverBgColor || defaultHoverBgColor;\n const finalTextColor = textColor || defaultTextColor;\n const finalSublabelColor = sublabelColor || defaultSublabelColor;\n const finalRemoveButtonColor = removeButtonColor || defaultRemoveButtonColor;\n const finalRemoveButtonHoverColor = removeButtonHoverColor || defaultRemoveButtonHoverColor;\n\n if (items.length === 0) {\n return (\n <div\n className={`text-center py-8 text-gray-500 text-sm ${className}`}\n style={{\n color: finalSublabelColor,\n ...style,\n }}\n >\n {emptyMessage}\n </div>\n );\n }\n\n return (\n <div\n className={`overflow-y-auto ${sizeClasses.container} ${className}`}\n style={{ maxHeight, ...style }}\n >\n {items.map((item, index) => (\n <div\n key={item.id}\n className={`\n group flex items-center justify-between\n ${roundedClass}\n transition-all duration-300 ease-out\n hover:shadow-sm\n animate-slide-in-item\n ${itemClassName}\n `}\n style={{\n backgroundColor: finalBgColor,\n animationDelay: `${index * 50}ms`,\n }}\n onMouseEnter={(e) => {\n (e.currentTarget as HTMLElement).style.backgroundColor = finalHoverBgColor;\n }}\n onMouseLeave={(e) => {\n (e.currentTarget as HTMLElement).style.backgroundColor = finalBgColor;\n }}\n >\n <div className={`flex-1 min-w-0 ${sizeClasses.item}`}>\n {item.sublabel && (\n <div\n className={`font-normal mb-0.5 ${sizeClasses.sublabel}`}\n style={{ color: finalSublabelColor }}\n >\n {item.sublabel}\n </div>\n )}\n <div\n className={`font-medium truncate ${sizeClasses.label}`}\n style={{ color: finalTextColor }}\n >\n {item.label}\n </div>\n </div>\n\n <button\n onClick={() => onRemove(item.id)}\n className={`\n ml-3 flex-shrink-0 rounded-full\n flex items-center justify-center\n transition-all duration-200 ease-out\n hover:scale-110\n active:scale-95\n focus:outline-none focus:ring-2 focus:ring-opacity-50\n ${sizeClasses.button}\n `}\n style={{\n color: finalRemoveButtonColor,\n }}\n onMouseEnter={(e) => {\n (e.currentTarget as HTMLElement).style.backgroundColor = 'white';\n (e.currentTarget as HTMLElement).style.color = finalRemoveButtonHoverColor;\n }}\n onMouseLeave={(e) => {\n (e.currentTarget as HTMLElement).style.backgroundColor = 'transparent';\n (e.currentTarget as HTMLElement).style.color = finalRemoveButtonColor;\n }}\n aria-label={`Remove ${item.label}`}\n >\n <svg\n className={sizeClasses.icon}\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M6 18L18 6M6 6l12 12\"\n />\n </svg>\n </button>\n </div>\n ))}\n </div>\n );\n};\n\nexport default SelectedItemsList;\n","import React from 'react';\nimport { Input as AntInput, InputProps as AntInputProps } from 'antd';\n\nexport interface InputProps extends AntInputProps {\n label?: string;\n error?: string;\n helperText?: string;\n}\n\nexport const Input: React.FC<InputProps> = ({\n label,\n error,\n helperText,\n className = '',\n status,\n ...props\n}) => {\n // Generate a unique class name for this input instance to scope the styles\n const errorClass = error ? 'input-error-state' : '';\n\n return (\n <div className=\"w-full\">\n {label && (\n <label className=\"block text-sm font-medium mb-2\" style={{ color: error ? '#C21919' : '#181918' }}>\n {label}\n {props.required && <span style={{ color: '#C21919' }}>*</span>}\n </label>\n )}\n <style>\n {error && `\n .input-error-state .ant-input-group-addon {\n border-color: #C21919 !important;\n }\n .input-error-state .ant-input-group-addon:first-child {\n border-right: none !important;\n }\n .input-error-state .ant-input {\n border-color: #C21919 !important;\n }\n .input-error-state .ant-input:focus,\n .input-error-state .ant-input-focused {\n border-color: #C21919 !important;\n box-shadow: 0 0 0 2px rgba(194, 25, 25, 0.1) !important;\n }\n `}\n </style>\n <AntInput\n className={`${className} ${errorClass}`}\n status={error ? 'error' : status}\n {...props}\n style={{\n height: '44px',\n borderRadius: '12px',\n borderColor: error ? '#C21919' : '#D1D1D1',\n ...props.style,\n }}\n />\n {error && (\n <div className=\"flex items-center mt-1 text-xs text-[#C21919]\">\n <svg\n className=\"w-3 h-3 mr-1\"\n fill=\"currentColor\"\n viewBox=\"0 0 20 20\"\n >\n <path\n fillRule=\"evenodd\"\n d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7 4a1 1 0 11-2 0 1 1 0 012 0zm-1-9a1 1 0 00-1 1v4a1 1 0 102 0V6a1 1 0 00-1-1z\"\n clipRule=\"evenodd\"\n />\n </svg>\n {error}\n </div>\n )}\n {!error && helperText && (\n <div className=\"mt-1 text-xs text-gray-500\">{helperText}</div>\n )}\n </div>\n );\n};\n","import React from 'react';\nimport { Input as AntInput } from 'antd';\nimport type { PasswordProps as AntPasswordProps } from 'antd/es/input';\n\nexport interface PasswordInputProps extends AntPasswordProps {\n label?: string;\n error?: string;\n helperText?: string;\n}\n\nexport const PasswordInput: React.FC<PasswordInputProps> = ({\n label,\n error,\n helperText,\n className = '',\n status,\n ...props\n}) => {\n const errorClass = error ? 'password-input-error-state' : '';\n const combinedClassName = `password-input-custom ${className} ${errorClass}`;\n\n return (\n <div className=\"w-full\">\n {label && (\n <label className=\"block text-sm font-medium mb-2\" style={{ color: error ? '#C21919' : '#181918' }}>\n {label}\n {props.required && <span style={{ color: '#C21919' }}>*</span>}\n </label>\n )}\n <style>\n {error && `\n .password-input-error-state .ant-input-group-addon {\n border-color: #C21919 !important;\n }\n .password-input-error-state .ant-input-group-addon:first-child {\n border-right: none !important;\n }\n .password-input-error-state .ant-input,\n .password-input-error-state .ant-input-password .ant-input {\n border-color: #C21919 !important;\n }\n .password-input-error-state .ant-input:focus,\n .password-input-error-state .ant-input-focused,\n .password-input-error-state .ant-input-password .ant-input:focus {\n border-color: #C21919 !important;\n box-shadow: 0 0 0 2px rgba(194, 25, 25, 0.1) !important;\n }\n `}\n </style>\n <AntInput.Password\n className={combinedClassName}\n status={error ? 'error' : status}\n {...props}\n style={{\n height: '44px',\n borderRadius: '12px',\n borderColor: error ? '#C21919' : '#D1D1D1',\n ...props.style,\n }}\n />\n {error && (\n <div className=\"flex items-center mt-1 text-xs text-[#C21919]\">\n <svg\n className=\"w-3 h-3 mr-1\"\n fill=\"currentColor\"\n viewBox=\"0 0 20 20\"\n >\n <path\n fillRule=\"evenodd\"\n d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7 4a1 1 0 11-2 0 1 1 0 012 0zm-1-9a1 1 0 00-1 1v4a1 1 0 102 0V6a1 1 0 00-1-1z\"\n clipRule=\"evenodd\"\n />\n </svg>\n {error}\n </div>\n )}\n {!error && helperText && (\n <div className=\"mt-1 text-xs text-gray-500\">{helperText}</div>\n )}\n </div>\n );\n};\n","import React, { useRef, useState, useEffect, KeyboardEvent, ClipboardEvent } from 'react';\nimport { Input, InputRef } from 'antd';\n\nexport interface OTPInputProps {\n length?: number;\n value?: string;\n onChange?: (value: string) => void;\n onComplete?: (value: string) => void;\n error?: boolean;\n errorMessage?: string;\n disabled?: boolean;\n className?: string;\n}\n\nexport const OTPInput: React.FC<OTPInputProps> = ({\n length = 6,\n value = '',\n onChange,\n onComplete,\n error = false,\n errorMessage,\n disabled = false,\n className = '',\n}) => {\n const [otp, setOtp] = useState<string[]>(Array(length).fill(''));\n const inputRefs = useRef<(InputRef | null)[]>([]);\n\n useEffect(() => {\n if (value) {\n const otpArray = value.split('').slice(0, length);\n const filledOtp = [...otpArray, ...Array(length - otpArray.length).fill('')];\n setOtp(filledOtp);\n }\n }, [value, length]);\n\n const handleChange = (index: number, val: string) => {\n // Only allow numbers\n if (val && !/^\\d+$/.test(val)) return;\n\n const newOtp = [...otp];\n newOtp[index] = val.slice(-1); // Take only the last character\n setOtp(newOtp);\n\n const otpString = newOtp.join('');\n onChange?.(otpString);\n\n // Move to next input if value is entered\n if (val && index < length - 1) {\n inputRefs.current[index + 1]?.focus();\n }\n\n // Call onComplete if all fields are filled\n if (newOtp.every((digit) => digit !== '')) {\n onComplete?.(otpString);\n }\n };\n\n const handleKeyDown = (index: number, e: KeyboardEvent<HTMLInputElement>) => {\n // Move to previous input on backspace if current input is empty\n if (e.key === 'Backspace' && !otp[index] && index > 0) {\n inputRefs.current[index - 1]?.focus();\n }\n };\n\n const handlePaste = (e: ClipboardEvent<HTMLInputElement>) => {\n e.preventDefault();\n const pastedData = e.clipboardData.getData('text/plain');\n\n // Only allow numbers\n if (!/^\\d+$/.test(pastedData)) return;\n\n const pastedArray = pastedData.split('').slice(0, length);\n const newOtp = [...pastedArray, ...Array(length - pastedArray.length).fill('')];\n setOtp(newOtp);\n\n const otpString = newOtp.join('');\n onChange?.(otpString);\n\n // Focus on the next empty input or the last input\n const nextIndex = Math.min(pastedArray.length, length - 1);\n inputRefs.current[nextIndex]?.focus();\n\n // Call onComplete if all fields are filled\n if (newOtp.every((digit) => digit !== '')) {\n onComplete?.(otpString);\n }\n };\n\n return (\n <div className=\"w-full\">\n <div className={`flex gap-2 justify-center ${className}`}>\n {otp.map((digit, index) => (\n <React.Fragment key={index}>\n <Input\n ref={(el) => {\n inputRefs.current[index] = el;\n }}\n placeholder=\"\"\n value={digit}\n onChange={(e) => handleChange(index, e.target.value)}\n onKeyDown={(e) => handleKeyDown(index, e)}\n onPaste={handlePaste}\n disabled={disabled}\n maxLength={1}\n className=\"text-center text-lg font-semibold otp-input-field\"\n style={{\n width: '63px',\n height: '44px',\n borderRadius: '12px',\n borderColor: error ? '#C21919' : '#D1D1D1',\n }}\n />\n {index === Math.floor(length / 2) - 1 && (\n <div className=\"flex items-center justify-center px-1\">\n <span className=\"text-gray-400 text-xl\">—</span>\n </div>\n )}\n </React.Fragment>\n ))}\n </div>\n {error && errorMessage && (\n <div className=\"flex items-center justify-center mt-2 text-xs text-[#C21919]\">\n <svg className=\"w-3 h-3 mr-1\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7 4a1 1 0 11-2 0 1 1 0 012 0zm-1-9a1 1 0 00-1 1v4a1 1 0 102 0V6a1 1 0 00-1-1z\"\n clipRule=\"evenodd\"\n />\n </svg>\n {errorMessage}\n </div>\n )}\n </div>\n );\n};\n","import React, { useState, useEffect } from 'react';\nimport { Input as AntInput, Select } from 'antd';\nimport type { InputProps as AntInputProps } from 'antd';\n\nexport interface PhoneInputProps\n extends Omit<AntInputProps, 'addonBefore' | 'value' | 'onChange'> {\n label?: string;\n error?: string;\n helperText?: string;\n countryCode?: string;\n onCountryCodeChange?: (value: string) => void;\n countryCodes?: { value: string; label: string }[];\n showCountryCodeDropdown?: boolean;\n format?: 'default' | 'spaced' | 'dashed' | 'none';\n customFormat?: (value: string) => string;\n value?: string;\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n}\n\nexport const PhoneInput: React.FC<PhoneInputProps> = ({\n label,\n error,\n helperText,\n className = '',\n countryCode = '+234',\n onCountryCodeChange,\n countryCodes = [\n { value: '+234', label: '+234' },\n { value: '+1', label: '+1' },\n { value: '+44', label: '+44' },\n { value: '+91', label: '+91' },\n ],\n showCountryCodeDropdown = true,\n format = 'spaced',\n customFormat,\n value,\n onChange,\n ...props\n}) => {\n const errorClass = error ? 'phone-input-error-state' : '';\n const [displayValue, setDisplayValue] = useState('');\n\n // Update display value when external value changes\n useEffect(() => {\n if (value !== undefined) {\n const cleaned = String(value).replace(/\\D/g, '');\n const formatted = formatPhoneNumber(cleaned);\n setDisplayValue(formatted);\n }\n }, [value, format, countryCode]);\n\n const formatPhoneNumber = (val: string): string => {\n // Remove all non-digits\n const cleaned = val.replace(/\\D/g, '');\n\n // If custom format is provided, use it\n if (customFormat) {\n return customFormat(cleaned);\n }\n\n // If format is 'none', return unformatted\n if (format === 'none') {\n return cleaned;\n }\n\n // Format based on country code and format type\n let formatted = '';\n\n if (format === 'spaced') {\n // Format: 803 456 7890\n if (cleaned.length <= 3) {\n formatted = cleaned;\n } else if (cleaned.length <= 6) {\n formatted = `${cleaned.slice(0, 3)} ${cleaned.slice(3)}`;\n } else {\n formatted = `${cleaned.slice(0, 3)} ${cleaned.slice(3, 6)} ${cleaned.slice(6, 10)}`;\n }\n } else if (format === 'dashed') {\n // Format: 803-456-7890\n if (cleaned.length <= 3) {\n formatted = cleaned;\n } else if (cleaned.length <= 6) {\n formatted = `${cleaned.slice(0, 3)}-${cleaned.slice(3)}`;\n } else {\n formatted = `${cleaned.slice(0, 3)}-${cleaned.slice(3, 6)}-${cleaned.slice(6, 10)}`;\n }\n } else {\n // Default format based on country code\n if (countryCode === '+1') {\n // US format: (803) 456-7890\n if (cleaned.length <= 3) {\n formatted = cleaned;\n } else if (cleaned.length <= 6) {\n formatted = `(${cleaned.slice(0, 3)}) ${cleaned.slice(3)}`;\n } else {\n formatted = `(${cleaned.slice(0, 3)}) ${cleaned.slice(3, 6)}-${cleaned.slice(6, 10)}`;\n }\n } else {\n // International format: 803 456 7890\n if (cleaned.length <= 3) {\n formatted = cleaned;\n } else if (cleaned.length <= 6) {\n formatted = `${cleaned.slice(0, 3)} ${cleaned.slice(3)}`;\n } else {\n formatted = `${cleaned.slice(0, 3)} ${cleaned.slice(3, 6)} ${cleaned.slice(6, 10)}`;\n }\n }\n }\n\n return formatted;\n };\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n // Only allow numbers and control keys\n if (\n !/^\\d$/.test(e.key) &&\n e.key !== 'Backspace' &&\n e.key !== 'Delete' &&\n e.key !== 'Tab' &&\n e.key !== 'ArrowLeft' &&\n e.key !== 'ArrowRight' &&\n e.key !== 'Home' &&\n e.key !== 'End'\n ) {\n e.preventDefault();\n }\n props.onKeyDown?.(e);\n };\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const input = e.target;\n const cursorPosition = input.selectionStart || 0;\n\n // Only allow numbers\n const cleaned = input.value.replace(/\\D/g, '');\n\n // Format the number\n const formatted = formatPhoneNumber(cleaned);\n\n // Update display value\n setDisplayValue(formatted);\n\n // Calculate cursor position adjustment\n const oldLength = displayValue.length;\n const newLength = formatted.length;\n const diff = newLength - oldLength;\n\n // Restore cursor position after React updates\n requestAnimationFrame(() => {\n const newCursorPosition = Math.max(0, Math.min(cursorPosition + diff, formatted.length));\n input.setSelectionRange(newCursorPosition, newCursorPosition);\n });\n\n // Call onChange with the raw cleaned value\n if (onChange) {\n const syntheticEvent = {\n ...e,\n target: { ...e.target, value: cleaned },\n } as React.ChangeEvent<HTMLInputElement>;\n onChange(syntheticEvent);\n }\n };\n\n const handlePaste = (e: React.ClipboardEvent<HTMLInputElement>) => {\n e.preventDefault();\n const pastedData = e.clipboardData.getData('text/plain');\n const numericData = pastedData.replace(/\\D/g, '');\n\n const target = e.target as HTMLInputElement;\n const start = target.selectionStart || 0;\n const currentCleaned = displayValue.replace(/\\D/g, '');\n const newCleaned = currentCleaned.slice(0, start) + numericData;\n\n // Format the new value\n const formatted = formatPhoneNumber(newCleaned);\n setDisplayValue(formatted);\n\n // Call onChange with the raw cleaned value\n if (onChange) {\n const syntheticEvent = {\n ...e,\n target: { ...e.target, value: newCleaned },\n } as any;\n onChange(syntheticEvent);\n }\n\n props.onPaste?.(e);\n };\n\n return (\n <div className=\"w-full\">\n {label && (\n <label\n className=\"block text-sm font-medium mb-2\"\n style={{ color: error ? '#C21919' : '#181918' }}\n >\n {label}\n {props.required && <span style={{ color: '#C21919' }}>*</span>}\n </label>\n )}\n <style>\n {`\n .phone-input-container {\n display: flex;\n gap: 8px;\n }\n\n .phone-input-error-state .ant-select-selector {\n border-color: #C21919 !important;\n }\n\n .phone-input-error-state .ant-select-focused .ant-select-selector {\n border-color: #C21919 !important;\n box-shadow: 0 0 0 2px rgba(194, 25, 25, 0.1) !important;\n }\n\n .phone-input-error-state .ant-input {\n border-color: #C21919 !important;\n }\n\n .phone-input-error-state .ant-input:focus {\n border-color: #C21919 !important;\n box-shadow: 0 0 0 2px rgba(194, 25, 25, 0.1) !important;\n }\n\n .phone-input-country-code-static {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 61px;\n height: 44px;\n border-radius: 12px;\n border: 1px solid;\n font-size: 14px;\n font-weight: 500;\n background-color: #FAFAFA;\n }\n\n .phone-input-error-state .phone-input-country-code-static {\n border-color: #C21919 !important;\n }\n `}\n </style>\n <div className={`phone-input-container ${errorClass}`}>\n {showCountryCodeDropdown ? (\n <Select\n value={countryCode}\n onChange={onCountryCodeChange}\n options={countryCodes}\n style={{\n width: '85px',\n borderRadius: '12px',\n }}\n className={errorClass}\n popupClassName=\"country-code-dropdown\"\n disabled={props.disabled}\n />\n ) : (\n <div\n className=\"phone-input-country-code-static\"\n style={{\n borderColor: error ? '#C21919' : '#D1D1D1',\n color: props.disabled ? '#00000040' : '#000000',\n backgroundColor: props.disabled ? '#f5f5f5' : '#FAFAFA',\n }}\n >\n {countryCode}\n </div>\n )}\n <AntInput\n {...props}\n value={displayValue}\n className={className}\n onKeyDown={handleKeyDown}\n onChange={handleChange}\n onPaste={handlePaste}\n style={{\n flex: 1,\n height: '44px',\n borderRadius: '12px',\n borderColor: error ? '#C21919' : '#D1D1D1',\n ...props.style,\n }}\n />\n </div>\n {error && (\n <div className=\"flex items-center mt-1 text-xs text-[#C21919]\">\n <svg className=\"w-3 h-3 mr-1\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7 4a1 1 0 11-2 0 1 1 0 012 0zm-1-9a1 1 0 00-1 1v4a1 1 0 102 0V6a1 1 0 00-1-1z\"\n clipRule=\"evenodd\"\n />\n </svg>\n {error}\n </div>\n )}\n {!error && helperText && <div className=\"mt-1 text-xs text-gray-500\">{helperText}</div>}\n </div>\n );\n};\n","import React, { useState, useEffect } from 'react';\nimport { Input as AntInput } from 'antd';\nimport type { InputProps as AntInputProps } from 'antd';\n\nexport interface CurrencyInputProps extends Omit<AntInputProps, 'onChange'> {\n label?: string;\n error?: string;\n helperText?: string;\n currencySymbol?: string;\n formatAmount?: boolean;\n onChange?: (value: string, event: React.ChangeEvent<HTMLInputElement>) => void;\n}\n\nexport const CurrencyInput: React.FC<CurrencyInputProps> = ({\n label,\n error,\n helperText,\n className = '',\n status,\n currencySymbol = '₦',\n formatAmount = false,\n onChange,\n value: externalValue,\n ...props\n}) => {\n const errorClass = error ? 'currency-input-error-state' : '';\n const [displayValue, setDisplayValue] = useState<string>('');\n\n // Format number with commas\n const formatNumber = (num: string): string => {\n // Remove all non-digit characters except decimal point\n const cleanNum = num.replace(/[^\\d.]/g, '');\n\n // Split into integer and decimal parts\n const parts = cleanNum.split('.');\n const integerPart = parts[0];\n const decimalPart = parts[1];\n\n // Add commas to integer part\n const formattedInteger = integerPart.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n\n // Combine with decimal part if exists\n return decimalPart !== undefined ? `${formattedInteger}.${decimalPart}` : formattedInteger;\n };\n\n // Remove formatting to get raw value\n const unformatNumber = (formatted: string): string => {\n return formatted.replace(/,/g, '');\n };\n\n // Update display value when external value changes\n useEffect(() => {\n if (externalValue !== undefined) {\n const stringValue = String(externalValue);\n setDisplayValue(formatAmount ? formatNumber(stringValue) : stringValue);\n }\n }, [externalValue, formatAmount]);\n\n // Handle input change\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const inputValue = e.target.value;\n\n if (formatAmount) {\n const rawValue = unformatNumber(inputValue);\n const formatted = formatNumber(rawValue);\n setDisplayValue(formatted);\n\n if (onChange) {\n onChange(rawValue, e);\n }\n } else {\n setDisplayValue(inputValue);\n if (onChange) {\n onChange(inputValue, e);\n }\n }\n };\n\n return (\n <div className=\"w-full\">\n {label && (\n <label\n className=\"block text-sm font-medium mb-2\"\n style={{ color: error ? '#C21919' : '#181918' }}\n >\n {label}\n {props.required && <span style={{ color: '#C21919' }}>*</span>}\n </label>\n )}\n <style>\n {`\n .currency-input-wrapper.ant-input-affix-wrapper {\n display: flex;\n align-items: center;\n padding: 0;\n height: 44px;\n border-radius: 12px;\n }\n\n .currency-input-wrapper .ant-input-prefix {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 37px;\n height: 41px;\n background-color: #F0F2F4;\n margin: 0;\n border-radius: 12px 0 0 12px;\n color: #000000;\n flex-shrink: 0;\n margin-right: 10px;\n }\n\n .currency-input-wrapper .ant-input {\n padding: 11px 16px 11px 20px;\n height: 44px;\n }\n\n .currency-input-error-state.ant-input-affix-wrapper {\n border-color: #C21919 !important;\n }\n\n .currency-input-error-state.ant-input-affix-wrapper:focus,\n .currency-input-error-state.ant-input-affix-wrapper-focused {\n border-color: #C21919 !important;\n box-shadow: 0 0 0 2px rgba(194, 25, 25, 0.1) !important;\n }\n `}\n </style>\n <AntInput\n className={`currency-input-wrapper ${className} ${errorClass}`}\n status={error ? 'error' : status}\n prefix={<span>{currencySymbol}</span>}\n {...props}\n value={formatAmount ? displayValue : externalValue}\n onChange={handleChange}\n style={{\n borderColor: error ? '#C21919' : '#D1D1D1',\n ...props.style,\n }}\n />\n {error && (\n <div className=\"flex items-center mt-1 text-xs text-[#C21919]\">\n <svg className=\"w-3 h-3 mr-1\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7 4a1 1 0 11-2 0 1 1 0 012 0zm-1-9a1 1 0 00-1 1v4a1 1 0 102 0V6a1 1 0 00-1-1z\"\n clipRule=\"evenodd\"\n />\n </svg>\n {error}\n </div>\n )}\n {!error && helperText && <div className=\"mt-1 text-xs text-gray-500\">{helperText}</div>}\n </div>\n );\n};\n","import { createContext } from 'react';\nconst IconContext = /*#__PURE__*/createContext({});\nexport default IconContext;","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","// 36 Hex to reduce the size of the file\nexport default {\n aliceblue: '9ehhb',\n antiquewhite: '9sgk7',\n aqua: '1ekf',\n aquamarine: '4zsno',\n azure: '9eiv3',\n beige: '9lhp8',\n bisque: '9zg04',\n black: '0',\n blanchedalmond: '9zhe5',\n blue: '73',\n blueviolet: '5e31e',\n brown: '6g016',\n burlywood: '8ouiv',\n cadetblue: '3qba8',\n chartreuse: '4zshs',\n chocolate: '87k0u',\n coral: '9yvyo',\n cornflowerblue: '3xael',\n cornsilk: '9zjz0',\n crimson: '8l4xo',\n cyan: '1ekf',\n darkblue: '3v',\n darkcyan: 'rkb',\n darkgoldenrod: '776yz',\n darkgray: '6mbhl',\n darkgreen: 'jr4',\n darkgrey: '6mbhl',\n darkkhaki: '7ehkb',\n darkmagenta: '5f91n',\n darkolivegreen: '3bzfz',\n darkorange: '9yygw',\n darkorchid: '5z6x8',\n darkred: '5f8xs',\n darksalmon: '9441m',\n darkseagreen: '5lwgf',\n darkslateblue: '2th1n',\n darkslategray: '1ugcv',\n darkslategrey: '1ugcv',\n darkturquoise: '14up',\n darkviolet: '5rw7n',\n deeppink: '9yavn',\n deepskyblue: '11xb',\n dimgray: '442g9',\n dimgrey: '442g9',\n dodgerblue: '16xof',\n firebrick: '6y7tu',\n floralwhite: '9zkds',\n forestgreen: '1cisi',\n fuchsia: '9y70f',\n gainsboro: '8m8kc',\n ghostwhite: '9pq0v',\n goldenrod: '8j4f4',\n gold: '9zda8',\n gray: '50i2o',\n green: 'pa8',\n greenyellow: '6senj',\n grey: '50i2o',\n honeydew: '9eiuo',\n hotpink: '9yrp0',\n indianred: '80gnw',\n indigo: '2xcoy',\n ivory: '9zldc',\n khaki: '9edu4',\n lavenderblush: '9ziet',\n lavender: '90c8q',\n lawngreen: '4vk74',\n lemonchiffon: '9zkct',\n lightblue: '6s73a',\n lightcoral: '9dtog',\n lightcyan: '8s1rz',\n lightgoldenrodyellow: '9sjiq',\n lightgray: '89jo3',\n lightgreen: '5nkwg',\n lightgrey: '89jo3',\n lightpink: '9z6wx',\n lightsalmon: '9z2ii',\n lightseagreen: '19xgq',\n lightskyblue: '5arju',\n lightslategray: '4nwk9',\n lightslategrey: '4nwk9',\n lightsteelblue: '6wau6',\n lightyellow: '9zlcw',\n lime: '1edc',\n limegreen: '1zcxe',\n linen: '9shk6',\n magenta: '9y70f',\n maroon: '4zsow',\n mediumaquamarine: '40eju',\n mediumblue: '5p',\n mediumorchid: '79qkz',\n mediumpurple: '5r3rv',\n mediumseagreen: '2d9ip',\n mediumslateblue: '4tcku',\n mediumspringgreen: '1di2',\n mediumturquoise: '2uabw',\n mediumvioletred: '7rn9h',\n midnightblue: 'z980',\n mintcream: '9ljp6',\n mistyrose: '9zg0x',\n moccasin: '9zfzp',\n navajowhite: '9zest',\n navy: '3k',\n oldlace: '9wq92',\n olive: '50hz4',\n olivedrab: '472ub',\n orange: '9z3eo',\n orangered: '9ykg0',\n orchid: '8iu3a',\n palegoldenrod: '9bl4a',\n palegreen: '5yw0o',\n paleturquoise: '6v4ku',\n palevioletred: '8k8lv',\n papayawhip: '9zi6t',\n peachpuff: '9ze0p',\n peru: '80oqn',\n pink: '9z8wb',\n plum: '8nba5',\n powderblue: '6wgdi',\n purple: '4zssg',\n rebeccapurple: '3zk49',\n red: '9y6tc',\n rosybrown: '7cv4f',\n royalblue: '2jvtt',\n saddlebrown: '5fmkz',\n salmon: '9rvci',\n sandybrown: '9jn1c',\n seagreen: '1tdnb',\n seashell: '9zje6',\n sienna: '6973h',\n silver: '7ir40',\n skyblue: '5arjf',\n slateblue: '45e4t',\n slategray: '4e100',\n slategrey: '4e100',\n snow: '9zke2',\n springgreen: '1egv',\n steelblue: '2r1kk',\n tan: '87yx8',\n teal: 'pds',\n thistle: '8ggk8',\n tomato: '9yqfb',\n turquoise: '2j4r4',\n violet: '9b10u',\n wheat: '9ld4j',\n white: '9zldr',\n whitesmoke: '9lhpx',\n yellow: '9zl6o',\n yellowgreen: '61fzm'\n};","import presetColors from \"./presetColors\";\nconst round = Math.round;\n\n/**\n * Support format, alpha unit will check the % mark:\n * - rgba(102, 204, 255, .5) -> [102, 204, 255, 0.5]\n * - rgb(102 204 255 / .5) -> [102, 204, 255, 0.5]\n * - rgb(100%, 50%, 0% / 50%) -> [255, 128, 0, 0.5]\n * - hsl(270, 60, 40, .5) -> [270, 60, 40, 0.5]\n * - hsl(270deg 60% 40% / 50%) -> [270, 60, 40, 0.5]\n *\n * When `base` is provided, the percentage value will be divided by `base`.\n */\nfunction splitColorStr(str, parseNum) {\n const match = str\n // Remove str before `(`\n .replace(/^[^(]*\\((.*)/, '$1')\n // Remove str after `)`\n .replace(/\\).*/, '').match(/\\d*\\.?\\d+%?/g) || [];\n const numList = match.map(item => parseFloat(item));\n for (let i = 0; i < 3; i += 1) {\n numList[i] = parseNum(numList[i] || 0, match[i] || '', i);\n }\n\n // For alpha. 50% should be 0.5\n if (match[3]) {\n numList[3] = match[3].includes('%') ? numList[3] / 100 : numList[3];\n } else {\n // By default, alpha is 1\n numList[3] = 1;\n }\n return numList;\n}\nconst parseHSVorHSL = (num, _, index) => index === 0 ? num : num / 100;\n\n/** round and limit number to integer between 0-255 */\nfunction limitRange(value, max) {\n const mergedMax = max || 255;\n if (value > mergedMax) {\n return mergedMax;\n }\n if (value < 0) {\n return 0;\n }\n return value;\n}\nexport class FastColor {\n /**\n * All FastColor objects are valid. So isValid is always true. This property is kept to be compatible with TinyColor.\n */\n isValid = true;\n\n /**\n * Red, R in RGB\n */\n r = 0;\n\n /**\n * Green, G in RGB\n */\n g = 0;\n\n /**\n * Blue, B in RGB\n */\n b = 0;\n\n /**\n * Alpha/Opacity, A in RGBA/HSLA\n */\n a = 1;\n\n // HSV privates\n _h;\n _hsl_s;\n _hsv_s;\n _l;\n _v;\n\n // intermediate variables to calculate HSL/HSV\n _max;\n _min;\n _brightness;\n constructor(input) {\n /**\n * Always check 3 char in the object to determine the format.\n * We not use function in check to save bundle size.\n * e.g. 'rgb' -> { r: 0, g: 0, b: 0 }.\n */\n function matchFormat(str) {\n return str[0] in input && str[1] in input && str[2] in input;\n }\n if (!input) {\n // Do nothing since already initialized\n } else if (typeof input === 'string') {\n const trimStr = input.trim();\n function matchPrefix(prefix) {\n return trimStr.startsWith(prefix);\n }\n if (/^#?[A-F\\d]{3,8}$/i.test(trimStr)) {\n this.fromHexString(trimStr);\n } else if (matchPrefix('rgb')) {\n this.fromRgbString(trimStr);\n } else if (matchPrefix('hsl')) {\n this.fromHslString(trimStr);\n } else if (matchPrefix('hsv') || matchPrefix('hsb')) {\n this.fromHsvString(trimStr);\n } else {\n // From preset color\n const presetColor = presetColors[trimStr.toLowerCase()];\n if (presetColor) {\n this.fromHexString(\n // Convert 36 hex to 16 hex\n parseInt(presetColor, 36).toString(16).padStart(6, '0'));\n }\n }\n } else if (input instanceof FastColor) {\n this.r = input.r;\n this.g = input.g;\n this.b = input.b;\n this.a = input.a;\n this._h = input._h;\n this._hsl_s = input._hsl_s;\n this._hsv_s = input._hsv_s;\n this._l = input._l;\n this._v = input._v;\n } else if (matchFormat('rgb')) {\n this.r = limitRange(input.r);\n this.g = limitRange(input.g);\n this.b = limitRange(input.b);\n this.a = typeof input.a === 'number' ? limitRange(input.a, 1) : 1;\n } else if (matchFormat('hsl')) {\n this.fromHsl(input);\n } else if (matchFormat('hsv')) {\n this.fromHsv(input);\n } else {\n throw new Error('@ant-design/fast-color: unsupported input ' + JSON.stringify(input));\n }\n }\n\n // ======================= Setter =======================\n\n setR(value) {\n return this._sc('r', value);\n }\n setG(value) {\n return this._sc('g', value);\n }\n setB(value) {\n return this._sc('b', value);\n }\n setA(value) {\n return this._sc('a', value, 1);\n }\n setHue(value) {\n const hsv = this.toHsv();\n hsv.h = value;\n return this._c(hsv);\n }\n\n // ======================= Getter =======================\n /**\n * Returns the perceived luminance of a color, from 0-1.\n * @see http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n */\n getLuminance() {\n function adjustGamma(raw) {\n const val = raw / 255;\n return val <= 0.03928 ? val / 12.92 : Math.pow((val + 0.055) / 1.055, 2.4);\n }\n const R = adjustGamma(this.r);\n const G = adjustGamma(this.g);\n const B = adjustGamma(this.b);\n return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n }\n getHue() {\n if (typeof this._h === 'undefined') {\n const delta = this.getMax() - this.getMin();\n if (delta === 0) {\n this._h = 0;\n } else {\n this._h = round(60 * (this.r === this.getMax() ? (this.g - this.b) / delta + (this.g < this.b ? 6 : 0) : this.g === this.getMax() ? (this.b - this.r) / delta + 2 : (this.r - this.g) / delta + 4));\n }\n }\n return this._h;\n }\n\n /**\n * @deprecated should use getHSVSaturation or getHSLSaturation instead\n */\n getSaturation() {\n return this.getHSVSaturation();\n }\n getHSVSaturation() {\n if (typeof this._hsv_s === 'undefined') {\n const delta = this.getMax() - this.getMin();\n if (delta === 0) {\n this._hsv_s = 0;\n } else {\n this._hsv_s = delta / this.getMax();\n }\n }\n return this._hsv_s;\n }\n getHSLSaturation() {\n if (typeof this._hsl_s === 'undefined') {\n const delta = this.getMax() - this.getMin();\n if (delta === 0) {\n this._hsl_s = 0;\n } else {\n const l = this.getLightness();\n this._hsl_s = delta / 255 / (1 - Math.abs(2 * l - 1));\n }\n }\n return this._hsl_s;\n }\n getLightness() {\n if (typeof this._l === 'undefined') {\n this._l = (this.getMax() + this.getMin()) / 510;\n }\n return this._l;\n }\n getValue() {\n if (typeof this._v === 'undefined') {\n this._v = this.getMax() / 255;\n }\n return this._v;\n }\n\n /**\n * Returns the perceived brightness of the color, from 0-255.\n * Note: this is not the b of HSB\n * @see http://www.w3.org/TR/AERT#color-contrast\n */\n getBrightness() {\n if (typeof this._brightness === 'undefined') {\n this._brightness = (this.r * 299 + this.g * 587 + this.b * 114) / 1000;\n }\n return this._brightness;\n }\n\n // ======================== Func ========================\n\n darken(amount = 10) {\n const h = this.getHue();\n const s = this.getSaturation();\n let l = this.getLightness() - amount / 100;\n if (l < 0) {\n l = 0;\n }\n return this._c({\n h,\n s,\n l,\n a: this.a\n });\n }\n lighten(amount = 10) {\n const h = this.getHue();\n const s = this.getSaturation();\n let l = this.getLightness() + amount / 100;\n if (l > 1) {\n l = 1;\n }\n return this._c({\n h,\n s,\n l,\n a: this.a\n });\n }\n\n /**\n * Mix the current color a given amount with another color, from 0 to 100.\n * 0 means no mixing (return current color).\n */\n mix(input, amount = 50) {\n const color = this._c(input);\n const p = amount / 100;\n const calc = key => (color[key] - this[key]) * p + this[key];\n const rgba = {\n r: round(calc('r')),\n g: round(calc('g')),\n b: round(calc('b')),\n a: round(calc('a') * 100) / 100\n };\n return this._c(rgba);\n }\n\n /**\n * Mix the color with pure white, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return white.\n */\n tint(amount = 10) {\n return this.mix({\n r: 255,\n g: 255,\n b: 255,\n a: 1\n }, amount);\n }\n\n /**\n * Mix the color with pure black, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return black.\n */\n shade(amount = 10) {\n return this.mix({\n r: 0,\n g: 0,\n b: 0,\n a: 1\n }, amount);\n }\n onBackground(background) {\n const bg = this._c(background);\n const alpha = this.a + bg.a * (1 - this.a);\n const calc = key => {\n return round((this[key] * this.a + bg[key] * bg.a * (1 - this.a)) / alpha);\n };\n return this._c({\n r: calc('r'),\n g: calc('g'),\n b: calc('b'),\n a: alpha\n });\n }\n\n // ======================= Status =======================\n isDark() {\n return this.getBrightness() < 128;\n }\n isLight() {\n return this.getBrightness() >= 128;\n }\n\n // ======================== MISC ========================\n equals(other) {\n return this.r === other.r && this.g === other.g && this.b === other.b && this.a === other.a;\n }\n clone() {\n return this._c(this);\n }\n\n // ======================= Format =======================\n toHexString() {\n let hex = '#';\n const rHex = (this.r || 0).toString(16);\n hex += rHex.length === 2 ? rHex : '0' + rHex;\n const gHex = (this.g || 0).toString(16);\n hex += gHex.length === 2 ? gHex : '0' + gHex;\n const bHex = (this.b || 0).toString(16);\n hex += bHex.length === 2 ? bHex : '0' + bHex;\n if (typeof this.a === 'number' && this.a >= 0 && this.a < 1) {\n const aHex = round(this.a * 255).toString(16);\n hex += aHex.length === 2 ? aHex : '0' + aHex;\n }\n return hex;\n }\n\n /** CSS support color pattern */\n toHsl() {\n return {\n h: this.getHue(),\n s: this.getHSLSaturation(),\n l: this.getLightness(),\n a: this.a\n };\n }\n\n /** CSS support color pattern */\n toHslString() {\n const h = this.getHue();\n const s = round(this.getHSLSaturation() * 100);\n const l = round(this.getLightness() * 100);\n return this.a !== 1 ? `hsla(${h},${s}%,${l}%,${this.a})` : `hsl(${h},${s}%,${l}%)`;\n }\n\n /** Same as toHsb */\n toHsv() {\n return {\n h: this.getHue(),\n s: this.getHSVSaturation(),\n v: this.getValue(),\n a: this.a\n };\n }\n toRgb() {\n return {\n r: this.r,\n g: this.g,\n b: this.b,\n a: this.a\n };\n }\n toRgbString() {\n return this.a !== 1 ? `rgba(${this.r},${this.g},${this.b},${this.a})` : `rgb(${this.r},${this.g},${this.b})`;\n }\n toString() {\n return this.toRgbString();\n }\n\n // ====================== Privates ======================\n /** Return a new FastColor object with one channel changed */\n _sc(rgb, value, max) {\n const clone = this.clone();\n clone[rgb] = limitRange(value, max);\n return clone;\n }\n _c(input) {\n return new this.constructor(input);\n }\n getMax() {\n if (typeof this._max === 'undefined') {\n this._max = Math.max(this.r, this.g, this.b);\n }\n return this._max;\n }\n getMin() {\n if (typeof this._min === 'undefined') {\n this._min = Math.min(this.r, this.g, this.b);\n }\n return this._min;\n }\n fromHexString(trimStr) {\n const withoutPrefix = trimStr.replace('#', '');\n function connectNum(index1, index2) {\n return parseInt(withoutPrefix[index1] + withoutPrefix[index2 || index1], 16);\n }\n if (withoutPrefix.length < 6) {\n // #rgb or #rgba\n this.r = connectNum(0);\n this.g = connectNum(1);\n this.b = connectNum(2);\n this.a = withoutPrefix[3] ? connectNum(3) / 255 : 1;\n } else {\n // #rrggbb or #rrggbbaa\n this.r = connectNum(0, 1);\n this.g = connectNum(2, 3);\n this.b = connectNum(4, 5);\n this.a = withoutPrefix[6] ? connectNum(6, 7) / 255 : 1;\n }\n }\n fromHsl({\n h: _h,\n s,\n l,\n a\n }) {\n const h = (_h % 360 + 360) % 360;\n this._h = h;\n this._hsl_s = s;\n this._l = l;\n this.a = typeof a === 'number' ? a : 1;\n if (s <= 0) {\n const rgb = round(l * 255);\n this.r = rgb;\n this.g = rgb;\n this.b = rgb;\n return;\n }\n let r = 0,\n g = 0,\n b = 0;\n const huePrime = h / 60;\n const chroma = (1 - Math.abs(2 * l - 1)) * s;\n const secondComponent = chroma * (1 - Math.abs(huePrime % 2 - 1));\n if (huePrime >= 0 && huePrime < 1) {\n r = chroma;\n g = secondComponent;\n } else if (huePrime >= 1 && huePrime < 2) {\n r = secondComponent;\n g = chroma;\n } else if (huePrime >= 2 && huePrime < 3) {\n g = chroma;\n b = secondComponent;\n } else if (huePrime >= 3 && huePrime < 4) {\n g = secondComponent;\n b = chroma;\n } else if (huePrime >= 4 && huePrime < 5) {\n r = secondComponent;\n b = chroma;\n } else if (huePrime >= 5 && huePrime < 6) {\n r = chroma;\n b = secondComponent;\n }\n const lightnessModification = l - chroma / 2;\n this.r = round((r + lightnessModification) * 255);\n this.g = round((g + lightnessModification) * 255);\n this.b = round((b + lightnessModification) * 255);\n }\n fromHsv({\n h: _h,\n s,\n v,\n a\n }) {\n const h = (_h % 360 + 360) % 360;\n this._h = h;\n this._hsv_s = s;\n this._v = v;\n this.a = typeof a === 'number' ? a : 1;\n const vv = round(v * 255);\n this.r = vv;\n this.g = vv;\n this.b = vv;\n if (s <= 0) {\n return;\n }\n const hh = h / 60;\n const i = Math.floor(hh);\n const ff = hh - i;\n const p = round(v * (1.0 - s) * 255);\n const q = round(v * (1.0 - s * ff) * 255);\n const t = round(v * (1.0 - s * (1.0 - ff)) * 255);\n switch (i) {\n case 0:\n this.g = t;\n this.b = p;\n break;\n case 1:\n this.r = q;\n this.b = p;\n break;\n case 2:\n this.r = p;\n this.b = t;\n break;\n case 3:\n this.r = p;\n this.g = q;\n break;\n case 4:\n this.r = t;\n this.g = p;\n break;\n case 5:\n default:\n this.g = p;\n this.b = q;\n break;\n }\n }\n fromHsvString(trimStr) {\n const cells = splitColorStr(trimStr, parseHSVorHSL);\n this.fromHsv({\n h: cells[0],\n s: cells[1],\n v: cells[2],\n a: cells[3]\n });\n }\n fromHslString(trimStr) {\n const cells = splitColorStr(trimStr, parseHSVorHSL);\n this.fromHsl({\n h: cells[0],\n s: cells[1],\n l: cells[2],\n a: cells[3]\n });\n }\n fromRgbString(trimStr) {\n const cells = splitColorStr(trimStr, (num, txt) =>\n // Convert percentage to number. e.g. 50% -> 128\n txt.includes('%') ? round(num / 100 * 255) : num);\n this.r = cells[0];\n this.g = cells[1];\n this.b = cells[2];\n this.a = cells[3];\n }\n}","import { FastColor } from '@ant-design/fast-color';\nconst hueStep = 2; // 色相阶梯\nconst saturationStep = 0.16; // 饱和度阶梯,浅色部分\nconst saturationStep2 = 0.05; // 饱和度阶梯,深色部分\nconst brightnessStep1 = 0.05; // 亮度阶梯,浅色部分\nconst brightnessStep2 = 0.15; // 亮度阶梯,深色部分\nconst lightColorCount = 5; // 浅色数量,主色上\nconst darkColorCount = 4; // 深色数量,主色下\n\n// 暗色主题颜色映射关系表\nconst darkColorMap = [{\n index: 7,\n amount: 15\n}, {\n index: 6,\n amount: 25\n}, {\n index: 5,\n amount: 30\n}, {\n index: 5,\n amount: 45\n}, {\n index: 5,\n amount: 65\n}, {\n index: 5,\n amount: 85\n}, {\n index: 4,\n amount: 90\n}, {\n index: 3,\n amount: 95\n}, {\n index: 2,\n amount: 97\n}, {\n index: 1,\n amount: 98\n}];\nfunction getHue(hsv, i, light) {\n let hue;\n // 根据色相不同,色相转向不同\n if (Math.round(hsv.h) >= 60 && Math.round(hsv.h) <= 240) {\n hue = light ? Math.round(hsv.h) - hueStep * i : Math.round(hsv.h) + hueStep * i;\n } else {\n hue = light ? Math.round(hsv.h) + hueStep * i : Math.round(hsv.h) - hueStep * i;\n }\n if (hue < 0) {\n hue += 360;\n } else if (hue >= 360) {\n hue -= 360;\n }\n return hue;\n}\nfunction getSaturation(hsv, i, light) {\n // grey color don't change saturation\n if (hsv.h === 0 && hsv.s === 0) {\n return hsv.s;\n }\n let saturation;\n if (light) {\n saturation = hsv.s - saturationStep * i;\n } else if (i === darkColorCount) {\n saturation = hsv.s + saturationStep;\n } else {\n saturation = hsv.s + saturationStep2 * i;\n }\n // 边界值修正\n if (saturation > 1) {\n saturation = 1;\n }\n // 第一格的 s 限制在 0.06-0.1 之间\n if (light && i === lightColorCount && saturation > 0.1) {\n saturation = 0.1;\n }\n if (saturation < 0.06) {\n saturation = 0.06;\n }\n return Math.round(saturation * 100) / 100;\n}\nfunction getValue(hsv, i, light) {\n let value;\n if (light) {\n value = hsv.v + brightnessStep1 * i;\n } else {\n value = hsv.v - brightnessStep2 * i;\n }\n // Clamp value between 0 and 1\n value = Math.max(0, Math.min(1, value));\n return Math.round(value * 100) / 100;\n}\nexport default function generate(color, opts = {}) {\n const patterns = [];\n const pColor = new FastColor(color);\n const hsv = pColor.toHsv();\n for (let i = lightColorCount; i > 0; i -= 1) {\n const c = new FastColor({\n h: getHue(hsv, i, true),\n s: getSaturation(hsv, i, true),\n v: getValue(hsv, i, true)\n });\n patterns.push(c);\n }\n patterns.push(pColor);\n for (let i = 1; i <= darkColorCount; i += 1) {\n const c = new FastColor({\n h: getHue(hsv, i),\n s: getSaturation(hsv, i),\n v: getValue(hsv, i)\n });\n patterns.push(c);\n }\n\n // dark theme patterns\n if (opts.theme === 'dark') {\n return darkColorMap.map(({\n index,\n amount\n }) => new FastColor(opts.backgroundColor || '#141414').mix(patterns[index], amount).toHexString());\n }\n return patterns.map(c => c.toHexString());\n}","// Generated by script. Do NOT modify!\n\nexport const presetPrimaryColors = {\n \"red\": \"#F5222D\",\n \"volcano\": \"#FA541C\",\n \"orange\": \"#FA8C16\",\n \"gold\": \"#FAAD14\",\n \"yellow\": \"#FADB14\",\n \"lime\": \"#A0D911\",\n \"green\": \"#52C41A\",\n \"cyan\": \"#13C2C2\",\n \"blue\": \"#1677FF\",\n \"geekblue\": \"#2F54EB\",\n \"purple\": \"#722ED1\",\n \"magenta\": \"#EB2F96\",\n \"grey\": \"#666666\"\n};\nexport const red = [\"#fff1f0\", \"#ffccc7\", \"#ffa39e\", \"#ff7875\", \"#ff4d4f\", \"#f5222d\", \"#cf1322\", \"#a8071a\", \"#820014\", \"#5c0011\"];\nred.primary = red[5];\nexport const volcano = [\"#fff2e8\", \"#ffd8bf\", \"#ffbb96\", \"#ff9c6e\", \"#ff7a45\", \"#fa541c\", \"#d4380d\", \"#ad2102\", \"#871400\", \"#610b00\"];\nvolcano.primary = volcano[5];\nexport const orange = [\"#fff7e6\", \"#ffe7ba\", \"#ffd591\", \"#ffc069\", \"#ffa940\", \"#fa8c16\", \"#d46b08\", \"#ad4e00\", \"#873800\", \"#612500\"];\norange.primary = orange[5];\nexport const gold = [\"#fffbe6\", \"#fff1b8\", \"#ffe58f\", \"#ffd666\", \"#ffc53d\", \"#faad14\", \"#d48806\", \"#ad6800\", \"#874d00\", \"#613400\"];\ngold.primary = gold[5];\nexport const yellow = [\"#feffe6\", \"#ffffb8\", \"#fffb8f\", \"#fff566\", \"#ffec3d\", \"#fadb14\", \"#d4b106\", \"#ad8b00\", \"#876800\", \"#614700\"];\nyellow.primary = yellow[5];\nexport const lime = [\"#fcffe6\", \"#f4ffb8\", \"#eaff8f\", \"#d3f261\", \"#bae637\", \"#a0d911\", \"#7cb305\", \"#5b8c00\", \"#3f6600\", \"#254000\"];\nlime.primary = lime[5];\nexport const green = [\"#f6ffed\", \"#d9f7be\", \"#b7eb8f\", \"#95de64\", \"#73d13d\", \"#52c41a\", \"#389e0d\", \"#237804\", \"#135200\", \"#092b00\"];\ngreen.primary = green[5];\nexport const cyan = [\"#e6fffb\", \"#b5f5ec\", \"#87e8de\", \"#5cdbd3\", \"#36cfc9\", \"#13c2c2\", \"#08979c\", \"#006d75\", \"#00474f\", \"#002329\"];\ncyan.primary = cyan[5];\nexport const blue = [\"#e6f4ff\", \"#bae0ff\", \"#91caff\", \"#69b1ff\", \"#4096ff\", \"#1677ff\", \"#0958d9\", \"#003eb3\", \"#002c8c\", \"#001d66\"];\nblue.primary = blue[5];\nexport const geekblue = [\"#f0f5ff\", \"#d6e4ff\", \"#adc6ff\", \"#85a5ff\", \"#597ef7\", \"#2f54eb\", \"#1d39c4\", \"#10239e\", \"#061178\", \"#030852\"];\ngeekblue.primary = geekblue[5];\nexport const purple = [\"#f9f0ff\", \"#efdbff\", \"#d3adf7\", \"#b37feb\", \"#9254de\", \"#722ed1\", \"#531dab\", \"#391085\", \"#22075e\", \"#120338\"];\npurple.primary = purple[5];\nexport const magenta = [\"#fff0f6\", \"#ffd6e7\", \"#ffadd2\", \"#ff85c0\", \"#f759ab\", \"#eb2f96\", \"#c41d7f\", \"#9e1068\", \"#780650\", \"#520339\"];\nmagenta.primary = magenta[5];\nexport const grey = [\"#a6a6a6\", \"#999999\", \"#8c8c8c\", \"#808080\", \"#737373\", \"#666666\", \"#404040\", \"#1a1a1a\", \"#000000\", \"#000000\"];\ngrey.primary = grey[5];\nexport const gray = grey;\nexport const presetPalettes = {\n red,\n volcano,\n orange,\n gold,\n yellow,\n lime,\n green,\n cyan,\n blue,\n geekblue,\n purple,\n magenta,\n grey\n};\nexport const redDark = [\"#2a1215\", \"#431418\", \"#58181c\", \"#791a1f\", \"#a61d24\", \"#d32029\", \"#e84749\", \"#f37370\", \"#f89f9a\", \"#fac8c3\"];\nredDark.primary = redDark[5];\nexport const volcanoDark = [\"#2b1611\", \"#441d12\", \"#592716\", \"#7c3118\", \"#aa3e19\", \"#d84a1b\", \"#e87040\", \"#f3956a\", \"#f8b692\", \"#fad4bc\"];\nvolcanoDark.primary = volcanoDark[5];\nexport const orangeDark = [\"#2b1d11\", \"#442a11\", \"#593815\", \"#7c4a15\", \"#aa6215\", \"#d87a16\", \"#e89a3c\", \"#f3b765\", \"#f8cf8d\", \"#fae3b7\"];\norangeDark.primary = orangeDark[5];\nexport const goldDark = [\"#2b2111\", \"#443111\", \"#594214\", \"#7c5914\", \"#aa7714\", \"#d89614\", \"#e8b339\", \"#f3cc62\", \"#f8df8b\", \"#faedb5\"];\ngoldDark.primary = goldDark[5];\nexport const yellowDark = [\"#2b2611\", \"#443b11\", \"#595014\", \"#7c6e14\", \"#aa9514\", \"#d8bd14\", \"#e8d639\", \"#f3ea62\", \"#f8f48b\", \"#fafab5\"];\nyellowDark.primary = yellowDark[5];\nexport const limeDark = [\"#1f2611\", \"#2e3c10\", \"#3e4f13\", \"#536d13\", \"#6f9412\", \"#8bbb11\", \"#a9d134\", \"#c9e75d\", \"#e4f88b\", \"#f0fab5\"];\nlimeDark.primary = limeDark[5];\nexport const greenDark = [\"#162312\", \"#1d3712\", \"#274916\", \"#306317\", \"#3c8618\", \"#49aa19\", \"#6abe39\", \"#8fd460\", \"#b2e58b\", \"#d5f2bb\"];\ngreenDark.primary = greenDark[5];\nexport const cyanDark = [\"#112123\", \"#113536\", \"#144848\", \"#146262\", \"#138585\", \"#13a8a8\", \"#33bcb7\", \"#58d1c9\", \"#84e2d8\", \"#b2f1e8\"];\ncyanDark.primary = cyanDark[5];\nexport const blueDark = [\"#111a2c\", \"#112545\", \"#15325b\", \"#15417e\", \"#1554ad\", \"#1668dc\", \"#3c89e8\", \"#65a9f3\", \"#8dc5f8\", \"#b7dcfa\"];\nblueDark.primary = blueDark[5];\nexport const geekblueDark = [\"#131629\", \"#161d40\", \"#1c2755\", \"#203175\", \"#263ea0\", \"#2b4acb\", \"#5273e0\", \"#7f9ef3\", \"#a8c1f8\", \"#d2e0fa\"];\ngeekblueDark.primary = geekblueDark[5];\nexport const purpleDark = [\"#1a1325\", \"#24163a\", \"#301c4d\", \"#3e2069\", \"#51258f\", \"#642ab5\", \"#854eca\", \"#ab7ae0\", \"#cda8f0\", \"#ebd7fa\"];\npurpleDark.primary = purpleDark[5];\nexport const magentaDark = [\"#291321\", \"#40162f\", \"#551c3b\", \"#75204f\", \"#a02669\", \"#cb2b83\", \"#e0529c\", \"#f37fb7\", \"#f8a8cc\", \"#fad2e3\"];\nmagentaDark.primary = magentaDark[5];\nexport const greyDark = [\"#151515\", \"#1f1f1f\", \"#2d2d2d\", \"#393939\", \"#494949\", \"#5a5a5a\", \"#6a6a6a\", \"#7b7b7b\", \"#888888\", \"#969696\"];\ngreyDark.primary = greyDark[5];\nexport const presetDarkPalettes = {\n red: redDark,\n volcano: volcanoDark,\n orange: orangeDark,\n gold: goldDark,\n yellow: yellowDark,\n lime: limeDark,\n green: greenDark,\n cyan: cyanDark,\n blue: blueDark,\n geekblue: geekblueDark,\n purple: purpleDark,\n magenta: magentaDark,\n grey: greyDark\n};","export default function canUseDom() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}","export default function contains(root, n) {\n if (!root) {\n return false;\n }\n\n // Use native if support\n if (root.contains) {\n return root.contains(n);\n }\n\n // `document.contains` not support with IE11\n let node = n;\n while (node) {\n if (node === root) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n}","import canUseDom from \"./canUseDom\";\nimport contains from \"./contains\";\nconst APPEND_ORDER = 'data-rc-order';\nconst APPEND_PRIORITY = 'data-rc-priority';\nconst MARK_KEY = `rc-util-key`;\nconst containerCache = new Map();\nfunction getMark({\n mark\n} = {}) {\n if (mark) {\n return mark.startsWith('data-') ? mark : `data-${mark}`;\n }\n return MARK_KEY;\n}\nfunction getContainer(option) {\n if (option.attachTo) {\n return option.attachTo;\n }\n const head = document.querySelector('head');\n return head || document.body;\n}\nfunction getOrder(prepend) {\n if (prepend === 'queue') {\n return 'prependQueue';\n }\n return prepend ? 'prepend' : 'append';\n}\n\n/**\n * Find style which inject by rc-util\n */\nfunction findStyles(container) {\n return Array.from((containerCache.get(container) || container).children).filter(node => node.tagName === 'STYLE');\n}\nexport function injectCSS(css, option = {}) {\n if (!canUseDom()) {\n return null;\n }\n const {\n csp,\n prepend,\n priority = 0\n } = option;\n const mergedOrder = getOrder(prepend);\n const isPrependQueue = mergedOrder === 'prependQueue';\n const styleNode = document.createElement('style');\n styleNode.setAttribute(APPEND_ORDER, mergedOrder);\n if (isPrependQueue && priority) {\n styleNode.setAttribute(APPEND_PRIORITY, `${priority}`);\n }\n if (csp?.nonce) {\n styleNode.nonce = csp?.nonce;\n }\n styleNode.innerHTML = css;\n const container = getContainer(option);\n const {\n firstChild\n } = container;\n if (prepend) {\n // If is queue `prepend`, it will prepend first style and then append rest style\n if (isPrependQueue) {\n const existStyle = (option.styles || findStyles(container)).filter(node => {\n // Ignore style which not injected by rc-util with prepend\n if (!['prepend', 'prependQueue'].includes(node.getAttribute(APPEND_ORDER))) {\n return false;\n }\n\n // Ignore style which priority less then new style\n const nodePriority = Number(node.getAttribute(APPEND_PRIORITY) || 0);\n return priority >= nodePriority;\n });\n if (existStyle.length) {\n container.insertBefore(styleNode, existStyle[existStyle.length - 1].nextSibling);\n return styleNode;\n }\n }\n\n // Use `insertBefore` as `prepend`\n container.insertBefore(styleNode, firstChild);\n } else {\n container.appendChild(styleNode);\n }\n return styleNode;\n}\nfunction findExistNode(key, option = {}) {\n let {\n styles\n } = option;\n styles ||= findStyles(getContainer(option));\n return styles.find(node => node.getAttribute(getMark(option)) === key);\n}\nexport function removeCSS(key, option = {}) {\n const existNode = findExistNode(key, option);\n if (existNode) {\n const container = getContainer(option);\n container.removeChild(existNode);\n }\n}\n\n/**\n * qiankun will inject `appendChild` to insert into other\n */\nfunction syncRealContainer(container, option) {\n const cachedRealContainer = containerCache.get(container);\n\n // Find real container when not cached or cached container removed\n if (!cachedRealContainer || !contains(document, cachedRealContainer)) {\n const placeholderStyle = injectCSS('', option);\n const {\n parentNode\n } = placeholderStyle;\n containerCache.set(container, parentNode);\n container.removeChild(placeholderStyle);\n }\n}\n\n/**\n * manually clear container cache to avoid global cache in unit testes\n */\nexport function clearContainerCache() {\n containerCache.clear();\n}\nexport function updateCSS(css, key, originOption = {}) {\n const container = getContainer(originOption);\n const styles = findStyles(container);\n const option = {\n ...originOption,\n styles\n };\n\n // Sync real parent\n syncRealContainer(container, option);\n const existNode = findExistNode(key, option);\n if (existNode) {\n if (option.csp?.nonce && existNode.nonce !== option.csp?.nonce) {\n existNode.nonce = option.csp?.nonce;\n }\n if (existNode.innerHTML !== css) {\n existNode.innerHTML = css;\n }\n return existNode;\n }\n const newNode = injectCSS(css, option);\n newNode.setAttribute(getMark(option), key);\n return newNode;\n}","function getRoot(ele) {\n return ele?.getRootNode?.();\n}\n\n/**\n * Check if is in shadowRoot\n */\nexport function inShadow(ele) {\n return getRoot(ele) instanceof ShadowRoot;\n}\n\n/**\n * Return shadowRoot if possible\n */\nexport function getShadowRoot(ele) {\n return inShadow(ele) ? getRoot(ele) : null;\n}","/* eslint-disable no-console */\nlet warned = {};\nconst preWarningFns = [];\n\n/**\n * Pre warning enable you to parse content before console.error.\n * Modify to null will prevent warning.\n */\nexport const preMessage = fn => {\n preWarningFns.push(fn);\n};\n\n/**\n * Warning if condition not match.\n * @param valid Condition\n * @param message Warning message\n * @example\n * ```js\n * warning(false, 'some error'); // print some error\n * warning(true, 'some error'); // print nothing\n * warning(1 === 2, 'some error'); // print some error\n * ```\n */\nexport function warning(valid, message) {\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n const finalMessage = preWarningFns.reduce((msg, preMessageFn) => preMessageFn(msg ?? '', 'warning'), message);\n if (finalMessage) {\n console.error(`Warning: ${finalMessage}`);\n }\n }\n}\n\n/** @see Similar to {@link warning} */\nexport function note(valid, message) {\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n const finalMessage = preWarningFns.reduce((msg, preMessageFn) => preMessageFn(msg ?? '', 'note'), message);\n if (finalMessage) {\n console.warn(`Note: ${finalMessage}`);\n }\n }\n}\nexport function resetWarned() {\n warned = {};\n}\nexport function call(method, valid, message) {\n if (!valid && !warned[message]) {\n method(false, message);\n warned[message] = true;\n }\n}\n\n/** @see Same as {@link warning}, but only warn once for the same message */\nexport function warningOnce(valid, message) {\n call(warning, valid, message);\n}\n\n/** @see Same as {@link warning}, but only warn once for the same message */\nexport function noteOnce(valid, message) {\n call(note, valid, message);\n}\nwarningOnce.preMessage = preMessage;\nwarningOnce.resetWarned = resetWarned;\nwarningOnce.noteOnce = noteOnce;\nexport default warningOnce;","import { generate as generateColor } from '@ant-design/colors';\nimport { updateCSS } from \"@rc-component/util/es/Dom/dynamicCSS\";\nimport { getShadowRoot } from \"@rc-component/util/es/Dom/shadow\";\nimport { warningOnce } from \"@rc-component/util/es/warning\";\nimport React, { useContext, useEffect } from 'react';\nimport IconContext from \"./components/Context\";\nfunction camelCase(input) {\n return input.replace(/-(.)/g, (match, g) => g.toUpperCase());\n}\nexport function warning(valid, message) {\n warningOnce(valid, `[@ant-design/icons] ${message}`);\n}\nexport function isIconDefinition(target) {\n return typeof target === 'object' && typeof target.name === 'string' && typeof target.theme === 'string' && (typeof target.icon === 'object' || typeof target.icon === 'function');\n}\nexport function normalizeAttrs(attrs = {}) {\n return Object.keys(attrs).reduce((acc, key) => {\n const val = attrs[key];\n switch (key) {\n case 'class':\n acc.className = val;\n delete acc.class;\n break;\n default:\n delete acc[key];\n acc[camelCase(key)] = val;\n }\n return acc;\n }, {});\n}\nexport function generate(node, key, rootProps) {\n if (!rootProps) {\n return /*#__PURE__*/React.createElement(node.tag, {\n key,\n ...normalizeAttrs(node.attrs)\n }, (node.children || []).map((child, index) => generate(child, `${key}-${node.tag}-${index}`)));\n }\n return /*#__PURE__*/React.createElement(node.tag, {\n key,\n ...normalizeAttrs(node.attrs),\n ...rootProps\n }, (node.children || []).map((child, index) => generate(child, `${key}-${node.tag}-${index}`)));\n}\nexport function getSecondaryColor(primaryColor) {\n // choose the second color\n return generateColor(primaryColor)[0];\n}\nexport function normalizeTwoToneColors(twoToneColor) {\n if (!twoToneColor) {\n return [];\n }\n return Array.isArray(twoToneColor) ? twoToneColor : [twoToneColor];\n}\n\n// These props make sure that the SVG behaviours like general text.\n// Reference: https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4\nexport const svgBaseProps = {\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true',\n focusable: 'false'\n};\nexport const iconStyles = `\n.anticon {\n display: inline-flex;\n align-items: center;\n color: inherit;\n font-style: normal;\n line-height: 0;\n text-align: center;\n text-transform: none;\n vertical-align: -0.125em;\n text-rendering: optimizeLegibility;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.anticon > * {\n line-height: 1;\n}\n\n.anticon svg {\n display: inline-block;\n vertical-align: inherit;\n}\n\n.anticon::before {\n display: none;\n}\n\n.anticon .anticon-icon {\n display: block;\n}\n\n.anticon[tabindex] {\n cursor: pointer;\n}\n\n.anticon-spin::before,\n.anticon-spin {\n display: inline-block;\n -webkit-animation: loadingCircle 1s infinite linear;\n animation: loadingCircle 1s infinite linear;\n}\n\n@-webkit-keyframes loadingCircle {\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes loadingCircle {\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n`;\nexport const useInsertStyles = eleRef => {\n const {\n csp,\n prefixCls,\n layer\n } = useContext(IconContext);\n let mergedStyleStr = iconStyles;\n if (prefixCls) {\n mergedStyleStr = mergedStyleStr.replace(/anticon/g, prefixCls);\n }\n if (layer) {\n mergedStyleStr = `@layer ${layer} {\\n${mergedStyleStr}\\n}`;\n }\n useEffect(() => {\n const ele = eleRef.current;\n const shadowRoot = getShadowRoot(ele);\n updateCSS(mergedStyleStr, '@ant-design-icons', {\n prepend: !layer,\n csp,\n attachTo: shadowRoot\n });\n }, []);\n};","import * as React from 'react';\nimport { generate, getSecondaryColor, isIconDefinition, warning, useInsertStyles } from \"../utils\";\nconst twoToneColorPalette = {\n primaryColor: '#333',\n secondaryColor: '#E6E6E6',\n calculated: false\n};\nfunction setTwoToneColors({\n primaryColor,\n secondaryColor\n}) {\n twoToneColorPalette.primaryColor = primaryColor;\n twoToneColorPalette.secondaryColor = secondaryColor || getSecondaryColor(primaryColor);\n twoToneColorPalette.calculated = !!secondaryColor;\n}\nfunction getTwoToneColors() {\n return {\n ...twoToneColorPalette\n };\n}\nconst IconBase = props => {\n const {\n icon,\n className,\n onClick,\n style,\n primaryColor,\n secondaryColor,\n ...restProps\n } = props;\n const svgRef = React.useRef(null);\n let colors = twoToneColorPalette;\n if (primaryColor) {\n colors = {\n primaryColor,\n secondaryColor: secondaryColor || getSecondaryColor(primaryColor)\n };\n }\n useInsertStyles(svgRef);\n warning(isIconDefinition(icon), `icon should be icon definiton, but got ${icon}`);\n if (!isIconDefinition(icon)) {\n return null;\n }\n let target = icon;\n if (target && typeof target.icon === 'function') {\n target = {\n ...target,\n icon: target.icon(colors.primaryColor, colors.secondaryColor)\n };\n }\n return generate(target.icon, `svg-${target.name}`, {\n className,\n onClick,\n style,\n 'data-icon': target.name,\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true',\n ...restProps,\n ref: svgRef\n });\n};\nIconBase.displayName = 'IconReact';\nIconBase.getTwoToneColors = getTwoToneColors;\nIconBase.setTwoToneColors = setTwoToneColors;\nexport default IconBase;","import ReactIcon from \"./IconBase\";\nimport { normalizeTwoToneColors } from \"../utils\";\nexport function setTwoToneColor(twoToneColor) {\n const [primaryColor, secondaryColor] = normalizeTwoToneColors(twoToneColor);\n return ReactIcon.setTwoToneColors({\n primaryColor,\n secondaryColor\n });\n}\nexport function getTwoToneColor() {\n const colors = ReactIcon.getTwoToneColors();\n if (!colors.calculated) {\n return colors.primaryColor;\n }\n return [colors.primaryColor, colors.secondaryColor];\n}","'use client';\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from 'react';\nimport { clsx } from 'clsx';\nimport { blue } from '@ant-design/colors';\nimport Context from \"./Context\";\nimport ReactIcon from \"./IconBase\";\nimport { getTwoToneColor, setTwoToneColor } from \"./twoTonePrimaryColor\";\nimport { normalizeTwoToneColors } from \"../utils\";\n// Initial setting\n// should move it to antd main repo?\nsetTwoToneColor(blue.primary);\n\n// https://github.com/DefinitelyTyped/DefinitelyTyped/issues/34757#issuecomment-488848720\n\nconst Icon = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n // affect outter <i>...</i>\n className,\n // affect inner <svg>...</svg>\n icon,\n spin,\n rotate,\n tabIndex,\n onClick,\n // other\n twoToneColor,\n ...restProps\n } = props;\n const {\n prefixCls = 'anticon',\n rootClassName\n } = React.useContext(Context);\n const classString = clsx(rootClassName, prefixCls, {\n [`${prefixCls}-${icon.name}`]: !!icon.name,\n [`${prefixCls}-spin`]: !!spin || icon.name === 'loading'\n }, className);\n let iconTabIndex = tabIndex;\n if (iconTabIndex === undefined && onClick) {\n iconTabIndex = -1;\n }\n const svgStyle = rotate ? {\n msTransform: `rotate(${rotate}deg)`,\n transform: `rotate(${rotate}deg)`\n } : undefined;\n const [primaryColor, secondaryColor] = normalizeTwoToneColors(twoToneColor);\n return /*#__PURE__*/React.createElement(\"span\", _extends({\n role: \"img\",\n \"aria-label\": icon.name\n }, restProps, {\n ref: ref,\n tabIndex: iconTabIndex,\n onClick: onClick,\n className: classString\n }), /*#__PURE__*/React.createElement(ReactIcon, {\n icon: icon,\n primaryColor: primaryColor,\n secondaryColor: secondaryColor,\n style: svgStyle\n }));\n});\nIcon.getTwoToneColor = getTwoToneColor;\nIcon.setTwoToneColor = setTwoToneColor;\nif (process.env.NODE_ENV !== 'production') {\n Icon.displayName = 'AntdIcon';\n}\nexport default Icon;","// This icon file is generated automatically.\nvar UserOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M858.5 763.6a374 374 0 00-80.6-119.5 375.63 375.63 0 00-119.5-80.6c-.4-.2-.8-.3-1.2-.5C719.5 518 760 444.7 760 362c0-137-111-248-248-248S264 225 264 362c0 82.7 40.5 156 102.8 201.1-.4.2-.8.3-1.2.5-44.8 18.9-85 46-119.5 80.6a375.63 375.63 0 00-80.6 119.5A371.7 371.7 0 00136 901.8a8 8 0 008 8.2h60c4.4 0 7.9-3.5 8-7.8 2-77.2 33-149.5 87.8-204.3 56.7-56.7 132-87.9 212.2-87.9s155.5 31.2 212.2 87.9C779 752.7 810 825 812 902.2c.1 4.4 3.6 7.8 8 7.8h60a8 8 0 008-8.2c-1-47.8-10.9-94.3-29.5-138.2zM512 534c-45.9 0-89.1-17.9-121.6-50.4S340 407.9 340 362c0-45.9 17.9-89.1 50.4-121.6S466.1 190 512 190s89.1 17.9 121.6 50.4S684 316.1 684 362c0 45.9-17.9 89.1-50.4 121.6S557.9 534 512 534z\" } }] }, \"name\": \"user\", \"theme\": \"outlined\" };\nexport default UserOutlined;\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport UserOutlinedSvg from \"@ant-design/icons-svg/es/asn/UserOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nconst UserOutlined = (props, ref) => /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: UserOutlinedSvg\n}));\n\n/**![user](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg1OC41IDc2My42YTM3NCAzNzQgMCAwMC04MC42LTExOS41IDM3NS42MyAzNzUuNjMgMCAwMC0xMTkuNS04MC42Yy0uNC0uMi0uOC0uMy0xLjItLjVDNzE5LjUgNTE4IDc2MCA0NDQuNyA3NjAgMzYyYzAtMTM3LTExMS0yNDgtMjQ4LTI0OFMyNjQgMjI1IDI2NCAzNjJjMCA4Mi43IDQwLjUgMTU2IDEwMi44IDIwMS4xLS40LjItLjguMy0xLjIuNS00NC44IDE4LjktODUgNDYtMTE5LjUgODAuNmEzNzUuNjMgMzc1LjYzIDAgMDAtODAuNiAxMTkuNUEzNzEuNyAzNzEuNyAwIDAwMTM2IDkwMS44YTggOCAwIDAwOCA4LjJoNjBjNC40IDAgNy45LTMuNSA4LTcuOCAyLTc3LjIgMzMtMTQ5LjUgODcuOC0yMDQuMyA1Ni43LTU2LjcgMTMyLTg3LjkgMjEyLjItODcuOXMxNTUuNSAzMS4yIDIxMi4yIDg3LjlDNzc5IDc1Mi43IDgxMCA4MjUgODEyIDkwMi4yYy4xIDQuNCAzLjYgNy44IDggNy44aDYwYTggOCAwIDAwOC04LjJjLTEtNDcuOC0xMC45LTk0LjMtMjkuNS0xMzguMnpNNTEyIDUzNGMtNDUuOSAwLTg5LjEtMTcuOS0xMjEuNi01MC40UzM0MCA0MDcuOSAzNDAgMzYyYzAtNDUuOSAxNy45LTg5LjEgNTAuNC0xMjEuNlM0NjYuMSAxOTAgNTEyIDE5MHM4OS4xIDE3LjkgMTIxLjYgNTAuNFM2ODQgMzE2LjEgNjg0IDM2MmMwIDQ1LjktMTcuOSA4OS4xLTUwLjQgMTIxLjZTNTU3LjkgNTM0IDUxMiA1MzR6IiAvPjwvc3ZnPg==) */\nconst RefIcon = /*#__PURE__*/React.forwardRef(UserOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'UserOutlined';\n}\nexport default RefIcon;","import React from 'react';\nimport { Avatar } from 'antd';\nimport { UserOutlined } from '@ant-design/icons';\n\nexport interface UserPillProps {\n name: string;\n subtitle?: string;\n avatar?: string;\n className?: string;\n size?: 'small' | 'medium' | 'large';\n}\n\nexport const UserPill: React.FC<UserPillProps> = ({\n name,\n subtitle,\n avatar,\n className = '',\n}) => {\n const avatarSize = 30;\n\n return (\n <div\n className={`flex items-center ${className}`}\n style={{\n backgroundColor: '#E6E6E6',\n borderRadius: '40px',\n padding: '5px 12px 5px 5px',\n height: '40px',\n gap: '8px',\n }}\n >\n {avatar ? (\n <Avatar src={avatar} size={avatarSize} />\n ) : (\n <Avatar icon={<UserOutlined />} size={avatarSize} style={{ backgroundColor: '#6B7280' }} />\n )}\n <div className=\"flex flex-col\">\n <span\n style={{\n color: '#181918',\n fontSize: '14px',\n fontWeight: 600,\n lineHeight: '1.2',\n }}\n >\n {name}\n </span>\n {subtitle && (\n <span\n style={{\n color: '#181918',\n fontSize: '12px',\n fontWeight: 400,\n lineHeight: '1.2',\n marginTop: '2px',\n }}\n >\n {subtitle}\n </span>\n )}\n </div>\n </div>\n );\n};\n","export default \"data:image/svg+xml,%3csvg%20width='353'%20height='130'%20viewBox='0%200%20353%20130'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20opacity='0.1'%3e%3cpath%20d='M17%2024C17%2015.1634%2024.1634%208%2033%208H327C335.837%208%20343%2015.1634%20343%2024V98C343%20106.837%20335.837%20114%20327%20114H33C24.1635%20114%2017%20106.837%2017%2098V24Z'%20fill='url(%23paint0_linear_683_56525)'/%3e%3crect%20x='41'%20y='29'%20width='67'%20height='67'%20rx='33.5'%20fill='%231B1C1E'/%3e%3cpath%20d='M68.8552%2071V55.0216H75.5683C76.5263%2055.0216%2077.3484%2055.1932%2078.0347%2055.5363C78.7354%2055.8795%2079.2715%2056.3657%2079.6433%2056.9948C80.0294%2057.6096%2080.2224%2058.346%2080.2224%2059.2039C80.2224%2059.9903%2080.0151%2060.7052%2079.6004%2061.3486C79.2%2061.9777%2078.6067%2062.471%2077.8203%2062.8285L77.7988%2062.0349C78.4851%2062.2923%2079.0499%2062.6355%2079.4932%2063.0644C79.9507%2063.4791%2080.2939%2063.9652%2080.5226%2064.5229C80.7514%2065.0662%2080.8658%2065.6453%2080.8658%2066.2601C80.8658%2067.7328%2080.394%2068.891%2079.4503%2069.7346C78.5066%2070.5782%2077.2197%2071%2075.5897%2071H68.8552ZM70.9571%2069.0697H75.6755C76.6049%2069.0697%2077.3484%2068.8195%2077.906%2068.3191C78.4637%2067.8186%2078.7425%2067.1394%2078.7425%2066.2815C78.7425%2065.4236%2078.4637%2064.7445%2077.906%2064.244C77.3484%2063.7293%2076.6049%2063.4719%2075.6755%2063.4719H70.9571V69.0697ZM70.9571%2061.5845H75.5254C76.2975%2061.5845%2076.9195%2061.3629%2077.3913%2060.9197C77.8632%2060.4621%2078.0991%2059.883%2078.0991%2059.1824C78.0991%2058.4532%2077.8632%2057.8956%2077.3913%2057.5095C76.9195%2057.1235%2076.2975%2056.9304%2075.5254%2056.9304H70.9571V61.5845Z'%20fill='%23FDFDFE'/%3e%3cpath%20d='M133.44%2049V34.1H139.72C140.707%2034.1%20141.547%2034.2733%20142.24%2034.62C142.947%2034.9533%20143.487%2035.4333%20143.86%2036.06C144.247%2036.6733%20144.44%2037.42%20144.44%2038.3C144.44%2038.98%20144.253%2039.62%20143.88%2040.22C143.52%2040.8067%20142.94%2041.2933%20142.14%2041.68V40.42C142.873%2040.7%20143.453%2041.0467%20143.88%2041.46C144.307%2041.8733%20144.607%2042.3333%20144.78%2042.84C144.953%2043.3467%20145.04%2043.88%20145.04%2044.44C145.04%2045.8667%20144.567%2046.9867%20143.62%2047.8C142.687%2048.6%20141.387%2049%20139.72%2049H133.44ZM136.16%2046.6H140C140.707%2046.6%20141.267%2046.4067%20141.68%2046.02C142.107%2045.62%20142.32%2045.0933%20142.32%2044.44C142.32%2043.7867%20142.107%2043.26%20141.68%2042.86C141.267%2042.46%20140.707%2042.26%20140%2042.26H136.16V46.6ZM136.16%2039.88H139.86C140.42%2039.88%20140.867%2039.72%20141.2%2039.4C141.533%2039.0667%20141.7%2038.64%20141.7%2038.12C141.7%2037.6%20141.533%2037.1867%20141.2%2036.88C140.867%2036.5733%20140.42%2036.42%20139.86%2036.42H136.16V39.88ZM152.208%2049.24C151.088%2049.24%20150.108%2048.9867%20149.268%2048.48C148.428%2047.9733%20147.775%2047.2867%20147.308%2046.42C146.841%2045.5533%20146.608%2044.5933%20146.608%2043.54C146.608%2042.4467%20146.841%2041.48%20147.308%2040.64C147.788%2039.7867%20148.435%2039.1133%20149.248%2038.62C150.075%2038.1267%20150.995%2037.88%20152.008%2037.88C152.861%2037.88%20153.608%2038.02%20154.248%2038.3C154.901%2038.58%20155.455%2038.9667%20155.908%2039.46C156.361%2039.9533%20156.708%2040.52%20156.948%2041.16C157.188%2041.7867%20157.308%2042.4667%20157.308%2043.2C157.308%2043.3867%20157.295%2043.58%20157.268%2043.78C157.255%2043.98%20157.221%2044.1533%20157.168%2044.3H148.768V42.3H155.688L154.448%2043.24C154.568%2042.6267%20154.535%2042.08%20154.348%2041.6C154.175%2041.12%20153.881%2040.74%20153.468%2040.46C153.068%2040.18%20152.581%2040.04%20152.008%2040.04C151.461%2040.04%20150.975%2040.18%20150.548%2040.46C150.121%2040.7267%20149.795%2041.1267%20149.568%2041.66C149.355%2042.18%20149.275%2042.8133%20149.328%2043.56C149.275%2044.2267%20149.361%2044.82%20149.588%2045.34C149.828%2045.8467%20150.175%2046.24%20150.628%2046.52C151.095%2046.8%20151.628%2046.94%20152.228%2046.94C152.828%2046.94%20153.335%2046.8133%20153.748%2046.56C154.175%2046.3067%20154.508%2045.9667%20154.748%2045.54L156.868%2046.58C156.655%2047.1%20156.321%2047.56%20155.868%2047.96C155.415%2048.36%20154.875%2048.6733%20154.248%2048.9C153.635%2049.1267%20152.955%2049.24%20152.208%2049.24ZM159.294%2049V38.12H161.754V40.26L161.554%2039.88C161.808%2039.2267%20162.221%2038.7333%20162.794%2038.4C163.381%2038.0533%20164.061%2037.88%20164.834%2037.88C165.634%2037.88%20166.341%2038.0533%20166.954%2038.4C167.581%2038.7467%20168.068%2039.2333%20168.414%2039.86C168.761%2040.4733%20168.934%2041.1867%20168.934%2042V49H166.314V42.62C166.314%2042.14%20166.221%2041.7267%20166.034%2041.38C165.848%2041.0333%20165.588%2040.7667%20165.254%2040.58C164.934%2040.38%20164.554%2040.28%20164.114%2040.28C163.688%2040.28%20163.308%2040.38%20162.974%2040.58C162.641%2040.7667%20162.381%2041.0333%20162.194%2041.38C162.008%2041.7267%20161.914%2042.14%20161.914%2042.62V49H159.294ZM169.65%2053.42C169.476%2053.42%20169.296%2053.4133%20169.11%2053.4C168.923%2053.3867%20168.77%2053.3667%20168.65%2053.34V51.06C168.89%2051.1%20169.13%2051.12%20169.37%2051.12C169.93%2051.12%20170.363%2050.9867%20170.67%2050.72C170.99%2050.4667%20171.15%2050.0733%20171.15%2049.54V38.12H173.77V49.54C173.77%2050.3667%20173.603%2051.0667%20173.27%2051.64C172.936%2052.2267%20172.456%2052.6667%20171.83%2052.96C171.216%2053.2667%20170.49%2053.42%20169.65%2053.42ZM171.15%2036.9V34.1H173.77V36.9H171.15ZM179.489%2049.24C178.729%2049.24%20178.069%2049.1133%20177.509%2048.86C176.949%2048.6067%20176.515%2048.2467%20176.209%2047.78C175.902%2047.3%20175.749%2046.7467%20175.749%2046.12C175.749%2045.52%20175.882%2044.9867%20176.149%2044.52C176.415%2044.04%20176.829%2043.64%20177.389%2043.32C177.949%2043%20178.655%2042.7733%20179.509%2042.64L183.069%2042.06V44.06L180.009%2044.58C179.489%2044.6733%20179.102%2044.84%20178.849%2045.08C178.595%2045.32%20178.469%2045.6333%20178.469%2046.02C178.469%2046.3933%20178.609%2046.6933%20178.889%2046.92C179.182%2047.1333%20179.542%2047.24%20179.969%2047.24C180.515%2047.24%20180.995%2047.1267%20181.409%2046.9C181.835%2046.66%20182.162%2046.3333%20182.389%2045.92C182.629%2045.5067%20182.749%2045.0533%20182.749%2044.56V41.76C182.749%2041.2933%20182.562%2040.9067%20182.189%2040.6C181.829%2040.28%20181.349%2040.12%20180.749%2040.12C180.189%2040.12%20179.689%2040.2733%20179.249%2040.58C178.822%2040.8733%20178.509%2041.2667%20178.309%2041.76L176.169%2040.72C176.382%2040.1467%20176.715%2039.6533%20177.169%2039.24C177.635%2038.8133%20178.182%2038.48%20178.809%2038.24C179.435%2038%20180.115%2037.88%20180.849%2037.88C181.742%2037.88%20182.529%2038.0467%20183.209%2038.38C183.889%2038.7%20184.415%2039.1533%20184.789%2039.74C185.175%2040.3133%20185.369%2040.9867%20185.369%2041.76V49H182.889V47.14L183.449%2047.1C183.169%2047.5667%20182.835%2047.96%20182.449%2048.28C182.062%2048.5867%20181.622%2048.8267%20181.129%2049C180.635%2049.16%20180.089%2049.24%20179.489%2049.24ZM187.79%2049V38.12H190.25V40.64L189.97%2040.22C190.17%2039.4333%20190.57%2038.8467%20191.17%2038.46C191.77%2038.0733%20192.477%2037.88%20193.29%2037.88C194.184%2037.88%20194.97%2038.1133%20195.65%2038.58C196.33%2039.0467%20196.77%2039.66%20196.97%2040.42L196.23%2040.48C196.564%2039.6133%20197.064%2038.9667%20197.73%2038.54C198.397%2038.1%20199.164%2037.88%20200.03%2037.88C200.804%2037.88%20201.49%2038.0533%20202.09%2038.4C202.704%2038.7467%20203.184%2039.2333%20203.53%2039.86C203.877%2040.4733%20204.05%2041.1867%20204.05%2042V49H201.43V42.62C201.43%2042.14%20201.344%2041.7267%20201.17%2041.38C200.997%2041.0333%20200.757%2040.7667%20200.45%2040.58C200.144%2040.38%20199.77%2040.28%20199.33%2040.28C198.917%2040.28%20198.55%2040.38%20198.23%2040.58C197.91%2040.7667%20197.664%2041.0333%20197.49%2041.38C197.317%2041.7267%20197.23%2042.14%20197.23%2042.62V49H194.61V42.62C194.61%2042.14%20194.524%2041.7267%20194.35%2041.38C194.177%2041.0333%20193.93%2040.7667%20193.61%2040.58C193.304%2040.38%20192.937%2040.28%20192.51%2040.28C192.097%2040.28%20191.73%2040.38%20191.41%2040.58C191.09%2040.7667%20190.844%2041.0333%20190.67%2041.38C190.497%2041.7267%20190.41%2042.14%20190.41%2042.62V49H187.79ZM206.267%2049V38.12H208.887V49H206.267ZM206.267%2036.9V34.1H208.887V36.9H206.267ZM211.306%2049V38.12H213.766V40.26L213.566%2039.88C213.819%2039.2267%20214.233%2038.7333%20214.806%2038.4C215.393%2038.0533%20216.073%2037.88%20216.846%2037.88C217.646%2037.88%20218.353%2038.0533%20218.966%2038.4C219.593%2038.7467%20220.079%2039.2333%20220.426%2039.86C220.773%2040.4733%20220.946%2041.1867%20220.946%2042V49H218.326V42.62C218.326%2042.14%20218.233%2041.7267%20218.046%2041.38C217.859%2041.0333%20217.599%2040.7667%20217.266%2040.58C216.946%2040.38%20216.566%2040.28%20216.126%2040.28C215.699%2040.28%20215.319%2040.38%20214.986%2040.58C214.653%2040.7667%20214.393%2041.0333%20214.206%2041.38C214.019%2041.7267%20213.926%2042.14%20213.926%2042.62V49H211.306Z'%20fill='%23181918'/%3e%3cpath%20d='M136.872%2072.168C136.228%2072.168%20135.645%2072.0233%20135.122%2071.734C134.609%2071.4353%20134.221%2071.0153%20133.96%2070.474L134.128%2070.32V72H133.078V61.402H134.128V66.176L133.96%2065.882C134.259%2065.406%20134.655%2065.028%20135.15%2064.748C135.654%2064.468%20136.228%2064.328%20136.872%2064.328C137.581%2064.328%20138.211%2064.5007%20138.762%2064.846C139.322%2065.182%20139.761%2065.644%20140.078%2066.232C140.405%2066.82%20140.568%2067.492%20140.568%2068.248C140.568%2068.9947%20140.405%2069.6667%20140.078%2070.264C139.761%2070.852%20139.322%2071.3187%20138.762%2071.664C138.211%2072%20137.581%2072.168%20136.872%2072.168ZM136.816%2071.118C137.32%2071.118%20137.768%2070.992%20138.16%2070.74C138.561%2070.488%20138.874%2070.1473%20139.098%2069.718C139.331%2069.2793%20139.448%2068.7893%20139.448%2068.248C139.448%2067.6973%20139.331%2067.2073%20139.098%2066.778C138.874%2066.3487%20138.561%2066.008%20138.16%2065.756C137.768%2065.504%20137.32%2065.378%20136.816%2065.378C136.312%2065.378%20135.855%2065.504%20135.444%2065.756C135.043%2066.008%20134.721%2066.3533%20134.478%2066.792C134.245%2067.2213%20134.128%2067.7067%20134.128%2068.248C134.128%2068.7893%20134.245%2069.2793%20134.478%2069.718C134.721%2070.1473%20135.043%2070.488%20135.444%2070.74C135.855%2070.992%20136.312%2071.118%20136.816%2071.118ZM145.832%2072.168C145.132%2072.168%20144.497%2072%20143.928%2071.664C143.368%2071.3187%20142.925%2070.8473%20142.598%2070.25C142.271%2069.6527%20142.108%2068.976%20142.108%2068.22C142.108%2067.464%20142.267%2066.7967%20142.584%2066.218C142.901%2065.63%20143.331%2065.168%20143.872%2064.832C144.423%2064.496%20145.039%2064.328%20145.72%2064.328C146.261%2064.328%20146.742%2064.4307%20147.162%2064.636C147.591%2064.832%20147.955%2065.1027%20148.254%2065.448C148.553%2065.784%20148.781%2066.1667%20148.94%2066.596C149.099%2067.016%20149.178%2067.45%20149.178%2067.898C149.178%2067.9913%20149.173%2068.0987%20149.164%2068.22C149.155%2068.332%20149.141%2068.4487%20149.122%2068.57H142.78V67.59H148.52L148.016%2068.01C148.1%2067.4967%20148.039%2067.0393%20147.834%2066.638C147.638%2066.2273%20147.353%2065.9053%20146.98%2065.672C146.607%2065.4293%20146.187%2065.308%20145.72%2065.308C145.253%2065.308%20144.819%2065.4293%20144.418%2065.672C144.026%2065.9147%20143.718%2066.2553%20143.494%2066.694C143.27%2067.1233%20143.181%2067.6367%20143.228%2068.234C143.181%2068.8313%20143.275%2069.354%20143.508%2069.802C143.751%2070.2407%20144.077%2070.5813%20144.488%2070.824C144.908%2071.0667%20145.356%2071.188%20145.832%2071.188C146.383%2071.188%20146.845%2071.0573%20147.218%2070.796C147.591%2070.5347%20147.895%2070.208%20148.128%2069.816L149.024%2070.292C148.875%2070.628%20148.646%2070.9407%20148.338%2071.23C148.03%2071.51%20147.661%2071.7387%20147.232%2071.916C146.812%2072.084%20146.345%2072.168%20145.832%2072.168ZM151.029%2072V64.496H152.079V65.952L151.841%2065.896C152.028%2065.4107%20152.331%2065.028%20152.751%2064.748C153.181%2064.468%20153.675%2064.328%20154.235%2064.328C154.767%2064.328%20155.243%2064.4493%20155.663%2064.692C156.093%2064.9347%20156.429%2065.2707%20156.671%2065.7C156.923%2066.12%20157.049%2066.596%20157.049%2067.128V72H155.999V67.534C155.999%2067.0767%20155.915%2066.6893%20155.747%2066.372C155.589%2066.0547%20155.36%2065.812%20155.061%2065.644C154.772%2065.4667%20154.436%2065.378%20154.053%2065.378C153.671%2065.378%20153.33%2065.4667%20153.031%2065.644C152.733%2065.812%20152.499%2066.0593%20152.331%2066.386C152.163%2066.7033%20152.079%2067.086%20152.079%2067.534V72H151.029ZM164.725%2074.898C163.903%2074.898%20163.138%2074.7487%20162.429%2074.45C161.729%2074.1607%20161.113%2073.75%20160.581%2073.218C160.049%2072.686%20159.633%2072.07%20159.335%2071.37C159.045%2070.6607%20158.901%2069.9%20158.901%2069.088C158.901%2068.276%20159.05%2067.52%20159.349%2066.82C159.647%2066.12%20160.058%2065.5087%20160.581%2064.986C161.113%2064.4633%20161.733%2064.0573%20162.443%2063.768C163.152%2063.4693%20163.913%2063.32%20164.725%2063.32C165.565%2063.32%20166.339%2063.4787%20167.049%2063.796C167.758%2064.104%20168.369%2064.5287%20168.883%2065.07C169.405%2065.602%20169.807%2066.2087%20170.087%2066.89C170.376%2067.5713%20170.521%2068.2853%20170.521%2069.032C170.521%2069.62%20170.427%2070.138%20170.241%2070.586C170.063%2071.0247%20169.802%2071.37%20169.457%2071.622C169.111%2071.874%20168.696%2072%20168.211%2072C167.921%2072%20167.646%2071.9487%20167.385%2071.846C167.123%2071.734%20166.899%2071.58%20166.713%2071.384C166.535%2071.1787%20166.414%2070.936%20166.349%2070.656L166.573%2070.838C166.423%2071.09%20166.237%2071.3047%20166.013%2071.482C165.798%2071.65%20165.555%2071.7807%20165.285%2071.874C165.014%2071.958%20164.72%2072%20164.403%2072C163.861%2072%20163.371%2071.8693%20162.933%2071.608C162.503%2071.3467%20162.163%2070.992%20161.911%2070.544C161.659%2070.096%20161.533%2069.5873%20161.533%2069.018C161.533%2068.4487%20161.659%2067.94%20161.911%2067.492C162.163%2067.044%20162.503%2066.6893%20162.933%2066.428C163.371%2066.1573%20163.861%2066.022%20164.403%2066.022C164.86%2066.022%20165.275%2066.1153%20165.649%2066.302C166.031%2066.4887%20166.335%2066.75%20166.559%2067.086L166.461%2067.254V66.162H167.371V70.026C167.371%2070.3713%20167.445%2070.6233%20167.595%2070.782C167.753%2070.9407%20167.963%2071.02%20168.225%2071.02C168.617%2071.02%20168.92%2070.8567%20169.135%2070.53C169.359%2070.2033%20169.471%2069.7133%20169.471%2069.06C169.471%2068.388%20169.354%2067.7627%20169.121%2067.184C168.887%2066.6053%20168.561%2066.1013%20168.141%2065.672C167.721%2065.2427%20167.221%2064.9067%20166.643%2064.664C166.064%2064.4213%20165.425%2064.3%20164.725%2064.3C164.043%2064.3%20163.409%2064.4213%20162.821%2064.664C162.242%2064.8973%20161.738%2065.2287%20161.309%2065.658C160.879%2066.0873%20160.543%2066.5913%20160.301%2067.17C160.067%2067.7487%20159.951%2068.3833%20159.951%2069.074C159.951%2069.746%20160.063%2070.376%20160.287%2070.964C160.52%2071.5427%20160.847%2072.0513%20161.267%2072.49C161.696%2072.938%20162.205%2073.288%20162.793%2073.54C163.381%2073.792%20164.034%2073.918%20164.753%2073.918C165.173%2073.918%20165.579%2073.8713%20165.971%2073.778C166.363%2073.694%20166.717%2073.5633%20167.035%2073.386L167.483%2074.226C166.689%2074.674%20165.77%2074.898%20164.725%2074.898ZM164.445%2071.02C164.809%2071.02%20165.131%2070.9313%20165.411%2070.754C165.691%2070.5767%20165.91%2070.3387%20166.069%2070.04C166.237%2069.732%20166.321%2069.3867%20166.321%2069.004C166.321%2068.4253%20166.143%2067.954%20165.789%2067.59C165.434%2067.2167%20164.986%2067.03%20164.445%2067.03C164.09%2067.03%20163.768%2067.1187%20163.479%2067.296C163.199%2067.464%20162.979%2067.6973%20162.821%2067.996C162.662%2068.2947%20162.583%2068.6353%20162.583%2069.018C162.583%2069.3913%20162.662%2069.732%20162.821%2070.04C162.989%2070.3387%20163.213%2070.5767%20163.493%2070.754C163.773%2070.9313%20164.09%2071.02%20164.445%2071.02ZM174.661%2072.168C173.942%2072.168%20173.312%2071.986%20172.771%2071.622C172.229%2071.258%20171.837%2070.7633%20171.595%2070.138L172.477%2069.718C172.691%2070.1753%20172.99%2070.5393%20173.373%2070.81C173.765%2071.0807%20174.194%2071.216%20174.661%2071.216C175.109%2071.216%20175.487%2071.1087%20175.795%2070.894C176.103%2070.67%20176.257%2070.3807%20176.257%2070.026C176.257%2069.7647%20176.182%2069.5593%20176.033%2069.41C175.883%2069.2513%20175.711%2069.13%20175.515%2069.046C175.319%2068.962%20175.146%2068.9013%20174.997%2068.864L173.919%2068.556C173.228%2068.36%20172.729%2068.0847%20172.421%2067.73C172.113%2067.3753%20171.959%2066.9647%20171.959%2066.498C171.959%2066.0593%20172.071%2065.6767%20172.295%2065.35C172.519%2065.0233%20172.822%2064.7713%20173.205%2064.594C173.587%2064.4167%20174.012%2064.328%20174.479%2064.328C175.113%2064.328%20175.687%2064.496%20176.201%2064.832C176.723%2065.1587%20177.092%2065.616%20177.307%2066.204L176.411%2066.624C176.224%2066.204%20175.953%2065.8773%20175.599%2065.644C175.253%2065.4013%20174.866%2065.28%20174.437%2065.28C174.017%2065.28%20173.681%2065.3873%20173.429%2065.602C173.177%2065.8167%20173.051%2066.0873%20173.051%2066.414C173.051%2066.666%20173.116%2066.8667%20173.247%2067.016C173.377%2067.1653%20173.527%2067.2773%20173.695%2067.352C173.872%2067.4267%20174.026%2067.4827%20174.157%2067.52L175.403%2067.884C176.009%2068.0613%20176.481%2068.3367%20176.817%2068.71C177.162%2069.0833%20177.335%2069.522%20177.335%2070.026C177.335%2070.4367%20177.218%2070.8053%20176.985%2071.132C176.761%2071.4587%20176.448%2071.7153%20176.047%2071.902C175.645%2072.0793%20175.183%2072.168%20174.661%2072.168ZM179.18%2072V61.402H180.23V65.952L179.992%2065.896C180.178%2065.4107%20180.482%2065.028%20180.902%2064.748C181.331%2064.468%20181.826%2064.328%20182.386%2064.328C182.918%2064.328%20183.394%2064.4493%20183.814%2064.692C184.243%2064.9347%20184.579%2065.2707%20184.822%2065.7C185.074%2066.12%20185.2%2066.596%20185.2%2067.128V72H184.15V67.534C184.15%2067.0767%20184.066%2066.6893%20183.898%2066.372C183.73%2066.0547%20183.496%2065.812%20183.198%2065.644C182.908%2065.4667%20182.577%2065.378%20182.204%2065.378C181.83%2065.378%20181.494%2065.4667%20181.196%2065.644C180.897%2065.812%20180.659%2066.0593%20180.482%2066.386C180.314%2066.7033%20180.23%2067.086%20180.23%2067.534V72H179.18ZM190.621%2072.168C189.921%2072.168%20189.286%2072%20188.717%2071.664C188.157%2071.3187%20187.714%2070.8473%20187.387%2070.25C187.06%2069.6527%20186.897%2068.976%20186.897%2068.22C186.897%2067.464%20187.056%2066.7967%20187.373%2066.218C187.69%2065.63%20188.12%2065.168%20188.661%2064.832C189.212%2064.496%20189.828%2064.328%20190.509%2064.328C191.05%2064.328%20191.531%2064.4307%20191.951%2064.636C192.38%2064.832%20192.744%2065.1027%20193.043%2065.448C193.342%2065.784%20193.57%2066.1667%20193.729%2066.596C193.888%2067.016%20193.967%2067.45%20193.967%2067.898C193.967%2067.9913%20193.962%2068.0987%20193.953%2068.22C193.944%2068.332%20193.93%2068.4487%20193.911%2068.57H187.569V67.59H193.309L192.805%2068.01C192.889%2067.4967%20192.828%2067.0393%20192.623%2066.638C192.427%2066.2273%20192.142%2065.9053%20191.769%2065.672C191.396%2065.4293%20190.976%2065.308%20190.509%2065.308C190.042%2065.308%20189.608%2065.4293%20189.207%2065.672C188.815%2065.9147%20188.507%2066.2553%20188.283%2066.694C188.059%2067.1233%20187.97%2067.6367%20188.017%2068.234C187.97%2068.8313%20188.064%2069.354%20188.297%2069.802C188.54%2070.2407%20188.866%2070.5813%20189.277%2070.824C189.697%2071.0667%20190.145%2071.188%20190.621%2071.188C191.172%2071.188%20191.634%2071.0573%20192.007%2070.796C192.38%2070.5347%20192.684%2070.208%20192.917%2069.816L193.813%2070.292C193.664%2070.628%20193.435%2070.9407%20193.127%2071.23C192.819%2071.51%20192.45%2071.7387%20192.021%2071.916C191.601%2072.084%20191.134%2072.168%20190.621%2072.168ZM195.818%2072V61.402H196.868V68.822L196.42%2068.752L200.634%2064.496H201.992L199.052%2067.506L202.258%2072H200.998L197.988%2067.842L198.66%2067.898L196.518%2070.11L196.868%2069.242V72H195.818ZM206.767%2072.168C206.067%2072.168%20205.433%2072%20204.863%2071.664C204.303%2071.3187%20203.86%2070.8473%20203.533%2070.25C203.207%2069.6527%20203.043%2068.976%20203.043%2068.22C203.043%2067.464%20203.202%2066.7967%20203.519%2066.218C203.837%2065.63%20204.266%2065.168%20204.807%2064.832C205.358%2064.496%20205.974%2064.328%20206.655%2064.328C207.197%2064.328%20207.677%2064.4307%20208.097%2064.636C208.527%2064.832%20208.891%2065.1027%20209.189%2065.448C209.488%2065.784%20209.717%2066.1667%20209.875%2066.596C210.034%2067.016%20210.113%2067.45%20210.113%2067.898C210.113%2067.9913%20210.109%2068.0987%20210.099%2068.22C210.09%2068.332%20210.076%2068.4487%20210.057%2068.57H203.715V67.59H209.455L208.951%2068.01C209.035%2067.4967%20208.975%2067.0393%20208.769%2066.638C208.573%2066.2273%20208.289%2065.9053%20207.915%2065.672C207.542%2065.4293%20207.122%2065.308%20206.655%2065.308C206.189%2065.308%20205.755%2065.4293%20205.353%2065.672C204.961%2065.9147%20204.653%2066.2553%20204.429%2066.694C204.205%2067.1233%20204.117%2067.6367%20204.163%2068.234C204.117%2068.8313%20204.21%2069.354%20204.443%2069.802C204.686%2070.2407%20205.013%2070.5813%20205.423%2070.824C205.843%2071.0667%20206.291%2071.188%20206.767%2071.188C207.318%2071.188%20207.78%2071.0573%20208.153%2070.796C208.527%2070.5347%20208.83%2070.208%20209.063%2069.816L209.959%2070.292C209.81%2070.628%20209.581%2070.9407%20209.273%2071.23C208.965%2071.51%20208.597%2071.7387%20208.167%2071.916C207.747%2072.084%20207.281%2072.168%20206.767%2072.168ZM211.965%2072V61.402H213.015V72H211.965ZM215.528%2072V70.46H216.648V72H215.528ZM221.34%2072.168C220.864%2072.168%20220.439%2072.0793%20220.066%2071.902C219.692%2071.7153%20219.398%2071.4633%20219.184%2071.146C218.969%2070.8287%20218.862%2070.4647%20218.862%2070.054C218.862%2069.662%20218.946%2069.3073%20219.114%2068.99C219.282%2068.6633%20219.543%2068.388%20219.898%2068.164C220.252%2067.94%20220.705%2067.7813%20221.256%2067.688L224.196%2067.198V68.15L221.508%2068.598C220.966%2068.6913%20220.574%2068.864%20220.332%2069.116C220.098%2069.368%20219.982%2069.6667%20219.982%2070.012C219.982%2070.348%20220.112%2070.6327%20220.374%2070.866C220.644%2071.0993%20220.99%2071.216%20221.41%2071.216C221.923%2071.216%20222.371%2071.1087%20222.754%2070.894C223.136%2070.67%20223.435%2070.3713%20223.65%2069.998C223.864%2069.6247%20223.972%2069.2093%20223.972%2068.752V66.848C223.972%2066.4%20223.808%2066.036%20223.482%2065.756C223.155%2065.476%20222.73%2065.336%20222.208%2065.336C221.75%2065.336%20221.349%2065.4527%20221.004%2065.686C220.658%2065.91%20220.402%2066.204%20220.234%2066.568L219.282%2066.05C219.422%2065.7327%20219.641%2065.4433%20219.94%2065.182C220.248%2064.9207%20220.598%2064.7153%20220.99%2064.566C221.382%2064.4073%20221.788%2064.328%20222.208%2064.328C222.758%2064.328%20223.244%2064.4353%20223.664%2064.65C224.093%2064.8647%20224.424%2065.1633%20224.658%2065.546C224.9%2065.9193%20225.022%2066.3533%20225.022%2066.848V72H223.972V70.502L224.126%2070.656C223.995%2070.936%20223.79%2071.1927%20223.51%2071.426C223.239%2071.65%20222.917%2071.832%20222.544%2071.972C222.18%2072.1027%20221.778%2072.168%20221.34%2072.168ZM227.952%2072V65.546H226.454V64.496H227.952V63.824C227.952%2063.3013%20228.068%2062.8627%20228.302%2062.508C228.535%2062.144%20228.843%2061.8687%20229.226%2061.682C229.608%2061.4953%20230.019%2061.402%20230.458%2061.402C230.551%2061.402%20230.658%2061.4113%20230.78%2061.43C230.901%2061.4393%20230.999%2061.4533%20231.074%2061.472V62.424C231.008%2062.4053%20230.92%2062.396%20230.808%2062.396C230.696%2062.3867%20230.616%2062.382%20230.57%2062.382C230.122%2062.382%20229.748%2062.4893%20229.45%2062.704C229.151%2062.9187%20229.002%2063.292%20229.002%2063.824V64.496H230.836V65.546H229.002V72H227.952ZM232.541%2072V64.496H233.591V65.728L233.451%2065.546C233.628%2065.1913%20233.894%2064.9113%20234.249%2064.706C234.613%2064.5007%20235.052%2064.398%20235.565%2064.398H236.041V65.448H235.383C234.842%2065.448%20234.408%2065.616%20234.081%2065.952C233.754%2066.288%20233.591%2066.764%20233.591%2067.38V72H232.541ZM237.271%2072V64.496H238.321V72H237.271ZM237.271%2063.11V61.57H238.321V63.11H237.271ZM243.901%2072.168C243.163%2072.168%20242.515%2071.9953%20241.955%2071.65C241.395%2071.3047%20240.956%2070.838%20240.639%2070.25C240.321%2069.6527%20240.163%2068.9807%20240.163%2068.234C240.163%2067.4873%20240.321%2066.82%20240.639%2066.232C240.956%2065.644%20241.395%2065.182%20241.955%2064.846C242.515%2064.5007%20243.163%2064.328%20243.901%2064.328C244.367%2064.328%20244.806%2064.412%20245.217%2064.58C245.627%2064.748%20245.991%2064.9767%20246.309%2065.266C246.626%2065.546%20246.864%2065.8727%20247.023%2066.246L246.071%2066.736C245.884%2066.3347%20245.599%2066.008%20245.217%2065.756C244.834%2065.504%20244.395%2065.378%20243.901%2065.378C243.406%2065.378%20242.958%2065.504%20242.557%2065.756C242.165%2065.9987%20241.852%2066.3393%20241.619%2066.778C241.395%2067.2073%20241.283%2067.6973%20241.283%2068.248C241.283%2068.7893%20241.395%2069.2793%20241.619%2069.718C241.852%2070.1473%20242.165%2070.488%20242.557%2070.74C242.958%2070.992%20243.406%2071.118%20243.901%2071.118C244.395%2071.118%20244.829%2070.992%20245.203%2070.74C245.585%2070.488%20245.875%2070.152%20246.071%2069.732L247.023%2070.25C246.864%2070.614%20246.626%2070.9407%20246.309%2071.23C245.991%2071.5193%20245.627%2071.748%20245.217%2071.916C244.806%2072.084%20244.367%2072.168%20243.901%2072.168ZM250.898%2072.168C250.422%2072.168%20249.998%2072.0793%20249.624%2071.902C249.251%2071.7153%20248.957%2071.4633%20248.742%2071.146C248.528%2070.8287%20248.42%2070.4647%20248.42%2070.054C248.42%2069.662%20248.504%2069.3073%20248.672%2068.99C248.84%2068.6633%20249.102%2068.388%20249.456%2068.164C249.811%2067.94%20250.264%2067.7813%20250.814%2067.688L253.754%2067.198V68.15L251.066%2068.598C250.525%2068.6913%20250.133%2068.864%20249.89%2069.116C249.657%2069.368%20249.54%2069.6667%20249.54%2070.012C249.54%2070.348%20249.671%2070.6327%20249.932%2070.866C250.203%2071.0993%20250.548%2071.216%20250.968%2071.216C251.482%2071.216%20251.93%2071.1087%20252.312%2070.894C252.695%2070.67%20252.994%2070.3713%20253.208%2069.998C253.423%2069.6247%20253.53%2069.2093%20253.53%2068.752V66.848C253.53%2066.4%20253.367%2066.036%20253.04%2065.756C252.714%2065.476%20252.289%2065.336%20251.766%2065.336C251.309%2065.336%20250.908%2065.4527%20250.562%2065.686C250.217%2065.91%20249.96%2066.204%20249.792%2066.568L248.84%2066.05C248.98%2065.7327%20249.2%2065.4433%20249.498%2065.182C249.806%2064.9207%20250.156%2064.7153%20250.548%2064.566C250.94%2064.4073%20251.346%2064.328%20251.766%2064.328C252.317%2064.328%20252.802%2064.4353%20253.222%2064.65C253.652%2064.8647%20253.983%2065.1633%20254.216%2065.546C254.459%2065.9193%20254.58%2066.3533%20254.58%2066.848V72H253.53V70.502L253.684%2070.656C253.554%2070.936%20253.348%2071.1927%20253.068%2071.426C252.798%2071.65%20252.476%2071.832%20252.102%2071.972C251.738%2072.1027%20251.337%2072.168%20250.898%2072.168Z'%20fill='%23181918'/%3e%3cpath%20d='M137.992%2093.168C137.255%2093.168%20136.578%2093.0373%20135.962%2092.776C135.346%2092.5053%20134.809%2092.132%20134.352%2091.656C133.904%2091.1707%20133.554%2090.6013%20133.302%2089.948C133.05%2089.2947%20132.924%2088.576%20132.924%2087.792C132.924%2087.008%20133.05%2086.2893%20133.302%2085.636C133.554%2084.9827%20133.904%2084.4133%20134.352%2083.928C134.809%2083.4427%20135.346%2083.0693%20135.962%2082.808C136.578%2082.5373%20137.255%2082.402%20137.992%2082.402C138.701%2082.402%20139.336%2082.528%20139.896%2082.78C140.465%2083.032%20140.941%2083.3587%20141.324%2083.76C141.716%2084.152%20141.996%2084.5673%20142.164%2085.006L141.114%2085.468C140.853%2084.8613%20140.451%2084.376%20139.91%2084.012C139.378%2083.6387%20138.739%2083.452%20137.992%2083.452C137.227%2083.452%20136.545%2083.634%20135.948%2083.998C135.351%2084.362%20134.884%2084.8707%20134.548%2085.524C134.212%2086.168%20134.044%2086.924%20134.044%2087.792C134.044%2088.6507%20134.212%2089.4067%20134.548%2090.06C134.884%2090.7133%20135.351%2091.222%20135.948%2091.586C136.545%2091.9407%20137.227%2092.118%20137.992%2092.118C138.739%2092.118%20139.378%2091.936%20139.91%2091.572C140.451%2091.208%20140.853%2090.7227%20141.114%2090.116L142.164%2090.578C141.996%2091.0073%20141.716%2091.4227%20141.324%2091.824C140.941%2092.216%20140.465%2092.538%20139.896%2092.79C139.336%2093.042%20138.701%2093.168%20137.992%2093.168ZM147.393%2093.168C146.683%2093.168%20146.039%2093%20145.461%2092.664C144.882%2092.3187%20144.42%2091.852%20144.075%2091.264C143.739%2090.6667%20143.571%2089.99%20143.571%2089.234C143.571%2088.4873%20143.739%2087.82%20144.075%2087.232C144.411%2086.644%20144.863%2086.182%20145.433%2085.846C146.011%2085.5007%20146.665%2085.328%20147.393%2085.328C148.121%2085.328%20148.769%2085.496%20149.339%2085.832C149.917%2086.168%20150.37%2086.63%20150.697%2087.218C151.033%2087.806%20151.201%2088.478%20151.201%2089.234C151.201%2089.9993%20151.028%2090.6807%20150.683%2091.278C150.337%2091.866%20149.875%2092.328%20149.297%2092.664C148.727%2093%20148.093%2093.168%20147.393%2093.168ZM147.393%2092.118C147.897%2092.118%20148.349%2091.992%20148.751%2091.74C149.161%2091.488%20149.483%2091.1427%20149.717%2090.704C149.959%2090.2653%20150.081%2089.7753%20150.081%2089.234C150.081%2088.6927%20149.959%2088.2073%20149.717%2087.778C149.483%2087.3487%20149.161%2087.008%20148.751%2086.756C148.349%2086.504%20147.897%2086.378%20147.393%2086.378C146.889%2086.378%20146.431%2086.504%20146.021%2086.756C145.619%2087.008%20145.297%2087.3487%20145.055%2087.778C144.812%2088.2073%20144.691%2088.6927%20144.691%2089.234C144.691%2089.7753%20144.812%2090.2653%20145.055%2090.704C145.297%2091.1427%20145.619%2091.488%20146.021%2091.74C146.431%2091.992%20146.889%2092.118%20147.393%2092.118ZM153.417%2093V91.46H154.537V93H153.417ZM160.207%2093V86.546H158.709V85.496H160.207V84.824C160.207%2084.3013%20160.324%2083.8627%20160.557%2083.508C160.791%2083.144%20161.099%2082.8687%20161.481%2082.682C161.864%2082.4953%20162.275%2082.402%20162.713%2082.402C162.807%2082.402%20162.914%2082.4113%20163.035%2082.43C163.157%2082.4393%20163.255%2082.4533%20163.329%2082.472V83.424C163.264%2083.4053%20163.175%2083.396%20163.063%2083.396C162.951%2083.3867%20162.872%2083.382%20162.825%2083.382C162.377%2083.382%20162.004%2083.4893%20161.705%2083.704C161.407%2083.9187%20161.257%2084.292%20161.257%2084.824V85.496H163.091V86.546H161.257V93H160.207ZM168.024%2093.168C167.314%2093.168%20166.67%2093%20166.092%2092.664C165.513%2092.3187%20165.051%2091.852%20164.706%2091.264C164.37%2090.6667%20164.202%2089.99%20164.202%2089.234C164.202%2088.4873%20164.37%2087.82%20164.706%2087.232C165.042%2086.644%20165.494%2086.182%20166.064%2085.846C166.642%2085.5007%20167.296%2085.328%20168.024%2085.328C168.752%2085.328%20169.4%2085.496%20169.97%2085.832C170.548%2086.168%20171.001%2086.63%20171.328%2087.218C171.664%2087.806%20171.832%2088.478%20171.832%2089.234C171.832%2089.9993%20171.659%2090.6807%20171.314%2091.278C170.968%2091.866%20170.506%2092.328%20169.928%2092.664C169.358%2093%20168.724%2093.168%20168.024%2093.168ZM168.024%2092.118C168.528%2092.118%20168.98%2091.992%20169.382%2091.74C169.792%2091.488%20170.114%2091.1427%20170.348%2090.704C170.59%2090.2653%20170.712%2089.7753%20170.712%2089.234C170.712%2088.6927%20170.59%2088.2073%20170.348%2087.778C170.114%2087.3487%20169.792%2087.008%20169.382%2086.756C168.98%2086.504%20168.528%2086.378%20168.024%2086.378C167.52%2086.378%20167.062%2086.504%20166.652%2086.756C166.25%2087.008%20165.928%2087.3487%20165.686%2087.778C165.443%2088.2073%20165.322%2088.6927%20165.322%2089.234C165.322%2089.7753%20165.443%2090.2653%20165.686%2090.704C165.928%2091.1427%20166.25%2091.488%20166.652%2091.74C167.062%2091.992%20167.52%2092.118%20168.024%2092.118ZM176.343%2093.168C175.821%2093.168%20175.345%2093.0467%20174.915%2092.804C174.486%2092.552%20174.145%2092.2067%20173.893%2091.768C173.651%2091.32%20173.529%2090.8067%20173.529%2090.228V85.496H174.579V90.102C174.579%2090.5033%20174.659%2090.858%20174.817%2091.166C174.985%2091.4647%20175.214%2091.698%20175.503%2091.866C175.802%2092.034%20176.143%2092.118%20176.525%2092.118C176.908%2092.118%20177.249%2092.034%20177.547%2091.866C177.846%2091.6887%20178.079%2091.4413%20178.247%2091.124C178.415%2090.7973%20178.499%2090.41%20178.499%2089.962V85.496H179.549V93H178.499V91.544L178.737%2091.6C178.56%2092.0853%20178.257%2092.468%20177.827%2092.748C177.398%2093.028%20176.903%2093.168%20176.343%2093.168ZM181.709%2093V85.496H182.759V86.952L182.521%2086.896C182.708%2086.4107%20183.011%2086.028%20183.431%2085.748C183.86%2085.468%20184.355%2085.328%20184.915%2085.328C185.447%2085.328%20185.923%2085.4493%20186.343%2085.692C186.772%2085.9347%20187.108%2086.2707%20187.351%2086.7C187.603%2087.12%20187.729%2087.596%20187.729%2088.128V93H186.679V88.534C186.679%2088.0767%20186.595%2087.6893%20186.427%2087.372C186.268%2087.0547%20186.04%2086.812%20185.741%2086.644C185.452%2086.4667%20185.116%2086.378%20184.733%2086.378C184.35%2086.378%20184.01%2086.4667%20183.711%2086.644C183.412%2086.812%20183.179%2087.0593%20183.011%2087.386C182.843%2087.7033%20182.759%2088.086%20182.759%2088.534V93H181.709ZM193.122%2093.168C192.422%2093.168%20191.792%2093%20191.232%2092.664C190.672%2092.3187%20190.229%2091.852%20189.902%2091.264C189.585%2090.6667%20189.426%2089.9947%20189.426%2089.248C189.426%2088.492%20189.585%2087.82%20189.902%2087.232C190.229%2086.644%20190.668%2086.182%20191.218%2085.846C191.778%2085.5007%20192.413%2085.328%20193.122%2085.328C193.766%2085.328%20194.34%2085.468%20194.844%2085.748C195.348%2086.028%20195.745%2086.406%20196.034%2086.882L195.866%2087.176V82.402H196.916V93H195.866V91.32L196.034%2091.474C195.773%2092.0153%20195.381%2092.4353%20194.858%2092.734C194.345%2093.0233%20193.766%2093.168%20193.122%2093.168ZM193.178%2092.118C193.682%2092.118%20194.135%2091.992%20194.536%2091.74C194.947%2091.488%20195.269%2091.1473%20195.502%2090.718C195.745%2090.2793%20195.866%2089.7893%20195.866%2089.248C195.866%2088.7067%20195.745%2088.2213%20195.502%2087.792C195.269%2087.3533%20194.947%2087.008%20194.536%2086.756C194.135%2086.504%20193.682%2086.378%20193.178%2086.378C192.684%2086.378%20192.236%2086.504%20191.834%2086.756C191.433%2087.008%20191.116%2087.3487%20190.882%2087.778C190.658%2088.2073%20190.546%2088.6973%20190.546%2089.248C190.546%2089.7893%20190.658%2090.2793%20190.882%2090.718C191.116%2091.1473%20191.428%2091.488%20191.82%2091.74C192.222%2091.992%20192.674%2092.118%20193.178%2092.118ZM202.488%2093.168C201.788%2093.168%20201.153%2093%20200.584%2092.664C200.024%2092.3187%20199.581%2091.8473%20199.254%2091.25C198.927%2090.6527%20198.764%2089.976%20198.764%2089.22C198.764%2088.464%20198.923%2087.7967%20199.24%2087.218C199.557%2086.63%20199.987%2086.168%20200.528%2085.832C201.079%2085.496%20201.695%2085.328%20202.376%2085.328C202.917%2085.328%20203.398%2085.4307%20203.818%2085.636C204.247%2085.832%20204.611%2086.1027%20204.91%2086.448C205.209%2086.784%20205.437%2087.1667%20205.596%2087.596C205.755%2088.016%20205.834%2088.45%20205.834%2088.898C205.834%2088.9913%20205.829%2089.0987%20205.82%2089.22C205.811%2089.332%20205.797%2089.4487%20205.778%2089.57H199.436V88.59H205.176L204.672%2089.01C204.756%2088.4967%20204.695%2088.0393%20204.49%2087.638C204.294%2087.2273%20204.009%2086.9053%20203.636%2086.672C203.263%2086.4293%20202.843%2086.308%20202.376%2086.308C201.909%2086.308%20201.475%2086.4293%20201.074%2086.672C200.682%2086.9147%20200.374%2087.2553%20200.15%2087.694C199.926%2088.1233%20199.837%2088.6367%20199.884%2089.234C199.837%2089.8313%20199.931%2090.354%20200.164%2090.802C200.407%2091.2407%20200.733%2091.5813%20201.144%2091.824C201.564%2092.0667%20202.012%2092.188%20202.488%2092.188C203.039%2092.188%20203.501%2092.0573%20203.874%2091.796C204.247%2091.5347%20204.551%2091.208%20204.784%2090.816L205.68%2091.292C205.531%2091.628%20205.302%2091.9407%20204.994%2092.23C204.686%2092.51%20204.317%2092.7387%20203.888%2092.916C203.468%2093.084%20203.001%2093.168%20202.488%2093.168ZM207.685%2093V85.496H208.735V86.728L208.595%2086.546C208.773%2086.1913%20209.039%2085.9113%20209.393%2085.706C209.757%2085.5007%20210.196%2085.398%20210.709%2085.398H211.185V86.448H210.527C209.986%2086.448%20209.552%2086.616%20209.225%2086.952C208.899%2087.288%20208.735%2087.764%20208.735%2088.38V93H207.685Z'%20fill='%23181918'/%3e%3ccircle%20cx='219.5'%20cy='87'%20r='2.5'%20fill='%23181918'/%3e%3cpath%20d='M232.992%2093.168C232.255%2093.168%20231.578%2093.0373%20230.962%2092.776C230.346%2092.5053%20229.809%2092.132%20229.352%2091.656C228.904%2091.1707%20228.554%2090.6013%20228.302%2089.948C228.05%2089.2947%20227.924%2088.576%20227.924%2087.792C227.924%2087.008%20228.05%2086.2893%20228.302%2085.636C228.554%2084.9827%20228.904%2084.4133%20229.352%2083.928C229.809%2083.4427%20230.346%2083.0693%20230.962%2082.808C231.578%2082.5373%20232.255%2082.402%20232.992%2082.402C233.701%2082.402%20234.336%2082.528%20234.896%2082.78C235.465%2083.032%20235.941%2083.3587%20236.324%2083.76C236.716%2084.152%20236.996%2084.5673%20237.164%2085.006L236.156%2085.496C235.895%2084.8613%20235.493%2084.362%20234.952%2083.998C234.411%2083.634%20233.757%2083.452%20232.992%2083.452C232.227%2083.452%20231.545%2083.634%20230.948%2083.998C230.351%2084.362%20229.884%2084.8707%20229.548%2085.524C229.212%2086.168%20229.044%2086.924%20229.044%2087.792C229.044%2088.6507%20229.212%2089.4067%20229.548%2090.06C229.884%2090.7133%20230.351%2091.222%20230.948%2091.586C231.545%2091.9407%20232.227%2092.118%20232.992%2092.118C233.673%2092.118%20234.285%2091.9687%20234.826%2091.67C235.377%2091.3713%20235.811%2090.9653%20236.128%2090.452C236.445%2089.9293%20236.604%2089.332%20236.604%2088.66V88.086L237.108%2088.59H232.992V87.61H237.724V88.478C237.724%2089.1593%20237.603%2089.7893%20237.36%2090.368C237.117%2090.9373%20236.781%2091.432%20236.352%2091.852C235.923%2092.272%20235.419%2092.5987%20234.84%2092.832C234.271%2093.056%20233.655%2093.168%20232.992%2093.168ZM239.576%2093V82.402H240.626V93H239.576ZM246.289%2093.168C245.58%2093.168%20244.936%2093%20244.357%2092.664C243.779%2092.3187%20243.317%2091.852%20242.971%2091.264C242.635%2090.6667%20242.467%2089.99%20242.467%2089.234C242.467%2088.4873%20242.635%2087.82%20242.971%2087.232C243.307%2086.644%20243.76%2086.182%20244.329%2085.846C244.908%2085.5007%20245.561%2085.328%20246.289%2085.328C247.017%2085.328%20247.666%2085.496%20248.235%2085.832C248.814%2086.168%20249.267%2086.63%20249.593%2087.218C249.929%2087.806%20250.097%2088.478%20250.097%2089.234C250.097%2089.9993%20249.925%2090.6807%20249.579%2091.278C249.234%2091.866%20248.772%2092.328%20248.193%2092.664C247.624%2093%20246.989%2093.168%20246.289%2093.168ZM246.289%2092.118C246.793%2092.118%20247.246%2091.992%20247.647%2091.74C248.058%2091.488%20248.38%2091.1427%20248.613%2090.704C248.856%2090.2653%20248.977%2089.7753%20248.977%2089.234C248.977%2088.6927%20248.856%2088.2073%20248.613%2087.778C248.38%2087.3487%20248.058%2087.008%20247.647%2086.756C247.246%2086.504%20246.793%2086.378%20246.289%2086.378C245.785%2086.378%20245.328%2086.504%20244.917%2086.756C244.516%2087.008%20244.194%2087.3487%20243.951%2087.778C243.709%2088.2073%20243.587%2088.6927%20243.587%2089.234C243.587%2089.7753%20243.709%2090.2653%20243.951%2090.704C244.194%2091.1427%20244.516%2091.488%20244.917%2091.74C245.328%2091.992%20245.785%2092.118%20246.289%2092.118ZM255.743%2093.168C255.099%2093.168%20254.516%2093.0233%20253.993%2092.734C253.48%2092.4353%20253.092%2092.0153%20252.831%2091.474L252.999%2091.32V93H251.949V82.402H252.999V87.176L252.831%2086.882C253.13%2086.406%20253.526%2086.028%20254.021%2085.748C254.525%2085.468%20255.099%2085.328%20255.743%2085.328C256.452%2085.328%20257.082%2085.5007%20257.633%2085.846C258.193%2086.182%20258.632%2086.644%20258.949%2087.232C259.276%2087.82%20259.439%2088.492%20259.439%2089.248C259.439%2089.9947%20259.276%2090.6667%20258.949%2091.264C258.632%2091.852%20258.193%2092.3187%20257.633%2092.664C257.082%2093%20256.452%2093.168%20255.743%2093.168ZM255.687%2092.118C256.191%2092.118%20256.639%2091.992%20257.031%2091.74C257.432%2091.488%20257.745%2091.1473%20257.969%2090.718C258.202%2090.2793%20258.319%2089.7893%20258.319%2089.248C258.319%2088.6973%20258.202%2088.2073%20257.969%2087.778C257.745%2087.3487%20257.432%2087.008%20257.031%2086.756C256.639%2086.504%20256.191%2086.378%20255.687%2086.378C255.183%2086.378%20254.726%2086.504%20254.315%2086.756C253.914%2087.008%20253.592%2087.3533%20253.349%2087.792C253.116%2088.2213%20252.999%2088.7067%20252.999%2089.248C252.999%2089.7893%20253.116%2090.2793%20253.349%2090.718C253.592%2091.1473%20253.914%2091.488%20254.315%2091.74C254.726%2091.992%20255.183%2092.118%20255.687%2092.118ZM263.457%2093.168C262.981%2093.168%20262.556%2093.0793%20262.183%2092.902C261.81%2092.7153%20261.516%2092.4633%20261.301%2092.146C261.086%2091.8287%20260.979%2091.4647%20260.979%2091.054C260.979%2090.662%20261.063%2090.3073%20261.231%2089.99C261.399%2089.6633%20261.66%2089.388%20262.015%2089.164C262.37%2088.94%20262.822%2088.7813%20263.373%2088.688L266.313%2088.198V89.15L263.625%2089.598C263.084%2089.6913%20262.692%2089.864%20262.449%2090.116C262.216%2090.368%20262.099%2090.6667%20262.099%2091.012C262.099%2091.348%20262.23%2091.6327%20262.491%2091.866C262.762%2092.0993%20263.107%2092.216%20263.527%2092.216C264.04%2092.216%20264.488%2092.1087%20264.871%2091.894C265.254%2091.67%20265.552%2091.3713%20265.767%2090.998C265.982%2090.6247%20266.089%2090.2093%20266.089%2089.752V87.848C266.089%2087.4%20265.926%2087.036%20265.599%2086.756C265.272%2086.476%20264.848%2086.336%20264.325%2086.336C263.868%2086.336%20263.466%2086.4527%20263.121%2086.686C262.776%2086.91%20262.519%2087.204%20262.351%2087.568L261.399%2087.05C261.539%2086.7327%20261.758%2086.4433%20262.057%2086.182C262.365%2085.9207%20262.715%2085.7153%20263.107%2085.566C263.499%2085.4073%20263.905%2085.328%20264.325%2085.328C264.876%2085.328%20265.361%2085.4353%20265.781%2085.65C266.21%2085.8647%20266.542%2086.1633%20266.775%2086.546C267.018%2086.9193%20267.139%2087.3533%20267.139%2087.848V93H266.089V91.502L266.243%2091.656C266.112%2091.936%20265.907%2092.1927%20265.627%2092.426C265.356%2092.65%20265.034%2092.832%20264.661%2092.972C264.297%2093.1027%20263.896%2093.168%20263.457%2093.168ZM269.299%2093V82.402H270.349V93H269.299ZM273.953%2093L277.761%2082.57H278.965L282.773%2093H281.597L280.701%2090.452H276.039L275.129%2093H273.953ZM276.403%2089.402H280.309L278.195%2083.41H278.531L276.403%2089.402ZM287.124%2093.168C286.424%2093.168%20285.794%2093%20285.234%2092.664C284.674%2092.3187%20284.231%2091.852%20283.904%2091.264C283.587%2090.6667%20283.428%2089.9947%20283.428%2089.248C283.428%2088.492%20283.587%2087.82%20283.904%2087.232C284.231%2086.644%20284.67%2086.182%20285.22%2085.846C285.78%2085.5007%20286.415%2085.328%20287.124%2085.328C287.768%2085.328%20288.342%2085.468%20288.846%2085.748C289.35%2086.028%20289.747%2086.406%20290.036%2086.882L289.868%2087.176V82.402H290.918V93H289.868V91.32L290.036%2091.474C289.775%2092.0153%20289.383%2092.4353%20288.86%2092.734C288.347%2093.0233%20287.768%2093.168%20287.124%2093.168ZM287.18%2092.118C287.684%2092.118%20288.137%2091.992%20288.538%2091.74C288.949%2091.488%20289.271%2091.1473%20289.504%2090.718C289.747%2090.2793%20289.868%2089.7893%20289.868%2089.248C289.868%2088.7067%20289.747%2088.2213%20289.504%2087.792C289.271%2087.3533%20288.949%2087.008%20288.538%2086.756C288.137%2086.504%20287.684%2086.378%20287.18%2086.378C286.686%2086.378%20286.238%2086.504%20285.836%2086.756C285.435%2087.008%20285.118%2087.3487%20284.884%2087.778C284.66%2088.2073%20284.548%2088.6973%20284.548%2089.248C284.548%2089.7893%20284.66%2090.2793%20284.884%2090.718C285.118%2091.1473%20285.43%2091.488%20285.822%2091.74C286.224%2091.992%20286.676%2092.118%20287.18%2092.118ZM293.074%2093V85.496H294.124V86.924L293.956%2086.714C294.161%2086.2753%20294.465%2085.9347%20294.866%2085.692C295.277%2085.4493%20295.725%2085.328%20296.21%2085.328C296.789%2085.328%20297.311%2085.4913%20297.778%2085.818C298.245%2086.1447%20298.576%2086.5693%20298.772%2087.092L298.478%2087.106C298.665%2086.5273%20298.987%2086.0887%20299.444%2085.79C299.911%2085.482%20300.424%2085.328%20300.984%2085.328C301.488%2085.328%20301.95%2085.4493%20302.37%2085.692C302.799%2085.9347%20303.14%2086.2707%20303.392%2086.7C303.653%2087.12%20303.784%2087.596%20303.784%2088.128V93H302.734V88.534C302.734%2088.0767%20302.65%2087.6893%20302.482%2087.372C302.323%2087.0547%20302.104%2086.812%20301.824%2086.644C301.544%2086.4667%20301.222%2086.378%20300.858%2086.378C300.503%2086.378%20300.181%2086.4667%20299.892%2086.644C299.603%2086.812%20299.374%2087.0593%20299.206%2087.386C299.038%2087.7033%20298.954%2088.086%20298.954%2088.534V93H297.904V88.534C297.904%2088.0767%20297.82%2087.6893%20297.652%2087.372C297.493%2087.0547%20297.274%2086.812%20296.994%2086.644C296.714%2086.4667%20296.392%2086.378%20296.028%2086.378C295.664%2086.378%20295.337%2086.4667%20295.048%2086.644C294.768%2086.812%20294.544%2087.0593%20294.376%2087.386C294.208%2087.7033%20294.124%2088.086%20294.124%2088.534V93H293.074ZM305.789%2093V85.496H306.839V93H305.789ZM305.789%2084.11V82.57H306.839V84.11H305.789ZM308.988%2093V85.496H310.038V86.952L309.8%2086.896C309.987%2086.4107%20310.29%2086.028%20310.71%2085.748C311.139%2085.468%20311.634%2085.328%20312.194%2085.328C312.726%2085.328%20313.202%2085.4493%20313.622%2085.692C314.051%2085.9347%20314.387%2086.2707%20314.63%2086.7C314.882%2087.12%20315.008%2087.596%20315.008%2088.128V93H313.958V88.534C313.958%2088.0767%20313.874%2087.6893%20313.706%2087.372C313.547%2087.0547%20313.319%2086.812%20313.02%2086.644C312.731%2086.4667%20312.395%2086.378%20312.012%2086.378C311.629%2086.378%20311.289%2086.4667%20310.99%2086.644C310.691%2086.812%20310.458%2087.0593%20310.29%2087.386C310.122%2087.7033%20310.038%2088.086%20310.038%2088.534V93H308.988Z'%20fill='%23181918'/%3e%3c/g%3e%3cg%20opacity='0.1'%3e%3cpath%20d='M41%2016C41%207.16344%2048.1634%200%2057%200H315C323.837%200%20331%207.16344%20331%2016V111C331%20119.837%20323.837%20127%20315%20127H57C48.1635%20127%2041%20119.837%2041%20111V16Z'%20fill='url(%23paint1_linear_683_56525)'/%3e%3crect%20x='65'%20y='36'%20width='67'%20height='67'%20rx='33.5'%20fill='%231B1C1E'/%3e%3cpath%20d='M92.8552%2078V62.0216H99.5683C100.526%2062.0216%20101.348%2062.1932%20102.035%2062.5363C102.735%2062.8795%20103.272%2063.3657%20103.643%2063.9948C104.029%2064.6096%20104.222%2065.346%20104.222%2066.2039C104.222%2066.9903%20104.015%2067.7052%20103.6%2068.3486C103.2%2068.9777%20102.607%2069.471%20101.82%2069.8285L101.799%2069.0349C102.485%2069.2923%20103.05%2069.6355%20103.493%2070.0644C103.951%2070.4791%20104.294%2070.9652%20104.523%2071.5229C104.751%2072.0662%20104.866%2072.6453%20104.866%2073.2601C104.866%2074.7328%20104.394%2075.891%20103.45%2076.7346C102.507%2077.5782%20101.22%2078%2099.5897%2078H92.8552ZM94.9571%2076.0697H99.6755C100.605%2076.0697%20101.348%2075.8195%20101.906%2075.3191C102.464%2074.8186%20102.743%2074.1394%20102.743%2073.2815C102.743%2072.4236%20102.464%2071.7445%20101.906%2071.244C101.348%2070.7293%20100.605%2070.4719%2099.6755%2070.4719H94.9571V76.0697ZM94.9571%2068.5845H99.5254C100.297%2068.5845%20100.919%2068.3629%20101.391%2067.9197C101.863%2067.4621%20102.099%2066.883%20102.099%2066.1824C102.099%2065.4532%20101.863%2064.8956%20101.391%2064.5095C100.919%2064.1235%20100.297%2063.9304%2099.5254%2063.9304H94.9571V68.5845Z'%20fill='%23FDFDFE'/%3e%3cpath%20d='M157.44%2056V41.1H163.72C164.707%2041.1%20165.547%2041.2733%20166.24%2041.62C166.947%2041.9533%20167.487%2042.4333%20167.86%2043.06C168.247%2043.6733%20168.44%2044.42%20168.44%2045.3C168.44%2045.98%20168.253%2046.62%20167.88%2047.22C167.52%2047.8067%20166.94%2048.2933%20166.14%2048.68V47.42C166.873%2047.7%20167.453%2048.0467%20167.88%2048.46C168.307%2048.8733%20168.607%2049.3333%20168.78%2049.84C168.953%2050.3467%20169.04%2050.88%20169.04%2051.44C169.04%2052.8667%20168.567%2053.9867%20167.62%2054.8C166.687%2055.6%20165.387%2056%20163.72%2056H157.44ZM160.16%2053.6H164C164.707%2053.6%20165.267%2053.4067%20165.68%2053.02C166.107%2052.62%20166.32%2052.0933%20166.32%2051.44C166.32%2050.7867%20166.107%2050.26%20165.68%2049.86C165.267%2049.46%20164.707%2049.26%20164%2049.26H160.16V53.6ZM160.16%2046.88H163.86C164.42%2046.88%20164.867%2046.72%20165.2%2046.4C165.533%2046.0667%20165.7%2045.64%20165.7%2045.12C165.7%2044.6%20165.533%2044.1867%20165.2%2043.88C164.867%2043.5733%20164.42%2043.42%20163.86%2043.42H160.16V46.88ZM176.208%2056.24C175.088%2056.24%20174.108%2055.9867%20173.268%2055.48C172.428%2054.9733%20171.775%2054.2867%20171.308%2053.42C170.841%2052.5533%20170.608%2051.5933%20170.608%2050.54C170.608%2049.4467%20170.841%2048.48%20171.308%2047.64C171.788%2046.7867%20172.435%2046.1133%20173.248%2045.62C174.075%2045.1267%20174.995%2044.88%20176.008%2044.88C176.861%2044.88%20177.608%2045.02%20178.248%2045.3C178.901%2045.58%20179.455%2045.9667%20179.908%2046.46C180.361%2046.9533%20180.708%2047.52%20180.948%2048.16C181.188%2048.7867%20181.308%2049.4667%20181.308%2050.2C181.308%2050.3867%20181.295%2050.58%20181.268%2050.78C181.255%2050.98%20181.221%2051.1533%20181.168%2051.3H172.768V49.3H179.688L178.448%2050.24C178.568%2049.6267%20178.535%2049.08%20178.348%2048.6C178.175%2048.12%20177.881%2047.74%20177.468%2047.46C177.068%2047.18%20176.581%2047.04%20176.008%2047.04C175.461%2047.04%20174.975%2047.18%20174.548%2047.46C174.121%2047.7267%20173.795%2048.1267%20173.568%2048.66C173.355%2049.18%20173.275%2049.8133%20173.328%2050.56C173.275%2051.2267%20173.361%2051.82%20173.588%2052.34C173.828%2052.8467%20174.175%2053.24%20174.628%2053.52C175.095%2053.8%20175.628%2053.94%20176.228%2053.94C176.828%2053.94%20177.335%2053.8133%20177.748%2053.56C178.175%2053.3067%20178.508%2052.9667%20178.748%2052.54L180.868%2053.58C180.655%2054.1%20180.321%2054.56%20179.868%2054.96C179.415%2055.36%20178.875%2055.6733%20178.248%2055.9C177.635%2056.1267%20176.955%2056.24%20176.208%2056.24ZM183.294%2056V45.12H185.754V47.26L185.554%2046.88C185.808%2046.2267%20186.221%2045.7333%20186.794%2045.4C187.381%2045.0533%20188.061%2044.88%20188.834%2044.88C189.634%2044.88%20190.341%2045.0533%20190.954%2045.4C191.581%2045.7467%20192.068%2046.2333%20192.414%2046.86C192.761%2047.4733%20192.934%2048.1867%20192.934%2049V56H190.314V49.62C190.314%2049.14%20190.221%2048.7267%20190.034%2048.38C189.848%2048.0333%20189.588%2047.7667%20189.254%2047.58C188.934%2047.38%20188.554%2047.28%20188.114%2047.28C187.688%2047.28%20187.308%2047.38%20186.974%2047.58C186.641%2047.7667%20186.381%2048.0333%20186.194%2048.38C186.008%2048.7267%20185.914%2049.14%20185.914%2049.62V56H183.294ZM193.65%2060.42C193.476%2060.42%20193.296%2060.4133%20193.11%2060.4C192.923%2060.3867%20192.77%2060.3667%20192.65%2060.34V58.06C192.89%2058.1%20193.13%2058.12%20193.37%2058.12C193.93%2058.12%20194.363%2057.9867%20194.67%2057.72C194.99%2057.4667%20195.15%2057.0733%20195.15%2056.54V45.12H197.77V56.54C197.77%2057.3667%20197.603%2058.0667%20197.27%2058.64C196.936%2059.2267%20196.456%2059.6667%20195.83%2059.96C195.216%2060.2667%20194.49%2060.42%20193.65%2060.42ZM195.15%2043.9V41.1H197.77V43.9H195.15ZM203.489%2056.24C202.729%2056.24%20202.069%2056.1133%20201.509%2055.86C200.949%2055.6067%20200.515%2055.2467%20200.209%2054.78C199.902%2054.3%20199.749%2053.7467%20199.749%2053.12C199.749%2052.52%20199.882%2051.9867%20200.149%2051.52C200.415%2051.04%20200.829%2050.64%20201.389%2050.32C201.949%2050%20202.655%2049.7733%20203.509%2049.64L207.069%2049.06V51.06L204.009%2051.58C203.489%2051.6733%20203.102%2051.84%20202.849%2052.08C202.595%2052.32%20202.469%2052.6333%20202.469%2053.02C202.469%2053.3933%20202.609%2053.6933%20202.889%2053.92C203.182%2054.1333%20203.542%2054.24%20203.969%2054.24C204.515%2054.24%20204.995%2054.1267%20205.409%2053.9C205.835%2053.66%20206.162%2053.3333%20206.389%2052.92C206.629%2052.5067%20206.749%2052.0533%20206.749%2051.56V48.76C206.749%2048.2933%20206.562%2047.9067%20206.189%2047.6C205.829%2047.28%20205.349%2047.12%20204.749%2047.12C204.189%2047.12%20203.689%2047.2733%20203.249%2047.58C202.822%2047.8733%20202.509%2048.2667%20202.309%2048.76L200.169%2047.72C200.382%2047.1467%20200.715%2046.6533%20201.169%2046.24C201.635%2045.8133%20202.182%2045.48%20202.809%2045.24C203.435%2045%20204.115%2044.88%20204.849%2044.88C205.742%2044.88%20206.529%2045.0467%20207.209%2045.38C207.889%2045.7%20208.415%2046.1533%20208.789%2046.74C209.175%2047.3133%20209.369%2047.9867%20209.369%2048.76V56H206.889V54.14L207.449%2054.1C207.169%2054.5667%20206.835%2054.96%20206.449%2055.28C206.062%2055.5867%20205.622%2055.8267%20205.129%2056C204.635%2056.16%20204.089%2056.24%20203.489%2056.24ZM211.79%2056V45.12H214.25V47.64L213.97%2047.22C214.17%2046.4333%20214.57%2045.8467%20215.17%2045.46C215.77%2045.0733%20216.477%2044.88%20217.29%2044.88C218.184%2044.88%20218.97%2045.1133%20219.65%2045.58C220.33%2046.0467%20220.77%2046.66%20220.97%2047.42L220.23%2047.48C220.564%2046.6133%20221.064%2045.9667%20221.73%2045.54C222.397%2045.1%20223.164%2044.88%20224.03%2044.88C224.804%2044.88%20225.49%2045.0533%20226.09%2045.4C226.704%2045.7467%20227.184%2046.2333%20227.53%2046.86C227.877%2047.4733%20228.05%2048.1867%20228.05%2049V56H225.43V49.62C225.43%2049.14%20225.344%2048.7267%20225.17%2048.38C224.997%2048.0333%20224.757%2047.7667%20224.45%2047.58C224.144%2047.38%20223.77%2047.28%20223.33%2047.28C222.917%2047.28%20222.55%2047.38%20222.23%2047.58C221.91%2047.7667%20221.664%2048.0333%20221.49%2048.38C221.317%2048.7267%20221.23%2049.14%20221.23%2049.62V56H218.61V49.62C218.61%2049.14%20218.524%2048.7267%20218.35%2048.38C218.177%2048.0333%20217.93%2047.7667%20217.61%2047.58C217.304%2047.38%20216.937%2047.28%20216.51%2047.28C216.097%2047.28%20215.73%2047.38%20215.41%2047.58C215.09%2047.7667%20214.844%2048.0333%20214.67%2048.38C214.497%2048.7267%20214.41%2049.14%20214.41%2049.62V56H211.79ZM230.267%2056V45.12H232.887V56H230.267ZM230.267%2043.9V41.1H232.887V43.9H230.267ZM235.306%2056V45.12H237.766V47.26L237.566%2046.88C237.819%2046.2267%20238.233%2045.7333%20238.806%2045.4C239.393%2045.0533%20240.073%2044.88%20240.846%2044.88C241.646%2044.88%20242.353%2045.0533%20242.966%2045.4C243.593%2045.7467%20244.079%2046.2333%20244.426%2046.86C244.773%2047.4733%20244.946%2048.1867%20244.946%2049V56H242.326V49.62C242.326%2049.14%20242.233%2048.7267%20242.046%2048.38C241.859%2048.0333%20241.599%2047.7667%20241.266%2047.58C240.946%2047.38%20240.566%2047.28%20240.126%2047.28C239.699%2047.28%20239.319%2047.38%20238.986%2047.58C238.653%2047.7667%20238.393%2048.0333%20238.206%2048.38C238.019%2048.7267%20237.926%2049.14%20237.926%2049.62V56H235.306Z'%20fill='%23181918'/%3e%3cpath%20d='M160.872%2079.168C160.228%2079.168%20159.645%2079.0233%20159.122%2078.734C158.609%2078.4353%20158.221%2078.0153%20157.96%2077.474L158.128%2077.32V79H157.078V68.402H158.128V73.176L157.96%2072.882C158.259%2072.406%20158.655%2072.028%20159.15%2071.748C159.654%2071.468%20160.228%2071.328%20160.872%2071.328C161.581%2071.328%20162.211%2071.5007%20162.762%2071.846C163.322%2072.182%20163.761%2072.644%20164.078%2073.232C164.405%2073.82%20164.568%2074.492%20164.568%2075.248C164.568%2075.9947%20164.405%2076.6667%20164.078%2077.264C163.761%2077.852%20163.322%2078.3187%20162.762%2078.664C162.211%2079%20161.581%2079.168%20160.872%2079.168ZM160.816%2078.118C161.32%2078.118%20161.768%2077.992%20162.16%2077.74C162.561%2077.488%20162.874%2077.1473%20163.098%2076.718C163.331%2076.2793%20163.448%2075.7893%20163.448%2075.248C163.448%2074.6973%20163.331%2074.2073%20163.098%2073.778C162.874%2073.3487%20162.561%2073.008%20162.16%2072.756C161.768%2072.504%20161.32%2072.378%20160.816%2072.378C160.312%2072.378%20159.855%2072.504%20159.444%2072.756C159.043%2073.008%20158.721%2073.3533%20158.478%2073.792C158.245%2074.2213%20158.128%2074.7067%20158.128%2075.248C158.128%2075.7893%20158.245%2076.2793%20158.478%2076.718C158.721%2077.1473%20159.043%2077.488%20159.444%2077.74C159.855%2077.992%20160.312%2078.118%20160.816%2078.118ZM169.832%2079.168C169.132%2079.168%20168.497%2079%20167.928%2078.664C167.368%2078.3187%20166.925%2077.8473%20166.598%2077.25C166.271%2076.6527%20166.108%2075.976%20166.108%2075.22C166.108%2074.464%20166.267%2073.7967%20166.584%2073.218C166.901%2072.63%20167.331%2072.168%20167.872%2071.832C168.423%2071.496%20169.039%2071.328%20169.72%2071.328C170.261%2071.328%20170.742%2071.4307%20171.162%2071.636C171.591%2071.832%20171.955%2072.1027%20172.254%2072.448C172.553%2072.784%20172.781%2073.1667%20172.94%2073.596C173.099%2074.016%20173.178%2074.45%20173.178%2074.898C173.178%2074.9913%20173.173%2075.0987%20173.164%2075.22C173.155%2075.332%20173.141%2075.4487%20173.122%2075.57H166.78V74.59H172.52L172.016%2075.01C172.1%2074.4967%20172.039%2074.0393%20171.834%2073.638C171.638%2073.2273%20171.353%2072.9053%20170.98%2072.672C170.607%2072.4293%20170.187%2072.308%20169.72%2072.308C169.253%2072.308%20168.819%2072.4293%20168.418%2072.672C168.026%2072.9147%20167.718%2073.2553%20167.494%2073.694C167.27%2074.1233%20167.181%2074.6367%20167.228%2075.234C167.181%2075.8313%20167.275%2076.354%20167.508%2076.802C167.751%2077.2407%20168.077%2077.5813%20168.488%2077.824C168.908%2078.0667%20169.356%2078.188%20169.832%2078.188C170.383%2078.188%20170.845%2078.0573%20171.218%2077.796C171.591%2077.5347%20171.895%2077.208%20172.128%2076.816L173.024%2077.292C172.875%2077.628%20172.646%2077.9407%20172.338%2078.23C172.03%2078.51%20171.661%2078.7387%20171.232%2078.916C170.812%2079.084%20170.345%2079.168%20169.832%2079.168ZM175.029%2079V71.496H176.079V72.952L175.841%2072.896C176.028%2072.4107%20176.331%2072.028%20176.751%2071.748C177.181%2071.468%20177.675%2071.328%20178.235%2071.328C178.767%2071.328%20179.243%2071.4493%20179.663%2071.692C180.093%2071.9347%20180.429%2072.2707%20180.671%2072.7C180.923%2073.12%20181.049%2073.596%20181.049%2074.128V79H179.999V74.534C179.999%2074.0767%20179.915%2073.6893%20179.747%2073.372C179.589%2073.0547%20179.36%2072.812%20179.061%2072.644C178.772%2072.4667%20178.436%2072.378%20178.053%2072.378C177.671%2072.378%20177.33%2072.4667%20177.031%2072.644C176.733%2072.812%20176.499%2073.0593%20176.331%2073.386C176.163%2073.7033%20176.079%2074.086%20176.079%2074.534V79H175.029ZM188.725%2081.898C187.903%2081.898%20187.138%2081.7487%20186.429%2081.45C185.729%2081.1607%20185.113%2080.75%20184.581%2080.218C184.049%2079.686%20183.633%2079.07%20183.335%2078.37C183.045%2077.6607%20182.901%2076.9%20182.901%2076.088C182.901%2075.276%20183.05%2074.52%20183.349%2073.82C183.647%2073.12%20184.058%2072.5087%20184.581%2071.986C185.113%2071.4633%20185.733%2071.0573%20186.443%2070.768C187.152%2070.4693%20187.913%2070.32%20188.725%2070.32C189.565%2070.32%20190.339%2070.4787%20191.049%2070.796C191.758%2071.104%20192.369%2071.5287%20192.883%2072.07C193.405%2072.602%20193.807%2073.2087%20194.087%2073.89C194.376%2074.5713%20194.521%2075.2853%20194.521%2076.032C194.521%2076.62%20194.427%2077.138%20194.241%2077.586C194.063%2078.0247%20193.802%2078.37%20193.457%2078.622C193.111%2078.874%20192.696%2079%20192.211%2079C191.921%2079%20191.646%2078.9487%20191.385%2078.846C191.123%2078.734%20190.899%2078.58%20190.713%2078.384C190.535%2078.1787%20190.414%2077.936%20190.349%2077.656L190.573%2077.838C190.423%2078.09%20190.237%2078.3047%20190.013%2078.482C189.798%2078.65%20189.555%2078.7807%20189.285%2078.874C189.014%2078.958%20188.72%2079%20188.403%2079C187.861%2079%20187.371%2078.8693%20186.933%2078.608C186.503%2078.3467%20186.163%2077.992%20185.911%2077.544C185.659%2077.096%20185.533%2076.5873%20185.533%2076.018C185.533%2075.4487%20185.659%2074.94%20185.911%2074.492C186.163%2074.044%20186.503%2073.6893%20186.933%2073.428C187.371%2073.1573%20187.861%2073.022%20188.403%2073.022C188.86%2073.022%20189.275%2073.1153%20189.649%2073.302C190.031%2073.4887%20190.335%2073.75%20190.559%2074.086L190.461%2074.254V73.162H191.371V77.026C191.371%2077.3713%20191.445%2077.6233%20191.595%2077.782C191.753%2077.9407%20191.963%2078.02%20192.225%2078.02C192.617%2078.02%20192.92%2077.8567%20193.135%2077.53C193.359%2077.2033%20193.471%2076.7133%20193.471%2076.06C193.471%2075.388%20193.354%2074.7627%20193.121%2074.184C192.887%2073.6053%20192.561%2073.1013%20192.141%2072.672C191.721%2072.2427%20191.221%2071.9067%20190.643%2071.664C190.064%2071.4213%20189.425%2071.3%20188.725%2071.3C188.043%2071.3%20187.409%2071.4213%20186.821%2071.664C186.242%2071.8973%20185.738%2072.2287%20185.309%2072.658C184.879%2073.0873%20184.543%2073.5913%20184.301%2074.17C184.067%2074.7487%20183.951%2075.3833%20183.951%2076.074C183.951%2076.746%20184.063%2077.376%20184.287%2077.964C184.52%2078.5427%20184.847%2079.0513%20185.267%2079.49C185.696%2079.938%20186.205%2080.288%20186.793%2080.54C187.381%2080.792%20188.034%2080.918%20188.753%2080.918C189.173%2080.918%20189.579%2080.8713%20189.971%2080.778C190.363%2080.694%20190.717%2080.5633%20191.035%2080.386L191.483%2081.226C190.689%2081.674%20189.77%2081.898%20188.725%2081.898ZM188.445%2078.02C188.809%2078.02%20189.131%2077.9313%20189.411%2077.754C189.691%2077.5767%20189.91%2077.3387%20190.069%2077.04C190.237%2076.732%20190.321%2076.3867%20190.321%2076.004C190.321%2075.4253%20190.143%2074.954%20189.789%2074.59C189.434%2074.2167%20188.986%2074.03%20188.445%2074.03C188.09%2074.03%20187.768%2074.1187%20187.479%2074.296C187.199%2074.464%20186.979%2074.6973%20186.821%2074.996C186.662%2075.2947%20186.583%2075.6353%20186.583%2076.018C186.583%2076.3913%20186.662%2076.732%20186.821%2077.04C186.989%2077.3387%20187.213%2077.5767%20187.493%2077.754C187.773%2077.9313%20188.09%2078.02%20188.445%2078.02ZM198.661%2079.168C197.942%2079.168%20197.312%2078.986%20196.771%2078.622C196.229%2078.258%20195.837%2077.7633%20195.595%2077.138L196.477%2076.718C196.691%2077.1753%20196.99%2077.5393%20197.373%2077.81C197.765%2078.0807%20198.194%2078.216%20198.661%2078.216C199.109%2078.216%20199.487%2078.1087%20199.795%2077.894C200.103%2077.67%20200.257%2077.3807%20200.257%2077.026C200.257%2076.7647%20200.182%2076.5593%20200.033%2076.41C199.883%2076.2513%20199.711%2076.13%20199.515%2076.046C199.319%2075.962%20199.146%2075.9013%20198.997%2075.864L197.919%2075.556C197.228%2075.36%20196.729%2075.0847%20196.421%2074.73C196.113%2074.3753%20195.959%2073.9647%20195.959%2073.498C195.959%2073.0593%20196.071%2072.6767%20196.295%2072.35C196.519%2072.0233%20196.822%2071.7713%20197.205%2071.594C197.587%2071.4167%20198.012%2071.328%20198.479%2071.328C199.113%2071.328%20199.687%2071.496%20200.201%2071.832C200.723%2072.1587%20201.092%2072.616%20201.307%2073.204L200.411%2073.624C200.224%2073.204%20199.953%2072.8773%20199.599%2072.644C199.253%2072.4013%20198.866%2072.28%20198.437%2072.28C198.017%2072.28%20197.681%2072.3873%20197.429%2072.602C197.177%2072.8167%20197.051%2073.0873%20197.051%2073.414C197.051%2073.666%20197.116%2073.8667%20197.247%2074.016C197.377%2074.1653%20197.527%2074.2773%20197.695%2074.352C197.872%2074.4267%20198.026%2074.4827%20198.157%2074.52L199.403%2074.884C200.009%2075.0613%20200.481%2075.3367%20200.817%2075.71C201.162%2076.0833%20201.335%2076.522%20201.335%2077.026C201.335%2077.4367%20201.218%2077.8053%20200.985%2078.132C200.761%2078.4587%20200.448%2078.7153%20200.047%2078.902C199.645%2079.0793%20199.183%2079.168%20198.661%2079.168ZM203.18%2079V68.402H204.23V72.952L203.992%2072.896C204.178%2072.4107%20204.482%2072.028%20204.902%2071.748C205.331%2071.468%20205.826%2071.328%20206.386%2071.328C206.918%2071.328%20207.394%2071.4493%20207.814%2071.692C208.243%2071.9347%20208.579%2072.2707%20208.822%2072.7C209.074%2073.12%20209.2%2073.596%20209.2%2074.128V79H208.15V74.534C208.15%2074.0767%20208.066%2073.6893%20207.898%2073.372C207.73%2073.0547%20207.496%2072.812%20207.198%2072.644C206.908%2072.4667%20206.577%2072.378%20206.204%2072.378C205.83%2072.378%20205.494%2072.4667%20205.196%2072.644C204.897%2072.812%20204.659%2073.0593%20204.482%2073.386C204.314%2073.7033%20204.23%2074.086%20204.23%2074.534V79H203.18ZM214.621%2079.168C213.921%2079.168%20213.286%2079%20212.717%2078.664C212.157%2078.3187%20211.714%2077.8473%20211.387%2077.25C211.06%2076.6527%20210.897%2075.976%20210.897%2075.22C210.897%2074.464%20211.056%2073.7967%20211.373%2073.218C211.69%2072.63%20212.12%2072.168%20212.661%2071.832C213.212%2071.496%20213.828%2071.328%20214.509%2071.328C215.05%2071.328%20215.531%2071.4307%20215.951%2071.636C216.38%2071.832%20216.744%2072.1027%20217.043%2072.448C217.342%2072.784%20217.57%2073.1667%20217.729%2073.596C217.888%2074.016%20217.967%2074.45%20217.967%2074.898C217.967%2074.9913%20217.962%2075.0987%20217.953%2075.22C217.944%2075.332%20217.93%2075.4487%20217.911%2075.57H211.569V74.59H217.309L216.805%2075.01C216.889%2074.4967%20216.828%2074.0393%20216.623%2073.638C216.427%2073.2273%20216.142%2072.9053%20215.769%2072.672C215.396%2072.4293%20214.976%2072.308%20214.509%2072.308C214.042%2072.308%20213.608%2072.4293%20213.207%2072.672C212.815%2072.9147%20212.507%2073.2553%20212.283%2073.694C212.059%2074.1233%20211.97%2074.6367%20212.017%2075.234C211.97%2075.8313%20212.064%2076.354%20212.297%2076.802C212.54%2077.2407%20212.866%2077.5813%20213.277%2077.824C213.697%2078.0667%20214.145%2078.188%20214.621%2078.188C215.172%2078.188%20215.634%2078.0573%20216.007%2077.796C216.38%2077.5347%20216.684%2077.208%20216.917%2076.816L217.813%2077.292C217.664%2077.628%20217.435%2077.9407%20217.127%2078.23C216.819%2078.51%20216.45%2078.7387%20216.021%2078.916C215.601%2079.084%20215.134%2079.168%20214.621%2079.168ZM219.818%2079V68.402H220.868V75.822L220.42%2075.752L224.634%2071.496H225.992L223.052%2074.506L226.258%2079H224.998L221.988%2074.842L222.66%2074.898L220.518%2077.11L220.868%2076.242V79H219.818ZM230.767%2079.168C230.067%2079.168%20229.433%2079%20228.863%2078.664C228.303%2078.3187%20227.86%2077.8473%20227.533%2077.25C227.207%2076.6527%20227.043%2075.976%20227.043%2075.22C227.043%2074.464%20227.202%2073.7967%20227.519%2073.218C227.837%2072.63%20228.266%2072.168%20228.807%2071.832C229.358%2071.496%20229.974%2071.328%20230.655%2071.328C231.197%2071.328%20231.677%2071.4307%20232.097%2071.636C232.527%2071.832%20232.891%2072.1027%20233.189%2072.448C233.488%2072.784%20233.717%2073.1667%20233.875%2073.596C234.034%2074.016%20234.113%2074.45%20234.113%2074.898C234.113%2074.9913%20234.109%2075.0987%20234.099%2075.22C234.09%2075.332%20234.076%2075.4487%20234.057%2075.57H227.715V74.59H233.455L232.951%2075.01C233.035%2074.4967%20232.975%2074.0393%20232.769%2073.638C232.573%2073.2273%20232.289%2072.9053%20231.915%2072.672C231.542%2072.4293%20231.122%2072.308%20230.655%2072.308C230.189%2072.308%20229.755%2072.4293%20229.353%2072.672C228.961%2072.9147%20228.653%2073.2553%20228.429%2073.694C228.205%2074.1233%20228.117%2074.6367%20228.163%2075.234C228.117%2075.8313%20228.21%2076.354%20228.443%2076.802C228.686%2077.2407%20229.013%2077.5813%20229.423%2077.824C229.843%2078.0667%20230.291%2078.188%20230.767%2078.188C231.318%2078.188%20231.78%2078.0573%20232.153%2077.796C232.527%2077.5347%20232.83%2077.208%20233.063%2076.816L233.959%2077.292C233.81%2077.628%20233.581%2077.9407%20233.273%2078.23C232.965%2078.51%20232.597%2078.7387%20232.167%2078.916C231.747%2079.084%20231.281%2079.168%20230.767%2079.168ZM235.965%2079V68.402H237.015V79H235.965ZM239.528%2079V77.46H240.648V79H239.528ZM245.34%2079.168C244.864%2079.168%20244.439%2079.0793%20244.066%2078.902C243.692%2078.7153%20243.398%2078.4633%20243.184%2078.146C242.969%2077.8287%20242.862%2077.4647%20242.862%2077.054C242.862%2076.662%20242.946%2076.3073%20243.114%2075.99C243.282%2075.6633%20243.543%2075.388%20243.898%2075.164C244.252%2074.94%20244.705%2074.7813%20245.256%2074.688L248.196%2074.198V75.15L245.508%2075.598C244.966%2075.6913%20244.574%2075.864%20244.332%2076.116C244.098%2076.368%20243.982%2076.6667%20243.982%2077.012C243.982%2077.348%20244.112%2077.6327%20244.374%2077.866C244.644%2078.0993%20244.99%2078.216%20245.41%2078.216C245.923%2078.216%20246.371%2078.1087%20246.754%2077.894C247.136%2077.67%20247.435%2077.3713%20247.65%2076.998C247.864%2076.6247%20247.972%2076.2093%20247.972%2075.752V73.848C247.972%2073.4%20247.808%2073.036%20247.482%2072.756C247.155%2072.476%20246.73%2072.336%20246.208%2072.336C245.75%2072.336%20245.349%2072.4527%20245.004%2072.686C244.658%2072.91%20244.402%2073.204%20244.234%2073.568L243.282%2073.05C243.422%2072.7327%20243.641%2072.4433%20243.94%2072.182C244.248%2071.9207%20244.598%2071.7153%20244.99%2071.566C245.382%2071.4073%20245.788%2071.328%20246.208%2071.328C246.758%2071.328%20247.244%2071.4353%20247.664%2071.65C248.093%2071.8647%20248.424%2072.1633%20248.658%2072.546C248.9%2072.9193%20249.022%2073.3533%20249.022%2073.848V79H247.972V77.502L248.126%2077.656C247.995%2077.936%20247.79%2078.1927%20247.51%2078.426C247.239%2078.65%20246.917%2078.832%20246.544%2078.972C246.18%2079.1027%20245.778%2079.168%20245.34%2079.168ZM251.952%2079V72.546H250.454V71.496H251.952V70.824C251.952%2070.3013%20252.068%2069.8627%20252.302%2069.508C252.535%2069.144%20252.843%2068.8687%20253.226%2068.682C253.608%2068.4953%20254.019%2068.402%20254.458%2068.402C254.551%2068.402%20254.658%2068.4113%20254.78%2068.43C254.901%2068.4393%20254.999%2068.4533%20255.074%2068.472V69.424C255.008%2069.4053%20254.92%2069.396%20254.808%2069.396C254.696%2069.3867%20254.616%2069.382%20254.57%2069.382C254.122%2069.382%20253.748%2069.4893%20253.45%2069.704C253.151%2069.9187%20253.002%2070.292%20253.002%2070.824V71.496H254.836V72.546H253.002V79H251.952ZM256.541%2079V71.496H257.591V72.728L257.451%2072.546C257.628%2072.1913%20257.894%2071.9113%20258.249%2071.706C258.613%2071.5007%20259.052%2071.398%20259.565%2071.398H260.041V72.448H259.383C258.842%2072.448%20258.408%2072.616%20258.081%2072.952C257.754%2073.288%20257.591%2073.764%20257.591%2074.38V79H256.541ZM261.271%2079V71.496H262.321V79H261.271ZM261.271%2070.11V68.57H262.321V70.11H261.271ZM267.901%2079.168C267.163%2079.168%20266.515%2078.9953%20265.955%2078.65C265.395%2078.3047%20264.956%2077.838%20264.639%2077.25C264.321%2076.6527%20264.163%2075.9807%20264.163%2075.234C264.163%2074.4873%20264.321%2073.82%20264.639%2073.232C264.956%2072.644%20265.395%2072.182%20265.955%2071.846C266.515%2071.5007%20267.163%2071.328%20267.901%2071.328C268.367%2071.328%20268.806%2071.412%20269.217%2071.58C269.627%2071.748%20269.991%2071.9767%20270.309%2072.266C270.626%2072.546%20270.864%2072.8727%20271.023%2073.246L270.071%2073.736C269.884%2073.3347%20269.599%2073.008%20269.217%2072.756C268.834%2072.504%20268.395%2072.378%20267.901%2072.378C267.406%2072.378%20266.958%2072.504%20266.557%2072.756C266.165%2072.9987%20265.852%2073.3393%20265.619%2073.778C265.395%2074.2073%20265.283%2074.6973%20265.283%2075.248C265.283%2075.7893%20265.395%2076.2793%20265.619%2076.718C265.852%2077.1473%20266.165%2077.488%20266.557%2077.74C266.958%2077.992%20267.406%2078.118%20267.901%2078.118C268.395%2078.118%20268.829%2077.992%20269.203%2077.74C269.585%2077.488%20269.875%2077.152%20270.071%2076.732L271.023%2077.25C270.864%2077.614%20270.626%2077.9407%20270.309%2078.23C269.991%2078.5193%20269.627%2078.748%20269.217%2078.916C268.806%2079.084%20268.367%2079.168%20267.901%2079.168ZM274.898%2079.168C274.422%2079.168%20273.998%2079.0793%20273.624%2078.902C273.251%2078.7153%20272.957%2078.4633%20272.742%2078.146C272.528%2077.8287%20272.42%2077.4647%20272.42%2077.054C272.42%2076.662%20272.504%2076.3073%20272.672%2075.99C272.84%2075.6633%20273.102%2075.388%20273.456%2075.164C273.811%2074.94%20274.264%2074.7813%20274.814%2074.688L277.754%2074.198V75.15L275.066%2075.598C274.525%2075.6913%20274.133%2075.864%20273.89%2076.116C273.657%2076.368%20273.54%2076.6667%20273.54%2077.012C273.54%2077.348%20273.671%2077.6327%20273.932%2077.866C274.203%2078.0993%20274.548%2078.216%20274.968%2078.216C275.482%2078.216%20275.93%2078.1087%20276.312%2077.894C276.695%2077.67%20276.994%2077.3713%20277.208%2076.998C277.423%2076.6247%20277.53%2076.2093%20277.53%2075.752V73.848C277.53%2073.4%20277.367%2073.036%20277.04%2072.756C276.714%2072.476%20276.289%2072.336%20275.766%2072.336C275.309%2072.336%20274.908%2072.4527%20274.562%2072.686C274.217%2072.91%20273.96%2073.204%20273.792%2073.568L272.84%2073.05C272.98%2072.7327%20273.2%2072.4433%20273.498%2072.182C273.806%2071.9207%20274.156%2071.7153%20274.548%2071.566C274.94%2071.4073%20275.346%2071.328%20275.766%2071.328C276.317%2071.328%20276.802%2071.4353%20277.222%2071.65C277.652%2071.8647%20277.983%2072.1633%20278.216%2072.546C278.459%2072.9193%20278.58%2073.3533%20278.58%2073.848V79H277.53V77.502L277.684%2077.656C277.554%2077.936%20277.348%2078.1927%20277.068%2078.426C276.798%2078.65%20276.476%2078.832%20276.102%2078.972C275.738%2079.1027%20275.337%2079.168%20274.898%2079.168Z'%20fill='%23181918'/%3e%3cpath%20d='M161.992%20100.168C161.255%20100.168%20160.578%20100.037%20159.962%2099.776C159.346%2099.5053%20158.809%2099.132%20158.352%2098.656C157.904%2098.1707%20157.554%2097.6013%20157.302%2096.948C157.05%2096.2947%20156.924%2095.576%20156.924%2094.792C156.924%2094.008%20157.05%2093.2893%20157.302%2092.636C157.554%2091.9827%20157.904%2091.4133%20158.352%2090.928C158.809%2090.4427%20159.346%2090.0693%20159.962%2089.808C160.578%2089.5373%20161.255%2089.402%20161.992%2089.402C162.701%2089.402%20163.336%2089.528%20163.896%2089.78C164.465%2090.032%20164.941%2090.3587%20165.324%2090.76C165.716%2091.152%20165.996%2091.5673%20166.164%2092.006L165.114%2092.468C164.853%2091.8613%20164.451%2091.376%20163.91%2091.012C163.378%2090.6387%20162.739%2090.452%20161.992%2090.452C161.227%2090.452%20160.545%2090.634%20159.948%2090.998C159.351%2091.362%20158.884%2091.8707%20158.548%2092.524C158.212%2093.168%20158.044%2093.924%20158.044%2094.792C158.044%2095.6507%20158.212%2096.4067%20158.548%2097.06C158.884%2097.7133%20159.351%2098.222%20159.948%2098.586C160.545%2098.9407%20161.227%2099.118%20161.992%2099.118C162.739%2099.118%20163.378%2098.936%20163.91%2098.572C164.451%2098.208%20164.853%2097.7227%20165.114%2097.116L166.164%2097.578C165.996%2098.0073%20165.716%2098.4227%20165.324%2098.824C164.941%2099.216%20164.465%2099.538%20163.896%2099.79C163.336%20100.042%20162.701%20100.168%20161.992%20100.168ZM171.393%20100.168C170.683%20100.168%20170.039%20100%20169.461%2099.664C168.882%2099.3187%20168.42%2098.852%20168.075%2098.264C167.739%2097.6667%20167.571%2096.99%20167.571%2096.234C167.571%2095.4873%20167.739%2094.82%20168.075%2094.232C168.411%2093.644%20168.863%2093.182%20169.433%2092.846C170.011%2092.5007%20170.665%2092.328%20171.393%2092.328C172.121%2092.328%20172.769%2092.496%20173.339%2092.832C173.917%2093.168%20174.37%2093.63%20174.697%2094.218C175.033%2094.806%20175.201%2095.478%20175.201%2096.234C175.201%2096.9993%20175.028%2097.6807%20174.683%2098.278C174.337%2098.866%20173.875%2099.328%20173.297%2099.664C172.727%20100%20172.093%20100.168%20171.393%20100.168ZM171.393%2099.118C171.897%2099.118%20172.349%2098.992%20172.751%2098.74C173.161%2098.488%20173.483%2098.1427%20173.717%2097.704C173.959%2097.2653%20174.081%2096.7753%20174.081%2096.234C174.081%2095.6927%20173.959%2095.2073%20173.717%2094.778C173.483%2094.3487%20173.161%2094.008%20172.751%2093.756C172.349%2093.504%20171.897%2093.378%20171.393%2093.378C170.889%2093.378%20170.431%2093.504%20170.021%2093.756C169.619%2094.008%20169.297%2094.3487%20169.055%2094.778C168.812%2095.2073%20168.691%2095.6927%20168.691%2096.234C168.691%2096.7753%20168.812%2097.2653%20169.055%2097.704C169.297%2098.1427%20169.619%2098.488%20170.021%2098.74C170.431%2098.992%20170.889%2099.118%20171.393%2099.118ZM177.417%20100V98.46H178.537V100H177.417ZM184.207%20100V93.546H182.709V92.496H184.207V91.824C184.207%2091.3013%20184.324%2090.8627%20184.557%2090.508C184.791%2090.144%20185.099%2089.8687%20185.481%2089.682C185.864%2089.4953%20186.275%2089.402%20186.713%2089.402C186.807%2089.402%20186.914%2089.4113%20187.035%2089.43C187.157%2089.4393%20187.255%2089.4533%20187.329%2089.472V90.424C187.264%2090.4053%20187.175%2090.396%20187.063%2090.396C186.951%2090.3867%20186.872%2090.382%20186.825%2090.382C186.377%2090.382%20186.004%2090.4893%20185.705%2090.704C185.407%2090.9187%20185.257%2091.292%20185.257%2091.824V92.496H187.091V93.546H185.257V100H184.207ZM192.024%20100.168C191.314%20100.168%20190.67%20100%20190.092%2099.664C189.513%2099.3187%20189.051%2098.852%20188.706%2098.264C188.37%2097.6667%20188.202%2096.99%20188.202%2096.234C188.202%2095.4873%20188.37%2094.82%20188.706%2094.232C189.042%2093.644%20189.494%2093.182%20190.064%2092.846C190.642%2092.5007%20191.296%2092.328%20192.024%2092.328C192.752%2092.328%20193.4%2092.496%20193.97%2092.832C194.548%2093.168%20195.001%2093.63%20195.328%2094.218C195.664%2094.806%20195.832%2095.478%20195.832%2096.234C195.832%2096.9993%20195.659%2097.6807%20195.314%2098.278C194.968%2098.866%20194.506%2099.328%20193.928%2099.664C193.358%20100%20192.724%20100.168%20192.024%20100.168ZM192.024%2099.118C192.528%2099.118%20192.98%2098.992%20193.382%2098.74C193.792%2098.488%20194.114%2098.1427%20194.348%2097.704C194.59%2097.2653%20194.712%2096.7753%20194.712%2096.234C194.712%2095.6927%20194.59%2095.2073%20194.348%2094.778C194.114%2094.3487%20193.792%2094.008%20193.382%2093.756C192.98%2093.504%20192.528%2093.378%20192.024%2093.378C191.52%2093.378%20191.062%2093.504%20190.652%2093.756C190.25%2094.008%20189.928%2094.3487%20189.686%2094.778C189.443%2095.2073%20189.322%2095.6927%20189.322%2096.234C189.322%2096.7753%20189.443%2097.2653%20189.686%2097.704C189.928%2098.1427%20190.25%2098.488%20190.652%2098.74C191.062%2098.992%20191.52%2099.118%20192.024%2099.118ZM200.343%20100.168C199.821%20100.168%20199.345%20100.047%20198.915%2099.804C198.486%2099.552%20198.145%2099.2067%20197.893%2098.768C197.651%2098.32%20197.529%2097.8067%20197.529%2097.228V92.496H198.579V97.102C198.579%2097.5033%20198.659%2097.858%20198.817%2098.166C198.985%2098.4647%20199.214%2098.698%20199.503%2098.866C199.802%2099.034%20200.143%2099.118%20200.525%2099.118C200.908%2099.118%20201.249%2099.034%20201.547%2098.866C201.846%2098.6887%20202.079%2098.4413%20202.247%2098.124C202.415%2097.7973%20202.499%2097.41%20202.499%2096.962V92.496H203.549V100H202.499V98.544L202.737%2098.6C202.56%2099.0853%20202.257%2099.468%20201.827%2099.748C201.398%20100.028%20200.903%20100.168%20200.343%20100.168ZM205.709%20100V92.496H206.759V93.952L206.521%2093.896C206.708%2093.4107%20207.011%2093.028%20207.431%2092.748C207.86%2092.468%20208.355%2092.328%20208.915%2092.328C209.447%2092.328%20209.923%2092.4493%20210.343%2092.692C210.772%2092.9347%20211.108%2093.2707%20211.351%2093.7C211.603%2094.12%20211.729%2094.596%20211.729%2095.128V100H210.679V95.534C210.679%2095.0767%20210.595%2094.6893%20210.427%2094.372C210.268%2094.0547%20210.04%2093.812%20209.741%2093.644C209.452%2093.4667%20209.116%2093.378%20208.733%2093.378C208.35%2093.378%20208.01%2093.4667%20207.711%2093.644C207.412%2093.812%20207.179%2094.0593%20207.011%2094.386C206.843%2094.7033%20206.759%2095.086%20206.759%2095.534V100H205.709ZM217.122%20100.168C216.422%20100.168%20215.792%20100%20215.232%2099.664C214.672%2099.3187%20214.229%2098.852%20213.902%2098.264C213.585%2097.6667%20213.426%2096.9947%20213.426%2096.248C213.426%2095.492%20213.585%2094.82%20213.902%2094.232C214.229%2093.644%20214.668%2093.182%20215.218%2092.846C215.778%2092.5007%20216.413%2092.328%20217.122%2092.328C217.766%2092.328%20218.34%2092.468%20218.844%2092.748C219.348%2093.028%20219.745%2093.406%20220.034%2093.882L219.866%2094.176V89.402H220.916V100H219.866V98.32L220.034%2098.474C219.773%2099.0153%20219.381%2099.4353%20218.858%2099.734C218.345%20100.023%20217.766%20100.168%20217.122%20100.168ZM217.178%2099.118C217.682%2099.118%20218.135%2098.992%20218.536%2098.74C218.947%2098.488%20219.269%2098.1473%20219.502%2097.718C219.745%2097.2793%20219.866%2096.7893%20219.866%2096.248C219.866%2095.7067%20219.745%2095.2213%20219.502%2094.792C219.269%2094.3533%20218.947%2094.008%20218.536%2093.756C218.135%2093.504%20217.682%2093.378%20217.178%2093.378C216.684%2093.378%20216.236%2093.504%20215.834%2093.756C215.433%2094.008%20215.116%2094.3487%20214.882%2094.778C214.658%2095.2073%20214.546%2095.6973%20214.546%2096.248C214.546%2096.7893%20214.658%2097.2793%20214.882%2097.718C215.116%2098.1473%20215.428%2098.488%20215.82%2098.74C216.222%2098.992%20216.674%2099.118%20217.178%2099.118ZM226.488%20100.168C225.788%20100.168%20225.153%20100%20224.584%2099.664C224.024%2099.3187%20223.581%2098.8473%20223.254%2098.25C222.927%2097.6527%20222.764%2096.976%20222.764%2096.22C222.764%2095.464%20222.923%2094.7967%20223.24%2094.218C223.557%2093.63%20223.987%2093.168%20224.528%2092.832C225.079%2092.496%20225.695%2092.328%20226.376%2092.328C226.917%2092.328%20227.398%2092.4307%20227.818%2092.636C228.247%2092.832%20228.611%2093.1027%20228.91%2093.448C229.209%2093.784%20229.437%2094.1667%20229.596%2094.596C229.755%2095.016%20229.834%2095.45%20229.834%2095.898C229.834%2095.9913%20229.829%2096.0987%20229.82%2096.22C229.811%2096.332%20229.797%2096.4487%20229.778%2096.57H223.436V95.59H229.176L228.672%2096.01C228.756%2095.4967%20228.695%2095.0393%20228.49%2094.638C228.294%2094.2273%20228.009%2093.9053%20227.636%2093.672C227.263%2093.4293%20226.843%2093.308%20226.376%2093.308C225.909%2093.308%20225.475%2093.4293%20225.074%2093.672C224.682%2093.9147%20224.374%2094.2553%20224.15%2094.694C223.926%2095.1233%20223.837%2095.6367%20223.884%2096.234C223.837%2096.8313%20223.931%2097.354%20224.164%2097.802C224.407%2098.2407%20224.733%2098.5813%20225.144%2098.824C225.564%2099.0667%20226.012%2099.188%20226.488%2099.188C227.039%2099.188%20227.501%2099.0573%20227.874%2098.796C228.247%2098.5347%20228.551%2098.208%20228.784%2097.816L229.68%2098.292C229.531%2098.628%20229.302%2098.9407%20228.994%2099.23C228.686%2099.51%20228.317%2099.7387%20227.888%2099.916C227.468%20100.084%20227.001%20100.168%20226.488%20100.168ZM231.685%20100V92.496H232.735V93.728L232.595%2093.546C232.773%2093.1913%20233.039%2092.9113%20233.393%2092.706C233.757%2092.5007%20234.196%2092.398%20234.709%2092.398H235.185V93.448H234.527C233.986%2093.448%20233.552%2093.616%20233.225%2093.952C232.899%2094.288%20232.735%2094.764%20232.735%2095.38V100H231.685Z'%20fill='%23181918'/%3e%3ccircle%20cx='243.5'%20cy='94'%20r='2.5'%20fill='%23181918'/%3e%3cpath%20d='M256.992%20100.168C256.255%20100.168%20255.578%20100.037%20254.962%2099.776C254.346%2099.5053%20253.809%2099.132%20253.352%2098.656C252.904%2098.1707%20252.554%2097.6013%20252.302%2096.948C252.05%2096.2947%20251.924%2095.576%20251.924%2094.792C251.924%2094.008%20252.05%2093.2893%20252.302%2092.636C252.554%2091.9827%20252.904%2091.4133%20253.352%2090.928C253.809%2090.4427%20254.346%2090.0693%20254.962%2089.808C255.578%2089.5373%20256.255%2089.402%20256.992%2089.402C257.701%2089.402%20258.336%2089.528%20258.896%2089.78C259.465%2090.032%20259.941%2090.3587%20260.324%2090.76C260.716%2091.152%20260.996%2091.5673%20261.164%2092.006L260.156%2092.496C259.895%2091.8613%20259.493%2091.362%20258.952%2090.998C258.411%2090.634%20257.757%2090.452%20256.992%2090.452C256.227%2090.452%20255.545%2090.634%20254.948%2090.998C254.351%2091.362%20253.884%2091.8707%20253.548%2092.524C253.212%2093.168%20253.044%2093.924%20253.044%2094.792C253.044%2095.6507%20253.212%2096.4067%20253.548%2097.06C253.884%2097.7133%20254.351%2098.222%20254.948%2098.586C255.545%2098.9407%20256.227%2099.118%20256.992%2099.118C257.673%2099.118%20258.285%2098.9687%20258.826%2098.67C259.377%2098.3713%20259.811%2097.9653%20260.128%2097.452C260.445%2096.9293%20260.604%2096.332%20260.604%2095.66V95.086L261.108%2095.59H256.992V94.61H261.724V95.478C261.724%2096.1593%20261.603%2096.7893%20261.36%2097.368C261.117%2097.9373%20260.781%2098.432%20260.352%2098.852C259.923%2099.272%20259.419%2099.5987%20258.84%2099.832C258.271%20100.056%20257.655%20100.168%20256.992%20100.168ZM263.576%20100V89.402H264.626V100H263.576ZM270.289%20100.168C269.58%20100.168%20268.936%20100%20268.357%2099.664C267.779%2099.3187%20267.317%2098.852%20266.971%2098.264C266.635%2097.6667%20266.467%2096.99%20266.467%2096.234C266.467%2095.4873%20266.635%2094.82%20266.971%2094.232C267.307%2093.644%20267.76%2093.182%20268.329%2092.846C268.908%2092.5007%20269.561%2092.328%20270.289%2092.328C271.017%2092.328%20271.666%2092.496%20272.235%2092.832C272.814%2093.168%20273.267%2093.63%20273.593%2094.218C273.929%2094.806%20274.097%2095.478%20274.097%2096.234C274.097%2096.9993%20273.925%2097.6807%20273.579%2098.278C273.234%2098.866%20272.772%2099.328%20272.193%2099.664C271.624%20100%20270.989%20100.168%20270.289%20100.168ZM270.289%2099.118C270.793%2099.118%20271.246%2098.992%20271.647%2098.74C272.058%2098.488%20272.38%2098.1427%20272.613%2097.704C272.856%2097.2653%20272.977%2096.7753%20272.977%2096.234C272.977%2095.6927%20272.856%2095.2073%20272.613%2094.778C272.38%2094.3487%20272.058%2094.008%20271.647%2093.756C271.246%2093.504%20270.793%2093.378%20270.289%2093.378C269.785%2093.378%20269.328%2093.504%20268.917%2093.756C268.516%2094.008%20268.194%2094.3487%20267.951%2094.778C267.709%2095.2073%20267.587%2095.6927%20267.587%2096.234C267.587%2096.7753%20267.709%2097.2653%20267.951%2097.704C268.194%2098.1427%20268.516%2098.488%20268.917%2098.74C269.328%2098.992%20269.785%2099.118%20270.289%2099.118ZM279.743%20100.168C279.099%20100.168%20278.516%20100.023%20277.993%2099.734C277.48%2099.4353%20277.092%2099.0153%20276.831%2098.474L276.999%2098.32V100H275.949V89.402H276.999V94.176L276.831%2093.882C277.13%2093.406%20277.526%2093.028%20278.021%2092.748C278.525%2092.468%20279.099%2092.328%20279.743%2092.328C280.452%2092.328%20281.082%2092.5007%20281.633%2092.846C282.193%2093.182%20282.632%2093.644%20282.949%2094.232C283.276%2094.82%20283.439%2095.492%20283.439%2096.248C283.439%2096.9947%20283.276%2097.6667%20282.949%2098.264C282.632%2098.852%20282.193%2099.3187%20281.633%2099.664C281.082%20100%20280.452%20100.168%20279.743%20100.168ZM279.687%2099.118C280.191%2099.118%20280.639%2098.992%20281.031%2098.74C281.432%2098.488%20281.745%2098.1473%20281.969%2097.718C282.202%2097.2793%20282.319%2096.7893%20282.319%2096.248C282.319%2095.6973%20282.202%2095.2073%20281.969%2094.778C281.745%2094.3487%20281.432%2094.008%20281.031%2093.756C280.639%2093.504%20280.191%2093.378%20279.687%2093.378C279.183%2093.378%20278.726%2093.504%20278.315%2093.756C277.914%2094.008%20277.592%2094.3533%20277.349%2094.792C277.116%2095.2213%20276.999%2095.7067%20276.999%2096.248C276.999%2096.7893%20277.116%2097.2793%20277.349%2097.718C277.592%2098.1473%20277.914%2098.488%20278.315%2098.74C278.726%2098.992%20279.183%2099.118%20279.687%2099.118ZM287.457%20100.168C286.981%20100.168%20286.556%20100.079%20286.183%2099.902C285.81%2099.7153%20285.516%2099.4633%20285.301%2099.146C285.086%2098.8287%20284.979%2098.4647%20284.979%2098.054C284.979%2097.662%20285.063%2097.3073%20285.231%2096.99C285.399%2096.6633%20285.66%2096.388%20286.015%2096.164C286.37%2095.94%20286.822%2095.7813%20287.373%2095.688L290.313%2095.198V96.15L287.625%2096.598C287.084%2096.6913%20286.692%2096.864%20286.449%2097.116C286.216%2097.368%20286.099%2097.6667%20286.099%2098.012C286.099%2098.348%20286.23%2098.6327%20286.491%2098.866C286.762%2099.0993%20287.107%2099.216%20287.527%2099.216C288.04%2099.216%20288.488%2099.1087%20288.871%2098.894C289.254%2098.67%20289.552%2098.3713%20289.767%2097.998C289.982%2097.6247%20290.089%2097.2093%20290.089%2096.752V94.848C290.089%2094.4%20289.926%2094.036%20289.599%2093.756C289.272%2093.476%20288.848%2093.336%20288.325%2093.336C287.868%2093.336%20287.466%2093.4527%20287.121%2093.686C286.776%2093.91%20286.519%2094.204%20286.351%2094.568L285.399%2094.05C285.539%2093.7327%20285.758%2093.4433%20286.057%2093.182C286.365%2092.9207%20286.715%2092.7153%20287.107%2092.566C287.499%2092.4073%20287.905%2092.328%20288.325%2092.328C288.876%2092.328%20289.361%2092.4353%20289.781%2092.65C290.21%2092.8647%20290.542%2093.1633%20290.775%2093.546C291.018%2093.9193%20291.139%2094.3533%20291.139%2094.848V100H290.089V98.502L290.243%2098.656C290.112%2098.936%20289.907%2099.1927%20289.627%2099.426C289.356%2099.65%20289.034%2099.832%20288.661%2099.972C288.297%20100.103%20287.896%20100.168%20287.457%20100.168ZM293.299%20100V89.402H294.349V100H293.299ZM297.953%20100L301.761%2089.57H302.965L306.773%20100H305.597L304.701%2097.452H300.039L299.129%20100H297.953ZM300.403%2096.402H304.309L302.195%2090.41H302.531L300.403%2096.402ZM311.124%20100.168C310.424%20100.168%20309.794%20100%20309.234%2099.664C308.674%2099.3187%20308.231%2098.852%20307.904%2098.264C307.587%2097.6667%20307.428%2096.9947%20307.428%2096.248C307.428%2095.492%20307.587%2094.82%20307.904%2094.232C308.231%2093.644%20308.67%2093.182%20309.22%2092.846C309.78%2092.5007%20310.415%2092.328%20311.124%2092.328C311.768%2092.328%20312.342%2092.468%20312.846%2092.748C313.35%2093.028%20313.747%2093.406%20314.036%2093.882L313.868%2094.176V89.402H314.918V100H313.868V98.32L314.036%2098.474C313.775%2099.0153%20313.383%2099.4353%20312.86%2099.734C312.347%20100.023%20311.768%20100.168%20311.124%20100.168ZM311.18%2099.118C311.684%2099.118%20312.137%2098.992%20312.538%2098.74C312.949%2098.488%20313.271%2098.1473%20313.504%2097.718C313.747%2097.2793%20313.868%2096.7893%20313.868%2096.248C313.868%2095.7067%20313.747%2095.2213%20313.504%2094.792C313.271%2094.3533%20312.949%2094.008%20312.538%2093.756C312.137%2093.504%20311.684%2093.378%20311.18%2093.378C310.686%2093.378%20310.238%2093.504%20309.836%2093.756C309.435%2094.008%20309.118%2094.3487%20308.884%2094.778C308.66%2095.2073%20308.548%2095.6973%20308.548%2096.248C308.548%2096.7893%20308.66%2097.2793%20308.884%2097.718C309.118%2098.1473%20309.43%2098.488%20309.822%2098.74C310.224%2098.992%20310.676%2099.118%20311.18%2099.118ZM317.074%20100V92.496H318.124V93.924L317.956%2093.714C318.161%2093.2753%20318.465%2092.9347%20318.866%2092.692C319.277%2092.4493%20319.725%2092.328%20320.21%2092.328C320.789%2092.328%20321.311%2092.4913%20321.778%2092.818C322.245%2093.1447%20322.576%2093.5693%20322.772%2094.092L322.478%2094.106C322.665%2093.5273%20322.987%2093.0887%20323.444%2092.79C323.911%2092.482%20324.424%2092.328%20324.984%2092.328C325.488%2092.328%20325.95%2092.4493%20326.37%2092.692C326.799%2092.9347%20327.14%2093.2707%20327.392%2093.7C327.653%2094.12%20327.784%2094.596%20327.784%2095.128V100H326.734V95.534C326.734%2095.0767%20326.65%2094.6893%20326.482%2094.372C326.323%2094.0547%20326.104%2093.812%20325.824%2093.644C325.544%2093.4667%20325.222%2093.378%20324.858%2093.378C324.503%2093.378%20324.181%2093.4667%20323.892%2093.644C323.603%2093.812%20323.374%2094.0593%20323.206%2094.386C323.038%2094.7033%20322.954%2095.086%20322.954%2095.534V100H321.904V95.534C321.904%2095.0767%20321.82%2094.6893%20321.652%2094.372C321.493%2094.0547%20321.274%2093.812%20320.994%2093.644C320.714%2093.4667%20320.392%2093.378%20320.028%2093.378C319.664%2093.378%20319.337%2093.4667%20319.048%2093.644C318.768%2093.812%20318.544%2094.0593%20318.376%2094.386C318.208%2094.7033%20318.124%2095.086%20318.124%2095.534V100H317.074ZM329.789%20100V92.496H330.839V100H329.789ZM329.789%2091.11V89.57H330.839V91.11H329.789ZM332.988%20100V92.496H334.038V93.952L333.8%2093.896C333.987%2093.4107%20334.29%2093.028%20334.71%2092.748C335.139%2092.468%20335.634%2092.328%20336.194%2092.328C336.726%2092.328%20337.202%2092.4493%20337.622%2092.692C338.051%2092.9347%20338.387%2093.2707%20338.63%2093.7C338.882%2094.12%20339.008%2094.596%20339.008%2095.128V100H337.958V95.534C337.958%2095.0767%20337.874%2094.6893%20337.706%2094.372C337.547%2094.0547%20337.319%2093.812%20337.02%2093.644C336.731%2093.4667%20336.395%2093.378%20336.012%2093.378C335.629%2093.378%20335.289%2093.4667%20334.99%2093.644C334.691%2093.812%20334.458%2094.0593%20334.29%2094.386C334.122%2094.7033%20334.038%2095.086%20334.038%2095.534V100H332.988Z'%20fill='%23181918'/%3e%3c/g%3e%3cmask%20id='path-17-inside-1_683_56525'%20fill='white'%3e%3cpath%20d='M0%2031C0%2022.1634%207.16344%2015%2016%2015H330C338.837%2015%20346%2022.1634%20346%2031V114C346%20122.837%20338.837%20130%20330%20130H16C7.16344%20130%200%20122.837%200%20114V31Z'/%3e%3c/mask%3e%3cpath%20d='M0%2031C0%2022.1634%207.16344%2015%2016%2015H330C338.837%2015%20346%2022.1634%20346%2031V114C346%20122.837%20338.837%20130%20330%20130H16C7.16344%20130%200%20122.837%200%20114V31Z'%20fill='%23FDFDFD'/%3e%3cpath%20d='M-0.5%2031C-0.5%2021.8873%206.8873%2014.5%2016%2014.5H329.5C338.613%2014.5%20346%2021.8873%20346%2031C346%2022.4396%20338.837%2015.5%20330%2015.5H16C7.43959%2015.5%200.5%2022.4396%200.5%2031H-0.5ZM0.5%2031M346%20130H0H346M16%20130C6.8873%20130%20-0.5%20122.613%20-0.5%20113.5V31C-0.5%2021.8873%206.8873%2014.5%2016%2014.5V15.5C7.43959%2015.5%200.5%2022.4396%200.5%2031V114C0.5%20122.837%207.43959%20130%2016%20130ZM16%20130M346%2015V130V15'%20fill='url(%23paint2_linear_683_56525)'%20mask='url(%23path-17-inside-1_683_56525)'/%3e%3cdefs%3e%3clinearGradient%20id='paint0_linear_683_56525'%20x1='59'%20y1='49'%20x2='286'%20y2='98'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%232B2A2A'/%3e%3cstop%20offset='1'%20stop-color='white'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint1_linear_683_56525'%20x1='78.362'%20y1='49.1226'%20x2='284.411'%20y2='82.1461'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%232B2A2A'/%3e%3cstop%20offset='1'%20stop-color='white'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint2_linear_683_56525'%20x1='-5.20861e-07'%20y1='-8.5'%20x2='70.9255'%20y2='193.231'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%238E3530'/%3e%3cstop%20offset='0.575999'%20stop-color='white'/%3e%3c/linearGradient%3e%3c/defs%3e%3c/svg%3e\"","import React from 'react';\nimport { Avatar } from 'antd';\nimport cardBorderSvg from '../../assets/card-border.svg';\n\nexport interface UserCardProps {\n name: string;\n email: string;\n role?: string;\n avatar?: string;\n className?: string;\n}\n\nexport const UserCard: React.FC<UserCardProps> = ({\n name,\n email,\n role,\n avatar,\n className = '',\n}) => {\n return (\n <div\n style={{\n boxShadow: '0px -8px 30px rgba(236, 97, 91, 0.1)',\n borderRadius: '16px',\n background:\n 'linear-gradient(to bottom, rgba(236, 97, 91, 0.05) 0%, rgba(255, 255, 255, 0) 50%)',\n }}\n className=\"relative min-h-[120px] pt-8 pb-4 pl-4 pr-4\"\n >\n <img\n src={cardBorderSvg}\n alt=\"img-bg\"\n style={{\n position: 'absolute',\n top: -8,\n left: 0,\n objectFit: 'cover',\n }}\n />\n <div\n className={`flex gap-4 items-center relative ${className}`}\n style={{\n position: 'relative',\n }}\n >\n {avatar ? (\n <Avatar src={avatar} size={80} />\n ) : (\n <Avatar\n size={80}\n style={{ backgroundColor: '#181918', fontSize: '32px', fontWeight: 600 }}\n >\n {name\n .split(' ')\n .map((n) => n[0])\n .join('')\n .toUpperCase()}\n </Avatar>\n )}\n <div className=\"flex flex-col\">\n <span\n style={{\n color: '#181918',\n fontSize: '16px',\n fontWeight: 600,\n lineHeight: '1.3',\n }}\n >\n {name}\n </span>\n <span\n style={{\n color: '#181918',\n fontSize: '14px',\n fontWeight: 400,\n lineHeight: '1.4',\n marginTop: '4px',\n }}\n >\n {email}\n </span>\n {role && (\n <span\n style={{\n color: '#181918',\n fontSize: '14px',\n fontWeight: 400,\n lineHeight: '1.4',\n marginTop: '2px',\n }}\n >\n {role}\n </span>\n )}\n </div>\n </div>\n </div>\n );\n};\n","import React from 'react';\nimport { Select } from 'antd';\nimport type { SelectProps } from 'antd';\n\nexport interface Country {\n code: string;\n name: string;\n flag: string;\n}\n\nexport interface CountrySelectorProps extends Omit<SelectProps, 'options'> {\n countries?: Country[];\n defaultCountry?: string;\n onCountryChange?: (countryCode: string) => void;\n showSearch?: boolean;\n}\n\nconst defaultCountries: Country[] = [\n { code: 'NG', name: 'Nigeria', flag: '/images/flags/NG.svg' },\n { code: 'US', name: 'United States', flag: '/images/flags/US.svg' },\n { code: 'GB', name: 'United Kingdom', flag: '/images/flags/GB.svg' },\n { code: 'GH', name: 'Ghana', flag: '/images/flags/GH.svg' },\n { code: 'KE', name: 'Kenya', flag: '/images/flags/KE.svg' },\n { code: 'ZA', name: 'South Africa', flag: '/images/flags/ZA.svg' },\n];\n\nexport const CountrySelector: React.FC<CountrySelectorProps> = ({\n countries = defaultCountries,\n defaultCountry = 'NG',\n onCountryChange,\n showSearch = false,\n className = '',\n ...props\n}) => {\n const handleChange = (value: string) => {\n if (onCountryChange) {\n onCountryChange(value);\n }\n };\n\n const renderFlag = (flag: string) => {\n return (\n <img\n src={flag}\n alt=\"flag\"\n className=\"w-7 h-7 rounded-full object-cover\"\n style={{ width: '28px', height: '28px' }}\n />\n );\n };\n\n const options = countries.map((country) => ({\n value: country.code,\n label: (\n <div className=\"flex items-center gap-2\">\n {renderFlag(country.flag)}\n <span>{country.code}</span>\n </div>\n ),\n // Add searchable text for filtering\n searchLabel: `${country.name} ${country.code}`.toLowerCase(),\n }));\n\n // Custom filter function for searching\n const handleFilter = (input: string, option: any) => {\n return option?.searchLabel?.includes(input.toLowerCase()) || false;\n };\n\n return (\n <>\n <style>\n {`\n .country-selector.ant-select {\n min-width: 90px;\n heigh: 40px;\n border-radius: 20px;\n padding: 5px !important;\n background: #EEEEEE;\n }\n\n .country-selector .ant-select-selector {\n border-radius: 20px !important;\n border: 1px solid #E5E7EB !important;\n height: 40px !important;\n display: flex;\n align-items: center;\n background: #FFFFFF !important;\n }\n\n .country-selector .ant-select-selection-item {\n display: flex;\n align-items: center;\n gap: 8px;\n font-weight: 500;\n color: #000000;\n }\n\n .country-selector:hover .ant-select-selector {\n border-color: #D1D5DB !important;\n }\n\n .country-selector.ant-select-focused .ant-select-selector {\n border-color: #EC615B !important;\n box-shadow: 0 0 0 2px rgba(236, 97, 91, 0.1) !important;\n }\n\n .country-selector .ant-select-arrow {\n color: #6B7280;\n }\n\n .country-selector .ant-select-dropdown {\n border-radius: 12px !important;\n }\n `}\n </style>\n <Select\n className={`country-selector ${className}`}\n defaultValue={defaultCountry}\n onChange={handleChange}\n options={options}\n showSearch={showSearch}\n filterOption={handleFilter}\n placeholder=\"Search country...\"\n suffixIcon={\n <svg width=\"12\" height=\"8\" viewBox=\"0 0 12 8\" fill=\"none\">\n <path\n d=\"M1 1.5L6 6.5L11 1.5\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n }\n {...props}\n />\n </>\n );\n};\n","import React from 'react';\nimport { Dropdown } from 'antd';\nimport type { MenuProps } from 'antd';\n\nexport interface UserProfileDropdownProps {\n name: string;\n role?: string;\n avatarUrl?: string;\n menuItems?: MenuProps['items'];\n onMenuClick?: (key: string) => void;\n className?: string;\n width?: string | number;\n}\n\nexport const UserProfileDropdown: React.FC<UserProfileDropdownProps> = ({\n name,\n role,\n avatarUrl,\n menuItems,\n onMenuClick,\n className = '',\n width,\n}) => {\n const defaultMenuItems: MenuProps['items'] = [\n {\n key: 'profile',\n label: 'My Profile',\n },\n {\n key: 'settings',\n label: 'Settings',\n },\n {\n type: 'divider',\n },\n {\n key: 'logout',\n label: 'Logout',\n danger: true,\n },\n ];\n\n const handleMenuClick: MenuProps['onClick'] = ({ key }) => {\n if (onMenuClick) {\n onMenuClick(key);\n }\n };\n\n const getInitials = (name: string) => {\n const parts = name.split(' ');\n if (parts.length >= 2) {\n return `${parts[0][0]}${parts[1][0]}`.toUpperCase();\n }\n return name.substring(0, 2).toUpperCase();\n };\n\n return (\n <>\n <style>\n {`\n .user-profile-dropdown {\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 5px;\n border-radius: 50px;\n background: #EEEEEE;\n border: 1px solid #E6E6E6;\n transition: background-color 0.2s;\n }\n\n .user-profile-dropdown:hover {\n background-color: #E5E5E5;\n }\n\n .user-profile-avatar {\n width: 30px;\n height: 30px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n font-weight: 600;\n font-size: 14px;\n color: #FFFFFF;\n background: linear-gradient(135deg, #EC615B 0%, #F59E95 100%);\n flex-shrink: 0;\n overflow: hidden;\n }\n\n .user-profile-avatar img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n\n .user-profile-info {\n flex: 1;\n display: flex;\n flex-direction: column;\n gap: 2px;\n min-width: 0;\n }\n\n .user-profile-name {\n font-weight: 700;\n font-size: 14px;\n color: #000000;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n line-height: 1.2;\n }\n\n .user-profile-role {\n font-size: 12px;\n color: #666666;\n font-weight: 400;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n line-height: 1.2;\n }\n\n .user-profile-dropdown-icon {\n color: #000000;\n flex-shrink: 0;\n transition: transform 0.2s;\n margin-left: auto;\n }\n\n .user-profile-dropdown[aria-expanded=\"true\"] .user-profile-dropdown-icon {\n transform: rotate(180deg);\n }\n `}\n </style>\n <Dropdown\n menu={{\n items: menuItems || defaultMenuItems,\n onClick: handleMenuClick,\n }}\n trigger={['click']}\n placement=\"bottomRight\"\n >\n <div\n className={`user-profile-dropdown ${className}`}\n style={{ width: typeof width === 'number' ? `${width}px` : width }}\n >\n <div className=\"user-profile-avatar\">\n {avatarUrl ? <img src={avatarUrl} alt={name} /> : getInitials(name)}\n </div>\n <div className=\"user-profile-info\">\n <div className=\"user-profile-name\">{name}</div>\n {role && <div className=\"user-profile-role\">{role}</div>}\n </div>\n <svg\n className=\"user-profile-dropdown-icon\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n >\n <path\n d=\"M6 9L12 15L18 9\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </div>\n </Dropdown>\n </>\n );\n};\n","import React from 'react';\n\nexport interface ActionCardProps {\n label: string;\n icon: React.ReactNode;\n iconColor?: 'red' | 'blue' | 'green' | 'purple' | 'orange' | 'yellow';\n onClick?: () => void;\n disabled?: boolean;\n className?: string;\n}\n\nexport const ActionCard: React.FC<ActionCardProps> = ({\n label,\n icon,\n iconColor = 'blue',\n onClick,\n disabled = false,\n className = '',\n}) => {\n const colorStyles = {\n red: {\n background: '#FFEAE8',\n color: '#EC615B',\n },\n blue: {\n background: '#E8F4FD',\n color: '#4A9FD8',\n },\n green: {\n background: '#E8F8F0',\n color: '#5FB894',\n },\n purple: {\n background: '#F3E8FD',\n color: '#9B59D8',\n },\n orange: {\n background: '#FFF3E8',\n color: '#F59E42',\n },\n yellow: {\n background: '#FFFBE8',\n color: '#F5D742',\n },\n };\n\n const currentColor = colorStyles[iconColor];\n\n return (\n <button\n className={`bg-[#FDFDFD] border border-[#E6E6E6] rounded-[14px] px-[18px] py-2.5 flex items-center gap-4 cursor-pointer transition-all duration-300 ease-in-out w-full h-[60px] hover:border-gray-300 hover:-translate-y-1 active:translate-y-0 disabled:opacity-50 disabled:cursor-not-allowed disabled:hover:border-[#E6E6E6] disabled:hover:translate-y-0 ${className}`}\n style={{\n boxShadow: '0 0 0 0 rgba(0, 0, 0, 0)',\n transition: 'all 0.3s ease-in-out',\n }}\n onMouseEnter={(e) => {\n if (!disabled) {\n e.currentTarget.style.boxShadow = '0 0 16px 0 rgba(0, 0, 0, 0.08)';\n }\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.boxShadow = '0 0 0 0 rgba(0, 0, 0, 0)';\n }}\n onClick={onClick}\n disabled={disabled}\n >\n <div\n className=\"w-10 h-10 rounded-full flex items-center justify-center shrink-0 [&>svg]:w-6 [&>svg]:h-6 transition-transform duration-300 ease-in-out\"\n style={{\n backgroundColor: currentColor.background,\n color: currentColor.color,\n }}\n >\n {icon}\n </div>\n <div className=\"text-sm font-medium text-[#181918] transition-colors duration-200\">{label}</div>\n </button>\n );\n};\n","import React, { useState } from 'react';\n\nexport interface DashboardCardProps {\n label: string;\n value: string | number;\n icon?: React.ReactNode;\n showVisibilityToggle?: boolean;\n onVisibilityToggle?: () => void;\n valuePrefix?: string;\n ledgerBalance?: string | number;\n backgroundPattern?: 'wave' | 'grid' | 'none';\n width?: string | number;\n className?: string;\n}\n\nexport const DashboardCard: React.FC<DashboardCardProps> = ({\n label,\n value,\n icon,\n showVisibilityToggle = true,\n onVisibilityToggle,\n valuePrefix = '₦',\n ledgerBalance,\n backgroundPattern = 'wave',\n width = 348,\n className = '',\n}) => {\n const [isVisible, setIsVisible] = useState(true);\n\n const handleToggleVisibility = () => {\n setIsVisible(!isVisible);\n if (onVisibilityToggle) {\n onVisibilityToggle();\n }\n };\n const defaultIcon = (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <rect x=\"3\" y=\"6\" width=\"18\" height=\"12\" rx=\"2\" stroke=\"currentColor\" strokeWidth=\"2\" />\n <path d=\"M3 10h18M7 14h4\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n </svg>\n );\n\n return (\n <>\n <style>\n {`\n .dashboard-card-bg {\n background: radial-gradient(circle at 50% 136%, #7A7F7A 0%, #181918 100%);\n }\n\n .dashboard-card-pattern {\n background-image: url('/images/card-pattern.svg');\n background-size: cover;\n background-position: center;\n background-repeat: no-repeat;\n }\n `}\n </style>\n <div\n className={`dashboard-card-bg relative overflow-hidden min-h-[160px] flex flex-col justify-between rounded-[20px] px-[22px] pt-3 pb-1 transition-all duration-300 ease-in-out hover:-translate-y-1 cursor-pointer ${className}`}\n style={{\n width: typeof width === 'number' ? `${width}px` : width,\n boxShadow: '0 0 0 0 rgba(0, 0, 0, 0)',\n transition: 'all 0.3s ease-in-out',\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.boxShadow = '0 0 24px 0 rgba(0, 0, 0, 0.15)';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.boxShadow = '0 0 0 0 rgba(0, 0, 0, 0)';\n }}\n >\n {backgroundPattern !== 'none' && (\n <div className=\"dashboard-card-pattern absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-full h-full pointer-events-none transition-opacity duration-300\" />\n )}\n <div className=\"relative z-10\">\n <div className=\"flex items-center justify-between mb-4\">\n <div className=\"w-10 h-10 bg-[#616161] rounded-full flex items-center justify-center text-white transition-transform duration-300 ease-in-out hover:scale-110\">\n {icon || defaultIcon}\n </div>\n </div>\n <div className=\"flex items-center gap-2 mt-3\">\n <span className=\"text-sm text-[#E6E6E6] font-light transition-colors duration-200\">{label}</span>\n {showVisibilityToggle && (\n <button\n className=\"bg-transparent border-none cursor-pointer p-1 flex items-center justify-center text-white hover:text-white/80 transition-colors duration-200\"\n onClick={handleToggleVisibility}\n aria-label=\"Toggle visibility\"\n >\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M1.61342 8.47806C1.52262 8.3343 1.47723 8.26242 1.45182 8.15155C1.43273 8.06827 1.43273 7.93694 1.45182 7.85366C1.47723 7.74279 1.52262 7.67091 1.61341 7.52715C2.36369 6.33916 4.59693 3.33594 8.00027 3.33594C11.4036 3.33594 13.6369 6.33916 14.3871 7.52715C14.4779 7.67091 14.5233 7.74279 14.5487 7.85366C14.5678 7.93694 14.5678 8.06827 14.5487 8.15155C14.5233 8.26242 14.4779 8.3343 14.3871 8.47806C13.6369 9.66604 11.4036 12.6693 8.00027 12.6693C4.59693 12.6693 2.36369 9.66604 1.61342 8.47806Z\"\n stroke=\"currentColor\"\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M8.00027 10.0026C9.10484 10.0026 10.0003 9.10717 10.0003 8.0026C10.0003 6.89803 9.10484 6.0026 8.00027 6.0026C6.8957 6.0026 6.00027 6.89803 6.00027 8.0026C6.00027 9.10717 6.8957 10.0026 8.00027 10.0026Z\"\n stroke=\"currentColor\"\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </button>\n )}\n </div>\n <div className=\"text-[32px] font-bold text-white transition-all duration-200\">\n {isVisible ? `${valuePrefix} ${value}` : '****'}\n </div>\n {ledgerBalance && (\n <div className=\"mb-1\">\n <div className=\"w-full h-px bg-white/10 mb-2 transition-opacity duration-300\"></div>\n <div className=\"flex items-center gap-2 transition-all duration-200\">\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8.0026 13.3307H3.46927C2.72253 13.3307 2.34917 13.3307 2.06395 13.1854C1.81307 13.0576 1.60909 12.8536 1.48126 12.6027C1.33594 12.3175 1.33594 11.9441 1.33594 11.1974V4.7974C1.33594 4.05066 1.33594 3.67729 1.48126 3.39208C1.60909 3.14119 1.81307 2.93722 2.06395 2.80939C2.34917 2.66406 2.72253 2.66406 3.46927 2.66406H3.73594C5.22941 2.66406 5.97615 2.66406 6.54658 2.95471C7.04834 3.21037 7.45629 3.61832 7.71195 4.12009C8.0026 4.69052 8.0026 5.43726 8.0026 6.93073M8.0026 13.3307V6.93073M8.0026 13.3307H12.5359C13.2827 13.3307 13.656 13.3307 13.9413 13.1854C14.1921 13.0576 14.3961 12.8536 14.5239 12.6027C14.6693 12.3175 14.6693 11.9441 14.6693 11.1974V4.7974C14.6693 4.05066 14.6693 3.67729 14.5239 3.39208C14.3961 3.14119 14.1921 2.93722 13.9413 2.80939C13.656 2.66406 13.2827 2.66406 12.5359 2.66406H12.2693C10.7758 2.66406 10.0291 2.66406 9.45863 2.95471C8.95686 3.21037 8.54892 3.61832 8.29325 4.12009C8.0026 4.69052 8.0026 5.43726 8.0026 6.93073\"\n stroke=\"#EC615B\"\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n <span className=\"text-xs text-[#E6E6E6] font-light transition-all duration-200\">\n Ledger Balance {isVisible ? `${valuePrefix} ${ledgerBalance}` : '****'}\n </span>\n </div>\n </div>\n )}\n </div>\n </div>\n </>\n );\n};\n","import React from 'react';\n\nexport interface NotificationItem {\n id: string;\n title: string;\n description: string;\n timestamp: string;\n isNew?: boolean;\n icon?: React.ReactNode;\n iconBackgroundColor?: string;\n iconColor?: string;\n onClick?: () => void;\n}\n\nexport interface NotificationDropdownProps {\n title: string;\n count?: number;\n notifications: NotificationItem[];\n onViewMore?: () => void;\n className?: string;\n maxHeight?: string | number;\n}\n\nexport const NotificationDropdown: React.FC<NotificationDropdownProps> = ({\n count,\n notifications,\n onViewMore,\n className = '',\n maxHeight = 400,\n}) => {\n const defaultIcon = (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"10\" cy=\"10\" r=\"9\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M10 6v4M10 14h.01\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </svg>\n );\n\n return (\n <div\n className={`bg-white rounded-2xl shadow-lg border border-gray-100 overflow-hidden ${className}`}\n style={{ width: '380px' }}\n >\n {/* Tab Section */}\n <div className=\"flex items-center justify-between px-4 py-3 bg-gray-50\">\n <div className=\"flex items-center gap-2\">\n <span className=\"text-sm font-medium text-[#181918]\">Issues</span>\n {count !== undefined && (\n <span className=\"flex flex-col items-center justify-center h-[22px] w-[22px] bg-[#FAE5B7] text-[#6C4D0B] border border-[#EFAC18] text-[11px] font-medium px-2 py-0.5 rounded-full\">\n {count}\n </span>\n )}\n </div>\n {onViewMore && (\n <button\n onClick={onViewMore}\n className=\"text-xs text-[#EC615B] font-normal hover:text-[#EC615B] transition-colors duration-200\"\n >\n View More\n </button>\n )}\n </div>\n\n {/* Notifications List */}\n <div\n className=\"overflow-y-auto\"\n style={{ maxHeight: typeof maxHeight === 'number' ? `${maxHeight}px` : maxHeight }}\n >\n {notifications.length === 0 ? (\n <div className=\"px-4 py-16 flex flex-col items-center justify-center\">\n <img\n src=\"/images/empty-notification.svg\"\n alt=\"No notifications\"\n className=\"w-16 h-16 mb-4\"\n />\n <h4 className=\"text-sm font-medium text-[#181918] mb-1\">\n No issues available\n </h4>\n <p className=\"text-xs text-gray-500 font-light\">\n All recent activities will appear here\n </p>\n </div>\n ) : (\n notifications.map((notification) => (\n <div\n key={notification.id}\n onClick={notification.onClick}\n className=\"flex gap-3 px-4 py-3 border-b border-[#E6E6E6] hover:bg-[#FDEFEF] transition-colors duration-200 cursor-pointer\"\n >\n {/* Icon */}\n <div\n className=\"flex items-center justify-center h-10 w-10 rounded-full flex-shrink-0 [&>svg]:w-5 [&>svg]:h-5\"\n style={{\n backgroundColor: notification.iconBackgroundColor || '#FCE7E6',\n color: notification.iconColor || '#EC615B',\n }}\n >\n {notification.icon || defaultIcon}\n </div>\n\n {/* Content */}\n <div className=\"flex-1 min-w-0\">\n <h4 className=\"text-sm font-medium text-[#181918] mb-1\">{notification.title}</h4>\n <p className=\"text-xs text-[#181918] font-light line-clamp-2\">\n {notification.description}\n </p>\n </div>\n\n {/* Timestamp/Badge */}\n <div className=\"flex-shrink-0\">\n {notification.isNew ? (\n <span className=\"text-[#EC615B] text-xs font-medium px-2 py-1 rounded\">New</span>\n ) : (\n <span className=\"text-xs text-gray-400\">{notification.timestamp}</span>\n )}\n </div>\n </div>\n ))\n )}\n </div>\n </div>\n );\n};\n","import React from 'react';\nimport { Tabs } from 'antd';\n\nexport interface TabItem {\n key: string;\n label: string;\n children: React.ReactNode;\n}\n\nexport interface TabsComponentProps {\n items: TabItem[];\n defaultActiveKey?: string;\n activeKey?: string;\n onChange?: (activeKey: string) => void;\n className?: string;\n}\n\nexport const TabsComponent: React.FC<TabsComponentProps> = ({\n items,\n defaultActiveKey,\n activeKey,\n onChange,\n className = '',\n}) => {\n return (\n <div className={className}>\n <style>\n {`\n .custom-tabs .ant-tabs-nav {\n margin-bottom: 0 !important;\n }\n\n .custom-tabs .ant-tabs-nav::before {\n border-bottom: 1px solid #E6E6E6 !important;\n }\n\n .custom-tabs .ant-tabs-tab {\n padding: 10px 0 !important;\n margin-right: 20px !important;\n color: #181918 !important;\n font-size: 14px !important;\n font-weight: 400 !important;\n font-family: 'Plus Jakarta Sans', sans-serif !important;\n }\n\n .custom-tabs .ant-tabs-tab:hover {\n color: #EC615B !important;\n }\n\n .custom-tabs .ant-tabs-tab-active .ant-tabs-tab-btn {\n color: #EC615B !important;\n font-weight: 400 !important;\n }\n\n .custom-tabs .ant-tabs-ink-bar {\n background: #EC615B !important;\n height: 2px !important;\n }\n\n .custom-tabs .ant-tabs-tab-btn {\n transition: color 0.3s ease !important;\n }\n\n .custom-tabs .ant-tabs-content-holder {\n padding-top: 16px;\n }\n `}\n </style>\n <Tabs\n className=\"custom-tabs\"\n items={items}\n defaultActiveKey={defaultActiveKey}\n activeKey={activeKey}\n onChange={onChange}\n />\n </div>\n );\n};\n"],"names":["Button","variant","size","className","children","props","getSizeHeight","getVariantStyles","height","jsx","AntButton","e","_a","styles","StatCard","label","value","icon","iconBackgroundColor","iconColor","valuePrefix","progressText","badge","width","defaultIcon","jsxs","SearchInput","iconPosition","fullWidth","onIconClick","bgColor","borderColor","focusBorderColor","textColor","placeholderColor","rounded","style","containerBaseClasses","inputBaseClasses","sizeClasses","iconSizeClasses","roundedClasses","paddingWithIcon","widthClass","customStyles","placeholderClass","defaultBorderClass","defaultTextClass","defaultFocusClass","inputClassName","iconPositionClasses","defaultIconColor","hoverIconColor","defaultSearchIcon","Card","shadow","combinedClassName","AntCard","Dropdown","items","trigger","placement","overlayClassName","disabled","menuBgColor","menuItemHoverColor","dangerColor","isOpen","setIsOpen","useState","dropdownRef","useRef","useEffect","handleClickOutside","event","handleTriggerClick","handleTriggerMouseEnter","handleTriggerMouseLeave","handleMenuItemClick","item","placementClasses","animationClasses","itemSizeClasses","defaultHoverColor","defaultBorderColor","defaultDangerColor","hoverColorStyle","customHoverClass","customDangerStyle","dangerHoverBgStyle","finalBorderColor","itemStyle","Select","options","controlledValue","defaultValue","placeholder","onChange","allowClear","showSearch","searchPlaceholder","selectedBgColor","selectedTextColor","hoverBgColor","internalValue","setInternalValue","searchQuery","setSearchQuery","selectRef","searchInputRef","handleSelect","optionValue","handleClear","selectedOption","opt","filteredOptions","option","getTriggerStyles","getSelectedOptionStyles","ChevronIcon","ClearIcon","Table","columns","dataSource","rowKey","pagination","loading","onRow","bordered","striped","headerBgColor","headerTextColor","rowHoverColor","stripedRowColor","currentPage","setCurrentPage","pageSize","setPageSize","sizeConfig","currentSizeConfig","currentRoundedClass","getRowKey","record","index","getValue","dataIndex","obj","key","paginatedData","handlePageChange","page","handlePageSizeChange","newPageSize","column","idx","rowProps","stripedBg","hoverBg","colIdx","content","Pagination","current","total","onPageSizeChange","showSizeChanger","pageSizeOptions","showTotal","totalPages","startItem","endItem","getPageNumbers","pages","i","TableTop","title","description","onSearch","actions","filters","titleColor","descriptionColor","searchBgColor","searchBorderColor","searchFocusBorderColor","hideActionButtons","selectedActionButton","handleSearchChange","config","radiusClass","searchInputStyle","widthMap","Modal","open","onClose","footer","closable","maskClosable","centered","overlayColor","bodyClassName","headerClassName","maxHeight","isVisible","setIsVisible","isAnimating","setIsAnimating","effectiveWidth","modalStyle","headerStyle","overlayStyle","timer","handleEscape","handleMaskClick","handleModalClick","Badge","dot","variantClasses","dotSizeClasses","dotColorClasses","Steps","direction","finishColor","processColor","waitColor","errorColor","lineColor","getStepStatus","textSizeClasses","descriptionSizeClasses","renderIcon","status","getStatusClasses","isOutline","statusClasses","isLast","iconStyle","Progress","percent","showInfo","strokeColor","strokeWidth","format","successColor","exceptionColor","trackColor","clampedPercent","heightClasses","getStatusColor","getTrackColor","getStatusIcon","formatPercent","Checkbox","controlledChecked","defaultChecked","indeterminate","id","name","checkedColor","uncheckedColor","checkedBorderColor","internalChecked","setInternalChecked","isControlled","checked","handleChange","newChecked","isFilled","getCheckboxClasses","getCheckboxInlineStyles","getIconColor","getSizeClasses","getRoundedClasses","SelectedItemsList","onRemove","emptyMessage","itemClassName","sublabelColor","removeButtonColor","removeButtonHoverColor","roundedClass","defaultBgColor","defaultHoverBgColor","defaultTextColor","defaultSublabelColor","defaultRemoveButtonColor","defaultRemoveButtonHoverColor","finalBgColor","finalHoverBgColor","finalTextColor","finalSublabelColor","finalRemoveButtonColor","finalRemoveButtonHoverColor","Input","error","helperText","errorClass","AntInput","PasswordInput","OTPInput","length","onComplete","errorMessage","otp","setOtp","inputRefs","otpArray","filledOtp","val","newOtp","otpString","digit","handleKeyDown","handlePaste","pastedData","pastedArray","nextIndex","React","el","PhoneInput","countryCode","onCountryCodeChange","countryCodes","showCountryCodeDropdown","customFormat","displayValue","setDisplayValue","cleaned","formatted","formatPhoneNumber","input","cursorPosition","oldLength","diff","newCursorPosition","syntheticEvent","numericData","start","newCleaned","CurrencyInput","currencySymbol","formatAmount","externalValue","formatNumber","num","parts","integerPart","decimalPart","formattedInteger","unformatNumber","stringValue","inputValue","rawValue","IconContext","createContext","r","t","f","n","clsx","presetColors","round","splitColorStr","str","parseNum","match","numList","parseHSVorHSL","_","limitRange","max","mergedMax","FastColor","__publicField","matchFormat","matchPrefix","prefix","trimStr","presetColor","hsv","adjustGamma","raw","R","G","B","delta","l","amount","h","s","color","p","calc","rgba","background","bg","alpha","other","hex","rHex","gHex","bHex","aHex","rgb","clone","withoutPrefix","connectNum","index1","index2","_h","a","g","b","huePrime","chroma","secondComponent","lightnessModification","v","vv","hh","ff","q","cells","txt","hueStep","saturationStep","saturationStep2","brightnessStep1","brightnessStep2","lightColorCount","darkColorCount","darkColorMap","getHue","light","hue","getSaturation","saturation","generate","opts","patterns","pColor","c","blue","canUseDom","contains","root","node","APPEND_ORDER","APPEND_PRIORITY","MARK_KEY","containerCache","getMark","mark","getContainer","getOrder","prepend","findStyles","container","injectCSS","css","csp","priority","mergedOrder","isPrependQueue","styleNode","firstChild","existStyle","nodePriority","findExistNode","syncRealContainer","cachedRealContainer","placeholderStyle","parentNode","updateCSS","originOption","existNode","_b","_c","newNode","getRoot","ele","inShadow","getShadowRoot","warned","preWarningFns","preMessage","fn","warning","valid","message","finalMessage","msg","preMessageFn","note","resetWarned","call","method","warningOnce","noteOnce","camelCase","isIconDefinition","target","normalizeAttrs","attrs","acc","rootProps","child","getSecondaryColor","primaryColor","generateColor","normalizeTwoToneColors","twoToneColor","iconStyles","useInsertStyles","eleRef","prefixCls","layer","useContext","mergedStyleStr","shadowRoot","twoToneColorPalette","setTwoToneColors","secondaryColor","getTwoToneColors","IconBase","onClick","restProps","svgRef","colors","setTwoToneColor","ReactIcon","getTwoToneColor","_extends","source","Icon","ref","spin","rotate","tabIndex","rootClassName","Context","classString","iconTabIndex","svgStyle","UserOutlined","AntdIcon","UserOutlinedSvg","RefIcon","UserPill","subtitle","avatar","Avatar","cardBorderSvg","UserCard","email","role","defaultCountries","CountrySelector","countries","defaultCountry","onCountryChange","renderFlag","flag","country","handleFilter","Fragment","UserProfileDropdown","avatarUrl","menuItems","onMenuClick","defaultMenuItems","handleMenuClick","getInitials","ActionCard","currentColor","DashboardCard","showVisibilityToggle","onVisibilityToggle","ledgerBalance","backgroundPattern","handleToggleVisibility","NotificationDropdown","count","notifications","onViewMore","notification","TabsComponent","defaultActiveKey","activeKey","Tabs"],"mappings":";;;;;;;AAQO,MAAMA,KAAgC,CAAC;AAAA,EAC5C,SAAAC,IAAU;AAAA,EACV,MAAAC,IAAO;AAAA,EACP,WAAAC,IAAY;AAAA,EACZ,UAAAC;AAAA,EACA,GAAGC;AACL,MAAM;AACJ,QAAMC,IAAgB,MAAM;AAC1B,YAAQJ,GAAA;AAAA,MACN,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT;AACE,eAAO;AAAA,IAAA;AAAA,EAEb,GAEMK,IAAmB,MAAM;AAC7B,UAAMC,IAASF,EAAA;AAEf,YAAQL,GAAA;AAAA,MACN,KAAK;AACH,eAAO;AAAA,UACL,iBAAiB;AAAA,UACjB,aAAa;AAAA,UACb,OAAO;AAAA,UACP,QAAAO;AAAA,UACA,cAAc;AAAA,QAAA;AAAA,MAElB,KAAK;AACH,eAAO;AAAA,UACL,iBAAiB;AAAA,UACjB,aAAa;AAAA,UACb,OAAO;AAAA,UACP,QAAAA;AAAA,UACA,cAAc;AAAA,QAAA;AAAA,MAElB,KAAK;AACH,eAAO;AAAA,UACL,iBAAiB;AAAA,UACjB,aAAa;AAAA,UACb,OAAO;AAAA,UACP,QAAAA;AAAA,UACA,cAAc;AAAA,QAAA;AAAA,MAElB,KAAK;AACH,eAAO;AAAA,UACL,iBAAiB;AAAA,UACjB,aAAa;AAAA,UACb,OAAO;AAAA,UACP,QAAAA;AAAA,UACA,cAAc;AAAA,QAAA;AAAA,MAElB;AACE,eAAO,CAAA;AAAA,IAAC;AAAA,EAEd;AAEA,SACE,gBAAAC;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,WAAAP;AAAA,MACC,GAAGE;AAAA,MACJ,OAAO;AAAA,QACL,GAAGE,EAAA;AAAA,QACH,GAAGF,EAAM;AAAA,MAAA;AAAA,MAEX,cAAc,CAACM,MAAM;;AACnB,QAAIV,MAAY,YACbU,EAAE,OAAuB,MAAM,kBAAkB,YACzCV,MAAY,cACpBU,EAAE,OAAuB,MAAM,kBAAkB,YACzCV,MAAY,YACpBU,EAAE,OAAuB,MAAM,kBAAkB,YACzCV,MAAY,YACpBU,EAAE,OAAuB,MAAM,kBAAkB,aAEpDC,IAAAP,EAAM,iBAAN,QAAAO,EAAA,KAAAP,GAAqBM;AAAA,MACvB;AAAA,MACA,cAAc,CAACA,MAAM;;AACnB,cAAME,IAASN,EAAA;AACd,QAAAI,EAAE,OAAuB,MAAM,kBAAkBE,EAAO,mBAAmB,KAC5ED,IAAAP,EAAM,iBAAN,QAAAO,EAAA,KAAAP,GAAqBM;AAAA,MACvB;AAAA,MAEC,UAAAP;AAAA,IAAA;AAAA,EAAA;AAGP,GCnFaU,KAAoC,CAAC;AAAA,EAChD,OAAAC;AAAA,EACA,OAAAC;AAAA,EACA,MAAAC;AAAA,EACA,qBAAAC,IAAsB;AAAA,EACtB,WAAAC,IAAY;AAAA,EACZ,aAAAC,IAAc;AAAA,EACd,cAAAC;AAAA,EACA,OAAAC;AAAA,EACA,OAAAC,IAAQ;AAAA,EACR,WAAApB,IAAY;AACd,MAAM;AACJ,QAAMqB,IACJ,gBAAAC,EAAC,OAAA,EAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,QACnD,UAAA;AAAA,IAAA,gBAAAhB,EAAC,QAAA,EAAK,GAAE,KAAI,GAAE,KAAI,OAAM,MAAK,QAAO,MAAK,IAAG,KAAI,QAAO,gBAAe,aAAY,KAAI;AAAA,IACtF,gBAAAA,EAAC,UAAK,GAAE,mBAAkB,QAAO,gBAAe,aAAY,KAAI,eAAc,QAAA,CAAQ;AAAA,EAAA,GACxF;AAGF,SACE,gBAAAgB;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,oLAAoLtB,CAAS;AAAA,MACxM,OAAO;AAAA,QACL,OAAO,OAAOoB,KAAU,WAAW,GAAGA,CAAK,OAAOA;AAAA,QAClD,WAAW;AAAA,QACX,YAAY;AAAA,MAAA;AAAA,MAEd,cAAc,CAACZ,MAAM;AACnB,QAAAA,EAAE,cAAc,MAAM,YAAY;AAAA,MACpC;AAAA,MACA,cAAc,CAACA,MAAM;AACnB,QAAAA,EAAE,cAAc,MAAM,YAAY;AAAA,MACpC;AAAA,MAEA,UAAA;AAAA,QAAA,gBAAAc,EAAC,OAAA,EACC,UAAA;AAAA,UAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,0CACb,UAAA;AAAA,YAAA,gBAAAhB;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,WAAU;AAAA,gBACV,OAAO;AAAA,kBACL,iBAAiBS;AAAA,kBACjB,OAAOC;AAAA,gBAAA;AAAA,gBAGR,UAAAF,KAAQO;AAAA,cAAA;AAAA,YAAA;AAAA,YAEVF,KACC,gBAAAb,EAAC,OAAA,EAAI,WAAU,qIACZ,UAAAa,EAAA,CACH;AAAA,UAAA,GAEJ;AAAA,UACA,gBAAAb,EAAC,OAAA,EAAI,WAAU,oEACZ,UAAAM,GACH;AAAA,UACA,gBAAAU,EAAC,OAAA,EAAI,WAAU,oEACZ,UAAA;AAAA,YAAAL;AAAA,YAAY;AAAA,YAAEJ;AAAA,UAAA,EAAA,CACjB;AAAA,QAAA,GACF;AAAA,QACCK,KACC,gBAAAZ,EAAC,OAAA,EAAI,WAAU,yEACZ,UAAAY,EAAA,CACH;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR,GCtDaK,KAAoC,CAAC;AAAA,EAChD,MAAAT;AAAA,EACA,cAAAU,IAAe;AAAA,EACf,MAAAzB,IAAO;AAAA,EACP,WAAA0B,IAAY;AAAA,EACZ,WAAAzB,IAAY;AAAA,EACZ,aAAA0B;AAAA,EACA,SAAAC;AAAA,EACA,aAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,WAAAb;AAAA,EACA,WAAAc;AAAA,EACA,kBAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,OAAAC;AAAA,EACA,GAAG/B;AACL,MAAM;AACJ,EAAI,QAAQ,IAAI,aAAa,gBAC3B,QAAQ;AAAA,IACN;AAAA,EAAA;AAIJ,QAAMgC,IAAuB,qCAEvBC,IACJ,kFAEIC,IAAc;AAAA,IAClB,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,YAAY;AAAA,EAAA,GAGRC,IAAkB;AAAA,IACtB,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,YAAY;AAAA,EAAA,GAGRC,IAAiB;AAAA,IACrB,MAAM;AAAA,IACN,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,MAAM;AAAA,EAAA,GAGFC,IACJf,MAAiB,SACbzB,MAAS,OACP,SACAA,MAAS,OACT,UACAA,MAAS,OACT,UACA,2BACFA,MAAS,OACT,SACAA,MAAS,OACT,UACAA,MAAS,OACT,UACA,0BAEAyC,IAAaf,IAAY,WAAW,IAGpCgB,IAA8B;AAAA,IAClC,iBAAiBd;AAAA,IACjB,aAAaC,KAAe;AAAA,IAC5B,OAAOE;AAAA,IACP,GAAGG;AAAA,EAAA,GAICS,IAAmBX,IACrB,KACA,6BAGEY,IAAqBf,IAAc,KAAK,mBACxCgB,IAAmBd,IAAY,KAAK,iBACpCe,IAAoBhB,IACtB,KACA,+CAEEiB,IAAiB,GAAGX,CAAgB,IAAI,CAACnC,EAAU,SAAS,KAAK,KAAK,CAACA,EAAU,SAAS,KAAK,IAAIoC,EAAYrC,CAAI,IAAI,EAAE,IAC7He,IAAOyB,IAAkB,EAC3B,IAAIC,CAAU,IAAKxC,EAAU,SAAS,SAAS,IAA8B,KAA1BsC,EAAeN,CAAO,CAAM,IAAKhC,EAAU,SAAS,SAAS,IAAyB,KAArB2C,CAAuB,IAAIC,CAAgB,IAAIC,CAAiB,IAAIH,CAAgB,IAAI1C,CAAS,IAE/M+C,IAAsBvB,MAAiB,SAAS,WAAW,WAC3DwB,IAAmBhC,KAAa,iBAChCiC,IAAiBjC,IAAY,KAAK,uBAElCkC,IACJ,gBAAA5C;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,GAAG+B,EAAgBtC,CAAI,CAAC,IAAIiD,CAAgB;AAAA,MACvD,OAAM;AAAA,MACN,MAAK;AAAA,MACL,SAAQ;AAAA,MACR,QAAO;AAAA,MAEP,UAAA,gBAAA1C;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,eAAc;AAAA,UACd,gBAAe;AAAA,UACf,aAAa;AAAA,UACb,GAAE;AAAA,QAAA;AAAA,MAAA;AAAA,IACJ;AAAA,EAAA;AAIJ,2BACG,OAAA,EAAI,WAAW,GAAG4B,CAAoB,IAAIM,CAAU,IAClD,UAAA;AAAA,IAAA1B,KACC,gBAAAR;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAW,YAAYyC,CAAmB,IAAIC,CAAgB,IAC5DtB,IAAc,mBAAmB,EACnC,IAAIuB,CAAc;AAAA,QAClB,SAASvB;AAAA,QAER,UAAAZ,MAAS,KAAOoC,IAAoBpC;AAAA,MAAA;AAAA,IAAA;AAAA,IAGzC,gBAAAR;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,WAAWwC;AAAA,QACX,OAAO;AAAA,UACL,GAAGL;AAAA,UACH,GAAIZ,KAAoB;AAAA,YACtB,wBAAwBA;AAAA,UAAA;AAAA,UAE1B,GAAIE,KAAoB;AAAA,YACtB,uBAAuBA;AAAA,UAAA;AAAA,QACzB;AAAA,QAED,GAAG7B;AAAA,MAAA;AAAA,IAAA;AAAA,EACN,GACF;AAEJ,GCjKaiD,KAA4B,CAAC;AAAA,EACxC,QAAAC,IAAS;AAAA,EACT,WAAApD,IAAY;AAAA,EACZ,UAAAC;AAAA,EACA,GAAGC;AACL,MAAM;AAQJ,QAAMmD,IAAoB,GAPJ;AAAA,IACpB,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,EAAA,EAGqCD,CAAM,CAAC,eAAepD,CAAS;AAE1E,SACE,gBAAAM;AAAA,IAACgD;AAAAA,IAAA;AAAA,MACC,WAAWD;AAAA,MACV,GAAGnD;AAAA,MAEH,UAAAD;AAAA,IAAA;AAAA,EAAA;AAGP,GCFasD,KAA8B,CAAC;AAAA,EAC1C,OAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,WAAAC,IAAY;AAAA,EACZ,UAAAzD;AAAA,EACA,WAAAD,IAAY;AAAA,EACZ,kBAAA2D,IAAmB;AAAA,EACnB,UAAAC,IAAW;AAAA,EACX,MAAA7D,IAAO;AAAA,EACP,aAAA8D;AAAA,EACA,oBAAAC;AAAA,EACA,aAAAC;AAAA,EACA,aAAAnC;AAAA,EACA,OAAAK;AACF,MAAM;AACJ,QAAM,CAAC+B,GAAQC,CAAS,IAAIC,EAAS,EAAK,GACpCC,IAAcC,GAAuB,IAAI;AAE/C,EAAAC,EAAU,MAAM;AACd,UAAMC,IAAqB,CAACC,MAAiB;AAC3C,MAAIJ,EAAY,WAAW,CAACA,EAAY,QAAQ,SAASI,EAAM,MAAc,KAC3EN,EAAU,EAAK;AAAA,IAEnB;AAEA,WAAID,KACF,SAAS,iBAAiB,aAAaM,CAAkB,GAGpD,MAAM;AACX,eAAS,oBAAoB,aAAaA,CAAkB;AAAA,IAC9D;AAAA,EACF,GAAG,CAACN,CAAM,CAAC;AAEX,QAAMQ,IAAqB,MAAM;AAC/B,IAAI,CAACZ,KAAYH,MAAY,WAC3BQ,EAAU,CAACD,CAAM;AAAA,EAErB,GAEMS,IAA0B,MAAM;AACpC,IAAI,CAACb,KAAYH,MAAY,WAC3BQ,EAAU,EAAI;AAAA,EAElB,GAEMS,IAA0B,MAAM;AACpC,IAAI,CAACd,KAAYH,MAAY,WAC3BQ,EAAU,EAAK;AAAA,EAEnB,GAEMU,IAAsB,CAACC,MAA2B;AACtD,IAAI,CAACA,EAAK,YAAYA,EAAK,WACzBA,EAAK,QAAA,GAEPX,EAAU,EAAK;AAAA,EACjB,GAEMY,IAAmB;AAAA,IACvB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,SAAS;AAAA,IACT,UAAU;AAAA,EAAA,GAGNC,IAAmBpB,EAAU,WAAW,QAAQ,IAClD,wBACA,qBAEEtB,IAAc;AAAA,IAClB,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,YAAY;AAAA,EAAA,GAGR2C,IAAkB;AAAA,IACtB,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,YAAY;AAAA,EAAA,GAIRC,IAAoB,oBACpBC,IAAqB,mBACrBC,IAAqB,gBAGrBC,IAAkBrB,IAAqB,EAAE,iBAAiBA,EAAA,IAAuB,CAAA,GACjFsB,IAAmBtB,IAAqB,KAAKkB,GAG7CK,IAAoBtB,IAAc,EAAE,OAAOA,EAAA,IAAgB,CAAA,GAC3DuB,IAAqBvB,IAAc,EAAE,iBAAiBA,IAAc,KAAA,IAAS,CAAA,GAG7EwB,IAAmB3D,KAAeqD;AAExC,SACE,gBAAA3D;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAK6C;AAAA,MACL,WAAW,yBAAyBnE,CAAS;AAAA,MAC7C,cAAcyE;AAAA,MACd,cAAcC;AAAA,MACd,OAAAzC;AAAA,MAEA,UAAA;AAAA,QAAA,gBAAA3B;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,SAASkE;AAAA,YACT,WAAW,eAAeZ,IAAW,kCAAkC,gBAAgB;AAAA,YAEtF,UAAA3D;AAAA,UAAA;AAAA,QAAA;AAAA,QAGF+D,KAAU,CAACJ,KACV,gBAAAtD;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW,YAAYuE,EAAiBnB,CAAS,CAAC,IAAIoB,CAAgB,SAAS1C,EAAYrC,CAAI,CAAC,IAAI4D,CAAgB;AAAA,YAEpH,UAAA,gBAAArD;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,WAAW,kEAAkEiF,CAAgB;AAAA,gBAC7F,OAAO,EAAE,iBAAiB1B,KAAe,UAAA;AAAA,gBAExC,UAAAL,EAAM,IAAI,CAACoB,MAAS;AAEnB,sBAAIY,IAAiC,CAAA;AAErC,yBAAKZ,EAAK,aACJA,EAAK,SAEPY,IAAY;AAAA,oBACV,GAAGH;AAAA,oBACH,GAAGC;AAAA,kBAAA,IAEIxB,MAET0B,IAAYL,KAKd,gBAAA7D;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBAEC,SAAS,MAAMqD,EAAoBC,CAAI;AAAA,sBACvC,WAAW;AAAA;AAAA;AAAA,sBAGP,CAACjB,EAAiB,SAAS,KAAK,KAAK,CAACA,EAAiB,SAAS,KAAK,IAAIoB,EAAgBhF,CAAI,IAAI,EAAE;AAAA,sBACnG6E,EAAK,WAAW,kCAAkCQ,CAAgB;AAAA,sBAClER,EAAK,SAAUb,IAAc,KAAKmB,IAAsB,eAAe;AAAA;AAAA,sBAE3E,OAAOM;AAAA,sBAEN,UAAA;AAAA,wBAAAZ,EAAK,QAAQ,gBAAAtE,EAAC,QAAA,EAAK,WAAU,iBAAiB,YAAK,MAAK;AAAA,wBACzD,gBAAAA,EAAC,QAAA,EAAM,UAAAsE,EAAK,MAAA,CAAM;AAAA,sBAAA;AAAA,oBAAA;AAAA,oBAZbA,EAAK;AAAA,kBAAA;AAAA,gBAehB,CAAC;AAAA,cAAA;AAAA,YAAA;AAAA,UACH;AAAA,QAAA;AAAA,MACF;AAAA,IAAA;AAAA,EAAA;AAIR,GC/Jaa,KAA0B,CAAC;AAAA,EACtC,SAAAC;AAAA,EACA,OAAOC;AAAA,EACP,cAAAC;AAAA,EACA,aAAAC,IAAc;AAAA,EACd,UAAAC;AAAA,EACA,UAAAlC,IAAW;AAAA,EACX,MAAA7D,IAAO;AAAA,EACP,WAAA0B,IAAY;AAAA,EACZ,WAAAzB,IAAY;AAAA,EACZ,YAAA+F,IAAa;AAAA,EACb,YAAAC,IAAa;AAAA,EACb,mBAAAC,IAAoB;AAAA,EACpB,SAAAtE;AAAA,EACA,aAAAC;AAAA,EACA,kBAAAC,IAAmB;AAAA,EACnB,iBAAAqE;AAAA,EACA,mBAAAC;AAAA,EACA,cAAAC;AAAA,EACA,SAAApE,IAAU;AAAA,EACV,OAAAC;AACF,MAAM;AACJ,QAAM,CAAC+B,GAAQC,CAAS,IAAIC,EAAS,EAAK,GACpC,CAACmC,GAAeC,CAAgB,IAAIpC;AAAA,IACxC0B;AAAA,EAAA,GAEI,CAACW,GAAaC,CAAc,IAAItC,EAAS,EAAE,GAC3CuC,IAAYrC,GAAuB,IAAI,GACvCsC,IAAiBtC,GAAyB,IAAI,GAE9CvD,IAAQ8E,MAAoB,SAAYA,IAAkBU;AAEhE,EAAAhC,EAAU,MAAM;AACd,UAAMC,IAAqB,CAACC,MAAiB;AAC3C,MAAIkC,EAAU,WAAW,CAACA,EAAU,QAAQ,SAASlC,EAAM,MAAc,MACvEN,EAAU,EAAK,GACfuC,EAAe,EAAE;AAAA,IAErB;AAEA,WAAIxC,MACF,SAAS,iBAAiB,aAAaM,CAAkB,GACrD0B,KAAcU,EAAe,WAC/BA,EAAe,QAAQ,MAAA,IAIpB,MAAM;AACX,eAAS,oBAAoB,aAAapC,CAAkB;AAAA,IAC9D;AAAA,EACF,GAAG,CAACN,GAAQgC,CAAU,CAAC;AAEvB,QAAMW,IAAe,CAACC,MAAiC;AACrD,IAAIjB,MAAoB,UACtBW,EAAiBM,CAAW,GAE9Bd,KAAA,QAAAA,EAAWc,IACX3C,EAAU,EAAK,GACfuC,EAAe,EAAE;AAAA,EACnB,GAEMK,IAAc,CAACrG,MAAkB;AACrC,IAAAA,EAAE,gBAAA,GACEmF,MAAoB,UACtBW,EAAiB,MAAS,GAE5BR,KAAA,QAAAA,EAAW;AAAA,EACb,GAEMgB,IAAiBpB,EAAQ,KAAK,CAACqB,MAAQA,EAAI,UAAUlG,CAAK,GAE1DmG,IAAkBhB,IACpBN,EAAQ;AAAA,IAAO,CAACuB,MACdA,EAAO,MAAM,cAAc,SAASV,EAAY,YAAA,CAAa;AAAA,EAAA,IAE/Db,GAEEtD,IAAc;AAAA,IAClB,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,YAAY;AAAA,EAAA,GAGRE,IAAiB;AAAA,IACrB,MAAM;AAAA,IACN,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,MAAM;AAAA,EAAA,GAGFE,IAAaf,IAAY,WAAW,iBAGpCyF,IAAmB,MAAqB;AAC5C,UAAMxG,IAAwB,CAAA;AAC9B,WAAIiB,QAAgB,kBAAkBA,IAClCC,QAAoB,cAAcA,IAC/BlB;AAAA,EACT,GAEMyG,IAA0B,MAAqB;AACnD,UAAMzG,IAAwB,CAAA;AAC9B,WAAIwF,QAAwB,kBAAkBA,IAC1CC,QAA0B,QAAQA,IAC/BzF;AAAA,EACT,GAEM0G,KACJ,gBAAA9G;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,sDAAsD0D,IAAS,eAAe,EAAE;AAAA,MAC3F,MAAK;AAAA,MACL,QAAO;AAAA,MACP,SAAQ;AAAA,MAER,UAAA,gBAAA1D,EAAC,UAAK,eAAc,SAAQ,gBAAe,SAAQ,aAAa,GAAG,GAAE,iBAAA,CAAiB;AAAA,IAAA;AAAA,EAAA,GAIpF+G,uBACH,OAAA,EAAI,WAAU,WAAU,MAAK,QAAO,QAAO,gBAAe,SAAQ,aACjE,UAAA,gBAAA/G,EAAC,QAAA,EAAK,eAAc,SAAQ,gBAAe,SAAQ,aAAa,GAAG,GAAE,uBAAA,CAAuB,EAAA,CAC9F;AAGF,SACE,gBAAAgB,EAAC,SAAI,KAAKmF,GAAW,WAAW,yBAAyBjE,CAAU,IAAI,OAAAP,GACrE,UAAA;AAAA,IAAA,gBAAAX;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,SAAS,MAAM,CAACsC,KAAYK,EAAU,CAACD,CAAM;AAAA,QAC7C,WAAW;AAAA;AAAA;AAAA;AAAA,YAIP,CAAChE,EAAU,SAAS,KAAK,KAAK,CAACA,EAAU,SAAS,KAAK,KAAK,CAACA,EAAU,SAAS,IAAI,IAAIoC,EAAYrC,CAAI,IAAI,EAAE;AAAA,YAC7GC,EAAU,SAAS,SAAS,IAA8B,KAA1BsC,EAAeN,CAAO,CAAM;AAAA,YAC7D4B,IAAW,kCAAkC,gBAAgB;AAAA,YAC7DI,IAAS,2BAA2B,EAAE;AAAA,YACtChE,CAAS;AAAA;AAAA,QAEb,OAAO;AAAA,UACL,GAAGkH,EAAA;AAAA,UACH,iBAAiBvF,KAAWuF,EAAA,EAAmB,mBAAmB;AAAA,UAClE,aAAatF,KAAesF,EAAA,EAAmB,eAAe;AAAA,UAC9D,GAAIlD,KAAU;AAAA,YACZ,aAAanC;AAAA,YACb,WAAW,aAAaA,CAAgB;AAAA,UAAA;AAAA,UAE1C,GAAI,CAAC+B,KAAY,CAACI,KAAUoC,KAAgB;AAAA,YAC1C,QAAQ;AAAA,UAAA;AAAA,QACV;AAAA,QAEF,cAAc,CAAC5F,MAAM;AACnB,UAAI,CAACoD,KAAYwC,MACf5F,EAAE,cAAc,MAAM,kBAAkB4F;AAAA,QAE5C;AAAA,QACA,cAAc,CAAC5F,MAAM;AACnB,UAAImB,IACFnB,EAAE,cAAc,MAAM,kBAAkBmB,IAExCnB,EAAE,cAAc,MAAM,kBAAkB;AAAA,QAE5C;AAAA,QAEA,UAAA;AAAA,UAAA,gBAAAF,EAAC,QAAA,EAAK,WAAWwG,IAAiB,kBAAkB,iBACjD,UAAAA,IAAiBA,EAAe,QAAQjB,EAAA,CAC3C;AAAA,UACA,gBAAAvE,EAAC,OAAA,EAAI,WAAU,2BACZ,UAAA;AAAA,YAAAyE,KAAclF,KAAS,CAAC+C,KACvB,gBAAAtD;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,SAASuG;AAAA,gBACT,WAAU;AAAA,gBAET,UAAAQ;AAAA,cAAA;AAAA,YAAA;AAAA,YAGL,gBAAA/G,EAAC,QAAA,EAAK,WAAU,iBAAiB,UAAA8G,GAAA,CAAY;AAAA,UAAA,EAAA,CAC/C;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,IAGDpD,KAAU,CAACJ,KACV,gBAAAtD,EAAC,SAAI,WAAU,kEACb,UAAA,gBAAAgB,EAAC,OAAA,EAAI,WAAW,8FAA8FgB,EAAeN,CAAO,CAAC,IAClI,UAAA;AAAA,MAAAgE,KACC,gBAAA1F,EAAC,OAAA,EAAI,WAAU,sCACb,UAAA,gBAAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,KAAKoG;AAAA,UACL,MAAK;AAAA,UACL,OAAOH;AAAA,UACP,UAAU,CAAC/F,MAAMgG,EAAehG,EAAE,OAAO,KAAK;AAAA,UAC9C,aAAayF;AAAA,UACb,WAAU;AAAA,UACV,OAAO;AAAA,YACL,aAAArE;AAAA,YACA,WAAW,aAAaC,CAAgB;AAAA,UAAA;AAAA,UAE1C,SAAS,CAACrB,MAAMA,EAAE,gBAAA;AAAA,QAAgB;AAAA,MAAA,GAEtC;AAAA,MAEDwG,EAAgB,WAAW,IAC1B,gBAAA1G,EAAC,OAAA,EAAI,WAAU,+CAA8C,UAAA,mBAAA,CAE7D,IAEA0G,EAAgB,IAAI,CAACC,MACnB,gBAAA3G;AAAA,QAAC;AAAA,QAAA;AAAA,UAEC,SAAS,MAAM,CAAC2G,EAAO,YAAYN,EAAaM,EAAO,KAAK;AAAA,UAC5D,WAAW;AAAA;AAAA;AAAA,sBAGPA,EAAO,WAAW,kCAAkC,gBAAgB;AAAA;AAAA,UAExE,OAAO;AAAA,YACL,GAAIA,EAAO,UAAUpG,IAAQsG,EAAA,IAA4B,CAAA;AAAA,YACzD,iBAAiBF,EAAO,UAAUpG,IAASqF,KAAmB,YAAa;AAAA,YAC3E,OAAOe,EAAO,UAAUpG,IAASsF,KAAqB,YAAa;AAAA,YACnE,YAAYc,EAAO,UAAUpG,IAAQ,WAAW;AAAA,UAAA;AAAA,UAElD,cAAc,CAACL,MAAM;AACnB,YAAI,CAACyG,EAAO,YAAYA,EAAO,UAAUpG,MACvCL,EAAE,cAAc,MAAM,kBAAkB4F,KAAgB;AAAA,UAE5D;AAAA,UACA,cAAc,CAAC5F,MAAM;AACnB,YAAIyG,EAAO,UAAUpG,MACnBL,EAAE,cAAc,MAAM,kBAAkB;AAAA,UAE5C;AAAA,UAEC,UAAAyG,EAAO;AAAA,QAAA;AAAA,QAxBHA,EAAO;AAAA,MAAA,CA0Bf;AAAA,IAAA,EAAA,CAEL,EAAA,CACF;AAAA,EAAA,GAEJ;AAEJ,GCpOaK,KAAQ,CAAgC;AAAA,EACnD,SAAAC;AAAA,EACA,YAAAC;AAAA,EACA,QAAAC,IAAS;AAAA,EACT,YAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,OAAAC;AAAA,EACA,WAAA5H,IAAY;AAAA,EACZ,UAAA6H,IAAW;AAAA,EACX,SAAAC,IAAU;AAAA,EACV,MAAA/H,IAAO;AAAA,EACP,eAAAgI;AAAA,EACA,iBAAAC;AAAA,EACA,eAAAC;AAAA,EACA,aAAArG;AAAA,EACA,iBAAAsG;AAAA,EACA,SAAAlG,IAAU;AAAA,EACV,OAAAC;AACF,MAAqB;AACnB,QAAM,CAACkG,GAAaC,CAAc,IAAIlE;AAAA,IACpCwD,KAAc,OAAOA,KAAe,YAAWA,EAAW,WAAW;AAAA,EAAI,GAErE,CAACW,GAAUC,CAAW,IAAIpE;AAAA,IAC9BwD,KAAc,OAAOA,KAAe,YAAWA,EAAW,YAAY;AAAA,EAAK,GAIvEa,IAAa;AAAA,IACjB,IAAI;AAAA,MACF,eAAe;AAAA,MACf,gBAAgB;AAAA,MAChB,YAAY;AAAA,MACZ,aAAa;AAAA,MACb,kBAAkB;AAAA,IAAA;AAAA,IAEpB,IAAI;AAAA,MACF,eAAe;AAAA,MACf,gBAAgB;AAAA,MAChB,YAAY;AAAA,MACZ,aAAa;AAAA,MACb,kBAAkB;AAAA,IAAA;AAAA,IAEpB,IAAI;AAAA,MACF,eAAe;AAAA,MACf,gBAAgB;AAAA,MAChB,YAAY;AAAA,MACZ,aAAa;AAAA,MACb,kBAAkB;AAAA,IAAA;AAAA,IAEpB,YAAY;AAAA,MACV,eAAe;AAAA,MACf,gBAAgB;AAAA,MAChB,YAAY;AAAA,MACZ,aAAa;AAAA,MACb,kBAAkB;AAAA,IAAA;AAAA,EACpB,GAIIjG,IAAiB;AAAA,IACrB,MAAM;AAAA,IACN,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,OAAO;AAAA,EAAA,GAGHkG,IAAoBD,EAAWxI,CAAI,GACnC0I,IAAsBnG,EAAeN,CAAO,GAE5C0G,IAAY,CAACC,GAAWC,MACxB,OAAOnB,KAAW,aACbA,EAAOkB,CAAM,IAEfA,EAAOlB,CAAM,KAAK,OAAOmB,CAAK,GAGjCC,IAAW,CAACF,GAAWG,MACtBA,IACEA,EAAU,MAAM,GAAG,EAAE,OAAO,CAACC,GAAKC,MAAQD,KAAA,gBAAAA,EAAMC,IAAML,CAAM,IAD5CA,GAKnBM,IACJvB,MAAe,KACXF,IACAA,EAAW,OAAOW,IAAc,KAAKE,GAAUF,IAAcE,CAAQ,GAErEa,IAAmB,CAACC,MAAiB;AACzC,IAAAf,EAAee,CAAI,GACfzB,KAAc,OAAOA,KAAe,YAAYA,EAAW,YAC7DA,EAAW,SAASyB,GAAMd,CAAQ;AAAA,EAEtC,GAEMe,IAAuB,CAACC,MAAwB;AACpD,IAAAf,EAAYe,CAAW,GACvBjB,EAAe,CAAC,GACZV,KAAc,OAAOA,KAAe,YAAYA,EAAW,YAC7DA,EAAW,SAAS,GAAG2B,CAAW;AAAA,EAEtC;AAEA,SACE,gBAAA/H,EAAC,OAAA,EAAI,WAAU,UAAS,OAAAW,GACtB,UAAA;AAAA,IAAA,gBAAA3B;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAW,mBAAmBmI,KAAuB,aAAa;AAAA,QAClE,OAAO,EAAE,aAAa7G,KAAe,UAAA;AAAA,QAErC,UAAA,gBAAAN,EAAC,WAAM,WAAW,UAAUuG,IAAW,oBAAoB,EAAE,IAAI7H,CAAS,IACxE,UAAA;AAAA,UAAA,gBAAAM;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,OAAO;AAAA,gBACL,iBAAiByH,KAAiB;AAAA,gBAClC,OAAOC,KAAmB;AAAA,cAAA;AAAA,cAG5B,4BAAC,MAAA,EACE,UAAAT,EAAQ,IAAI,CAAC+B,GAAQC,MACpB,gBAAAjJ;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBAEC,WAAW,GAAGkI,EAAkB,aAAa,cAAcA,EAAkB,cAAc,yCACzFX,KAAY0B,MAAQhC,EAAQ,SAAS,IAAI,aAAa,EACxD,IACE+B,EAAO,UAAU,WACb,gBACAA,EAAO,UAAU,UACjB,eACA,EACN;AAAA,kBACA,OAAO;AAAA,oBACL,OAAOA,EAAO;AAAA,oBACd,aAAa1H,KAAe;AAAA,oBAC5B,OAAOoG,KAAmB;AAAA,kBAAA;AAAA,kBAG3B,UAAAsB,EAAO;AAAA,gBAAA;AAAA,gBAhBHA,EAAO;AAAA,cAAA,CAkBf,EAAA,CACH;AAAA,YAAA;AAAA,UAAA;AAAA,UAEF,gBAAAhJ;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,OAAO,EAAE,aAAasB,KAAe,UAAA;AAAA,cAEpC,UAAA+F,sBACE,MAAA,EACC,UAAA,gBAAArH;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,SAASiH,EAAQ;AAAA,kBACjB,WAAW,GAAGiB,EAAkB,UAAU;AAAA,kBAC1C,OAAO,EAAE,OAAO,UAAA;AAAA,kBAEhB,UAAA,gBAAAlH,EAAC,OAAA,EAAI,WAAU,oCACb,UAAA;AAAA,oBAAA,gBAAAA;AAAA,sBAAC;AAAA,sBAAA;AAAA,wBACC,WAAU;AAAA,wBACV,OAAM;AAAA,wBACN,MAAK;AAAA,wBACL,SAAQ;AAAA,wBAER,UAAA;AAAA,0BAAA,gBAAAhB;AAAA,4BAAC;AAAA,4BAAA;AAAA,8BACC,WAAU;AAAA,8BACV,IAAG;AAAA,8BACH,IAAG;AAAA,8BACH,GAAE;AAAA,8BACF,QAAO;AAAA,8BACP,aAAY;AAAA,4BAAA;AAAA,0BAAA;AAAA,0BAEd,gBAAAA;AAAA,4BAAC;AAAA,4BAAA;AAAA,8BACC,WAAU;AAAA,8BACV,MAAK;AAAA,8BACL,GAAE;AAAA,4BAAA;AAAA,0BAAA;AAAA,wBACJ;AAAA,sBAAA;AAAA,oBAAA;AAAA,oBACI;AAAA,kBAAA,EAAA,CAER;AAAA,gBAAA;AAAA,cAAA,GAEJ,IACE2I,EAAc,WAAW,sBAC1B,MAAA,EACC,UAAA,gBAAA3I;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,SAASiH,EAAQ;AAAA,kBACjB,WAAW,GAAGiB,EAAkB,UAAU;AAAA,kBAC1C,OAAO,EAAE,OAAO,UAAA;AAAA,kBACjB,UAAA;AAAA,gBAAA;AAAA,cAAA,GAGH,IAEAS,EAAc,IAAI,CAACN,GAAQC,MAAU;AACnC,sBAAMY,IAAW5B,IAAQA,EAAMe,GAAQC,CAAK,IAAI,CAAA,GAC1Ca,IAAY3B,KAAWc,IAAQ,MAAM,IAAKV,KAAmB,YAAa,eAC1EwB,IAAUzB,KAAiB;AACjC,uBACE,gBAAA3H;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBAEC,WAAU;AAAA,oBACV,OAAO;AAAA,sBACL,iBAAiBmJ;AAAA,oBAAA;AAAA,oBAEnB,cAAc,CAACjJ,MAAM;AACnB,uBAAIyH,KAAiB,CAACH,KAAWc,IAAQ,MAAM,OAC7CpI,EAAE,cAAc,MAAM,kBAAkBkJ;AAAA,oBAE5C;AAAA,oBACA,cAAc,CAAClJ,MAAM;AACnB,sBAAAA,EAAE,cAAc,MAAM,kBAAkBiJ;AAAA,oBAC1C;AAAA,oBACC,GAAGD;AAAA,oBAEH,UAAAjC,EAAQ,IAAI,CAAC+B,GAAQK,MAAW;AAC/B,4BAAM9I,IAAQgI,EAASF,GAAQW,EAAO,SAAS,GACzCM,KAAUN,EAAO,SAASA,EAAO,OAAOzI,GAAO8H,GAAQC,CAAK,IAAI/H;AAEtE,6BACE,gBAAAP;AAAA,wBAAC;AAAA,wBAAA;AAAA,0BAEC,WAAW,GAAGkI,EAAkB,UAAU,IAAIA,EAAkB,WAAW,kBACzEX,KAAY8B,MAAWpC,EAAQ,SAAS,IAAI,aAAa,EAC3D,IACE+B,EAAO,UAAU,WACb,gBACAA,EAAO,UAAU,UACjB,eACA,EACN;AAAA,0BACA,OAAO;AAAA,4BACL,aAAa1H,KAAe;AAAA,0BAAA;AAAA,0BAG7B,UAAAgI;AAAA,wBAAA;AAAA,wBAdIN,EAAO;AAAA,sBAAA;AAAA,oBAiBlB,CAAC;AAAA,kBAAA;AAAA,kBAtCIZ,EAAUC,GAAQC,CAAK;AAAA,gBAAA;AAAA,cAyClC,CAAC;AAAA,YAAA;AAAA,UAAA;AAAA,QAEL,EAAA,CACF;AAAA,MAAA;AAAA,IAAA;AAAA,IAIDlB,MAAe,MACd,gBAAApH;AAAA,MAACuJ;AAAA,MAAA;AAAA,QACC,SAAS1B;AAAA,QACT,UAAAE;AAAA,QACA,OAAOb,EAAW;AAAA,QAClB,UAAU0B;AAAA,QACV,kBAAkBE;AAAA,QAClB,iBACE1B,KAAc,OAAOA,KAAe,WAAWA,EAAW,kBAAkB;AAAA,QAE9E,iBACEA,KAAc,OAAOA,KAAe,WAChCA,EAAW,kBACX,CAAC,IAAI,IAAI,IAAI,GAAG;AAAA,QAEtB,WAAWA,KAAc,OAAOA,KAAe,WAAWA,EAAW,YAAY;AAAA,QACjF,MACEA,KAAc,OAAOA,KAAe,YAAYA,EAAW,OACvDA,EAAW,OACX3H,MAAS,eACT,OACAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAER,GAEJ;AAEJ,GAcM8J,KAAkC,CAAC;AAAA,EACvC,SAAAC;AAAA,EACA,UAAAzB;AAAA,EACA,OAAA0B;AAAA,EACA,UAAAjE;AAAA,EACA,kBAAAkE;AAAA,EACA,iBAAAC,IAAkB;AAAA,EAClB,iBAAAC,IAAkB,CAAC,IAAI,IAAI,IAAI,GAAG;AAAA,EAClC,WAAAC,IAAY;AAAA,EACZ,MAAApK,IAAO;AACT,MAAM;AACJ,QAAMqK,IAAa,KAAK,KAAKL,IAAQ1B,CAAQ,GACvCgC,KAAaP,IAAU,KAAKzB,IAAW,GACvCiC,IAAU,KAAK,IAAIR,IAAUzB,GAAU0B,CAAK,GAE5C3H,IAAc;AAAA,IAClB,IAAI;AAAA,MACF,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,KAAK;AAAA,IAAA;AAAA,IAEP,IAAI;AAAA,MACF,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,KAAK;AAAA,IAAA;AAAA,IAEP,IAAI;AAAA,MACF,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,KAAK;AAAA,IAAA;AAAA,EACP,GAGImI,IAAiB,MAAM;AAC3B,UAAMC,IAA6B,CAAA;AAGnC,QAAIJ,KAAc;AAChB,eAASK,IAAI,GAAGA,KAAKL,GAAYK;AAC/B,QAAAD,EAAM,KAAKC,CAAC;AAAA,aAGVX,KAAW,GAAG;AAChB,eAASW,IAAI,GAAGA,KAAK,GAAGA,IAAK,CAAAD,EAAM,KAAKC,CAAC;AACzC,MAAAD,EAAM,KAAK,KAAK,GAChBA,EAAM,KAAKJ,CAAU;AAAA,IACvB,WAAWN,KAAWM,IAAa,GAAG;AACpC,MAAAI,EAAM,KAAK,CAAC,GACZA,EAAM,KAAK,KAAK;AAChB,eAASC,IAAIL,IAAa,GAAGK,KAAKL,GAAYK,IAAK,CAAAD,EAAM,KAAKC,CAAC;AAAA,IACjE,OAAO;AACL,MAAAD,EAAM,KAAK,CAAC,GACZA,EAAM,KAAK,KAAK;AAChB,eAASC,IAAIX,IAAU,GAAGW,KAAKX,IAAU,GAAGW,IAAK,CAAAD,EAAM,KAAKC,CAAC;AAC7D,MAAAD,EAAM,KAAK,KAAK,GAChBA,EAAM,KAAKJ,CAAU;AAAA,IACvB;AAGF,WAAOI;AAAA,EACT;AAEA,SACE,gBAAAlJ,EAAC,OAAA,EAAI,WAAU,sFACZ,UAAA;AAAA,IAAA6I,KACC,gBAAA7I,EAAC,OAAA,EAAI,WAAU,0BACZ,UAAA;AAAA,MAAA+I;AAAA,MAAU;AAAA,MAAEC;AAAA,MAAQ;AAAA,MAAKP;AAAA,MAAM;AAAA,IAAA,GAClC;AAAA,IAGF,gBAAAzI,EAAC,OAAA,EAAI,WAAU,2BACZ,UAAA;AAAA,MAAA2I,KACC,gBAAA3J;AAAA,QAACmF;AAAA,QAAA;AAAA,UACC,OAAO4C,EAAS,SAAA;AAAA,UAChB,UAAU,CAACxH,MAAUmJ,EAAiB,OAAOnJ,CAAK,CAAC;AAAA,UACnD,SAASqJ,EAAgB,IAAI,CAACnK,OAAU;AAAA,YACtC,OAAOA,EAAK,SAAA;AAAA,YACZ,OAAO,GAAGA,CAAI;AAAA,UAAA,EACd;AAAA,UACF,MAAK;AAAA,UACL,WAAU;AAAA,QAAA;AAAA,MAAA;AAAA,MAId,gBAAAuB,EAAC,OAAA,EAAI,WAAU,kCAAiC,cAAW,cACzD,UAAA;AAAA,QAAA,gBAAAhB;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,SAAS,MAAMwF,EAASgE,IAAU,CAAC;AAAA,YACnC,UAAUA,MAAY;AAAA,YACtB,WAAW,+DAA+D1H,EAAYrC,CAAI,EAAE,GAAG;AAAA,YAE/F,UAAA,gBAAAO,EAAC,OAAA,EAAI,WAAW8B,EAAYrC,CAAI,EAAE,MAAM,SAAQ,aAAY,MAAK,QAAO,QAAO,gBAC7E,UAAA,gBAAAO;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,eAAc;AAAA,gBACd,gBAAe;AAAA,gBACf,aAAa;AAAA,gBACb,GAAE;AAAA,cAAA;AAAA,YAAA,EACJ,CACF;AAAA,UAAA;AAAA,QAAA;AAAA,QAGDiK,IAAiB,IAAI,CAACpB,GAAMP,MACvBO,MAAS,QAET,gBAAA7I;AAAA,UAAC;AAAA,UAAA;AAAA,YAEC,WAAW,oDAAoD8B,EAAYrC,CAAI,EAAE,MAAM;AAAA,YACxF,UAAA;AAAA,UAAA;AAAA,UAFM,YAAY6I,CAAK;AAAA,QAAA,IAS1B,gBAAAtI;AAAA,UAAC;AAAA,UAAA;AAAA,YAEC,SAAS,MAAMwF,EAASqD,CAAc;AAAA,YACtC,WAAW,+DAA+D/G,EAAYrC,CAAI,EAAE,MAAM,gGAChG+J,MAAYX,IACR,sCACA,kCACN;AAAA,YAEC,UAAAA;AAAA,UAAA;AAAA,UARIA;AAAA,QAAA,CAWV;AAAA,QAED,gBAAA7I;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,SAAS,MAAMwF,EAASgE,IAAU,CAAC;AAAA,YACnC,UAAUA,MAAYM;AAAA,YACtB,WAAW,+DAA+DhI,EAAYrC,CAAI,EAAE,GAAG;AAAA,YAE/F,UAAA,gBAAAO,EAAC,OAAA,EAAI,WAAW8B,EAAYrC,CAAI,EAAE,MAAM,SAAQ,aAAY,MAAK,QAAO,QAAO,gBAC7E,UAAA,gBAAAO;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,eAAc;AAAA,gBACd,gBAAe;AAAA,gBACf,aAAa;AAAA,gBACb,GAAE;AAAA,cAAA;AAAA,YAAA,EACJ,CACF;AAAA,UAAA;AAAA,QAAA;AAAA,MACF,EAAA,CACF;AAAA,IAAA,EAAA,CACF;AAAA,EAAA,GACF;AAEJ,GCxbaoK,KAA8B,CAAC;AAAA,EAC1C,OAAAC;AAAA,EACA,aAAAC;AAAA,EACA,mBAAA3E,IAAoB;AAAA,EACpB,UAAA4E;AAAA,EACA,SAAAC;AAAA,EACA,SAAAC;AAAA,EACA,WAAA/K,IAAY;AAAA,EACZ,MAAAD,IAAO;AAAA,EACP,YAAAiL;AAAA,EACA,kBAAAC;AAAA,EACA,eAAAC,IAAgB;AAAA,EAChB,mBAAAC,IAAoB;AAAA,EACpB,wBAAAC,IAAyB;AAAA,EACzB,SAAApJ,IAAU;AAAA,EACV,OAAAC;AAAA,EACA,mBAAAoJ,IAAoB;AAAA,EACpB,sBAAAC;AACF,MAAM;AACJ,QAAMC,IAAqB,CAAC/K,MAAqC;AAC/D,IAAAqK,KAAA,QAAAA,EAAWrK,EAAE,OAAO;AAAA,EACtB,GA0DMgL,IAvDa;AAAA,IACjB,IAAI;AAAA,MACF,WAAW;AAAA,MACX,aAAa;AAAA,MACb,iBAAiB;AAAA,MACjB,iBAAiB;AAAA,MACjB,eAAe;AAAA,MACf,mBAAmB;AAAA,MACnB,UAAU;AAAA,MACV,SAAS;AAAA,MACT,KAAK;AAAA,MACL,UAAU;AAAA,MACV,mBAAmB;AAAA,IAAA;AAAA,IAErB,IAAI;AAAA,MACF,WAAW;AAAA,MACX,aAAa;AAAA,MACb,iBAAiB;AAAA,MACjB,iBAAiB;AAAA,MACjB,eAAe;AAAA,MACf,mBAAmB;AAAA,MACnB,UAAU;AAAA,MACV,SAAS;AAAA,MACT,KAAK;AAAA,MACL,UAAU;AAAA,MACV,mBAAmB;AAAA,IAAA;AAAA,IAErB,IAAI;AAAA,MACF,WAAW;AAAA,MACX,aAAa;AAAA,MACb,iBAAiB;AAAA,MACjB,iBAAiB;AAAA,MACjB,eAAe;AAAA,MACf,mBAAmB;AAAA,MACnB,UAAU;AAAA,MACV,SAAS;AAAA,MACT,KAAK;AAAA,MACL,UAAU;AAAA,MACV,mBAAmB;AAAA,IAAA;AAAA,IAErB,YAAY;AAAA,MACV,WAAW;AAAA,MACX,aAAa;AAAA,MACb,iBAAiB;AAAA,MACjB,iBAAiB;AAAA,MACjB,eAAe;AAAA,MACf,mBAAmB;AAAA,MACnB,UAAU;AAAA,MACV,SAAS;AAAA,MACT,KAAK;AAAA,MACL,UAAU;AAAA,MACV,mBAAmB;AAAA,IAAA;AAAA,EACrB,EAGwBzL,CAAI,GAWxB0L,IARe;AAAA,IACnB,MAAM;AAAA,IACN,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,MAAM;AAAA,EAAA,EAGyBzJ,CAAO,GAGlC0J,IAAkC;AAAA,IACtC,iBAAiBR;AAAA,IACjB,aAAaC;AAAA,EAAA;AAGf,SACE,gBAAA7J;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,GAAGkK,EAAO,OAAO,SAASxL,CAAS;AAAA,MAC9C,OAAAiC;AAAA,MAGE,UAAA;AAAA,SAAA0I,KAASC,wBACR,OAAA,EACE,UAAA;AAAA,UAAAD,KACC,gBAAArK;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAW,GAAGkL,EAAO,SAAS,IAAIA,EAAO,WAAW;AAAA,cACpD,OAAO,EAAE,OAAOR,KAAc,UAAA;AAAA,cAE7B,UAAAL;AAAA,YAAA;AAAA,UAAA;AAAA,UAGJC,KACC,gBAAAtK;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAW,GAAGkL,EAAO,eAAe,IAAIA,EAAO,iBAAiB;AAAA,cAChE,OAAO,EAAE,OAAOP,KAAoB,UAAA;AAAA,cAEnC,UAAAL;AAAA,YAAA;AAAA,UAAA;AAAA,QACH,GAEJ;AAAA,0BAID,OAAA,EAAI,WAAW,2EAA2EY,EAAO,GAAG,IAElG,UAAA;AAAA,UAAAX,KACC,gBAAAvK,EAAC,OAAA,EAAI,WAAW,UAAUkL,EAAO,QAAQ,IACvC,UAAA,gBAAAlK,EAAC,OAAA,EAAI,WAAU,YACb,UAAA;AAAA,YAAA,gBAAAhB,EAAC,OAAA,EAAI,WAAU,wEACb,UAAA,gBAAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,WAAW,GAAGkL,EAAO,QAAQ;AAAA,gBAC7B,MAAK;AAAA,gBACL,QAAO;AAAA,gBACP,SAAQ;AAAA,gBAER,UAAA,gBAAAlL;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,eAAc;AAAA,oBACd,gBAAe;AAAA,oBACf,aAAa;AAAA,oBACb,GAAE;AAAA,kBAAA;AAAA,gBAAA;AAAA,cACJ;AAAA,YAAA,GAEJ;AAAA,YACA,gBAAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,MAAK;AAAA,gBACL,aAAa2F;AAAA,gBACb,UAAUsF;AAAA,gBACV,WAAW,gBAAgBC,EAAO,iBAAiB,SAASA,EAAO,aAAa,WAAWC,CAAW,0DAA0DD,EAAO,eAAe;AAAA,gBACtL,OAAOE;AAAA,gBACP,SAAS,CAAClL,MAAM;AACd,kBAAAA,EAAE,cAAc,MAAM,cAAc4K,GACpC5K,EAAE,cAAc,MAAM,YAAY;AAAA,gBACpC;AAAA,gBACA,QAAQ,CAACA,MAAM;AACb,kBAAAA,EAAE,cAAc,MAAM,cAAc2K,GACpC3K,EAAE,cAAc,MAAM,YAAY;AAAA,gBACpC;AAAA,cAAA;AAAA,YAAA;AAAA,UACF,EAAA,CACF,EAAA,CACF;AAAA,4BAID,OAAA,EAAI,WAAW,4CACb,UAAA6K,KAAqBC,IACpBA,IAEAR,EAAA,CAEJ;AAAA,QAAA,GACF;AAAA,QAGCC,uBACE,OAAA,EAAI,WAAW,+BAA+BS,EAAO,GAAG,IACtD,UAAAT,EAAA,CACH;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR,GCnNMY,KAAsC;AAAA,EAC1C,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,YAAY;AACd,GAsBaC,KAAwB,CAAC;AAAA,EACpC,MAAAC;AAAA,EACA,SAAAC;AAAA,EACA,OAAAnB;AAAA,EACA,UAAA1K;AAAA,EACA,QAAA8L;AAAA,EACA,OAAA3K;AAAA,EACA,MAAArB,IAAO;AAAA,EACP,UAAAiM,IAAW;AAAA,EACX,cAAAC,IAAe;AAAA,EACf,UAAAC,IAAW;AAAA,EACX,WAAAlM,IAAY;AAAA,EACZ,SAAA2B,IAAU;AAAA,EACV,eAAAoG,IAAgB;AAAA,EAChB,cAAAoE,IAAe;AAAA,EACf,eAAAC,IAAgB;AAAA,EAChB,iBAAAC,IAAkB;AAAA,EAClB,WAAAC,IAAY;AACd,MAAM;AACJ,QAAM,CAACC,GAAWC,CAAY,IAAItI,EAAS,EAAK,GAC1C,CAACuI,GAAaC,CAAc,IAAIxI,EAAS,EAAK,GAG9CyI,IAAiBvL,KAASuK,GAAS5L,CAAI,GAIvC6M,IAA4B;AAAA,IAChC,OAJwB,OAAOD,KAAmB,WAAW,GAAGA,CAAc,OAAOA;AAAA,IAKrF,UAAU;AAAA,IACV,iBAAiBhL;AAAA,EAAA,GAIbkL,IAA6B;AAAA,IACjC,iBAAiB9E;AAAA,EAAA,GAIb+E,IAA8B;AAAA,IAClC,iBAAiBX;AAAA,EAAA;AAqCnB,MAlCA9H,EAAU,MAAM;AACd,QAAIwH;AACF,MAAAW,EAAa,EAAI,GAEjB,WAAW,MAAME,EAAe,EAAI,GAAG,EAAE,GACzC,SAAS,KAAK,MAAM,WAAW;AAAA,SAC1B;AACL,MAAAA,EAAe,EAAK;AAEpB,YAAMK,IAAQ,WAAW,MAAM;AAC7B,QAAAP,EAAa,EAAK;AAAA,MACpB,GAAG,GAAG;AACN,sBAAS,KAAK,MAAM,WAAW,SACxB,MAAM,aAAaO,CAAK;AAAA,IACjC;AAAA,EACF,GAAG,CAAClB,CAAI,CAAC,GAGTxH,EAAU,MAAM;AACd,UAAM2I,IAAe,CAACxM,MAAqB;AACzC,MAAIA,EAAE,QAAQ,YAAYwL,KAAYH,KACpCC,EAAA;AAAA,IAEJ;AAEA,WAAID,KACF,SAAS,iBAAiB,WAAWmB,CAAY,GAG5C,MAAM;AACX,eAAS,oBAAoB,WAAWA,CAAY;AAAA,IACtD;AAAA,EACF,GAAG,CAACnB,GAAMC,GAASE,CAAQ,CAAC,GAExB,CAACO,EAAW,QAAO;AAEvB,QAAMU,IAAkB,MAAM;AAC5B,IAAIhB,KACFH,EAAA;AAAA,EAEJ,GAEMoB,IAAmB,CAAC1M,MAAkB;AAC1C,IAAAA,EAAE,gBAAA;AAAA,EACJ;AAEA,SACE,gBAAAc;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,SAAS2L;AAAA,MAGT,UAAA;AAAA,QAAA,gBAAA3M;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW,0DACTmM,IAAc,gBAAgB,WAChC;AAAA,YACA,OAAOK;AAAA,UAAA;AAAA,QAAA;AAAA,0BAIR,OAAA,EAAI,WAAW,mDAAmDZ,IAAW,iBAAiB,mBAAmB,IAChH,UAAA,gBAAA5K;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW,sFACTmL,IACI,wCACA,mCACN,IAAIzM,CAAS;AAAA,YACb,OAAO,EAAC,GAAG4M,GAAY,WAAW,OAAON,KAAc,WAAW,GAAGA,CAAS,OAAOA,EAAA;AAAA,YACrF,SAASY;AAAA,YAGP,UAAA;AAAA,eAAAvC,KAASqB,MACT,gBAAA1K;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,WAAW,wEAAwE+K,CAAe;AAAA,kBAClG,OAAOQ;AAAA,kBAEN,UAAA;AAAA,oBAAAlC,KAAS,gBAAArK,EAAC,MAAA,EAAG,WAAU,uCAAuC,UAAAqK,GAAM;AAAA,oBACpEqB,KACC,gBAAA1L;AAAA,sBAAC;AAAA,sBAAA;AAAA,wBACC,SAASwL;AAAA,wBACT,WAAU;AAAA,wBAEV,UAAA,gBAAAxL;AAAA,0BAAC;AAAA,0BAAA;AAAA,4BACC,WAAU;AAAA,4BACV,MAAK;AAAA,4BACL,QAAO;AAAA,4BACP,SAAQ;AAAA,4BAER,UAAA,gBAAAA;AAAA,8BAAC;AAAA,8BAAA;AAAA,gCACC,eAAc;AAAA,gCACd,gBAAe;AAAA,gCACf,aAAa;AAAA,gCACb,GAAE;AAAA,8BAAA;AAAA,4BAAA;AAAA,0BACJ;AAAA,wBAAA;AAAA,sBACF;AAAA,oBAAA;AAAA,kBACF;AAAA,gBAAA;AAAA,cAAA;AAAA,cAMN,gBAAAA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,WAAW,aAAa8L,CAAa;AAAA,kBAEpC,UAAAnM;AAAA,gBAAA;AAAA,cAAA;AAAA,cAIF8L,KACC,gBAAAzL,EAAC,OAAA,EAAI,WAAU,6DACZ,UAAAyL,EAAA,CACH;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA,EAEJ,CACF;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN,GCjLaoB,KAAwB,CAAC;AAAA,EACpC,UAAAlN;AAAA,EACA,SAAAH,IAAU;AAAA,EACV,MAAAC,IAAO;AAAA,EACP,KAAAqN,IAAM;AAAA,EACN,MAAAtM;AAAA,EACA,cAAAU,IAAe;AAAA,EACf,WAAAxB,IAAY;AAAA,EACZ,SAAA2B;AAAA,EACA,WAAAG;AAAA,EACA,aAAAF;AAAA,EACA,SAAAI,IAAU;AAAA,EACV,OAAAC;AACF,MAAM;AACJ,QAAMoL,IAAiB;AAAA,IACrB,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,MAAM;AAAA,EAAA,GAGFjL,IAAc;AAAA,IAClB,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,YAAY;AAAA,EAAA,GAGRkL,IAAiB;AAAA,IACrB,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,YAAY;AAAA,EAAA,GAGRC,IAAkB;AAAA,IACtB,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,MAAM;AAAA,EAAA,GAGFlL,IAAkB;AAAA,IACtB,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,YAAY;AAAA,EAAA,GAGRC,IAAiB;AAAA,IACrB,MAAM;AAAA,IACN,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,MAAM;AAAA,EAAA,GAGFG,IAA8B;AAAA,IAClC,GAAId,KAAW,EAAE,iBAAiBA,EAAA;AAAA,IAClC,GAAIG,KAAa,EAAE,OAAOA,EAAA;AAAA,IAC1B,GAAIF,KAAe,EAAE,aAAAA,GAAa,aAAa,OAAO,aAAa,QAAA;AAAA,IACnE,GAAGK;AAAA,EAAA;AAGL,SACE,gBAAAX;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,4EAA6EK,IAAoC,KAA1B0L,EAAevN,CAAO,CAAM,IAAIsC,EAAYrC,CAAI,CAAC,IAAIuC,EAAeN,CAAO,CAAC,IAAIhC,CAAS;AAAA,MAC3L,OAAOyC;AAAA,MAEN,UAAA;AAAA,QAAA2K,KACC,gBAAA9M,EAAC,QAAA,EAAK,WAAW,gBAAgBgN,EAAevN,CAAI,CAAC,IAAIwN,EAAgBzN,CAAO,CAAC,GAAA,CAAI;AAAA,QAEtFgB,KAAQU,MAAiB,UACxB,gBAAAlB,EAAC,QAAA,EAAK,WAAW,4BAA4B+B,EAAgBtC,CAAI,CAAC,IAC/D,UAAAe,EAAA,CACH;AAAA,QAEDb;AAAA,QACAa,KAAQU,MAAiB,WACxB,gBAAAlB,EAAC,QAAA,EAAK,WAAW,4BAA4B+B,EAAgBtC,CAAI,CAAC,IAC/D,UAAAe,EAAA,CACH;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR,GClFa0M,KAAwB,CAAC;AAAA,EACpC,OAAAhK;AAAA,EACA,SAAAsG,IAAU;AAAA,EACV,WAAA2D,IAAY;AAAA,EACZ,MAAA1N,IAAO;AAAA,EACP,SAAAD,IAAU;AAAA,EACV,WAAAE,IAAY;AAAA,EACZ,OAAAiC;AAAA,EACA,aAAAyL;AAAA,EACA,cAAAC;AAAA,EACA,WAAAC;AAAA,EACA,YAAAC;AAAA,EACA,WAAAC;AACF,MAAM;AACJ,QAAMC,IAAgB,CAACnF,GAAehE,MAChCA,EAAK,SAAeA,EAAK,SACzBgE,IAAQkB,IAAgB,WACxBlB,MAAUkB,IAAgB,YACvB,QAGHzH,IAAkB;AAAA,IACtB,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,YAAY;AAAA,EAAA,GAGR2L,IAAkB;AAAA,IACtB,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,YAAY;AAAA,EAAA,GAGRC,IAAyB;AAAA,IAC7B,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,YAAY;AAAA,EAAA,GAGRC,IAAa,CAACC,GAA4BrN,MAC1CA,MAEAqN,MAAW,6BAEV,OAAA,EAAI,WAAU,WAAU,MAAK,gBAAe,SAAQ,aACnD,UAAA,gBAAA7N;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,UAAS;AAAA,MACT,GAAE;AAAA,MACF,UAAS;AAAA,IAAA;AAAA,EAAA,GAEb,IAIA6N,MAAW,4BAEV,OAAA,EAAI,WAAU,WAAU,MAAK,gBAAe,SAAQ,aACnD,UAAA,gBAAA7N;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,UAAS;AAAA,MACT,GAAE;AAAA,MACF,UAAS;AAAA,IAAA;AAAA,EAAA,GAEb,IAIG,OAGH8N,IAAmB,CAACD,MAA+B;AACvD,UAAME,IAAYvO,MAAY;AAE9B,YAAQqO,GAAA;AAAA,MACN,KAAK;AACH,eAAO;AAAA,UACL,MAAME,IACF,8BAA8BX,IAAc,WAAWA,CAAW,MAAM,kBAAkB,KAC1F,GAAGA,IAAc,OAAOA,CAAW,MAAM,cAAc,eAAeA,IAAc,WAAWA,CAAW,MAAM,kBAAkB;AAAA,UACtI,OAAO;AAAA,UACP,aAAa;AAAA,UACb,MAAMI,IAAY,OAAOA,CAAS,MAAM;AAAA,UACxC,WAAWJ;AAAA,QAAA;AAAA,MAEf,KAAK;AACH,eAAO;AAAA,UACL,MAAMW,IACF,8BAA8BV,IAAe,WAAWA,CAAY,MAAM,kBAAkB,KAC5F,GAAGA,IAAe,OAAOA,CAAY,MAAM,cAAc,eAAeA,IAAe,WAAWA,CAAY,MAAM,kBAAkB;AAAA,UAC1I,OAAO;AAAA,UACP,aAAa;AAAA,UACb,MAAMG,IAAY,OAAOA,CAAS,MAAM;AAAA,UACxC,WAAWH;AAAA,QAAA;AAAA,MAEf,KAAK;AACH,eAAO;AAAA,UACL,MAAMU,IACF,8BAA8BR,IAAa,WAAWA,CAAU,MAAM,gBAAgB,KACtF,GAAGA,IAAa,OAAOA,CAAU,MAAM,YAAY,eAAeA,IAAa,WAAWA,CAAU,MAAM,gBAAgB;AAAA,UAC9H,OAAO;AAAA,UACP,aAAa;AAAA,UACb,MAAMC,IAAY,OAAOA,CAAS,MAAM;AAAA,UACxC,WAAWD;AAAA,QAAA;AAAA,MAEf;AACE,eAAO;AAAA,UACL,MAAM;AAAA,UACN,OAAO;AAAA,UACP,aAAa;AAAA,UACb,MAAMC,IAAY,OAAOA,CAAS,MAAM;AAAA,UACxC,WAAWF;AAAA,QAAA;AAAA,IACb;AAAA,EAEN;AAEA,SAAIH,MAAc,eAEd,gBAAAnN,EAAC,OAAA,EAAI,WAAW,oBAAoBN,CAAS,IAAI,OAAAiC,GAC9C,UAAAuB,EAAM,IAAI,CAACoB,GAAMgE,MAAU;AAC1B,UAAMuF,IAASJ,EAAcnF,GAAOhE,CAAI,GAClC0J,IAAgBF,EAAiBD,CAAM,GACvCI,IAAS3F,MAAUpF,EAAM,SAAS,GAClCgL,IAA2B,CAAA;AACjC,WAAIF,EAAc,cAChBE,EAAU,QAAQF,EAAc,YAIhC,gBAAAhN,EAAC,OAAA,EAAgB,WAAU,2BACzB,UAAA;AAAA,MAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,8BACb,UAAA;AAAA,QAAA,gBAAAhB;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW,oCAAoC+B,EAAgBtC,CAAI,CAAC,oDAAoDuO,EAAc,IAAI;AAAA,YAC1I,OAAOE;AAAA,YAEN,UAAAN,EAAWC,GAAQvJ,EAAK,IAAI;AAAA,UAAA;AAAA,QAAA;AAAA,QAE/B,gBAAAtD,EAAC,OAAA,EAAI,WAAU,oBACb,UAAA;AAAA,UAAA,gBAAAhB;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAW,GAAG0N,EAAgBjO,CAAI,CAAC,IAAIuO,EAAc,KAAK;AAAA,cAEzD,UAAA1J,EAAK;AAAA,YAAA;AAAA,UAAA;AAAA,UAEPA,EAAK,eACJ,gBAAAtE;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAW,GAAG2N,EAAuBlO,CAAI,CAAC,IAAIuO,EAAc,WAAW;AAAA,cAEtE,UAAA1J,EAAK;AAAA,YAAA;AAAA,UAAA;AAAA,QACR,EAAA,CAEJ;AAAA,MAAA,GACF;AAAA,MACC,CAAC2J,KACA,gBAAAjO;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAW,0BAA0BgO,EAAc,IAAI;AAAA,QAAA;AAAA,MAAA;AAAA,IACzD,EAAA,GA1BM1F,CA4BV;AAAA,EAEJ,CAAC,EAAA,CACH,IAKF,gBAAAtI,EAAC,OAAA,EAAI,WAAW,iBAAiBN,CAAS,IAAI,OAAAiC,GAC3C,UAAAuB,EAAM,IAAI,CAACoB,GAAMgE,MAAU;AAC1B,UAAMuF,IAASJ,EAAcnF,GAAOhE,CAAI,GAClC0J,IAAgBF,EAAiBD,CAAM,GACvCI,IAAS3F,MAAUpF,EAAM,SAAS,GAClCgL,IAA2B,CAAA;AACjC,WAAIF,EAAc,cAChBE,EAAU,QAAQF,EAAc,YAIhC,gBAAAhN,EAAC,OAAA,EAAgB,WAAU,QACzB,UAAA;AAAA,MAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,mCACb,UAAA;AAAA,QAAA,gBAAAhB;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW,oCAAoC+B,EAAgBtC,CAAI,CAAC,oDAAoDuO,EAAc,IAAI;AAAA,YAC1I,OAAOE;AAAA,YAEN,UAAAN,EAAWC,GAAQvJ,EAAK,IAAI;AAAA,UAAA;AAAA,QAAA;AAAA,QAE9B,CAAC2J,KACA,gBAAAjO;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW,qBAAqBgO,EAAc,IAAI;AAAA,YAClD,OAAO,EAAE,WAAW,OAAA;AAAA,UAAO;AAAA,QAAA;AAAA,MAC7B,GAEJ;AAAA,MACA,gBAAAhN,EAAC,OAAA,EAAI,WAAU,eACb,UAAA;AAAA,QAAA,gBAAAhB;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW,GAAG0N,EAAgBjO,CAAI,CAAC,IAAIuO,EAAc,KAAK;AAAA,YAEzD,UAAA1J,EAAK;AAAA,UAAA;AAAA,QAAA;AAAA,QAEPA,EAAK,eACJ,gBAAAtE;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW,GAAG2N,EAAuBlO,CAAI,CAAC,IAAIuO,EAAc,WAAW;AAAA,YAEtE,UAAA1J,EAAK;AAAA,UAAA;AAAA,QAAA;AAAA,MACR,EAAA,CAEJ;AAAA,IAAA,EAAA,GA5BQgE,CA6BV;AAAA,EAEJ,CAAC,EAAA,CACH;AAEJ,GCzNa6F,KAA8B,CAAC;AAAA,EAC1C,SAAAC,IAAU;AAAA,EACV,QAAAP,IAAS;AAAA,EACT,UAAAQ,IAAW;AAAA,EACX,aAAAC;AAAA,EACA,aAAAC;AAAA,EACA,MAAA9O,IAAO;AAAA,EACP,WAAAC,IAAY;AAAA,EACZ,QAAA8O;AAAA,EACA,SAAAnN;AAAA,EACA,cAAAoN;AAAA,EACA,gBAAAC;AAAA,EACA,YAAAC;AAAA,EACA,SAAAjN,IAAU;AACZ,MAAM;AACJ,QAAMkN,IAAiB,KAAK,IAAI,KAAK,KAAK,IAAI,GAAGR,CAAO,CAAC,GAEnDS,IAAgB;AAAA,IACpB,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,YAAY;AAAA,EAAA,GAGRnB,IAAkB;AAAA,IACtB,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,YAAY;AAAA,EAAA,GAGR1L,IAAiB;AAAA,IACrB,MAAM;AAAA,IACN,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,MAAM;AAAA,EAAA,GAGF8M,IAAiB,MAAM;AAC3B,QAAIR,EAAa,QAAOA;AAExB,YAAQT,GAAA;AAAA,MACN,KAAK;AACH,eAAOY,KAAgB;AAAA,MACzB,KAAK;AACH,eAAOC,KAAkB;AAAA,MAC3B,KAAK;AACH,eAAOrN,KAAW;AAAA,MACpB;AACE,eAAIuN,MAAmB,MAAYH,KAAgB,iBAC5CpN,KAAW;AAAA,IAAA;AAAA,EAExB,GAEM0N,IAAgB,MACbJ,KAAc,eAGjBK,IAAgB,MAChBnB,MAAW,aAAae,MAAmB,wBAE1C,OAAA,EAAI,WAAU,0BAAyB,MAAK,gBAAe,SAAQ,aAClE,UAAA,gBAAA5O;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,UAAS;AAAA,MACT,GAAE;AAAA,MACF,UAAS;AAAA,IAAA;AAAA,EAAA,GAEb,IAIA6N,MAAW,gCAEV,OAAA,EAAI,WAAU,wBAAuB,MAAK,gBAAe,SAAQ,aAChE,UAAA,gBAAA7N;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,UAAS;AAAA,MACT,GAAE;AAAA,MACF,UAAS;AAAA,IAAA;AAAA,EAAA,GAEb,IAIG,MAGHiP,IAAgB,MAChBT,IAAeA,EAAOI,CAAc,IACjC,GAAG,KAAK,MAAMA,CAAc,CAAC,KAGhC7O,IAASwO,IAAc,GAAGA,CAAW,OAAO;AAElD,SACE,gBAAAvN,EAAC,OAAA,EAAI,WAAW,2BAA2BtB,CAAS,IAClD,UAAA;AAAA,IAAA,gBAAAM,EAAC,OAAA,EAAI,WAAU,UACb,UAAA,gBAAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAW,0BAA0B6O,EAAcpP,CAAI,CAAC,IAAIuC,EAAeN,CAAO,CAAC,IAAIqN,EAAA,CAAe;AAAA,QACtG,OAAO,EAAE,QAAAhP,EAAA;AAAA,QAET,UAAA,gBAAAC;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW,GAAG8O,EAAA,CAAgB,IAAID,EAAcpP,CAAI,CAAC,IAAIuC,EAAeN,CAAO,CAAC,yCAC9EmM,MAAW,WAAW,oBAAoB,EAC5C;AAAA,YACA,OAAO;AAAA,cACL,OAAO,GAAGe,CAAc;AAAA,cACxB,QAAA7O;AAAA,YAAA;AAAA,UACF;AAAA,QAAA;AAAA,MACF;AAAA,IAAA,GAEJ;AAAA,IAECsO,KACC,gBAAArO,EAAC,OAAA,EAAI,WAAW,2BAA2B0N,EAAgBjO,CAAI,CAAC,8BAC7D,UAAAuP,EAAA,KAAmBC,EAAA,EAAc,CACpC;AAAA,EAAA,GAEJ;AAEJ,GCrHaC,KAA8B,CAAC;AAAA,EAC1C,SAASC;AAAA,EACT,gBAAAC,IAAiB;AAAA,EACjB,UAAA5J;AAAA,EACA,UAAAlC,IAAW;AAAA,EACX,eAAA+L,IAAgB;AAAA,EAChB,MAAA5P,IAAO;AAAA,EACP,SAAAD,IAAU;AAAA,EACV,WAAAE,IAAY;AAAA,EACZ,IAAA4P;AAAA,EACA,MAAAC;AAAA,EACA,OAAAhP;AAAA,EACA,cAAAiP,IAAe;AAAA,EACf,gBAAAC,IAAiB;AAAA,EACjB,oBAAAC,IAAqB;AAAA,EACrB,OAAA/N;AACF,MAAM;AACJ,QAAM,CAACgO,GAAiBC,CAAkB,IAAIhM,EAASwL,CAAc,GAE/DS,IAAeV,MAAsB,QACrCW,IAAUD,IAAeV,IAAoBQ,GAE7CI,IAAe,CAAC7P,MAAqC;AACzD,QAAIoD,EAAU;AAEd,UAAM0M,IAAa9P,EAAE,OAAO;AAE5B,IAAK2P,KACHD,EAAmBI,CAAU,GAG/BxK,KAAA,QAAAA,EAAWwK;AAAA,EACb,GAEMlO,IAAc;AAAA,IAClB,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,YAAY;AAAA,EAAA,GAGRC,IAAkB;AAAA,IACtB,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,YAAY;AAAA,EAAA,GAGRkO,IAAWzQ,MAAY,UAEvB0Q,IAAqB,MACrB5M,IACK,8DAKH,CAACwM,KAAW,CAACT,IACR,mDAEF,IAULc,IAA0B,MAAiC;AAC/D,QAAI,CAAA7M,KAEA,GAACwM,KAAW,CAACT;AAIjB,aAAIY,IACK;AAAA,QACL,aAAaP;AAAA,QACb,iBAAiBF;AAAA,MAAA,IAGZ;AAAA,QACL,aAAaE;AAAA,QACb,iBAAiBD;AAAA,MAAA;AAAA,EAGvB,GAEMW,IAAe,MACfH,MAAaH,KAAWT,KACnB,eAEF;AAGT,SACE,gBAAArO,EAAC,OAAA,EAAI,WAAU,4BAA2B,OAAAW,GACxC,UAAA;AAAA,IAAA,gBAAA3B;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,IAAAsP;AAAA,QACA,MAAAC;AAAA,QACA,OAAAhP;AAAA,QACA,SAAAuP;AAAA,QACA,UAAUC;AAAA,QACV,UAAAzM;AAAA,QACA,WAAU;AAAA,MAAA;AAAA,IAAA;AAAA,IAEZ,gBAAAtC;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,SAASsO;AAAA,QACT,WAAW;AAAA;AAAA,YAEPxN,EAAYrC,CAAI,CAAC;AAAA,YACjBD,MAAY,YAAY,WAAW,UAAU;AAAA;AAAA;AAAA;AAAA,YAI7C0Q,GAAoB;AAAA,YACpBxQ,CAAS;AAAA;AAAA,QAEb,OAAOyQ,EAAA;AAAA,QAGN,UAAA;AAAA,UAAAL,KAAW,CAACT,KACX,gBAAArP;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAW,GAAG+B,EAAgBtC,CAAI,CAAC,IAAI2Q,GAAc;AAAA,cACrD,MAAK;AAAA,cACL,QAAO;AAAA,cACP,SAAQ;AAAA,cACR,aAAa;AAAA,cACb,OACE,CAACH,MAAaH,KAAWT,KACrB,EAAE,OAAOG,MACT;AAAA,cAGN,4BAAC,QAAA,EAAK,eAAc,SAAQ,gBAAe,SAAQ,GAAE,iBAAA,CAAiB;AAAA,YAAA;AAAA,UAAA;AAAA,UAKzEH,KACC,gBAAArP;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAW,GAAG+B,EAAgBtC,CAAI,CAAC,IAAI2Q,GAAc;AAAA,cACrD,MAAK;AAAA,cACL,SAAQ;AAAA,cACR,OACE,CAACH,MAAaH,KAAWT,KACrB,EAAE,OAAOG,MACT;AAAA,cAGN,UAAA,gBAAAxP,EAAC,QAAA,EAAK,GAAE,KAAI,GAAE,MAAK,OAAM,MAAK,QAAO,KAAI,IAAG,IAAA,CAAI;AAAA,YAAA;AAAA,UAAA;AAAA,QAClD;AAAA,MAAA;AAAA,IAAA;AAAA,EAEJ,GACF;AAEJ,GCrJMqQ,KAAiB,CAAC5Q,IAA0C,UAC5C;AAAA,EAClB,IAAI;AAAA,IACF,WAAW;AAAA,IACX,MAAM;AAAA,IACN,OAAO;AAAA,IACP,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,MAAM;AAAA,EAAA;AAAA,EAER,IAAI;AAAA,IACF,WAAW;AAAA,IACX,MAAM;AAAA,IACN,OAAO;AAAA,IACP,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,MAAM;AAAA,EAAA;AAAA,EAER,IAAI;AAAA,IACF,WAAW;AAAA,IACX,MAAM;AAAA,IACN,OAAO;AAAA,IACP,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,MAAM;AAAA,EAAA;AAAA,EAER,YAAY;AAAA,IACV,WAAW;AAAA,IACX,MAAM;AAAA,IACN,OAAO;AAAA,IACP,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,MAAM;AAAA,EAAA;AACR,GAGiBA,CAAI,GAInB6Q,KAAoB,CAAC5O,IAAgD,UACtD;AAAA,EACjB,MAAM;AAAA,EACN,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,MAAM;AAAA,GAGUA,CAAO,GAGd6O,KAAgD,CAAC;AAAA,EAC5D,OAAArN;AAAA,EACA,UAAAsN;AAAA,EACA,cAAAC,IAAe;AAAA,EACf,WAAA/Q,IAAY;AAAA,EACZ,eAAAgR,IAAgB;AAAA,EAChB,WAAA1E,IAAY;AAAA,EACZ,MAAAvM,IAAO;AAAA,EACP,SAAA4B;AAAA,EACA,cAAAyE;AAAA,EACA,WAAAtE;AAAA,EACA,eAAAmP;AAAA,EACA,mBAAAC;AAAA,EACA,wBAAAC;AAAA,EACA,SAAAnP,IAAU;AAAA,EACV,OAAAC;AACF,MAAM;AACJ,QAAMG,IAAcuO,GAAe5Q,CAAI,GACjCqR,IAAeR,GAAkB5O,CAAO,GAGxCqP,IAAiB,WACjBC,IAAsB,WACtBC,IAAmB,WACnBC,IAAuB,WACvBC,IAA2B,WAC3BC,IAAgC,WAGhCC,IAAehQ,KAAW0P,GAC1BO,IAAoBxL,KAAgBkL,GACpCO,IAAiB/P,KAAayP,GAC9BO,IAAqBb,KAAiBO,GACtCO,IAAyBb,KAAqBO,GAC9CO,IAA8Bb,KAA0BO;AAE9D,SAAIlO,EAAM,WAAW,IAEjB,gBAAAlD;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,0CAA0CN,CAAS;AAAA,MAC9D,OAAO;AAAA,QACL,OAAO8R;AAAA,QACP,GAAG7P;AAAA,MAAA;AAAA,MAGJ,UAAA8O;AAAA,IAAA;AAAA,EAAA,IAML,gBAAAzQ;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,mBAAmB8B,EAAY,SAAS,IAAIpC,CAAS;AAAA,MAChE,OAAO,EAAE,WAAAsM,GAAW,GAAGrK,EAAA;AAAA,MAEtB,UAAAuB,EAAM,IAAI,CAACoB,GAAMgE,MAChB,gBAAAtH;AAAA,QAAC;AAAA,QAAA;AAAA,UAEC,WAAW;AAAA;AAAA,cAEP8P,CAAY;AAAA;AAAA;AAAA;AAAA,cAIZJ,CAAa;AAAA;AAAA,UAEjB,OAAO;AAAA,YACL,iBAAiBW;AAAA,YACjB,gBAAgB,GAAG/I,IAAQ,EAAE;AAAA,UAAA;AAAA,UAE/B,cAAc,CAACpI,MAAM;AAClB,YAAAA,EAAE,cAA8B,MAAM,kBAAkBoR;AAAA,UAC3D;AAAA,UACA,cAAc,CAACpR,MAAM;AAClB,YAAAA,EAAE,cAA8B,MAAM,kBAAkBmR;AAAA,UAC3D;AAAA,UAEA,UAAA;AAAA,YAAA,gBAAArQ,EAAC,OAAA,EAAI,WAAW,kBAAkBc,EAAY,IAAI,IAC/C,UAAA;AAAA,cAAAwC,EAAK,YACJ,gBAAAtE;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,WAAW,sBAAsB8B,EAAY,QAAQ;AAAA,kBACrD,OAAO,EAAE,OAAO0P,EAAA;AAAA,kBAEf,UAAAlN,EAAK;AAAA,gBAAA;AAAA,cAAA;AAAA,cAGV,gBAAAtE;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,WAAW,wBAAwB8B,EAAY,KAAK;AAAA,kBACpD,OAAO,EAAE,OAAOyP,EAAA;AAAA,kBAEf,UAAAjN,EAAK;AAAA,gBAAA;AAAA,cAAA;AAAA,YACR,GACF;AAAA,YAEA,gBAAAtE;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,SAAS,MAAMwQ,EAASlM,EAAK,EAAE;AAAA,gBAC/B,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAOPxC,EAAY,MAAM;AAAA;AAAA,gBAEtB,OAAO;AAAA,kBACL,OAAO2P;AAAA,gBAAA;AAAA,gBAET,cAAc,CAACvR,MAAM;AAClB,kBAAAA,EAAE,cAA8B,MAAM,kBAAkB,SACxDA,EAAE,cAA8B,MAAM,QAAQwR;AAAA,gBACjD;AAAA,gBACA,cAAc,CAACxR,MAAM;AAClB,kBAAAA,EAAE,cAA8B,MAAM,kBAAkB,eACxDA,EAAE,cAA8B,MAAM,QAAQuR;AAAA,gBACjD;AAAA,gBACA,cAAY,UAAUnN,EAAK,KAAK;AAAA,gBAEhC,UAAA,gBAAAtE;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,WAAW8B,EAAY;AAAA,oBACvB,MAAK;AAAA,oBACL,QAAO;AAAA,oBACP,SAAQ;AAAA,oBAER,UAAA,gBAAA9B;AAAA,sBAAC;AAAA,sBAAA;AAAA,wBACC,eAAc;AAAA,wBACd,gBAAe;AAAA,wBACf,aAAa;AAAA,wBACb,GAAE;AAAA,sBAAA;AAAA,oBAAA;AAAA,kBACJ;AAAA,gBAAA;AAAA,cACF;AAAA,YAAA;AAAA,UACF;AAAA,QAAA;AAAA,QA1EKsE,EAAK;AAAA,MAAA,CA4Eb;AAAA,IAAA;AAAA,EAAA;AAGP,GClNaqN,KAA8B,CAAC;AAAA,EAC1C,OAAArR;AAAA,EACA,OAAAsR;AAAA,EACA,YAAAC;AAAA,EACA,WAAAnS,IAAY;AAAA,EACZ,QAAAmO;AAAA,EACA,GAAGjO;AACL,MAAM;AAEJ,QAAMkS,IAAaF,IAAQ,sBAAsB;AAEjD,SACE,gBAAA5Q,EAAC,OAAA,EAAI,WAAU,UACZ,UAAA;AAAA,IAAAV,KACC,gBAAAU,EAAC,SAAA,EAAM,WAAU,kCAAiC,OAAO,EAAE,OAAO4Q,IAAQ,YAAY,UAAA,GACnF,UAAA;AAAA,MAAAtR;AAAA,MACAV,EAAM,YAAY,gBAAAI,EAAC,QAAA,EAAK,OAAO,EAAE,OAAO,UAAA,GAAa,UAAA,IAAA,CAAC;AAAA,IAAA,GACzD;AAAA,IAEF,gBAAAA,EAAC,WACE,UAAA4R,KAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAgBZ;AAAA,IACA,gBAAA5R;AAAA,MAAC+R;AAAAA,MAAA;AAAA,QACC,WAAW,GAAGrS,CAAS,IAAIoS,CAAU;AAAA,QACrC,QAAQF,IAAQ,UAAU/D;AAAA,QACzB,GAAGjO;AAAA,QACJ,OAAO;AAAA,UACL,QAAQ;AAAA,UACR,cAAc;AAAA,UACd,aAAagS,IAAQ,YAAY;AAAA,UACjC,GAAGhS,EAAM;AAAA,QAAA;AAAA,MACX;AAAA,IAAA;AAAA,IAEDgS,KACC,gBAAA5Q,EAAC,OAAA,EAAI,WAAU,iDACb,UAAA;AAAA,MAAA,gBAAAhB;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAU;AAAA,UACV,MAAK;AAAA,UACL,SAAQ;AAAA,UAER,UAAA,gBAAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,UAAS;AAAA,cACT,GAAE;AAAA,cACF,UAAS;AAAA,YAAA;AAAA,UAAA;AAAA,QACX;AAAA,MAAA;AAAA,MAED4R;AAAA,IAAA,GACH;AAAA,IAED,CAACA,KAASC,uBACR,OAAA,EAAI,WAAU,8BAA8B,UAAAA,EAAA,CAAW;AAAA,EAAA,GAE5D;AAEJ,GCpEaG,KAA8C,CAAC;AAAA,EAC1D,OAAA1R;AAAA,EACA,OAAAsR;AAAA,EACA,YAAAC;AAAA,EACA,WAAAnS,IAAY;AAAA,EACZ,QAAAmO;AAAA,EACA,GAAGjO;AACL,MAAM;AAEJ,QAAMmD,IAAoB,yBAAyBrD,CAAS,IADzCkS,IAAQ,+BAA+B,EACgB;AAE1E,SACE,gBAAA5Q,EAAC,OAAA,EAAI,WAAU,UACZ,UAAA;AAAA,IAAAV,KACC,gBAAAU,EAAC,SAAA,EAAM,WAAU,kCAAiC,OAAO,EAAE,OAAO4Q,IAAQ,YAAY,UAAA,GACnF,UAAA;AAAA,MAAAtR;AAAA,MACAV,EAAM,YAAY,gBAAAI,EAAC,QAAA,EAAK,OAAO,EAAE,OAAO,UAAA,GAAa,UAAA,IAAA,CAAC;AAAA,IAAA,GACzD;AAAA,IAEF,gBAAAA,EAAC,WACE,UAAA4R,KAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAkBZ;AAAA,IACA,gBAAA5R;AAAA,MAAC+R,EAAS;AAAA,MAAT;AAAA,QACC,WAAWhP;AAAA,QACX,QAAQ6O,IAAQ,UAAU/D;AAAA,QACzB,GAAGjO;AAAA,QACJ,OAAO;AAAA,UACL,QAAQ;AAAA,UACR,cAAc;AAAA,UACd,aAAagS,IAAQ,YAAY;AAAA,UACjC,GAAGhS,EAAM;AAAA,QAAA;AAAA,MACX;AAAA,IAAA;AAAA,IAEDgS,KACC,gBAAA5Q,EAAC,OAAA,EAAI,WAAU,iDACb,UAAA;AAAA,MAAA,gBAAAhB;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAU;AAAA,UACV,MAAK;AAAA,UACL,SAAQ;AAAA,UAER,UAAA,gBAAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,UAAS;AAAA,cACT,GAAE;AAAA,cACF,UAAS;AAAA,YAAA;AAAA,UAAA;AAAA,QACX;AAAA,MAAA;AAAA,MAED4R;AAAA,IAAA,GACH;AAAA,IAED,CAACA,KAASC,uBACR,OAAA,EAAI,WAAU,8BAA8B,UAAAA,EAAA,CAAW;AAAA,EAAA,GAE5D;AAEJ,GCnEaI,KAAoC,CAAC;AAAA,EAChD,QAAAC,IAAS;AAAA,EACT,OAAA3R,IAAQ;AAAA,EACR,UAAAiF;AAAA,EACA,YAAA2M;AAAA,EACA,OAAAP,IAAQ;AAAA,EACR,cAAAQ;AAAA,EACA,UAAA9O,IAAW;AAAA,EACX,WAAA5D,IAAY;AACd,MAAM;AACJ,QAAM,CAAC2S,GAAKC,CAAM,IAAI1O,EAAmB,MAAMsO,CAAM,EAAE,KAAK,EAAE,CAAC,GACzDK,IAAYzO,GAA4B,EAAE;AAEhD,EAAAC,EAAU,MAAM;AACd,QAAIxD,GAAO;AACT,YAAMiS,IAAWjS,EAAM,MAAM,EAAE,EAAE,MAAM,GAAG2R,CAAM,GAC1CO,IAAY,CAAC,GAAGD,GAAU,GAAG,MAAMN,IAASM,EAAS,MAAM,EAAE,KAAK,EAAE,CAAC;AAC3E,MAAAF,EAAOG,CAAS;AAAA,IAClB;AAAA,EACF,GAAG,CAAClS,GAAO2R,CAAM,CAAC;AAElB,QAAMnC,IAAe,CAACzH,GAAeoK,MAAgB;;AAEnD,QAAIA,KAAO,CAAC,QAAQ,KAAKA,CAAG,EAAG;AAE/B,UAAMC,IAAS,CAAC,GAAGN,CAAG;AACtB,IAAAM,EAAOrK,CAAK,IAAIoK,EAAI,MAAM,EAAE,GAC5BJ,EAAOK,CAAM;AAEb,UAAMC,IAAYD,EAAO,KAAK,EAAE;AAChC,IAAAnN,KAAA,QAAAA,EAAWoN,IAGPF,KAAOpK,IAAQ4J,IAAS,OAC1B/R,IAAAoS,EAAU,QAAQjK,IAAQ,CAAC,MAA3B,QAAAnI,EAA8B,UAI5BwS,EAAO,MAAM,CAACE,MAAUA,MAAU,EAAE,MACtCV,KAAA,QAAAA,EAAaS;AAAA,EAEjB,GAEME,IAAgB,CAACxK,GAAepI,MAAuC;;AAE3E,IAAIA,EAAE,QAAQ,eAAe,CAACmS,EAAI/J,CAAK,KAAKA,IAAQ,OAClDnI,IAAAoS,EAAU,QAAQjK,IAAQ,CAAC,MAA3B,QAAAnI,EAA8B;AAAA,EAElC,GAEM4S,IAAc,CAAC7S,MAAwC;;AAC3D,IAAAA,EAAE,eAAA;AACF,UAAM8S,IAAa9S,EAAE,cAAc,QAAQ,YAAY;AAGvD,QAAI,CAAC,QAAQ,KAAK8S,CAAU,EAAG;AAE/B,UAAMC,IAAcD,EAAW,MAAM,EAAE,EAAE,MAAM,GAAGd,CAAM,GAClDS,IAAS,CAAC,GAAGM,GAAa,GAAG,MAAMf,IAASe,EAAY,MAAM,EAAE,KAAK,EAAE,CAAC;AAC9E,IAAAX,EAAOK,CAAM;AAEb,UAAMC,IAAYD,EAAO,KAAK,EAAE;AAChC,IAAAnN,KAAA,QAAAA,EAAWoN;AAGX,UAAMM,IAAY,KAAK,IAAID,EAAY,QAAQf,IAAS,CAAC;AACzD,KAAA/R,IAAAoS,EAAU,QAAQW,CAAS,MAA3B,QAAA/S,EAA8B,SAG1BwS,EAAO,MAAM,CAACE,MAAUA,MAAU,EAAE,MACtCV,KAAA,QAAAA,EAAaS;AAAA,EAEjB;AAEA,SACE,gBAAA5R,EAAC,OAAA,EAAI,WAAU,UACb,UAAA;AAAA,IAAA,gBAAAhB,EAAC,OAAA,EAAI,WAAW,6BAA6BN,CAAS,IACnD,UAAA2S,EAAI,IAAI,CAACQ,GAAOvK,MACf,gBAAAtH,EAACmS,GAAM,UAAN,EACC,UAAA;AAAA,MAAA,gBAAAnT;AAAA,QAAC2R;AAAAA,QAAA;AAAA,UACC,KAAK,CAACyB,MAAO;AACX,YAAAb,EAAU,QAAQjK,CAAK,IAAI8K;AAAA,UAC7B;AAAA,UACA,aAAY;AAAA,UACZ,OAAOP;AAAA,UACP,UAAU,CAAC3S,MAAM6P,EAAazH,GAAOpI,EAAE,OAAO,KAAK;AAAA,UACnD,WAAW,CAACA,MAAM4S,EAAcxK,GAAOpI,CAAC;AAAA,UACxC,SAAS6S;AAAA,UACT,UAAAzP;AAAA,UACA,WAAW;AAAA,UACX,WAAU;AAAA,UACV,OAAO;AAAA,YACL,OAAO;AAAA,YACP,QAAQ;AAAA,YACR,cAAc;AAAA,YACd,aAAasO,IAAQ,YAAY;AAAA,UAAA;AAAA,QACnC;AAAA,MAAA;AAAA,MAEDtJ,MAAU,KAAK,MAAM4J,IAAS,CAAC,IAAI,KAClC,gBAAAlS,EAAC,OAAA,EAAI,WAAU,yCACb,UAAA,gBAAAA,EAAC,QAAA,EAAK,WAAU,yBAAwB,eAAC,EAAA,CAC3C;AAAA,IAAA,KAvBiBsI,CAyBrB,CACD,GACH;AAAA,IACCsJ,KAASQ,KACR,gBAAApR,EAAC,OAAA,EAAI,WAAU,gEACb,UAAA;AAAA,MAAA,gBAAAhB,EAAC,SAAI,WAAU,gBAAe,MAAK,gBAAe,SAAQ,aACxD,UAAA,gBAAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,UAAS;AAAA,UACT,GAAE;AAAA,UACF,UAAS;AAAA,QAAA;AAAA,MAAA,GAEb;AAAA,MACCoS;AAAA,IAAA,EAAA,CACH;AAAA,EAAA,GAEJ;AAEJ,GCnHaiB,KAAwC,CAAC;AAAA,EACpD,OAAA/S;AAAA,EACA,OAAAsR;AAAA,EACA,YAAAC;AAAA,EACA,WAAAnS,IAAY;AAAA,EACZ,aAAA4T,IAAc;AAAA,EACd,qBAAAC;AAAA,EACA,cAAAC,IAAe;AAAA,IACb,EAAE,OAAO,QAAQ,OAAO,OAAA;AAAA,IACxB,EAAE,OAAO,MAAM,OAAO,KAAA;AAAA,IACtB,EAAE,OAAO,OAAO,OAAO,MAAA;AAAA,IACvB,EAAE,OAAO,OAAO,OAAO,MAAA;AAAA,EAAM;AAAA,EAE/B,yBAAAC,IAA0B;AAAA,EAC1B,QAAAjF,IAAS;AAAA,EACT,cAAAkF;AAAA,EACA,OAAAnT;AAAA,EACA,UAAAiF;AAAA,EACA,GAAG5F;AACL,MAAM;AACJ,QAAMkS,IAAaF,IAAQ,4BAA4B,IACjD,CAAC+B,GAAcC,CAAe,IAAIhQ,EAAS,EAAE;AAGnD,EAAAG,EAAU,MAAM;AACd,QAAIxD,MAAU,QAAW;AACvB,YAAMsT,IAAU,OAAOtT,CAAK,EAAE,QAAQ,OAAO,EAAE,GACzCuT,IAAYC,EAAkBF,CAAO;AAC3C,MAAAD,EAAgBE,CAAS;AAAA,IAC3B;AAAA,EACF,GAAG,CAACvT,GAAOiO,GAAQ8E,CAAW,CAAC;AAE/B,QAAMS,IAAoB,CAACrB,MAAwB;AAEjD,UAAMmB,IAAUnB,EAAI,QAAQ,OAAO,EAAE;AAGrC,QAAIgB;AACF,aAAOA,EAAaG,CAAO;AAI7B,QAAIrF,MAAW;AACb,aAAOqF;AAIT,QAAIC,IAAY;AAEhB,WAAItF,MAAW,WAETqF,EAAQ,UAAU,IACpBC,IAAYD,IACHA,EAAQ,UAAU,IAC3BC,IAAY,GAAGD,EAAQ,MAAM,GAAG,CAAC,CAAC,IAAIA,EAAQ,MAAM,CAAC,CAAC,KAEtDC,IAAY,GAAGD,EAAQ,MAAM,GAAG,CAAC,CAAC,IAAIA,EAAQ,MAAM,GAAG,CAAC,CAAC,IAAIA,EAAQ,MAAM,GAAG,EAAE,CAAC,KAE1ErF,MAAW,WAEhBqF,EAAQ,UAAU,IACpBC,IAAYD,IACHA,EAAQ,UAAU,IAC3BC,IAAY,GAAGD,EAAQ,MAAM,GAAG,CAAC,CAAC,IAAIA,EAAQ,MAAM,CAAC,CAAC,KAEtDC,IAAY,GAAGD,EAAQ,MAAM,GAAG,CAAC,CAAC,IAAIA,EAAQ,MAAM,GAAG,CAAC,CAAC,IAAIA,EAAQ,MAAM,GAAG,EAAE,CAAC,KAI/EP,MAAgB,OAEdO,EAAQ,UAAU,IACpBC,IAAYD,IACHA,EAAQ,UAAU,IAC3BC,IAAY,IAAID,EAAQ,MAAM,GAAG,CAAC,CAAC,KAAKA,EAAQ,MAAM,CAAC,CAAC,KAExDC,IAAY,IAAID,EAAQ,MAAM,GAAG,CAAC,CAAC,KAAKA,EAAQ,MAAM,GAAG,CAAC,CAAC,IAAIA,EAAQ,MAAM,GAAG,EAAE,CAAC,KAIjFA,EAAQ,UAAU,IACpBC,IAAYD,IACHA,EAAQ,UAAU,IAC3BC,IAAY,GAAGD,EAAQ,MAAM,GAAG,CAAC,CAAC,IAAIA,EAAQ,MAAM,CAAC,CAAC,KAEtDC,IAAY,GAAGD,EAAQ,MAAM,GAAG,CAAC,CAAC,IAAIA,EAAQ,MAAM,GAAG,CAAC,CAAC,IAAIA,EAAQ,MAAM,GAAG,EAAE,CAAC,IAKhFC;AAAA,EACT,GAEMhB,IAAgB,CAAC5S,MAA6C;;AAElE,IACE,CAAC,OAAO,KAAKA,EAAE,GAAG,KAClBA,EAAE,QAAQ,eACVA,EAAE,QAAQ,YACVA,EAAE,QAAQ,SACVA,EAAE,QAAQ,eACVA,EAAE,QAAQ,gBACVA,EAAE,QAAQ,UACVA,EAAE,QAAQ,SAEVA,EAAE,eAAA,IAEJC,IAAAP,EAAM,cAAN,QAAAO,EAAA,KAAAP,GAAkBM;AAAA,EACpB,GAEM6P,IAAe,CAAC7P,MAA2C;AAC/D,UAAM8T,IAAQ9T,EAAE,QACV+T,IAAiBD,EAAM,kBAAkB,GAGzCH,IAAUG,EAAM,MAAM,QAAQ,OAAO,EAAE,GAGvCF,IAAYC,EAAkBF,CAAO;AAG3C,IAAAD,EAAgBE,CAAS;AAGzB,UAAMI,IAAYP,EAAa,QAEzBQ,IADYL,EAAU,SACHI;AASzB,QANA,sBAAsB,MAAM;AAC1B,YAAME,IAAoB,KAAK,IAAI,GAAG,KAAK,IAAIH,IAAiBE,GAAML,EAAU,MAAM,CAAC;AACvF,MAAAE,EAAM,kBAAkBI,GAAmBA,CAAiB;AAAA,IAC9D,CAAC,GAGG5O,GAAU;AACZ,YAAM6O,IAAiB;AAAA,QACrB,GAAGnU;AAAA,QACH,QAAQ,EAAE,GAAGA,EAAE,QAAQ,OAAO2T,EAAA;AAAA,MAAQ;AAExC,MAAArO,EAAS6O,CAAc;AAAA,IACzB;AAAA,EACF,GAEMtB,IAAc,CAAC7S,MAA8C;;AACjE,IAAAA,EAAE,eAAA;AAEF,UAAMoU,IADapU,EAAE,cAAc,QAAQ,YAAY,EACxB,QAAQ,OAAO,EAAE,GAG1CqU,IADSrU,EAAE,OACI,kBAAkB,GAEjCsU,IADiBb,EAAa,QAAQ,OAAO,EAAE,EACnB,MAAM,GAAGY,CAAK,IAAID,GAG9CR,IAAYC,EAAkBS,CAAU;AAI9C,QAHAZ,EAAgBE,CAAS,GAGrBtO,GAAU;AACZ,YAAM6O,IAAiB;AAAA,QACrB,GAAGnU;AAAA,QACH,QAAQ,EAAE,GAAGA,EAAE,QAAQ,OAAOsU,EAAA;AAAA,MAAW;AAE3C,MAAAhP,EAAS6O,CAAc;AAAA,IACzB;AAEA,KAAAlU,IAAAP,EAAM,YAAN,QAAAO,EAAA,KAAAP,GAAgBM;AAAA,EAClB;AAEA,SACE,gBAAAc,EAAC,OAAA,EAAI,WAAU,UACZ,UAAA;AAAA,IAAAV,KACC,gBAAAU;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,OAAO,EAAE,OAAO4Q,IAAQ,YAAY,UAAA;AAAA,QAEnC,UAAA;AAAA,UAAAtR;AAAA,UACAV,EAAM,YAAY,gBAAAI,EAAC,QAAA,EAAK,OAAO,EAAE,OAAO,UAAA,GAAa,UAAA,IAAA,CAAC;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,sBAG1D,SAAA,EACE,UAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAyCH;AAAA,IACA,gBAAAgB,EAAC,OAAA,EAAI,WAAW,yBAAyB8Q,CAAU,IAChD,UAAA;AAAA,MAAA2B,IACC,gBAAAzT;AAAA,QAACmF;AAAAA,QAAA;AAAA,UACC,OAAOmO;AAAA,UACP,UAAUC;AAAA,UACV,SAASC;AAAA,UACT,OAAO;AAAA,YACL,OAAO;AAAA,YACP,cAAc;AAAA,UAAA;AAAA,UAEhB,WAAW1B;AAAA,UACX,gBAAe;AAAA,UACf,UAAUlS,EAAM;AAAA,QAAA;AAAA,MAAA,IAGlB,gBAAAI;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAU;AAAA,UACV,OAAO;AAAA,YACL,aAAa4R,IAAQ,YAAY;AAAA,YACjC,OAAOhS,EAAM,WAAW,cAAc;AAAA,YACtC,iBAAiBA,EAAM,WAAW,YAAY;AAAA,UAAA;AAAA,UAG/C,UAAA0T;AAAA,QAAA;AAAA,MAAA;AAAA,MAGL,gBAAAtT;AAAA,QAAC+R;AAAAA,QAAA;AAAA,UACE,GAAGnS;AAAA,UACJ,OAAO+T;AAAA,UACP,WAAAjU;AAAA,UACA,WAAWoT;AAAA,UACX,UAAU/C;AAAA,UACV,SAASgD;AAAA,UACT,OAAO;AAAA,YACL,MAAM;AAAA,YACN,QAAQ;AAAA,YACR,cAAc;AAAA,YACd,aAAanB,IAAQ,YAAY;AAAA,YACjC,GAAGhS,EAAM;AAAA,UAAA;AAAA,QACX;AAAA,MAAA;AAAA,IACF,GACF;AAAA,IACCgS,KACC,gBAAA5Q,EAAC,OAAA,EAAI,WAAU,iDACb,UAAA;AAAA,MAAA,gBAAAhB,EAAC,SAAI,WAAU,gBAAe,MAAK,gBAAe,SAAQ,aACxD,UAAA,gBAAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,UAAS;AAAA,UACT,GAAE;AAAA,UACF,UAAS;AAAA,QAAA;AAAA,MAAA,GAEb;AAAA,MACC4R;AAAA,IAAA,GACH;AAAA,IAED,CAACA,KAASC,uBAAe,OAAA,EAAI,WAAU,8BAA8B,UAAAA,EAAA,CAAW;AAAA,EAAA,GACnF;AAEJ,GC/Ra4C,KAA8C,CAAC;AAAA,EAC1D,OAAAnU;AAAA,EACA,OAAAsR;AAAA,EACA,YAAAC;AAAA,EACA,WAAAnS,IAAY;AAAA,EACZ,QAAAmO;AAAA,EACA,gBAAA6G,IAAiB;AAAA,EACjB,cAAAC,IAAe;AAAA,EACf,UAAAnP;AAAA,EACA,OAAOoP;AAAA,EACP,GAAGhV;AACL,MAAM;AACJ,QAAMkS,IAAaF,IAAQ,+BAA+B,IACpD,CAAC+B,GAAcC,CAAe,IAAIhQ,EAAiB,EAAE,GAGrDiR,IAAe,CAACC,MAAwB;AAK5C,UAAMC,IAHWD,EAAI,QAAQ,WAAW,EAAE,EAGnB,MAAM,GAAG,GAC1BE,IAAcD,EAAM,CAAC,GACrBE,IAAcF,EAAM,CAAC,GAGrBG,IAAmBF,EAAY,QAAQ,yBAAyB,GAAG;AAGzE,WAAOC,MAAgB,SAAY,GAAGC,CAAgB,IAAID,CAAW,KAAKC;AAAA,EAC5E,GAGMC,IAAiB,CAACrB,MACfA,EAAU,QAAQ,MAAM,EAAE;AAInC,EAAA/P,EAAU,MAAM;AACd,QAAI6Q,MAAkB,QAAW;AAC/B,YAAMQ,IAAc,OAAOR,CAAa;AACxC,MAAAhB,EAAgBe,IAAeE,EAAaO,CAAW,IAAIA,CAAW;AAAA,IACxE;AAAA,EACF,GAAG,CAACR,GAAeD,CAAY,CAAC;AAGhC,QAAM5E,IAAe,CAAC7P,MAA2C;AAC/D,UAAMmV,IAAanV,EAAE,OAAO;AAE5B,QAAIyU,GAAc;AAChB,YAAMW,IAAWH,EAAeE,CAAU,GACpCvB,IAAYe,EAAaS,CAAQ;AACvC,MAAA1B,EAAgBE,CAAS,GAErBtO,KACFA,EAAS8P,GAAUpV,CAAC;AAAA,IAExB;AACE,MAAA0T,EAAgByB,CAAU,GACtB7P,KACFA,EAAS6P,GAAYnV,CAAC;AAAA,EAG5B;AAEA,SACE,gBAAAc,EAAC,OAAA,EAAI,WAAU,UACZ,UAAA;AAAA,IAAAV,KACC,gBAAAU;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,OAAO,EAAE,OAAO4Q,IAAQ,YAAY,UAAA;AAAA,QAEnC,UAAA;AAAA,UAAAtR;AAAA,UACAV,EAAM,YAAY,gBAAAI,EAAC,QAAA,EAAK,OAAO,EAAE,OAAO,UAAA,GAAa,UAAA,IAAA,CAAC;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,sBAG1D,SAAA,EACE,UAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAsCH;AAAA,IACA,gBAAAA;AAAA,MAAC+R;AAAAA,MAAA;AAAA,QACC,WAAW,0BAA0BrS,CAAS,IAAIoS,CAAU;AAAA,QAC5D,QAAQF,IAAQ,UAAU/D;AAAA,QAC1B,QAAQ,gBAAA7N,EAAC,QAAA,EAAM,UAAA0U,EAAA,CAAe;AAAA,QAC7B,GAAG9U;AAAA,QACJ,OAAO+U,IAAehB,IAAeiB;AAAA,QACrC,UAAU7E;AAAA,QACV,OAAO;AAAA,UACL,aAAa6B,IAAQ,YAAY;AAAA,UACjC,GAAGhS,EAAM;AAAA,QAAA;AAAA,MACX;AAAA,IAAA;AAAA,IAEDgS,KACC,gBAAA5Q,EAAC,OAAA,EAAI,WAAU,iDACb,UAAA;AAAA,MAAA,gBAAAhB,EAAC,SAAI,WAAU,gBAAe,MAAK,gBAAe,SAAQ,aACxD,UAAA,gBAAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,UAAS;AAAA,UACT,GAAE;AAAA,UACF,UAAS;AAAA,QAAA;AAAA,MAAA,GAEb;AAAA,MACC4R;AAAA,IAAA,GACH;AAAA,IAED,CAACA,KAASC,uBAAe,OAAA,EAAI,WAAU,8BAA8B,UAAAA,EAAA,CAAW;AAAA,EAAA,GACnF;AAEJ,GC3JM0D,KAA2B,gBAAAC,GAAc,EAAE;ACDjD,SAASC,GAAEvV,GAAE;AAAC,MAAIwV,GAAEC,GAAEC,IAAE;AAAG,MAAa,OAAO1V,KAAjB,YAA8B,OAAOA,KAAjB,SAAmB,CAAA0V,KAAG1V;AAAA,WAAoB,OAAOA,KAAjB,SAAmB,KAAG,MAAM,QAAQA,CAAC,GAAE;AAAC,QAAI,IAAEA,EAAE;AAAO,SAAIwV,IAAE,GAAEA,IAAE,GAAEA,IAAI,CAAAxV,EAAEwV,CAAC,MAAIC,IAAEF,GAAEvV,EAAEwV,CAAC,CAAC,OAAKE,MAAIA,KAAG,MAAKA,KAAGD;AAAA,EAAE,MAAM,MAAIA,KAAKzV,EAAE,CAAAA,EAAEyV,CAAC,MAAIC,MAAIA,KAAG,MAAKA,KAAGD;AAAG,SAAOC;AAAC;AAAQ,SAASC,KAAM;AAAC,WAAQ3V,GAAEwV,GAAEC,IAAE,GAAEC,IAAE,IAAG,IAAE,UAAU,QAAOD,IAAE,GAAEA,IAAI,EAACzV,IAAE,UAAUyV,CAAC,OAAKD,IAAED,GAAEvV,CAAC,OAAK0V,MAAIA,KAAG,MAAKA,KAAGF;AAAG,SAAOE;AAAC;ACC/W,MAAAE,KAAe;AAAA,EACb,WAAW;AAAA,EACX,cAAc;AAAA,EACd,MAAM;AAAA,EACN,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,gBAAgB;AAAA,EAChB,MAAM;AAAA,EACN,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,WAAW;AAAA,EACX,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,OAAO;AAAA,EACP,gBAAgB;AAAA,EAChB,UAAU;AAAA,EACV,SAAS;AAAA,EACT,MAAM;AAAA,EACN,UAAU;AAAA,EACV,UAAU;AAAA,EACV,eAAe;AAAA,EACf,UAAU;AAAA,EACV,WAAW;AAAA,EACX,UAAU;AAAA,EACV,WAAW;AAAA,EACX,aAAa;AAAA,EACb,gBAAgB;AAAA,EAChB,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,eAAe;AAAA,EACf,eAAe;AAAA,EACf,eAAe;AAAA,EACf,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,aAAa;AAAA,EACb,SAAS;AAAA,EACT,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,aAAa;AAAA,EACb,aAAa;AAAA,EACb,SAAS;AAAA,EACT,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,aAAa;AAAA,EACb,MAAM;AAAA,EACN,UAAU;AAAA,EACV,SAAS;AAAA,EACT,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,OAAO;AAAA,EACP,eAAe;AAAA,EACf,UAAU;AAAA,EACV,WAAW;AAAA,EACX,cAAc;AAAA,EACd,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,sBAAsB;AAAA,EACtB,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,WAAW;AAAA,EACX,aAAa;AAAA,EACb,eAAe;AAAA,EACf,cAAc;AAAA,EACd,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,aAAa;AAAA,EACb,MAAM;AAAA,EACN,WAAW;AAAA,EACX,OAAO;AAAA,EACP,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,kBAAkB;AAAA,EAClB,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,cAAc;AAAA,EACd,gBAAgB;AAAA,EAChB,iBAAiB;AAAA,EACjB,mBAAmB;AAAA,EACnB,iBAAiB;AAAA,EACjB,iBAAiB;AAAA,EACjB,cAAc;AAAA,EACd,WAAW;AAAA,EACX,WAAW;AAAA,EACX,UAAU;AAAA,EACV,aAAa;AAAA,EACb,MAAM;AAAA,EACN,SAAS;AAAA,EACT,OAAO;AAAA,EACP,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,eAAe;AAAA,EACf,WAAW;AAAA,EACX,eAAe;AAAA,EACf,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,eAAe;AAAA,EACf,KAAK;AAAA,EACL,WAAW;AAAA,EACX,WAAW;AAAA,EACX,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,WAAW;AAAA,EACX,WAAW;AAAA,EACX,WAAW;AAAA,EACX,MAAM;AAAA,EACN,aAAa;AAAA,EACb,WAAW;AAAA,EACX,KAAK;AAAA,EACL,MAAM;AAAA,EACN,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,aAAa;AACf,GCrJMC,IAAQ,KAAK;AAYnB,SAASC,GAAcC,GAAKC,GAAU;AACpC,QAAMC,IAAQF,EAEb,QAAQ,gBAAgB,IAAI,EAE5B,QAAQ,QAAQ,EAAE,EAAE,MAAM,cAAc,KAAK,CAAA,GACxCG,IAAUD,EAAM,IAAI,CAAA7R,MAAQ,WAAWA,CAAI,CAAC;AAClD,WAAS6F,IAAI,GAAGA,IAAI,GAAGA,KAAK;AAC1B,IAAAiM,EAAQjM,CAAC,IAAI+L,EAASE,EAAQjM,CAAC,KAAK,GAAGgM,EAAMhM,CAAC,KAAK,IAAIA,CAAC;AAI1D,SAAIgM,EAAM,CAAC,IACTC,EAAQ,CAAC,IAAID,EAAM,CAAC,EAAE,SAAS,GAAG,IAAIC,EAAQ,CAAC,IAAI,MAAMA,EAAQ,CAAC,IAGlEA,EAAQ,CAAC,IAAI,GAERA;AACT;AACA,MAAMC,KAAgB,CAACvB,GAAKwB,GAAGhO,MAAUA,MAAU,IAAIwM,IAAMA,IAAM;AAGnE,SAASyB,EAAWhW,GAAOiW,GAAK;AAC9B,QAAMC,IAAYD,KAAO;AACzB,SAAIjW,IAAQkW,IACHA,IAELlW,IAAQ,IACH,IAEFA;AACT;AACO,MAAMmW,EAAU;AAAA,EAqCrB,YAAY1C,GAAO;AAjCnB;AAAA;AAAA;AAAA,IAAA2C,EAAA,iBAAU;AAKV;AAAA;AAAA;AAAA,IAAAA,EAAA,WAAI;AAKJ;AAAA;AAAA;AAAA,IAAAA,EAAA,WAAI;AAKJ;AAAA;AAAA;AAAA,IAAAA,EAAA,WAAI;AAKJ;AAAA;AAAA;AAAA,IAAAA,EAAA,WAAI;AAGJ;AAAA,IAAAA,EAAA;AACA,IAAAA,EAAA;AACA,IAAAA,EAAA;AACA,IAAAA,EAAA;AACA,IAAAA,EAAA;AAGA;AAAA,IAAAA,EAAA;AACA,IAAAA,EAAA;AACA,IAAAA,EAAA;AAOE,aAASC,EAAYX,GAAK;AACxB,aAAOA,EAAI,CAAC,KAAKjC,KAASiC,EAAI,CAAC,KAAKjC,KAASiC,EAAI,CAAC,KAAKjC;AAAA,IACzD;AACA,QAAKA,EAEE,KAAI,OAAOA,KAAU,UAAU;AAEpC,UAAS6C,IAAT,SAAqBC,GAAQ;AAC3B,eAAOC,EAAQ,WAAWD,CAAM;AAAA,MAClC;AAHA,YAAMC,IAAU/C,EAAM,KAAI;AAI1B,UAAI,oBAAoB,KAAK+C,CAAO;AAClC,aAAK,cAAcA,CAAO;AAAA,eACjBF,EAAY,KAAK;AAC1B,aAAK,cAAcE,CAAO;AAAA,eACjBF,EAAY,KAAK;AAC1B,aAAK,cAAcE,CAAO;AAAA,eACjBF,EAAY,KAAK,KAAKA,EAAY,KAAK;AAChD,aAAK,cAAcE,CAAO;AAAA,WACrB;AAEL,cAAMC,IAAclB,GAAaiB,EAAQ,YAAW,CAAE;AACtD,QAAIC,KACF,KAAK;AAAA;AAAA,UAEL,SAASA,GAAa,EAAE,EAAE,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG;AAAA,QAAC;AAAA,MAE3D;AAAA,IACF,WAAWhD,aAAiB0C;AAC1B,WAAK,IAAI1C,EAAM,GACf,KAAK,IAAIA,EAAM,GACf,KAAK,IAAIA,EAAM,GACf,KAAK,IAAIA,EAAM,GACf,KAAK,KAAKA,EAAM,IAChB,KAAK,SAASA,EAAM,QACpB,KAAK,SAASA,EAAM,QACpB,KAAK,KAAKA,EAAM,IAChB,KAAK,KAAKA,EAAM;AAAA,aACP4C,EAAY,KAAK;AAC1B,WAAK,IAAIL,EAAWvC,EAAM,CAAC,GAC3B,KAAK,IAAIuC,EAAWvC,EAAM,CAAC,GAC3B,KAAK,IAAIuC,EAAWvC,EAAM,CAAC,GAC3B,KAAK,IAAI,OAAOA,EAAM,KAAM,WAAWuC,EAAWvC,EAAM,GAAG,CAAC,IAAI;AAAA,aACvD4C,EAAY,KAAK;AAC1B,WAAK,QAAQ5C,CAAK;AAAA,aACT4C,EAAY,KAAK;AAC1B,WAAK,QAAQ5C,CAAK;AAAA;AAElB,YAAM,IAAI,MAAM,+CAA+C,KAAK,UAAUA,CAAK,CAAC;AAAA,EAExF;AAAA;AAAA,EAIA,KAAKzT,GAAO;AACV,WAAO,KAAK,IAAI,KAAKA,CAAK;AAAA,EAC5B;AAAA,EACA,KAAKA,GAAO;AACV,WAAO,KAAK,IAAI,KAAKA,CAAK;AAAA,EAC5B;AAAA,EACA,KAAKA,GAAO;AACV,WAAO,KAAK,IAAI,KAAKA,CAAK;AAAA,EAC5B;AAAA,EACA,KAAKA,GAAO;AACV,WAAO,KAAK,IAAI,KAAKA,GAAO,CAAC;AAAA,EAC/B;AAAA,EACA,OAAOA,GAAO;AACZ,UAAM0W,IAAM,KAAK,MAAK;AACtB,WAAAA,EAAI,IAAI1W,GACD,KAAK,GAAG0W,CAAG;AAAA,EACpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,eAAe;AACb,aAASC,EAAYC,GAAK;AACxB,YAAMzE,IAAMyE,IAAM;AAClB,aAAOzE,KAAO,UAAUA,IAAM,QAAQ,KAAK,KAAKA,IAAM,SAAS,OAAO,GAAG;AAAA,IAC3E;AACA,UAAM0E,IAAIF,EAAY,KAAK,CAAC,GACtBG,IAAIH,EAAY,KAAK,CAAC,GACtBI,IAAIJ,EAAY,KAAK,CAAC;AAC5B,WAAO,SAASE,IAAI,SAASC,IAAI,SAASC;AAAA,EAC5C;AAAA,EACA,SAAS;AACP,QAAI,OAAO,KAAK,KAAO,KAAa;AAClC,YAAMC,IAAQ,KAAK,OAAM,IAAK,KAAK,OAAM;AACzC,MAAIA,MAAU,IACZ,KAAK,KAAK,IAEV,KAAK,KAAKxB,EAAM,MAAM,KAAK,MAAM,KAAK,YAAY,KAAK,IAAI,KAAK,KAAKwB,KAAS,KAAK,IAAI,KAAK,IAAI,IAAI,KAAK,KAAK,MAAM,KAAK,OAAM,KAAM,KAAK,IAAI,KAAK,KAAKA,IAAQ,KAAK,KAAK,IAAI,KAAK,KAAKA,IAAQ,EAAE;AAAA,IAEtM;AACA,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,gBAAgB;AACd,WAAO,KAAK,iBAAgB;AAAA,EAC9B;AAAA,EACA,mBAAmB;AACjB,QAAI,OAAO,KAAK,SAAW,KAAa;AACtC,YAAMA,IAAQ,KAAK,OAAM,IAAK,KAAK,OAAM;AACzC,MAAIA,MAAU,IACZ,KAAK,SAAS,IAEd,KAAK,SAASA,IAAQ,KAAK,OAAM;AAAA,IAErC;AACA,WAAO,KAAK;AAAA,EACd;AAAA,EACA,mBAAmB;AACjB,QAAI,OAAO,KAAK,SAAW,KAAa;AACtC,YAAMA,IAAQ,KAAK,OAAM,IAAK,KAAK,OAAM;AACzC,UAAIA,MAAU;AACZ,aAAK,SAAS;AAAA,WACT;AACL,cAAMC,IAAI,KAAK,aAAY;AAC3B,aAAK,SAASD,IAAQ,OAAO,IAAI,KAAK,IAAI,IAAIC,IAAI,CAAC;AAAA,MACrD;AAAA,IACF;AACA,WAAO,KAAK;AAAA,EACd;AAAA,EACA,eAAe;AACb,WAAI,OAAO,KAAK,KAAO,QACrB,KAAK,MAAM,KAAK,OAAM,IAAK,KAAK,OAAM,KAAM,MAEvC,KAAK;AAAA,EACd;AAAA,EACA,WAAW;AACT,WAAI,OAAO,KAAK,KAAO,QACrB,KAAK,KAAK,KAAK,OAAM,IAAK,MAErB,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,gBAAgB;AACd,WAAI,OAAO,KAAK,cAAgB,QAC9B,KAAK,eAAe,KAAK,IAAI,MAAM,KAAK,IAAI,MAAM,KAAK,IAAI,OAAO,MAE7D,KAAK;AAAA,EACd;AAAA;AAAA,EAIA,OAAOC,IAAS,IAAI;AAClB,UAAMC,IAAI,KAAK,OAAM,GACfC,IAAI,KAAK,cAAa;AAC5B,QAAIH,IAAI,KAAK,aAAY,IAAKC,IAAS;AACvC,WAAID,IAAI,MACNA,IAAI,IAEC,KAAK,GAAG;AAAA,MACb,GAAAE;AAAA,MACA,GAAAC;AAAA,MACA,GAAAH;AAAA,MACA,GAAG,KAAK;AAAA,IACd,CAAK;AAAA,EACH;AAAA,EACA,QAAQC,IAAS,IAAI;AACnB,UAAMC,IAAI,KAAK,OAAM,GACfC,IAAI,KAAK,cAAa;AAC5B,QAAIH,IAAI,KAAK,aAAY,IAAKC,IAAS;AACvC,WAAID,IAAI,MACNA,IAAI,IAEC,KAAK,GAAG;AAAA,MACb,GAAAE;AAAA,MACA,GAAAC;AAAA,MACA,GAAAH;AAAA,MACA,GAAG,KAAK;AAAA,IACd,CAAK;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,IAAIxD,GAAOyD,IAAS,IAAI;AACtB,UAAMG,IAAQ,KAAK,GAAG5D,CAAK,GACrB6D,IAAIJ,IAAS,KACbK,IAAO,CAAApP,OAAQkP,EAAMlP,CAAG,IAAI,KAAKA,CAAG,KAAKmP,IAAI,KAAKnP,CAAG,GACrDqP,IAAO;AAAA,MACX,GAAGhC,EAAM+B,EAAK,GAAG,CAAC;AAAA,MAClB,GAAG/B,EAAM+B,EAAK,GAAG,CAAC;AAAA,MAClB,GAAG/B,EAAM+B,EAAK,GAAG,CAAC;AAAA,MAClB,GAAG/B,EAAM+B,EAAK,GAAG,IAAI,GAAG,IAAI;AAAA,IAClC;AACI,WAAO,KAAK,GAAGC,CAAI;AAAA,EACrB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,KAAKN,IAAS,IAAI;AAChB,WAAO,KAAK,IAAI;AAAA,MACd,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT,GAAOA,CAAM;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAMA,IAAS,IAAI;AACjB,WAAO,KAAK,IAAI;AAAA,MACd,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACT,GAAOA,CAAM;AAAA,EACX;AAAA,EACA,aAAaO,GAAY;AACvB,UAAMC,IAAK,KAAK,GAAGD,CAAU,GACvBE,IAAQ,KAAK,IAAID,EAAG,KAAK,IAAI,KAAK,IAClCH,IAAO,CAAApP,MACJqN,GAAO,KAAKrN,CAAG,IAAI,KAAK,IAAIuP,EAAGvP,CAAG,IAAIuP,EAAG,KAAK,IAAI,KAAK,MAAMC,CAAK;AAE3E,WAAO,KAAK,GAAG;AAAA,MACb,GAAGJ,EAAK,GAAG;AAAA,MACX,GAAGA,EAAK,GAAG;AAAA,MACX,GAAGA,EAAK,GAAG;AAAA,MACX,GAAGI;AAAA,IACT,CAAK;AAAA,EACH;AAAA;AAAA,EAGA,SAAS;AACP,WAAO,KAAK,cAAa,IAAK;AAAA,EAChC;AAAA,EACA,UAAU;AACR,WAAO,KAAK,cAAa,KAAM;AAAA,EACjC;AAAA;AAAA,EAGA,OAAOC,GAAO;AACZ,WAAO,KAAK,MAAMA,EAAM,KAAK,KAAK,MAAMA,EAAM,KAAK,KAAK,MAAMA,EAAM,KAAK,KAAK,MAAMA,EAAM;AAAA,EAC5F;AAAA,EACA,QAAQ;AACN,WAAO,KAAK,GAAG,IAAI;AAAA,EACrB;AAAA;AAAA,EAGA,cAAc;AACZ,QAAIC,IAAM;AACV,UAAMC,KAAQ,KAAK,KAAK,GAAG,SAAS,EAAE;AACtC,IAAAD,KAAOC,EAAK,WAAW,IAAIA,IAAO,MAAMA;AACxC,UAAMC,KAAQ,KAAK,KAAK,GAAG,SAAS,EAAE;AACtC,IAAAF,KAAOE,EAAK,WAAW,IAAIA,IAAO,MAAMA;AACxC,UAAMC,KAAQ,KAAK,KAAK,GAAG,SAAS,EAAE;AAEtC,QADAH,KAAOG,EAAK,WAAW,IAAIA,IAAO,MAAMA,GACpC,OAAO,KAAK,KAAM,YAAY,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG;AAC3D,YAAMC,IAAOzC,EAAM,KAAK,IAAI,GAAG,EAAE,SAAS,EAAE;AAC5C,MAAAqC,KAAOI,EAAK,WAAW,IAAIA,IAAO,MAAMA;AAAA,IAC1C;AACA,WAAOJ;AAAA,EACT;AAAA;AAAA,EAGA,QAAQ;AACN,WAAO;AAAA,MACL,GAAG,KAAK,OAAM;AAAA,MACd,GAAG,KAAK,iBAAgB;AAAA,MACxB,GAAG,KAAK,aAAY;AAAA,MACpB,GAAG,KAAK;AAAA,IACd;AAAA,EACE;AAAA;AAAA,EAGA,cAAc;AACZ,UAAMV,IAAI,KAAK,OAAM,GACf,IAAI3B,EAAM,KAAK,iBAAgB,IAAK,GAAG,GACvCyB,IAAIzB,EAAM,KAAK,aAAY,IAAK,GAAG;AACzC,WAAO,KAAK,MAAM,IAAI,QAAQ2B,CAAC,IAAI,CAAC,KAAKF,CAAC,KAAK,KAAK,CAAC,MAAM,OAAOE,CAAC,IAAI,CAAC,KAAKF,CAAC;AAAA,EAChF;AAAA;AAAA,EAGA,QAAQ;AACN,WAAO;AAAA,MACL,GAAG,KAAK,OAAM;AAAA,MACd,GAAG,KAAK,iBAAgB;AAAA,MACxB,GAAG,KAAK,SAAQ;AAAA,MAChB,GAAG,KAAK;AAAA,IACd;AAAA,EACE;AAAA,EACA,QAAQ;AACN,WAAO;AAAA,MACL,GAAG,KAAK;AAAA,MACR,GAAG,KAAK;AAAA,MACR,GAAG,KAAK;AAAA,MACR,GAAG,KAAK;AAAA,IACd;AAAA,EACE;AAAA,EACA,cAAc;AACZ,WAAO,KAAK,MAAM,IAAI,QAAQ,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,OAAO,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC;AAAA,EAC3G;AAAA,EACA,WAAW;AACT,WAAO,KAAK,YAAW;AAAA,EACzB;AAAA;AAAA;AAAA,EAIA,IAAIiB,GAAKlY,GAAOiW,GAAK;AACnB,UAAMkC,IAAQ,KAAK,MAAK;AACxB,WAAAA,EAAMD,CAAG,IAAIlC,EAAWhW,GAAOiW,CAAG,GAC3BkC;AAAA,EACT;AAAA,EACA,GAAG1E,GAAO;AACR,WAAO,IAAI,KAAK,YAAYA,CAAK;AAAA,EACnC;AAAA,EACA,SAAS;AACP,WAAI,OAAO,KAAK,OAAS,QACvB,KAAK,OAAO,KAAK,IAAI,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,IAEtC,KAAK;AAAA,EACd;AAAA,EACA,SAAS;AACP,WAAI,OAAO,KAAK,OAAS,QACvB,KAAK,OAAO,KAAK,IAAI,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,IAEtC,KAAK;AAAA,EACd;AAAA,EACA,cAAc+C,GAAS;AACrB,UAAM4B,IAAgB5B,EAAQ,QAAQ,KAAK,EAAE;AAC7C,aAAS6B,EAAWC,GAAQC,GAAQ;AAClC,aAAO,SAASH,EAAcE,CAAM,IAAIF,EAAcG,KAAUD,CAAM,GAAG,EAAE;AAAA,IAC7E;AACA,IAAIF,EAAc,SAAS,KAEzB,KAAK,IAAIC,EAAW,CAAC,GACrB,KAAK,IAAIA,EAAW,CAAC,GACrB,KAAK,IAAIA,EAAW,CAAC,GACrB,KAAK,IAAID,EAAc,CAAC,IAAIC,EAAW,CAAC,IAAI,MAAM,MAGlD,KAAK,IAAIA,EAAW,GAAG,CAAC,GACxB,KAAK,IAAIA,EAAW,GAAG,CAAC,GACxB,KAAK,IAAIA,EAAW,GAAG,CAAC,GACxB,KAAK,IAAID,EAAc,CAAC,IAAIC,EAAW,GAAG,CAAC,IAAI,MAAM;AAAA,EAEzD;AAAA,EACA,QAAQ;AAAA,IACN,GAAGG;AAAA,IACH;AAAA,IACA,GAAAvB;AAAA,IACA,GAAAwB;AAAA,EACJ,GAAK;AACD,UAAMtB,KAAKqB,IAAK,MAAM,OAAO;AAK7B,QAJA,KAAK,KAAKrB,GACV,KAAK,SAAS,GACd,KAAK,KAAKF,GACV,KAAK,IAAI,OAAOwB,KAAM,WAAWA,IAAI,GACjC,KAAK,GAAG;AACV,YAAMP,IAAM1C,EAAMyB,IAAI,GAAG;AACzB,WAAK,IAAIiB,GACT,KAAK,IAAIA,GACT,KAAK,IAAIA;AACT;AAAA,IACF;AACA,QAAIhD,IAAI,GACNwD,IAAI,GACJC,IAAI;AACN,UAAMC,IAAWzB,IAAI,IACf0B,KAAU,IAAI,KAAK,IAAI,IAAI5B,IAAI,CAAC,KAAK,GACrC6B,IAAkBD,KAAU,IAAI,KAAK,IAAID,IAAW,IAAI,CAAC;AAC/D,IAAIA,KAAY,KAAKA,IAAW,KAC9B1D,IAAI2D,GACJH,IAAII,KACKF,KAAY,KAAKA,IAAW,KACrC1D,IAAI4D,GACJJ,IAAIG,KACKD,KAAY,KAAKA,IAAW,KACrCF,IAAIG,GACJF,IAAIG,KACKF,KAAY,KAAKA,IAAW,KACrCF,IAAII,GACJH,IAAIE,KACKD,KAAY,KAAKA,IAAW,KACrC1D,IAAI4D,GACJH,IAAIE,KACKD,KAAY,KAAKA,IAAW,MACrC1D,IAAI2D,GACJF,IAAIG;AAEN,UAAMC,IAAwB9B,IAAI4B,IAAS;AAC3C,SAAK,IAAIrD,GAAON,IAAI6D,KAAyB,GAAG,GAChD,KAAK,IAAIvD,GAAOkD,IAAIK,KAAyB,GAAG,GAChD,KAAK,IAAIvD,GAAOmD,IAAII,KAAyB,GAAG;AAAA,EAClD;AAAA,EACA,QAAQ;AAAA,IACN,GAAGP;AAAA,IACH;AAAA,IACA,GAAAQ;AAAA,IACA,GAAAP;AAAA,EACJ,GAAK;AACD,UAAMtB,KAAKqB,IAAK,MAAM,OAAO;AAC7B,SAAK,KAAKrB,GACV,KAAK,SAAS,GACd,KAAK,KAAK6B,GACV,KAAK,IAAI,OAAOP,KAAM,WAAWA,IAAI;AACrC,UAAMQ,IAAKzD,EAAMwD,IAAI,GAAG;AAIxB,QAHA,KAAK,IAAIC,GACT,KAAK,IAAIA,GACT,KAAK,IAAIA,GACL,KAAK;AACP;AAEF,UAAMC,IAAK/B,IAAI,IACTvN,IAAI,KAAK,MAAMsP,CAAE,GACjBC,IAAKD,IAAKtP,GACV0N,IAAI9B,EAAMwD,KAAK,IAAM,KAAK,GAAG,GAC7BI,IAAI5D,EAAMwD,KAAK,IAAM,IAAIG,KAAM,GAAG,GAClChE,IAAIK,EAAMwD,KAAK,IAAM,KAAK,IAAMG,MAAO,GAAG;AAChD,YAAQvP,GAAC;AAAA,MACP,KAAK;AACH,aAAK,IAAIuL,GACT,KAAK,IAAImC;AACT;AAAA,MACF,KAAK;AACH,aAAK,IAAI8B,GACT,KAAK,IAAI9B;AACT;AAAA,MACF,KAAK;AACH,aAAK,IAAIA,GACT,KAAK,IAAInC;AACT;AAAA,MACF,KAAK;AACH,aAAK,IAAImC,GACT,KAAK,IAAI8B;AACT;AAAA,MACF,KAAK;AACH,aAAK,IAAIjE,GACT,KAAK,IAAImC;AACT;AAAA,MACF,KAAK;AAAA,MACL;AACE,aAAK,IAAIA,GACT,KAAK,IAAI8B;AACT;AAAA,IACR;AAAA,EACE;AAAA,EACA,cAAc5C,GAAS;AACrB,UAAM6C,IAAQ5D,GAAce,GAASV,EAAa;AAClD,SAAK,QAAQ;AAAA,MACX,GAAGuD,EAAM,CAAC;AAAA,MACV,GAAGA,EAAM,CAAC;AAAA,MACV,GAAGA,EAAM,CAAC;AAAA,MACV,GAAGA,EAAM,CAAC;AAAA,IAChB,CAAK;AAAA,EACH;AAAA,EACA,cAAc7C,GAAS;AACrB,UAAM6C,IAAQ5D,GAAce,GAASV,EAAa;AAClD,SAAK,QAAQ;AAAA,MACX,GAAGuD,EAAM,CAAC;AAAA,MACV,GAAGA,EAAM,CAAC;AAAA,MACV,GAAGA,EAAM,CAAC;AAAA,MACV,GAAGA,EAAM,CAAC;AAAA,IAChB,CAAK;AAAA,EACH;AAAA,EACA,cAAc7C,GAAS;AACrB,UAAM6C,IAAQ5D,GAAce,GAAS,CAACjC,GAAK+E;AAAA;AAAA,MAE3CA,EAAI,SAAS,GAAG,IAAI9D,EAAMjB,IAAM,MAAM,GAAG,IAAIA;AAAA,KAAG;AAChD,SAAK,IAAI8E,EAAM,CAAC,GAChB,KAAK,IAAIA,EAAM,CAAC,GAChB,KAAK,IAAIA,EAAM,CAAC,GAChB,KAAK,IAAIA,EAAM,CAAC;AAAA,EAClB;AACF;ACzjBA,MAAME,IAAU,GACVC,KAAiB,MACjBC,KAAkB,MAClBC,KAAkB,MAClBC,KAAkB,MAClBC,KAAkB,GAClBC,KAAiB,GAGjBC,KAAe,CAAC;AAAA,EACpB,OAAO;AAAA,EACP,QAAQ;AACV,GAAG;AAAA,EACD,OAAO;AAAA,EACP,QAAQ;AACV,GAAG;AAAA,EACD,OAAO;AAAA,EACP,QAAQ;AACV,GAAG;AAAA,EACD,OAAO;AAAA,EACP,QAAQ;AACV,GAAG;AAAA,EACD,OAAO;AAAA,EACP,QAAQ;AACV,GAAG;AAAA,EACD,OAAO;AAAA,EACP,QAAQ;AACV,GAAG;AAAA,EACD,OAAO;AAAA,EACP,QAAQ;AACV,GAAG;AAAA,EACD,OAAO;AAAA,EACP,QAAQ;AACV,GAAG;AAAA,EACD,OAAO;AAAA,EACP,QAAQ;AACV,GAAG;AAAA,EACD,OAAO;AAAA,EACP,QAAQ;AACV,CAAC;AACD,SAASC,GAAOrD,GAAK9M,GAAGoQ,GAAO;AAC7B,MAAIC;AAEJ,SAAI,KAAK,MAAMvD,EAAI,CAAC,KAAK,MAAM,KAAK,MAAMA,EAAI,CAAC,KAAK,MAClDuD,IAAMD,IAAQ,KAAK,MAAMtD,EAAI,CAAC,IAAI6C,IAAU3P,IAAI,KAAK,MAAM8M,EAAI,CAAC,IAAI6C,IAAU3P,IAE9EqQ,IAAMD,IAAQ,KAAK,MAAMtD,EAAI,CAAC,IAAI6C,IAAU3P,IAAI,KAAK,MAAM8M,EAAI,CAAC,IAAI6C,IAAU3P,GAE5EqQ,IAAM,IACRA,KAAO,MACEA,KAAO,QAChBA,KAAO,MAEFA;AACT;AACA,SAASC,GAAcxD,GAAK9M,GAAGoQ,GAAO;AAEpC,MAAItD,EAAI,MAAM,KAAKA,EAAI,MAAM;AAC3B,WAAOA,EAAI;AAEb,MAAIyD;AACJ,SAAIH,IACFG,IAAazD,EAAI,IAAI8C,KAAiB5P,IAC7BA,MAAMiQ,KACfM,IAAazD,EAAI,IAAI8C,KAErBW,IAAazD,EAAI,IAAI+C,KAAkB7P,GAGrCuQ,IAAa,MACfA,IAAa,IAGXH,KAASpQ,MAAMgQ,MAAmBO,IAAa,QACjDA,IAAa,MAEXA,IAAa,SACfA,IAAa,OAER,KAAK,MAAMA,IAAa,GAAG,IAAI;AACxC;AACA,SAASnS,GAAS0O,GAAK9M,GAAGoQ,GAAO;AAC/B,MAAIha;AACJ,SAAIga,IACFha,IAAQ0W,EAAI,IAAIgD,KAAkB9P,IAElC5J,IAAQ0W,EAAI,IAAIiD,KAAkB/P,GAGpC5J,IAAQ,KAAK,IAAI,GAAG,KAAK,IAAI,GAAGA,CAAK,CAAC,GAC/B,KAAK,MAAMA,IAAQ,GAAG,IAAI;AACnC;AACe,SAASoa,GAAS/C,GAAOgD,IAAO,IAAI;AACjD,QAAMC,IAAW,CAAA,GACXC,IAAS,IAAIpE,EAAUkB,CAAK,GAC5BX,IAAM6D,EAAO,MAAK;AACxB,WAAS,IAAIX,IAAiB,IAAI,GAAG,KAAK,GAAG;AAC3C,UAAM,IAAI,IAAIzD,EAAU;AAAA,MACtB,GAAG4D,GAAOrD,GAAK,GAAG,EAAI;AAAA,MACtB,GAAGwD,GAAcxD,GAAK,GAAG,EAAI;AAAA,MAC7B,GAAG1O,GAAS0O,GAAK,GAAG,EAAI;AAAA,IAC9B,CAAK;AACD,IAAA4D,EAAS,KAAK,CAAC;AAAA,EACjB;AACA,EAAAA,EAAS,KAAKC,CAAM;AACpB,WAAS,IAAI,GAAG,KAAKV,IAAgB,KAAK,GAAG;AAC3C,UAAM,IAAI,IAAI1D,EAAU;AAAA,MACtB,GAAG4D,GAAOrD,GAAK,CAAC;AAAA,MAChB,GAAGwD,GAAcxD,GAAK,CAAC;AAAA,MACvB,GAAG1O,GAAS0O,GAAK,CAAC;AAAA,IACxB,CAAK;AACD,IAAA4D,EAAS,KAAK,CAAC;AAAA,EACjB;AAGA,SAAID,EAAK,UAAU,SACVP,GAAa,IAAI,CAAC;AAAA,IACvB,OAAA/R;AAAA,IACA,QAAAmP;AAAA,EACN,MAAU,IAAIf,EAAUkE,EAAK,mBAAmB,SAAS,EAAE,IAAIC,EAASvS,CAAK,GAAGmP,CAAM,EAAE,YAAW,CAAE,IAE5FoD,EAAS,IAAI,CAAAE,MAAKA,EAAE,YAAW,CAAE;AAC1C;AC1FO,MAAMC,KAAO,CAAC,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,SAAS;AACjIA,GAAK,UAAUA,GAAK,CAAC;AClCN,SAASC,KAAY;AAClC,SAAO,CAAC,EAAE,OAAO,SAAW,OAAe,OAAO,YAAY,OAAO,SAAS;AAChF;ACFe,SAASC,GAASC,GAAMvF,GAAG;AACxC,MAAI,CAACuF;AACH,WAAO;AAIT,MAAIA,EAAK;AACP,WAAOA,EAAK,SAASvF,CAAC;AAIxB,MAAIwF,IAAOxF;AACX,SAAOwF,KAAM;AACX,QAAIA,MAASD;AACX,aAAO;AAET,IAAAC,IAAOA,EAAK;AAAA,EACd;AACA,SAAO;AACT;ACjBA,MAAMC,KAAe,iBACfC,KAAkB,oBAClBC,KAAW,eACXC,KAAiB,oBAAI,IAAG;AAC9B,SAASC,GAAQ;AAAA,EACf,MAAAC;AACF,IAAI,IAAI;AACN,SAAIA,IACKA,EAAK,WAAW,OAAO,IAAIA,IAAO,QAAQA,CAAI,KAEhDH;AACT;AACA,SAASI,GAAahV,GAAQ;AAC5B,SAAIA,EAAO,WACFA,EAAO,WAEH,SAAS,cAAc,MAAM,KAC3B,SAAS;AAC1B;AACA,SAASiV,GAASC,GAAS;AACzB,SAAIA,MAAY,UACP,iBAEFA,IAAU,YAAY;AAC/B;AAKA,SAASC,GAAWC,GAAW;AAC7B,SAAO,MAAM,MAAMP,GAAe,IAAIO,CAAS,KAAKA,GAAW,QAAQ,EAAE,OAAO,CAAAX,MAAQA,EAAK,YAAY,OAAO;AAClH;AACO,SAASY,GAAUC,GAAKtV,IAAS,IAAI;AAC1C,MAAI,CAACsU,GAAS;AACZ,WAAO;AAET,QAAM;AAAA,IACJ,KAAAiB;AAAA,IACA,SAAAL;AAAA,IACA,UAAAM,IAAW;AAAA,EACf,IAAMxV,GACEyV,IAAcR,GAASC,CAAO,GAC9BQ,IAAiBD,MAAgB,gBACjCE,IAAY,SAAS,cAAc,OAAO;AAChD,EAAAA,EAAU,aAAajB,IAAce,CAAW,GAC5CC,KAAkBF,KACpBG,EAAU,aAAahB,IAAiB,GAAGa,CAAQ,EAAE,GAEnDD,KAAA,QAAAA,EAAK,UACPI,EAAU,QAAQJ,KAAA,gBAAAA,EAAK,QAEzBI,EAAU,YAAYL;AACtB,QAAMF,IAAYJ,GAAahV,CAAM,GAC/B;AAAA,IACJ,YAAA4V;AAAA,EACJ,IAAMR;AACJ,MAAIF,GAAS;AAEX,QAAIQ,GAAgB;AAClB,YAAMG,KAAc7V,EAAO,UAAUmV,GAAWC,CAAS,GAAG,OAAO,CAAAX,MAAQ;AAEzE,YAAI,CAAC,CAAC,WAAW,cAAc,EAAE,SAASA,EAAK,aAAaC,EAAY,CAAC;AACvE,iBAAO;AAIT,cAAMoB,IAAe,OAAOrB,EAAK,aAAaE,EAAe,KAAK,CAAC;AACnE,eAAOa,KAAYM;AAAA,MACrB,CAAC;AACD,UAAID,EAAW;AACb,eAAAT,EAAU,aAAaO,GAAWE,EAAWA,EAAW,SAAS,CAAC,EAAE,WAAW,GACxEF;AAAA,IAEX;AAGA,IAAAP,EAAU,aAAaO,GAAWC,CAAU;AAAA,EAC9C;AACE,IAAAR,EAAU,YAAYO,CAAS;AAEjC,SAAOA;AACT;AACA,SAASI,GAAchU,GAAK/B,IAAS,IAAI;AACvC,MAAI;AAAA,IACF,QAAAvG;AAAA,EACJ,IAAMuG;AACJ,SAAAvG,UAAW0b,GAAWH,GAAahV,CAAM,CAAC,IACnCvG,EAAO,KAAK,CAAAgb,MAAQA,EAAK,aAAaK,GAAQ9U,CAAM,CAAC,MAAM+B,CAAG;AACvE;AAYA,SAASiU,GAAkBZ,GAAWpV,GAAQ;AAC5C,QAAMiW,IAAsBpB,GAAe,IAAIO,CAAS;AAGxD,MAAI,CAACa,KAAuB,CAAC1B,GAAS,UAAU0B,CAAmB,GAAG;AACpE,UAAMC,IAAmBb,GAAU,IAAIrV,CAAM,GACvC;AAAA,MACJ,YAAAmW;AAAA,IACN,IAAQD;AACJ,IAAArB,GAAe,IAAIO,GAAWe,CAAU,GACxCf,EAAU,YAAYc,CAAgB;AAAA,EACxC;AACF;AAQO,SAASE,GAAUd,GAAKvT,GAAKsU,IAAe,CAAA,GAAI;;AACrD,QAAMjB,IAAYJ,GAAaqB,CAAY,GACrC5c,IAAS0b,GAAWC,CAAS,GAC7BpV,IAAS;AAAA,IACb,GAAGqW;AAAA,IACH,QAAA5c;AAAA,EACJ;AAGE,EAAAuc,GAAkBZ,GAAWpV,CAAM;AACnC,QAAMsW,IAAYP,GAAchU,GAAK/B,CAAM;AAC3C,MAAIsW;AACF,YAAI9c,IAAAwG,EAAO,QAAP,QAAAxG,EAAY,SAAS8c,EAAU,YAAUC,IAAAvW,EAAO,QAAP,gBAAAuW,EAAY,WACvDD,EAAU,SAAQE,IAAAxW,EAAO,QAAP,gBAAAwW,EAAY,QAE5BF,EAAU,cAAchB,MAC1BgB,EAAU,YAAYhB,IAEjBgB;AAET,QAAMG,IAAUpB,GAAUC,GAAKtV,CAAM;AACrC,SAAAyW,EAAQ,aAAa3B,GAAQ9U,CAAM,GAAG+B,CAAG,GAClC0U;AACT;ACjJA,SAASC,GAAQC,GAAK;;AACpB,UAAOnd,IAAAmd,KAAA,gBAAAA,EAAK,gBAAL,gBAAAnd,EAAA,KAAAmd;AACT;AAKO,SAASC,GAASD,GAAK;AAC5B,SAAOD,GAAQC,CAAG,aAAa;AACjC;AAKO,SAASE,GAAcF,GAAK;AACjC,SAAOC,GAASD,CAAG,IAAID,GAAQC,CAAG,IAAI;AACxC;ACfA,IAAIG,KAAS,CAAA;AACb,MAAMC,KAAgB,CAAA,GAMTC,KAAa,CAAAC,MAAM;AAC9B,EAAAF,GAAc,KAAKE,CAAE;AACvB;AAaO,SAASC,GAAQC,GAAOC,GAAS;AACtC,MAAI,QAAQ,IAAI,aAAa,gBAAgB,CAACD,KAAS,YAAY,QAAW;AAC5E,UAAME,IAAeN,GAAc,OAAO,CAACO,GAAKC,MAAiBA,EAAaD,KAAO,IAAI,SAAS,GAAGF,CAAO;AAC5G,IAAIC,KACF,QAAQ,MAAM,YAAYA,CAAY,EAAE;AAAA,EAE5C;AACF;AAGO,SAASG,GAAKL,GAAOC,GAAS;AACnC,MAAI,QAAQ,IAAI,aAAa,gBAAgB,CAACD,KAAS,YAAY,QAAW;AAC5E,UAAME,IAAeN,GAAc,OAAO,CAACO,GAAKC,MAAiBA,EAAaD,KAAO,IAAI,MAAM,GAAGF,CAAO;AACzG,IAAIC,KACF,QAAQ,KAAK,SAASA,CAAY,EAAE;AAAA,EAExC;AACF;AACO,SAASI,KAAc;AAC5B,EAAAX,KAAS,CAAA;AACX;AACO,SAASY,GAAKC,GAAQR,GAAOC,GAAS;AAC3C,EAAI,CAACD,KAAS,CAACL,GAAOM,CAAO,MAC3BO,EAAO,IAAOP,CAAO,GACrBN,GAAOM,CAAO,IAAI;AAEtB;AAGO,SAASQ,GAAYT,GAAOC,GAAS;AAC1C,EAAAM,GAAKR,IAASC,GAAOC,CAAO;AAC9B;AAGO,SAASS,GAASV,GAAOC,GAAS;AACvC,EAAAM,GAAKF,IAAML,GAAOC,CAAO;AAC3B;AACAQ,GAAY,aAAaZ;AACzBY,GAAY,cAAcH;AAC1BG,GAAY,WAAWC;ACxDvB,SAASC,GAAUzK,GAAO;AACxB,SAAOA,EAAM,QAAQ,SAAS,CAACmC,GAAO8C,MAAMA,EAAE,aAAa;AAC7D;AACO,SAAS4E,GAAQC,GAAOC,GAAS;AACtC,EAAAQ,GAAYT,GAAO,uBAAuBC,CAAO,EAAE;AACrD;AACO,SAASW,GAAiBC,GAAQ;AACvC,SAAO,OAAOA,KAAW,YAAY,OAAOA,EAAO,QAAS,YAAY,OAAOA,EAAO,SAAU,aAAa,OAAOA,EAAO,QAAS,YAAY,OAAOA,EAAO,QAAS;AACzK;AACO,SAASC,GAAeC,IAAQ,IAAI;AACzC,SAAO,OAAO,KAAKA,CAAK,EAAE,OAAO,CAACC,GAAKpW,MAAQ;AAC7C,UAAMgK,IAAMmM,EAAMnW,CAAG;AACrB,YAAQA,GAAG;AAAA,MACT,KAAK;AACH,QAAAoW,EAAI,YAAYpM,GAChB,OAAOoM,EAAI;AACX;AAAA,MACF;AACE,eAAOA,EAAIpW,CAAG,GACdoW,EAAIL,GAAU/V,CAAG,CAAC,IAAIgK;AAAA,IAC9B;AACI,WAAOoM;AAAA,EACT,GAAG,CAAA,CAAE;AACP;AACO,SAASnE,GAASS,GAAM1S,GAAKqW,GAAW;AAC7C,SAAKA,IAMe5L,gBAAAA,GAAM,cAAciI,EAAK,KAAK;AAAA,IAChD,KAAA1S;AAAA,IACA,GAAGkW,GAAexD,EAAK,KAAK;AAAA,IAC5B,GAAG2D;AAAA,EACP,IAAM3D,EAAK,YAAY,CAAA,GAAI,IAAI,CAAC4D,GAAO1W,MAAUqS,GAASqE,GAAO,GAAGtW,CAAG,IAAI0S,EAAK,GAAG,IAAI9S,CAAK,EAAE,CAAC,CAAC,IATxE6K,gBAAAA,GAAM,cAAciI,EAAK,KAAK;AAAA,IAChD,KAAA1S;AAAA,IACA,GAAGkW,GAAexD,EAAK,KAAK;AAAA,EAClC,IAAQA,EAAK,YAAY,CAAA,GAAI,IAAI,CAAC4D,GAAO1W,MAAUqS,GAASqE,GAAO,GAAGtW,CAAG,IAAI0S,EAAK,GAAG,IAAI9S,CAAK,EAAE,CAAC,CAAC;AAOlG;AACO,SAAS2W,GAAkBC,GAAc;AAE9C,SAAOC,GAAcD,CAAY,EAAE,CAAC;AACtC;AACO,SAASE,GAAuBC,GAAc;AACnD,SAAKA,IAGE,MAAM,QAAQA,CAAY,IAAIA,IAAe,CAACA,CAAY,IAFxD,CAAA;AAGX;AAWO,MAAMC,KAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAyDbC,KAAkB,CAAAC,MAAU;AACvC,QAAM;AAAA,IACJ,KAAAtD;AAAA,IACA,WAAAuD;AAAA,IACA,OAAAC;AAAA,EACJ,IAAMC,GAAWpK,EAAW;AAC1B,MAAIqK,IAAiBN;AACrB,EAAIG,MACFG,IAAiBA,EAAe,QAAQ,YAAYH,CAAS,IAE3DC,MACFE,IAAiB,UAAUF,CAAK;AAAA,EAAOE,CAAc;AAAA,KAEvD7b,EAAU,MAAM;AACd,UAAMuZ,IAAMkC,EAAO,SACbK,IAAarC,GAAcF,CAAG;AACpC,IAAAP,GAAU6C,GAAgB,qBAAqB;AAAA,MAC7C,SAAS,CAACF;AAAA,MACV,KAAAxD;AAAA,MACA,UAAU2D;AAAA,IAChB,CAAK;AAAA,EACH,GAAG,CAAA,CAAE;AACP,GC5IMC,IAAsB;AAAA,EAC1B,cAAc;AAAA,EACd,gBAAgB;AAAA,EAChB,YAAY;AACd;AACA,SAASC,GAAiB;AAAA,EACxB,cAAAb;AAAA,EACA,gBAAAc;AACF,GAAG;AACD,EAAAF,EAAoB,eAAeZ,GACnCY,EAAoB,iBAAiBE,KAAkBf,GAAkBC,CAAY,GACrFY,EAAoB,aAAa,CAAC,CAACE;AACrC;AACA,SAASC,KAAmB;AAC1B,SAAO;AAAA,IACL,GAAGH;AAAA,EACP;AACA;AACA,MAAMI,IAAW,CAAAtgB,MAAS;AACxB,QAAM;AAAA,IACJ,MAAAY;AAAA,IACA,WAAAd;AAAA,IACA,SAAAygB;AAAA,IACA,OAAAxe;AAAA,IACA,cAAAud;AAAA,IACA,gBAAAc;AAAA,IACA,GAAGI;AAAA,EACP,IAAMxgB,GACEygB,IAASlN,EAAM,OAAO,IAAI;AAChC,MAAImN,IAASR;AASb,MARIZ,MACFoB,IAAS;AAAA,IACP,cAAApB;AAAA,IACA,gBAAgBc,KAAkBf,GAAkBC,CAAY;AAAA,EACtE,IAEEK,GAAgBc,CAAM,GACtBxC,GAAQa,GAAiBle,CAAI,GAAG,0CAA0CA,CAAI,EAAE,GAC5E,CAACke,GAAiBle,CAAI;AACxB,WAAO;AAET,MAAIme,IAASne;AACb,SAAIme,KAAU,OAAOA,EAAO,QAAS,eACnCA,IAAS;AAAA,IACP,GAAGA;AAAA,IACH,MAAMA,EAAO,KAAK2B,EAAO,cAAcA,EAAO,cAAc;AAAA,EAClE,IAES3F,GAASgE,EAAO,MAAM,OAAOA,EAAO,IAAI,IAAI;AAAA,IACjD,WAAAjf;AAAA,IACA,SAAAygB;AAAA,IACA,OAAAxe;AAAA,IACA,aAAagd,EAAO;AAAA,IACpB,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,eAAe;AAAA,IACf,GAAGyB;AAAA,IACH,KAAKC;AAAA,EACT,CAAG;AACH;AACAH,EAAS,cAAc;AACvBA,EAAS,mBAAmBD;AAC5BC,EAAS,mBAAmBH;AC/DrB,SAASQ,GAAgBlB,GAAc;AAC5C,QAAM,CAACH,GAAcc,CAAc,IAAIZ,GAAuBC,CAAY;AAC1E,SAAOmB,EAAU,iBAAiB;AAAA,IAChC,cAAAtB;AAAA,IACA,gBAAAc;AAAA,EACJ,CAAG;AACH;AACO,SAASS,KAAkB;AAChC,QAAMH,IAASE,EAAU,iBAAgB;AACzC,SAAKF,EAAO,aAGL,CAACA,EAAO,cAAcA,EAAO,cAAc,IAFzCA,EAAO;AAGlB;ACbA,SAASI,KAAW;AAAEA,SAAAA,KAAW,OAAO,SAAS,OAAO,OAAO,SAAS,SAAU/B,GAAQ;AAAE,aAASxU,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAAE,UAAIwW,IAAS,UAAUxW,CAAC;AAAG,eAASzB,KAAOiY;AAAU,QAAI,OAAO,UAAU,eAAe,KAAKA,GAAQjY,CAAG,MAAKiW,EAAOjW,CAAG,IAAIiY,EAAOjY,CAAG;AAAA,IAAO;AAAE,WAAOiW;AAAA,EAAQ,GAAU+B,GAAS,MAAM,MAAM,SAAS;AAAG;AAUlVH,GAAgBvF,GAAK,OAAO;AAI5B,MAAM4F,KAAoB,gBAAAzN,EAAM,WAAW,CAACvT,GAAOihB,MAAQ;AACzD,QAAM;AAAA;AAAA,IAEJ,WAAAnhB;AAAA;AAAA,IAEA,MAAAc;AAAA,IACA,MAAAsgB;AAAA,IACA,QAAAC;AAAA,IACA,UAAAC;AAAA,IACA,SAAAb;AAAA;AAAA,IAEA,cAAAd;AAAA,IACA,GAAGe;AAAA,EACP,IAAMxgB,GACE;AAAA,IACJ,WAAA6f,IAAY;AAAA,IACZ,eAAAwB;AAAA,EACJ,IAAM9N,EAAM,WAAW+N,EAAO,GACtBC,IAActL,GAAKoL,GAAexB,GAAW;AAAA,IACjD,CAAC,GAAGA,CAAS,IAAIjf,EAAK,IAAI,EAAE,GAAG,CAAC,CAACA,EAAK;AAAA,IACtC,CAAC,GAAGif,CAAS,OAAO,GAAG,CAAC,CAACqB,KAAQtgB,EAAK,SAAS;AAAA,EACnD,GAAKd,CAAS;AACZ,MAAI0hB,IAAeJ;AACnB,EAAII,MAAiB,UAAajB,MAChCiB,IAAe;AAEjB,QAAMC,IAAWN,IAAS;AAAA,IACxB,aAAa,UAAUA,CAAM;AAAA,IAC7B,WAAW,UAAUA,CAAM;AAAA,EAC/B,IAAM,QACE,CAAC7B,GAAcc,CAAc,IAAIZ,GAAuBC,CAAY;AAC1E,SAAoB,gBAAAlM,EAAM,cAAc,QAAQuN,GAAS;AAAA,IACvD,MAAM;AAAA,IACN,cAAclgB,EAAK;AAAA,EACvB,GAAK4f,GAAW;AAAA,IACZ,KAAKS;AAAA,IACL,UAAUO;AAAA,IACV,SAASjB;AAAA,IACT,WAAWgB;AAAA,EACf,CAAG,GAAgB,gBAAAhO,EAAM,cAAcqN,GAAW;AAAA,IAC9C,MAAMhgB;AAAA,IACN,cAAc0e;AAAA,IACd,gBAAgBc;AAAA,IAChB,OAAOqB;AAAA,EACX,CAAG,CAAC;AACJ,CAAC;AACDT,GAAK,kBAAkBH;AACvBG,GAAK,kBAAkBL;AACnB,QAAQ,IAAI,aAAa,iBAC3BK,GAAK,cAAc;AChErB,IAAIU,KAAe,EAAE,MAAQ,EAAE,KAAO,OAAO,OAAS,EAAE,SAAW,iBAAiB,WAAa,QAAO,GAAI,UAAY,CAAC,EAAE,KAAO,QAAQ,OAAS,EAAE,GAAK,yqBAAwqB,GAAI,EAAC,GAAI,MAAQ,QAAQ,OAAS,WAAU;ACD92B,SAASZ,KAAW;AAAE,SAAAA,KAAW,OAAO,SAAS,OAAO,OAAO,SAAS,SAAU/B,GAAQ;AAAE,aAASxU,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAAE,UAAIwW,IAAS,UAAUxW,CAAC;AAAG,eAASzB,KAAOiY;AAAU,QAAI,OAAO,UAAU,eAAe,KAAKA,GAAQjY,CAAG,MAAKiW,EAAOjW,CAAG,IAAIiY,EAAOjY,CAAG;AAAA,IAAO;AAAE,WAAOiW;AAAA,EAAQ,GAAU+B,GAAS,MAAM,MAAM,SAAS;AAAG;AAOlV,MAAMY,KAAe,CAAC1hB,GAAOihB,MAAqB,gBAAA1N,EAAM,cAAcoO,IAAUb,GAAS,CAAA,GAAI9gB,GAAO;AAAA,EAClG,KAAKihB;AAAA,EACL,MAAMW;AACR,CAAC,CAAC,GAGIC,KAAuB,gBAAAtO,EAAM,WAAWmO,EAAY;AACtD,QAAQ,IAAI,aAAa,iBAC3BG,GAAQ,cAAc;ACHjB,MAAMC,KAAoC,CAAC;AAAA,EAChD,MAAAnS;AAAA,EACA,UAAAoS;AAAA,EACA,QAAAC;AAAA,EACA,WAAAliB,IAAY;AACd,MAII,gBAAAsB;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAW,qBAAqBtB,CAAS;AAAA,IACzC,OAAO;AAAA,MACL,iBAAiB;AAAA,MACjB,cAAc;AAAA,MACd,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,KAAK;AAAA,IAAA;AAAA,IAGN,UAAA;AAAA,MAAAkiB,sBACEC,GAAA,EAAO,KAAKD,GAAQ,MAAM,GAAA,CAAY,IAEvC,gBAAA5hB,EAAC6hB,GAAA,EAAO,MAAM,gBAAA7hB,EAACshB,IAAA,CAAA,CAAa,GAAI,MAAM,IAAY,OAAO,EAAE,iBAAiB,aAAa;AAAA,MAE3F,gBAAAtgB,EAAC,OAAA,EAAI,WAAU,iBACb,UAAA;AAAA,QAAA,gBAAAhB;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAO;AAAA,cACL,OAAO;AAAA,cACP,UAAU;AAAA,cACV,YAAY;AAAA,cACZ,YAAY;AAAA,YAAA;AAAA,YAGb,UAAAuP;AAAA,UAAA;AAAA,QAAA;AAAA,QAEFoS,KACC,gBAAA3hB;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAO;AAAA,cACL,OAAO;AAAA,cACP,UAAU;AAAA,cACV,YAAY;AAAA,cACZ,YAAY;AAAA,cACZ,WAAW;AAAA,YAAA;AAAA,YAGZ,UAAA2hB;AAAA,UAAA;AAAA,QAAA;AAAA,MACH,EAAA,CAEJ;AAAA,IAAA;AAAA,EAAA;AAAA,GC5DNG,KAAe,iq1FCYFC,KAAoC,CAAC;AAAA,EAChD,MAAAxS;AAAA,EACA,OAAAyS;AAAA,EACA,MAAAC;AAAA,EACA,QAAAL;AAAA,EACA,WAAAliB,IAAY;AACd,MAEI,gBAAAsB;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,OAAO;AAAA,MACL,WAAW;AAAA,MACX,cAAc;AAAA,MACd,YACE;AAAA,IAAA;AAAA,IAEJ,WAAU;AAAA,IAEV,UAAA;AAAA,MAAA,gBAAAhB;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,KAAK8hB;AAAA,UACL,KAAI;AAAA,UACJ,OAAO;AAAA,YACL,UAAU;AAAA,YACV,KAAK;AAAA,YACL,MAAM;AAAA,YACN,WAAW;AAAA,UAAA;AAAA,QACb;AAAA,MAAA;AAAA,MAEF,gBAAA9gB;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAW,oCAAoCtB,CAAS;AAAA,UACxD,OAAO;AAAA,YACL,UAAU;AAAA,UAAA;AAAA,UAGX,UAAA;AAAA,YAAAkiB,sBACEC,GAAA,EAAO,KAAKD,GAAQ,MAAM,IAAI,IAE/B,gBAAA5hB;AAAA,cAAC6hB;AAAA,cAAA;AAAA,gBACC,MAAM;AAAA,gBACN,OAAO,EAAE,iBAAiB,WAAW,UAAU,QAAQ,YAAY,IAAA;AAAA,gBAElE,UAAAtS,EACE,MAAM,GAAG,EACT,IAAI,CAACqG,MAAMA,EAAE,CAAC,CAAC,EACf,KAAK,EAAE,EACP,YAAA;AAAA,cAAY;AAAA,YAAA;AAAA,YAGnB,gBAAA5U,EAAC,OAAA,EAAI,WAAU,iBACb,UAAA;AAAA,cAAA,gBAAAhB;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,OAAO;AAAA,oBACL,OAAO;AAAA,oBACP,UAAU;AAAA,oBACV,YAAY;AAAA,oBACZ,YAAY;AAAA,kBAAA;AAAA,kBAGb,UAAAuP;AAAA,gBAAA;AAAA,cAAA;AAAA,cAEH,gBAAAvP;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,OAAO;AAAA,oBACL,OAAO;AAAA,oBACP,UAAU;AAAA,oBACV,YAAY;AAAA,oBACZ,YAAY;AAAA,oBACZ,WAAW;AAAA,kBAAA;AAAA,kBAGZ,UAAAgiB;AAAA,gBAAA;AAAA,cAAA;AAAA,cAEFC,KACC,gBAAAjiB;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,OAAO;AAAA,oBACL,OAAO;AAAA,oBACP,UAAU;AAAA,oBACV,YAAY;AAAA,oBACZ,YAAY;AAAA,oBACZ,WAAW;AAAA,kBAAA;AAAA,kBAGZ,UAAAiiB;AAAA,gBAAA;AAAA,cAAA;AAAA,YACH,EAAA,CAEJ;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,EAAA;AAAA,GC9EAC,KAA8B;AAAA,EAClC,EAAE,MAAM,MAAM,MAAM,WAAW,MAAM,uBAAA;AAAA,EACrC,EAAE,MAAM,MAAM,MAAM,iBAAiB,MAAM,uBAAA;AAAA,EAC3C,EAAE,MAAM,MAAM,MAAM,kBAAkB,MAAM,uBAAA;AAAA,EAC5C,EAAE,MAAM,MAAM,MAAM,SAAS,MAAM,uBAAA;AAAA,EACnC,EAAE,MAAM,MAAM,MAAM,SAAS,MAAM,uBAAA;AAAA,EACnC,EAAE,MAAM,MAAM,MAAM,gBAAgB,MAAM,uBAAA;AAC5C,GAEaC,KAAkD,CAAC;AAAA,EAC9D,WAAAC,IAAYF;AAAA,EACZ,gBAAAG,IAAiB;AAAA,EACjB,iBAAAC;AAAA,EACA,YAAA5c,IAAa;AAAA,EACb,WAAAhG,IAAY;AAAA,EACZ,GAAGE;AACL,MAAM;AACJ,QAAMmQ,IAAe,CAACxP,MAAkB;AACtC,IAAI+hB,KACFA,EAAgB/hB,CAAK;AAAA,EAEzB,GAEMgiB,IAAa,CAACC,MAEhB,gBAAAxiB;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAKwiB;AAAA,MACL,KAAI;AAAA,MACJ,WAAU;AAAA,MACV,OAAO,EAAE,OAAO,QAAQ,QAAQ,OAAA;AAAA,IAAO;AAAA,EAAA,GAKvCpd,IAAUgd,EAAU,IAAI,CAACK,OAAa;AAAA,IAC1C,OAAOA,EAAQ;AAAA,IACf,OACE,gBAAAzhB,EAAC,OAAA,EAAI,WAAU,2BACZ,UAAA;AAAA,MAAAuhB,EAAWE,EAAQ,IAAI;AAAA,MACxB,gBAAAziB,EAAC,QAAA,EAAM,UAAAyiB,EAAQ,KAAA,CAAK;AAAA,IAAA,GACtB;AAAA;AAAA,IAGF,aAAa,GAAGA,EAAQ,IAAI,IAAIA,EAAQ,IAAI,GAAG,YAAA;AAAA,EAAY,EAC3D,GAGIC,IAAe,CAAC1O,GAAerN,MAAgB;;AACnD,aAAOxG,IAAAwG,KAAA,gBAAAA,EAAQ,gBAAR,gBAAAxG,EAAqB,SAAS6T,EAAM,YAAA,OAAkB;AAAA,EAC/D;AAEA,SACE,gBAAAhT,EAAA2hB,IAAA,EACE,UAAA;AAAA,IAAA,gBAAA3iB,EAAC,SAAA,EACE,UAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WA2CH;AAAA,IACA,gBAAAA;AAAA,MAACmF;AAAAA,MAAA;AAAA,QACC,WAAW,oBAAoBzF,CAAS;AAAA,QACxC,cAAc2iB;AAAA,QACd,UAAUtS;AAAA,QACV,SAAA3K;AAAA,QACA,YAAAM;AAAA,QACA,cAAcgd;AAAA,QACd,aAAY;AAAA,QACZ,YACE,gBAAA1iB,EAAC,OAAA,EAAI,OAAM,MAAK,QAAO,KAAI,SAAQ,YAAW,MAAK,QACjD,UAAA,gBAAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,GAAE;AAAA,YACF,QAAO;AAAA,YACP,aAAY;AAAA,YACZ,eAAc;AAAA,YACd,gBAAe;AAAA,UAAA;AAAA,QAAA,GAEnB;AAAA,QAED,GAAGJ;AAAA,MAAA;AAAA,IAAA;AAAA,EACN,GACF;AAEJ,GC5HagjB,KAA0D,CAAC;AAAA,EACtE,MAAArT;AAAA,EACA,MAAA0S;AAAA,EACA,WAAAY;AAAA,EACA,WAAAC;AAAA,EACA,aAAAC;AAAA,EACA,WAAArjB,IAAY;AAAA,EACZ,OAAAoB;AACF,MAAM;AACJ,QAAMkiB,IAAuC;AAAA,IAC3C;AAAA,MACE,KAAK;AAAA,MACL,OAAO;AAAA,IAAA;AAAA,IAET;AAAA,MACE,KAAK;AAAA,MACL,OAAO;AAAA,IAAA;AAAA,IAET;AAAA,MACE,MAAM;AAAA,IAAA;AAAA,IAER;AAAA,MACE,KAAK;AAAA,MACL,OAAO;AAAA,MACP,QAAQ;AAAA,IAAA;AAAA,EACV,GAGIC,IAAwC,CAAC,EAAE,KAAAva,QAAU;AACzD,IAAIqa,KACFA,EAAYra,CAAG;AAAA,EAEnB,GAEMwa,IAAc,CAAC3T,MAAiB;AACpC,UAAMwF,IAAQxF,EAAK,MAAM,GAAG;AAC5B,WAAIwF,EAAM,UAAU,IACX,GAAGA,EAAM,CAAC,EAAE,CAAC,CAAC,GAAGA,EAAM,CAAC,EAAE,CAAC,CAAC,GAAG,YAAA,IAEjCxF,EAAK,UAAU,GAAG,CAAC,EAAE,YAAA;AAAA,EAC9B;AAEA,SACE,gBAAAvO,EAAA2hB,IAAA,EACE,UAAA;AAAA,IAAA,gBAAA3iB,EAAC,SAAA,EACE,UAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WA6EH;AAAA,IACA,gBAAAA;AAAA,MAACiD;AAAAA,MAAA;AAAA,QACC,MAAM;AAAA,UACJ,OAAO6f,KAAaE;AAAA,UACpB,SAASC;AAAA,QAAA;AAAA,QAEX,SAAS,CAAC,OAAO;AAAA,QACjB,WAAU;AAAA,QAEV,UAAA,gBAAAjiB;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW,yBAAyBtB,CAAS;AAAA,YAC7C,OAAO,EAAE,OAAO,OAAOoB,KAAU,WAAW,GAAGA,CAAK,OAAOA,EAAA;AAAA,YAE3D,UAAA;AAAA,cAAA,gBAAAd,EAAC,OAAA,EAAI,WAAU,uBACZ,UAAA6iB,IAAY,gBAAA7iB,EAAC,OAAA,EAAI,KAAK6iB,GAAW,KAAKtT,EAAA,CAAM,IAAK2T,EAAY3T,CAAI,GACpE;AAAA,cACA,gBAAAvO,EAAC,OAAA,EAAI,WAAU,qBACb,UAAA;AAAA,gBAAA,gBAAAhB,EAAC,OAAA,EAAI,WAAU,qBAAqB,UAAAuP,GAAK;AAAA,gBACxC0S,KAAQ,gBAAAjiB,EAAC,OAAA,EAAI,WAAU,qBAAqB,UAAAiiB,EAAA,CAAK;AAAA,cAAA,GACpD;AAAA,cACA,gBAAAjiB;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,WAAU;AAAA,kBACV,OAAM;AAAA,kBACN,QAAO;AAAA,kBACP,SAAQ;AAAA,kBACR,MAAK;AAAA,kBAEL,UAAA,gBAAAA;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBACC,GAAE;AAAA,sBACF,QAAO;AAAA,sBACP,aAAY;AAAA,sBACZ,eAAc;AAAA,sBACd,gBAAe;AAAA,oBAAA;AAAA,kBAAA;AAAA,gBACjB;AAAA,cAAA;AAAA,YACF;AAAA,UAAA;AAAA,QAAA;AAAA,MACF;AAAA,IAAA;AAAA,EACF,GACF;AAEJ,GCpKamjB,KAAwC,CAAC;AAAA,EACpD,OAAA7iB;AAAA,EACA,MAAAE;AAAA,EACA,WAAAE,IAAY;AAAA,EACZ,SAAAyf;AAAA,EACA,UAAA7c,IAAW;AAAA,EACX,WAAA5D,IAAY;AACd,MAAM;AA4BJ,QAAM0jB,IA3Bc;AAAA,IAClB,KAAK;AAAA,MACH,YAAY;AAAA,MACZ,OAAO;AAAA,IAAA;AAAA,IAET,MAAM;AAAA,MACJ,YAAY;AAAA,MACZ,OAAO;AAAA,IAAA;AAAA,IAET,OAAO;AAAA,MACL,YAAY;AAAA,MACZ,OAAO;AAAA,IAAA;AAAA,IAET,QAAQ;AAAA,MACN,YAAY;AAAA,MACZ,OAAO;AAAA,IAAA;AAAA,IAET,QAAQ;AAAA,MACN,YAAY;AAAA,MACZ,OAAO;AAAA,IAAA;AAAA,IAET,QAAQ;AAAA,MACN,YAAY;AAAA,MACZ,OAAO;AAAA,IAAA;AAAA,EACT,EAG+B1iB,CAAS;AAE1C,SACE,gBAAAM;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,oVAAoVtB,CAAS;AAAA,MACxW,OAAO;AAAA,QACL,WAAW;AAAA,QACX,YAAY;AAAA,MAAA;AAAA,MAEd,cAAc,CAACQ,MAAM;AACnB,QAAKoD,MACHpD,EAAE,cAAc,MAAM,YAAY;AAAA,MAEtC;AAAA,MACA,cAAc,CAACA,MAAM;AACnB,QAAAA,EAAE,cAAc,MAAM,YAAY;AAAA,MACpC;AAAA,MACA,SAAAigB;AAAA,MACA,UAAA7c;AAAA,MAEA,UAAA;AAAA,QAAA,gBAAAtD;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,OAAO;AAAA,cACL,iBAAiBojB,EAAa;AAAA,cAC9B,OAAOA,EAAa;AAAA,YAAA;AAAA,YAGrB,UAAA5iB;AAAA,UAAA;AAAA,QAAA;AAAA,QAEH,gBAAAR,EAAC,OAAA,EAAI,WAAU,qEAAqE,UAAAM,EAAA,CAAM;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGhG,GC/Da+iB,KAA8C,CAAC;AAAA,EAC1D,OAAA/iB;AAAA,EACA,OAAAC;AAAA,EACA,MAAAC;AAAA,EACA,sBAAA8iB,IAAuB;AAAA,EACvB,oBAAAC;AAAA,EACA,aAAA5iB,IAAc;AAAA,EACd,eAAA6iB;AAAA,EACA,mBAAAC,IAAoB;AAAA,EACpB,OAAA3iB,IAAQ;AAAA,EACR,WAAApB,IAAY;AACd,MAAM;AACJ,QAAM,CAACuM,GAAWC,CAAY,IAAItI,EAAS,EAAI,GAEzC8f,IAAyB,MAAM;AACnC,IAAAxX,EAAa,CAACD,CAAS,GACnBsX,KACFA,EAAA;AAAA,EAEJ,GACMxiB,IACJ,gBAAAC,EAAC,OAAA,EAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,QACnD,UAAA;AAAA,IAAA,gBAAAhB,EAAC,QAAA,EAAK,GAAE,KAAI,GAAE,KAAI,OAAM,MAAK,QAAO,MAAK,IAAG,KAAI,QAAO,gBAAe,aAAY,KAAI;AAAA,IACtF,gBAAAA,EAAC,UAAK,GAAE,mBAAkB,QAAO,gBAAe,aAAY,KAAI,eAAc,QAAA,CAAQ;AAAA,EAAA,GACxF;AAGF,SACE,gBAAAgB,EAAA2hB,IAAA,EACE,UAAA;AAAA,IAAA,gBAAA3iB,EAAC,SAAA,EACE,UAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAYH;AAAA,IACA,gBAAAgB;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAW,yMAAyMtB,CAAS;AAAA,QAC7N,OAAO;AAAA,UACL,OAAO,OAAOoB,KAAU,WAAW,GAAGA,CAAK,OAAOA;AAAA,UAClD,WAAW;AAAA,UACX,YAAY;AAAA,QAAA;AAAA,QAEd,cAAc,CAACZ,MAAM;AACnB,UAAAA,EAAE,cAAc,MAAM,YAAY;AAAA,QACpC;AAAA,QACA,cAAc,CAACA,MAAM;AACnB,UAAAA,EAAE,cAAc,MAAM,YAAY;AAAA,QACpC;AAAA,QAEC,UAAA;AAAA,UAAAujB,MAAsB,UACrB,gBAAAzjB,EAAC,OAAA,EAAI,WAAU,wJAAuJ;AAAA,UAExK,gBAAAgB,EAAC,OAAA,EAAI,WAAU,iBACb,UAAA;AAAA,YAAA,gBAAAhB,EAAC,OAAA,EAAI,WAAU,0CACb,UAAA,gBAAAA,EAAC,SAAI,WAAU,iJACZ,UAAAQ,KAAQO,EAAA,CACX,EAAA,CACF;AAAA,YACA,gBAAAC,EAAC,OAAA,EAAI,WAAU,gCACb,UAAA;AAAA,cAAA,gBAAAhB,EAAC,QAAA,EAAK,WAAU,oEAAoE,UAAAM,GAAM;AAAA,cACzFgjB,KACC,gBAAAtjB;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,WAAU;AAAA,kBACV,SAAS0jB;AAAA,kBACT,cAAW;AAAA,kBAEX,UAAA,gBAAA1iB;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBACC,OAAM;AAAA,sBACN,QAAO;AAAA,sBACP,SAAQ;AAAA,sBACR,MAAK;AAAA,sBACL,OAAM;AAAA,sBAEN,UAAA;AAAA,wBAAA,gBAAAhB;AAAA,0BAAC;AAAA,0BAAA;AAAA,4BACC,GAAE;AAAA,4BACF,QAAO;AAAA,4BACP,aAAY;AAAA,4BACZ,eAAc;AAAA,4BACd,gBAAe;AAAA,0BAAA;AAAA,wBAAA;AAAA,wBAEjB,gBAAAA;AAAA,0BAAC;AAAA,0BAAA;AAAA,4BACC,GAAE;AAAA,4BACF,QAAO;AAAA,4BACP,aAAY;AAAA,4BACZ,eAAc;AAAA,4BACd,gBAAe;AAAA,0BAAA;AAAA,wBAAA;AAAA,sBACjB;AAAA,oBAAA;AAAA,kBAAA;AAAA,gBACF;AAAA,cAAA;AAAA,YACF,GAEJ;AAAA,YACA,gBAAAA,EAAC,OAAA,EAAI,WAAU,gEACZ,UAAAiM,IAAY,GAAGtL,CAAW,IAAIJ,CAAK,KAAK,OAAA,CAC3C;AAAA,YACCijB,KACC,gBAAAxiB,EAAC,OAAA,EAAI,WAAU,QACb,UAAA;AAAA,cAAA,gBAAAhB,EAAC,OAAA,EAAI,WAAU,+DAAA,CAA+D;AAAA,cAC9E,gBAAAgB,EAAC,OAAA,EAAI,WAAU,uDACb,UAAA;AAAA,gBAAA,gBAAAhB;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,OAAM;AAAA,oBACN,QAAO;AAAA,oBACP,SAAQ;AAAA,oBACR,MAAK;AAAA,oBACL,OAAM;AAAA,oBAEN,UAAA,gBAAAA;AAAA,sBAAC;AAAA,sBAAA;AAAA,wBACC,GAAE;AAAA,wBACF,QAAO;AAAA,wBACP,aAAY;AAAA,wBACZ,eAAc;AAAA,wBACd,gBAAe;AAAA,sBAAA;AAAA,oBAAA;AAAA,kBACjB;AAAA,gBAAA;AAAA,gBAEF,gBAAAgB,EAAC,QAAA,EAAK,WAAU,iEAAgE,UAAA;AAAA,kBAAA;AAAA,kBAC9DiL,IAAY,GAAGtL,CAAW,IAAI6iB,CAAa,KAAK;AAAA,gBAAA,EAAA,CAClE;AAAA,cAAA,EAAA,CACF;AAAA,YAAA,EAAA,CACF;AAAA,UAAA,EAAA,CAEJ;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACF,GACF;AAEJ,GC3HaG,KAA4D,CAAC;AAAA,EACxE,OAAAC;AAAA,EACA,eAAAC;AAAA,EACA,YAAAC;AAAA,EACA,WAAApkB,IAAY;AAAA,EACZ,WAAAsM,IAAY;AACd,MAAM;AACJ,QAAMjL,IACJ,gBAAAC,EAAC,OAAA,EAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,QAAO,OAAM,8BAChE,UAAA;AAAA,IAAA,gBAAAhB,EAAC,UAAA,EAAO,IAAG,MAAK,IAAG,MAAK,GAAE,KAAI,QAAO,gBAAe,aAAY,MAAA,CAAM;AAAA,IACtE,gBAAAA,EAAC,UAAK,GAAE,qBAAoB,QAAO,gBAAe,aAAY,OAAM,eAAc,QAAA,CAAQ;AAAA,EAAA,GAC5F;AAGF,SACE,gBAAAgB;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,yEAAyEtB,CAAS;AAAA,MAC7F,OAAO,EAAE,OAAO,QAAA;AAAA,MAGhB,UAAA;AAAA,QAAA,gBAAAsB,EAAC,OAAA,EAAI,WAAU,0DACb,UAAA;AAAA,UAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,2BACb,UAAA;AAAA,YAAA,gBAAAhB,EAAC,QAAA,EAAK,WAAU,sCAAqC,UAAA,UAAM;AAAA,YAC1D4jB,MAAU,UACT,gBAAA5jB,EAAC,QAAA,EAAK,WAAU,oKACb,UAAA4jB,EAAA,CACH;AAAA,UAAA,GAEJ;AAAA,UACCE,KACC,gBAAA9jB;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,SAAS8jB;AAAA,cACT,WAAU;AAAA,cACX,UAAA;AAAA,YAAA;AAAA,UAAA;AAAA,QAED,GAEJ;AAAA,QAGA,gBAAA9jB;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,OAAO,EAAE,WAAW,OAAOgM,KAAc,WAAW,GAAGA,CAAS,OAAOA,EAAA;AAAA,YAEtE,YAAc,WAAW,IACxB,gBAAAhL,EAAC,OAAA,EAAI,WAAU,wDACb,UAAA;AAAA,cAAA,gBAAAhB;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,KAAI;AAAA,kBACJ,KAAI;AAAA,kBACJ,WAAU;AAAA,gBAAA;AAAA,cAAA;AAAA,cAEZ,gBAAAA,EAAC,MAAA,EAAG,WAAU,2CAA0C,UAAA,uBAExD;AAAA,cACA,gBAAAA,EAAC,KAAA,EAAE,WAAU,oCAAmC,UAAA,yCAAA,CAEhD;AAAA,YAAA,EAAA,CACF,IAEA6jB,EAAc,IAAI,CAACE,MACjB,gBAAA/iB;AAAA,cAAC;AAAA,cAAA;AAAA,gBAEC,SAAS+iB,EAAa;AAAA,gBACtB,WAAU;AAAA,gBAGV,UAAA;AAAA,kBAAA,gBAAA/jB;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBACC,WAAU;AAAA,sBACV,OAAO;AAAA,wBACL,iBAAiB+jB,EAAa,uBAAuB;AAAA,wBACrD,OAAOA,EAAa,aAAa;AAAA,sBAAA;AAAA,sBAGlC,YAAa,QAAQhjB;AAAA,oBAAA;AAAA,kBAAA;AAAA,kBAIxB,gBAAAC,EAAC,OAAA,EAAI,WAAU,kBACb,UAAA;AAAA,oBAAA,gBAAAhB,EAAC,MAAA,EAAG,WAAU,2CAA2C,UAAA+jB,EAAa,OAAM;AAAA,oBAC5E,gBAAA/jB,EAAC,KAAA,EAAE,WAAU,kDACV,YAAa,YAAA,CAChB;AAAA,kBAAA,GACF;AAAA,oCAGC,OAAA,EAAI,WAAU,iBACZ,UAAA+jB,EAAa,0BACX,QAAA,EAAK,WAAU,wDAAuD,UAAA,MAAA,CAAG,IAE1E,gBAAA/jB,EAAC,QAAA,EAAK,WAAU,yBAAyB,UAAA+jB,EAAa,WAAU,EAAA,CAEpE;AAAA,gBAAA;AAAA,cAAA;AAAA,cA9BKA,EAAa;AAAA,YAAA,CAgCrB;AAAA,UAAA;AAAA,QAAA;AAAA,MAEL;AAAA,IAAA;AAAA,EAAA;AAGN,GCxGaC,KAA8C,CAAC;AAAA,EAC1D,OAAA9gB;AAAA,EACA,kBAAA+gB;AAAA,EACA,WAAAC;AAAA,EACA,UAAA1e;AAAA,EACA,WAAA9F,IAAY;AACd,MAEI,gBAAAsB,EAAC,SAAI,WAAAtB,GACH,UAAA;AAAA,EAAA,gBAAAM,EAAC,SAAA,EACE,UAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAwCH;AAAA,EACA,gBAAAA;AAAA,IAACmkB;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,OAAAjhB;AAAA,MACA,kBAAA+gB;AAAA,MACA,WAAAC;AAAA,MACA,UAAA1e;AAAA,IAAA;AAAA,EAAA;AACF,GACF;","x_google_ignoreList":[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35]}
1
+ {"version":3,"file":"index.mjs","sources":["../src/components/Button/Button.tsx","../src/components/StatCard/StatCard.tsx","../src/components/SearchInput.tsx","../src/components/Card/Card.tsx","../src/components/Dropdown.tsx","../src/components/Select.tsx","../src/components/Table.tsx","../src/components/TableTop.tsx","../src/components/Modal.tsx","../src/components/Badge.tsx","../src/components/Steps.tsx","../src/components/Progress.tsx","../src/components/Checkbox.tsx","../src/components/SelectedItemsList.tsx","../src/components/Input/Input.tsx","../src/components/Input/PasswordInput.tsx","../src/components/Input/OTPInput.tsx","../src/components/Input/PhoneInput.tsx","../src/components/Input/CurrencyInput.tsx","../node_modules/@ant-design/icons/es/components/Context.js","../node_modules/clsx/dist/clsx.mjs","../node_modules/@ant-design/fast-color/es/presetColors.js","../node_modules/@ant-design/fast-color/es/FastColor.js","../node_modules/@ant-design/colors/es/generate.js","../node_modules/@ant-design/colors/es/presets.js","../node_modules/@rc-component/util/es/Dom/canUseDom.js","../node_modules/@rc-component/util/es/Dom/contains.js","../node_modules/@rc-component/util/es/Dom/dynamicCSS.js","../node_modules/@rc-component/util/es/Dom/shadow.js","../node_modules/@rc-component/util/es/warning.js","../node_modules/@ant-design/icons/es/utils.js","../node_modules/@ant-design/icons/es/components/IconBase.js","../node_modules/@ant-design/icons/es/components/twoTonePrimaryColor.js","../node_modules/@ant-design/icons/es/components/AntdIcon.js","../node_modules/@ant-design/icons-svg/es/asn/UserOutlined.js","../node_modules/@ant-design/icons/es/icons/UserOutlined.js","../src/components/UserPill/UserPill.tsx","../src/assets/card-border.svg","../src/components/UserCard/UserCard.tsx","../src/components/CountrySelector/CountrySelector.tsx","../src/components/UserProfileDropdown/UserProfileDropdown.tsx","../src/components/ActionCard/ActionCard.tsx","../src/components/DashboardCard/DashboardCard.tsx","../src/components/NotificationDropdown/NotificationDropdown.tsx","../src/components/TabsComponent/TabsComponent.tsx"],"sourcesContent":["import React from 'react';\nimport { Button as AntButton, ButtonProps as AntButtonProps } from 'antd';\n\nexport interface ButtonProps extends Omit<AntButtonProps, 'variant' | 'size'> {\n variant?: 'primary' | 'secondary' | 'outline' | 'ghost';\n size?: 'xsmall' | 'small' | 'medium' | 'large';\n}\n\nexport const Button: React.FC<ButtonProps> = ({\n variant = 'primary',\n size = 'large',\n className = '',\n children,\n ...props\n}) => {\n const getSizeHeight = () => {\n switch (size) {\n case 'xsmall':\n return '32px';\n case 'small':\n return '40px';\n case 'medium':\n return '48px';\n case 'large':\n return '52px';\n default:\n return '52px';\n }\n };\n\n const getVariantStyles = () => {\n const height = getSizeHeight();\n\n switch (variant) {\n case 'primary':\n return {\n backgroundColor: '#EC615B',\n borderColor: '#EC615B',\n color: '#FFFFFF',\n height,\n borderRadius: '8px',\n };\n case 'secondary':\n return {\n backgroundColor: '#6B7280',\n borderColor: '#6B7280',\n color: '#FFFFFF',\n height,\n borderRadius: '8px',\n };\n case 'outline':\n return {\n backgroundColor: 'transparent',\n borderColor: '#EC615B',\n color: '#EC615B',\n height,\n borderRadius: '8px',\n };\n case 'ghost':\n return {\n backgroundColor: '#EFF2F3',\n borderColor: '#EFF2F3',\n color: '#181918',\n height,\n borderRadius: '8px',\n };\n default:\n return {};\n }\n };\n\n return (\n <AntButton\n className={className}\n {...props}\n style={{\n ...getVariantStyles(),\n ...props.style,\n }}\n onMouseEnter={(e) => {\n if (variant === 'primary') {\n (e.target as HTMLElement).style.backgroundColor = '#D8524D';\n } else if (variant === 'secondary') {\n (e.target as HTMLElement).style.backgroundColor = '#4B5563';\n } else if (variant === 'outline') {\n (e.target as HTMLElement).style.backgroundColor = '#F3F4F6';\n } else if (variant === 'ghost') {\n (e.target as HTMLElement).style.backgroundColor = '#E1E4E6';\n }\n props.onMouseEnter?.(e as any);\n }}\n onMouseLeave={(e) => {\n const styles = getVariantStyles();\n (e.target as HTMLElement).style.backgroundColor = styles.backgroundColor || '';\n props.onMouseLeave?.(e as any);\n }}\n >\n {children}\n </AntButton>\n );\n};\n","import React from 'react';\n\nexport interface StatCardProps {\n label: string;\n value: string | number;\n icon?: React.ReactNode;\n iconBackgroundColor?: string;\n iconColor?: string;\n valuePrefix?: string;\n progressText?: string;\n badge?: string;\n width?: string | number;\n className?: string;\n}\n\nexport const StatCard: React.FC<StatCardProps> = ({\n label,\n value,\n icon,\n iconBackgroundColor = '#E8F4FD',\n iconColor = '#4A9FD8',\n valuePrefix = '₦',\n progressText,\n badge,\n width = 347,\n className = '',\n}) => {\n const defaultIcon = (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <rect x=\"3\" y=\"6\" width=\"18\" height=\"12\" rx=\"2\" stroke=\"currentColor\" strokeWidth=\"2\" />\n <path d=\"M3 10h18M7 14h4\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n </svg>\n );\n\n return (\n <div\n className={`bg-white border border-[#E6E6E6] rounded-2xl p-4 flex flex-col justify-between transition-all duration-300 ease-in-out hover:border-gray-300 hover:-translate-y-1 cursor-pointer ${className}`}\n style={{\n width: typeof width === 'number' ? `${width}px` : width,\n boxShadow: '0 0 0 0 rgba(0, 0, 0, 0)',\n transition: 'all 0.3s ease-in-out',\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.boxShadow = '0 0 20px 0 rgba(0, 0, 0, 0.1)';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.boxShadow = '0 0 0 0 rgba(0, 0, 0, 0)';\n }}\n >\n <div>\n <div className=\"flex items-center justify-between mb-6\">\n <div\n className=\"w-9 h-9 rounded-full flex items-center justify-center shrink-0 [&>svg]:w-5 [&>svg]:h-5 transition-transform duration-300 ease-in-out group-hover:scale-110\"\n style={{\n backgroundColor: iconBackgroundColor,\n color: iconColor,\n }}\n >\n {icon || defaultIcon}\n </div>\n {badge && (\n <div className=\"bg-[#EBEBEB] text-[#181918] text-[11px] font-medium px-2 py-1 rounded-full border border-[#D1D1D1] transition-colors duration-200\">\n {badge}\n </div>\n )}\n </div>\n <div className=\"text-sm text-[#181918] font-light transition-colors duration-200\">\n {label}\n </div>\n <div className=\"text-[20px] font-bold text-[#181918] transition-all duration-200\">\n {valuePrefix} {value}\n </div>\n </div>\n {progressText && (\n <div className=\"text-xs text-gray-400 font-normal mt-4 transition-colors duration-200\">\n {progressText}\n </div>\n )}\n </div>\n );\n};\n","import type { FC, ReactNode, InputHTMLAttributes, CSSProperties } from 'react';\n\n/**\n * @deprecated SearchInput is deprecated as of v1.0.11. Please use the new Input component instead.\n * The new Input component provides better functionality and consistent styling with Ant Design.\n */\nexport interface SearchInputProps\n extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size'> {\n icon?: ReactNode;\n iconPosition?: 'left' | 'right';\n size?: 'sm' | 'md' | 'lg' | 'responsive';\n fullWidth?: boolean;\n onIconClick?: () => void;\n bgColor?: string;\n borderColor?: string;\n focusBorderColor?: string;\n iconColor?: string;\n textColor?: string;\n placeholderColor?: string;\n rounded?: 'none' | 'sm' | 'md' | 'lg' | 'full';\n style?: CSSProperties;\n}\n\n/**\n * @deprecated SearchInput is deprecated as of v1.0.11. Please use the new Input component instead.\n */\nexport const SearchInput: FC<SearchInputProps> = ({\n icon,\n iconPosition = 'left',\n size = 'md',\n fullWidth = false,\n className = '',\n onIconClick,\n bgColor,\n borderColor,\n focusBorderColor,\n iconColor,\n textColor,\n placeholderColor,\n rounded = 'md',\n style,\n ...props\n}) => {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n '[Shekel Shared Lib] SearchInput is deprecated as of v1.0.11. Please use the new Input component instead for better functionality and consistent styling.'\n );\n }\n\n const containerBaseClasses = 'relative inline-flex items-center';\n\n const inputBaseClasses =\n 'border focus:outline-none focus:ring-1 transition-all duration-200 ease-in-out';\n\n const sizeClasses = {\n sm: 'px-3 py-1.5 text-sm',\n md: 'px-4 py-2 text-base',\n lg: 'px-5 py-3 text-lg',\n responsive: 'px-3 sm:px-4 md:px-5 py-1.5 sm:py-2 md:py-3 text-sm sm:text-base md:text-lg',\n };\n\n const iconSizeClasses = {\n sm: 'w-4 h-4',\n md: 'w-5 h-5',\n lg: 'w-6 h-6',\n responsive: 'w-4 sm:w-5 md:w-6 h-4 sm:h-5 md:h-6',\n };\n\n const roundedClasses = {\n none: 'rounded-none',\n sm: 'rounded-sm',\n md: 'rounded-lg',\n lg: 'rounded-xl',\n full: 'rounded-full',\n };\n\n const paddingWithIcon =\n iconPosition === 'left'\n ? size === 'sm'\n ? 'pl-9'\n : size === 'md'\n ? 'pl-10'\n : size === 'lg'\n ? 'pl-12'\n : 'pl-9 sm:pl-10 md:pl-12'\n : size === 'sm'\n ? 'pr-9'\n : size === 'md'\n ? 'pr-10'\n : size === 'lg'\n ? 'pr-12'\n : 'pr-9 sm:pr-10 md:pr-12';\n\n const widthClass = fullWidth ? 'w-full' : '';\n\n // Build custom styles for colors\n const customStyles: CSSProperties = {\n backgroundColor: bgColor,\n borderColor: borderColor || '#D1D5DB',\n color: textColor,\n ...style,\n };\n\n // Determine placeholder color class\n const placeholderClass = placeholderColor\n ? ''\n : 'placeholder:text-gray-400';\n\n // Build border and default colors\n const defaultBorderClass = borderColor ? '' : 'border-gray-300';\n const defaultTextClass = textColor ? '' : 'text-gray-900';\n const defaultFocusClass = focusBorderColor\n ? ''\n : 'focus:ring-[#EC615B] focus:border-[#EC615B]';\n\n const inputClassName = `${inputBaseClasses} ${!className.includes('px-') && !className.includes('py-') ? sizeClasses[size] : ''} ${\n icon ? paddingWithIcon : ''\n } ${widthClass} ${!className.includes('rounded') ? roundedClasses[rounded] : ''} ${!className.includes('border-') ? defaultBorderClass : ''} ${defaultTextClass} ${defaultFocusClass} ${placeholderClass} ${className}`;\n\n const iconPositionClasses = iconPosition === 'left' ? 'left-3' : 'right-3';\n const defaultIconColor = iconColor || 'text-gray-400';\n const hoverIconColor = iconColor ? '' : 'hover:text-gray-600';\n\n const defaultSearchIcon = (\n <svg\n className={`${iconSizeClasses[size]} ${defaultIconColor}`}\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z\"\n />\n </svg>\n );\n\n return (\n <div className={`${containerBaseClasses} ${widthClass}`}>\n {icon && (\n <div\n className={`absolute ${iconPositionClasses} ${defaultIconColor} ${\n onIconClick ? 'cursor-pointer' : ''\n } ${hoverIconColor}`}\n onClick={onIconClick}\n >\n {icon === true ? defaultSearchIcon : icon}\n </div>\n )}\n <input\n type=\"text\"\n className={inputClassName}\n style={{\n ...customStyles,\n ...(focusBorderColor && {\n '--focus-border-color': focusBorderColor,\n } as CSSProperties),\n ...(placeholderColor && {\n '--placeholder-color': placeholderColor,\n } as CSSProperties),\n }}\n {...props}\n />\n </div>\n );\n};\n\nexport default SearchInput;\n","import React from 'react';\nimport { Card as AntCard, CardProps as AntCardProps } from 'antd';\n\nexport interface CardProps extends AntCardProps {\n shadow?: 'sm' | 'md' | 'lg' | 'xl';\n}\n\nexport const Card: React.FC<CardProps> = ({\n shadow = 'md',\n className = '',\n children,\n ...props\n}) => {\n const shadowClasses = {\n sm: 'shadow-sm',\n md: 'shadow-md',\n lg: 'shadow-lg',\n xl: 'shadow-xl'\n };\n\n const combinedClassName = `${shadowClasses[shadow]} rounded-lg ${className}`;\n\n return (\n <AntCard\n className={combinedClassName}\n {...props}\n >\n {children}\n </AntCard>\n );\n};\n","import { useState, useRef, useEffect } from 'react';\nimport type { FC, ReactNode, CSSProperties } from 'react';\n\nexport interface DropdownMenuItem {\n key: string;\n label: ReactNode;\n icon?: ReactNode;\n disabled?: boolean;\n danger?: boolean;\n onClick?: () => void;\n}\n\nexport interface DropdownProps {\n items: DropdownMenuItem[];\n trigger?: 'click' | 'hover';\n placement?: 'bottomLeft' | 'bottomRight' | 'topLeft' | 'topRight';\n children: ReactNode;\n className?: string;\n overlayClassName?: string;\n disabled?: boolean;\n size?: 'sm' | 'md' | 'lg' | 'responsive';\n menuBgColor?: string;\n menuItemHoverColor?: string;\n dangerColor?: string;\n borderColor?: string;\n style?: CSSProperties;\n}\n\nexport const Dropdown: FC<DropdownProps> = ({\n items,\n trigger = 'click',\n placement = 'bottomLeft',\n children,\n className = '',\n overlayClassName = '',\n disabled = false,\n size = 'md',\n menuBgColor,\n menuItemHoverColor,\n dangerColor,\n borderColor,\n style,\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n const dropdownRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const handleClickOutside = (event: Event) => {\n if (dropdownRef.current && !dropdownRef.current.contains(event.target as Node)) {\n setIsOpen(false);\n }\n };\n\n if (isOpen) {\n document.addEventListener('mousedown', handleClickOutside);\n }\n\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, [isOpen]);\n\n const handleTriggerClick = () => {\n if (!disabled && trigger === 'click') {\n setIsOpen(!isOpen);\n }\n };\n\n const handleTriggerMouseEnter = () => {\n if (!disabled && trigger === 'hover') {\n setIsOpen(true);\n }\n };\n\n const handleTriggerMouseLeave = () => {\n if (!disabled && trigger === 'hover') {\n setIsOpen(false);\n }\n };\n\n const handleMenuItemClick = (item: DropdownMenuItem) => {\n if (!item.disabled && item.onClick) {\n item.onClick();\n }\n setIsOpen(false);\n };\n\n const placementClasses = {\n bottomLeft: 'top-full left-0 mt-1',\n bottomRight: 'top-full right-0 mt-1',\n topLeft: 'bottom-full left-0 mb-1',\n topRight: 'bottom-full right-0 mb-1',\n };\n\n const animationClasses = placement.startsWith('bottom')\n ? 'dropdown-slide-down'\n : 'dropdown-slide-up';\n\n const sizeClasses = {\n sm: 'min-w-[120px] text-xs',\n md: 'min-w-[160px] text-sm',\n lg: 'min-w-[220px] text-base',\n responsive: 'min-w-[120px] sm:min-w-[160px] md:min-w-[200px] lg:min-w-[240px] text-xs sm:text-sm md:text-base',\n };\n\n const itemSizeClasses = {\n sm: 'px-3 py-1.5 text-xs gap-1.5',\n md: 'px-4 py-2 text-sm gap-2',\n lg: 'px-5 py-3 text-base gap-2.5',\n responsive: 'px-3 sm:px-4 md:px-5 py-1.5 sm:py-2 md:py-3 text-xs sm:text-sm md:text-base gap-1.5 sm:gap-2 md:gap-2.5',\n };\n\n // Color styling helpers\n const defaultHoverColor = 'hover:bg-gray-50';\n const defaultBorderColor = 'border-gray-200';\n const defaultDangerColor = 'text-red-600';\n\n // Hover color handling\n const hoverColorStyle = menuItemHoverColor ? { backgroundColor: menuItemHoverColor } : {};\n const customHoverClass = menuItemHoverColor ? '' : defaultHoverColor;\n\n // Danger color handling\n const customDangerStyle = dangerColor ? { color: dangerColor } : {};\n const dangerHoverBgStyle = dangerColor ? { backgroundColor: dangerColor + '15' } : {};\n\n // Border color handling\n const finalBorderColor = borderColor || defaultBorderColor;\n\n return (\n <div\n ref={dropdownRef}\n className={`relative inline-block ${className}`}\n onMouseEnter={handleTriggerMouseEnter}\n onMouseLeave={handleTriggerMouseLeave}\n style={style}\n >\n <div\n onClick={handleTriggerClick}\n className={`inline-flex ${disabled ? 'cursor-not-allowed opacity-50' : 'cursor-pointer'}`}\n >\n {children}\n </div>\n\n {isOpen && !disabled && (\n <div\n className={`absolute ${placementClasses[placement]} ${animationClasses} z-50 ${sizeClasses[size]} ${overlayClassName}`}\n >\n <div\n className={`dropdown-menu rounded-lg shadow-lg border py-1 overflow-hidden ${finalBorderColor}`}\n style={{ backgroundColor: menuBgColor || '#ffffff' }}\n >\n {items.map((item) => {\n // Determine item-specific styles\n let itemStyle: React.CSSProperties = {};\n\n if (!item.disabled) {\n if (item.danger) {\n // Danger items use custom danger color if provided\n itemStyle = {\n ...customDangerStyle,\n ...dangerHoverBgStyle,\n };\n } else if (menuItemHoverColor) {\n // Custom hover color applied inline\n itemStyle = hoverColorStyle;\n }\n }\n\n return (\n <div\n key={item.key}\n onClick={() => handleMenuItemClick(item)}\n className={`\n dropdown-menu-item\n flex items-center cursor-pointer transition-all duration-200 ease-out\n ${!overlayClassName.includes('px-') && !overlayClassName.includes('py-') ? itemSizeClasses[size] : ''}\n ${item.disabled ? 'opacity-50 cursor-not-allowed' : customHoverClass}\n ${item.danger ? (dangerColor ? '' : defaultDangerColor) : 'text-gray-700'}\n `}\n style={itemStyle}\n >\n {item.icon && <span className=\"flex-shrink-0\">{item.icon}</span>}\n <span>{item.label}</span>\n </div>\n );\n })}\n </div>\n </div>\n )}\n </div>\n );\n};\n\nexport default Dropdown;\n","import { useState, useRef, useEffect } from 'react';\nimport type { FC, MouseEvent, CSSProperties } from 'react';\n\nexport interface SelectOption {\n value: string | number;\n label: string;\n disabled?: boolean;\n}\n\nexport interface SelectProps {\n options: SelectOption[];\n value?: string | number;\n defaultValue?: string | number;\n placeholder?: string;\n onChange?: (value: string | number) => void;\n disabled?: boolean;\n size?: 'sm' | 'md' | 'lg' | 'responsive';\n fullWidth?: boolean;\n className?: string;\n allowClear?: boolean;\n showSearch?: boolean;\n searchPlaceholder?: string;\n bgColor?: string;\n borderColor?: string;\n focusBorderColor?: string;\n selectedBgColor?: string;\n selectedTextColor?: string;\n hoverBgColor?: string;\n rounded?: 'none' | 'sm' | 'md' | 'lg' | 'full';\n style?: CSSProperties;\n}\n\nexport const Select: FC<SelectProps> = ({\n options,\n value: controlledValue,\n defaultValue,\n placeholder = 'Select an option',\n onChange,\n disabled = false,\n size = 'md',\n fullWidth = false,\n className = '',\n allowClear = false,\n showSearch = false,\n searchPlaceholder = 'Search...',\n bgColor,\n borderColor,\n focusBorderColor = '#EC615B',\n selectedBgColor,\n selectedTextColor,\n hoverBgColor,\n rounded = 'lg',\n style,\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n const [internalValue, setInternalValue] = useState<string | number | undefined>(\n defaultValue\n );\n const [searchQuery, setSearchQuery] = useState('');\n const selectRef = useRef<HTMLDivElement>(null);\n const searchInputRef = useRef<HTMLInputElement>(null);\n\n const value = controlledValue !== undefined ? controlledValue : internalValue;\n\n useEffect(() => {\n const handleClickOutside = (event: Event) => {\n if (selectRef.current && !selectRef.current.contains(event.target as Node)) {\n setIsOpen(false);\n setSearchQuery('');\n }\n };\n\n if (isOpen) {\n document.addEventListener('mousedown', handleClickOutside);\n if (showSearch && searchInputRef.current) {\n searchInputRef.current.focus();\n }\n }\n\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, [isOpen, showSearch]);\n\n const handleSelect = (optionValue: string | number) => {\n if (controlledValue === undefined) {\n setInternalValue(optionValue);\n }\n onChange?.(optionValue);\n setIsOpen(false);\n setSearchQuery('');\n };\n\n const handleClear = (e: MouseEvent) => {\n e.stopPropagation();\n if (controlledValue === undefined) {\n setInternalValue(undefined);\n }\n onChange?.('' as any);\n };\n\n const selectedOption = options.find((opt) => opt.value === value);\n\n const filteredOptions = showSearch\n ? options.filter((option) =>\n option.label.toLowerCase().includes(searchQuery.toLowerCase())\n )\n : options;\n\n const sizeClasses = {\n sm: 'px-3 py-1.5 text-sm',\n md: 'px-4 py-2 text-base',\n lg: 'px-5 py-3 text-lg',\n responsive: 'px-3 sm:px-4 md:px-5 py-1.5 sm:py-2 md:py-3 text-sm sm:text-base md:text-lg',\n };\n\n const roundedClasses = {\n none: 'rounded-none',\n sm: 'rounded-sm',\n md: 'rounded-md',\n lg: 'rounded-lg',\n full: 'rounded-full',\n };\n\n const widthClass = fullWidth ? 'w-full' : 'min-w-[200px]';\n\n // Helper function to apply custom colors to inline styles\n const getTriggerStyles = (): CSSProperties => {\n const styles: CSSProperties = {};\n if (bgColor) styles.backgroundColor = bgColor;\n if (borderColor) styles.borderColor = borderColor;\n return styles;\n };\n\n const getSelectedOptionStyles = (): CSSProperties => {\n const styles: CSSProperties = {};\n if (selectedBgColor) styles.backgroundColor = selectedBgColor;\n if (selectedTextColor) styles.color = selectedTextColor;\n return styles;\n };\n\n const ChevronIcon = (\n <svg\n className={`w-4 h-4 transition-transform duration-200 ease-out ${isOpen ? 'rotate-180' : ''}`}\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M19 9l-7 7-7-7\" />\n </svg>\n );\n\n const ClearIcon = (\n <svg className=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M6 18L18 6M6 6l12 12\" />\n </svg>\n );\n\n return (\n <div ref={selectRef} className={`relative inline-block ${widthClass}`} style={style}>\n <div\n onClick={() => !disabled && setIsOpen(!isOpen)}\n className={`\n select-trigger\n flex items-center justify-between gap-2\n border transition-all duration-200 ease-out\n ${!className.includes('px-') && !className.includes('py-') && !className.includes('h-') ? sizeClasses[size] : ''}\n ${!className.includes('rounded') ? roundedClasses[rounded] : ''}\n ${disabled ? 'opacity-50 cursor-not-allowed' : 'cursor-pointer'}\n ${isOpen ? 'ring-2 ring-opacity-20' : ''}\n ${className}\n `}\n style={{\n ...getTriggerStyles(),\n backgroundColor: bgColor || getTriggerStyles().backgroundColor || '#FFFFFF',\n borderColor: borderColor || getTriggerStyles().borderColor || '#D1D5DB',\n ...(isOpen && {\n borderColor: focusBorderColor,\n boxShadow: `0 0 0 2px ${focusBorderColor}20`,\n }),\n ...(!disabled && !isOpen && hoverBgColor && {\n cursor: 'pointer',\n }),\n }}\n onMouseEnter={(e) => {\n if (!disabled && hoverBgColor) {\n e.currentTarget.style.backgroundColor = hoverBgColor;\n }\n }}\n onMouseLeave={(e) => {\n if (bgColor) {\n e.currentTarget.style.backgroundColor = bgColor;\n } else {\n e.currentTarget.style.backgroundColor = '#FFFFFF';\n }\n }}\n >\n <span className={selectedOption ? 'text-gray-900' : 'text-gray-400'}>\n {selectedOption ? selectedOption.label : placeholder}\n </span>\n <div className=\"flex items-center gap-1\">\n {allowClear && value && !disabled && (\n <span\n onClick={handleClear}\n className=\"text-gray-400 hover:text-gray-600 transition-colors duration-200 ease-out\"\n >\n {ClearIcon}\n </span>\n )}\n <span className=\"text-gray-400\">{ChevronIcon}</span>\n </div>\n </div>\n\n {isOpen && !disabled && (\n <div className=\"absolute top-full left-0 right-0 mt-1 z-50 dropdown-slide-down\">\n <div className={`select-dropdown bg-white shadow-lg border border-gray-200 py-1 max-h-[300px] overflow-auto ${roundedClasses[rounded]}`}>\n {showSearch && (\n <div className=\"px-2 py-2 border-b border-gray-200\">\n <input\n ref={searchInputRef}\n type=\"text\"\n value={searchQuery}\n onChange={(e) => setSearchQuery(e.target.value)}\n placeholder={searchPlaceholder}\n className=\"w-full px-3 py-1.5 text-sm border border-gray-300 rounded focus:outline-none focus:ring-2 transition-all duration-200 ease-out\"\n style={{\n borderColor: borderColor,\n boxShadow: `0 0 0 2px ${focusBorderColor}20`,\n }}\n onClick={(e) => e.stopPropagation()}\n />\n </div>\n )}\n {filteredOptions.length === 0 ? (\n <div className=\"px-4 py-3 text-sm text-gray-500 text-center\">\n No results found\n </div>\n ) : (\n filteredOptions.map((option) => (\n <div\n key={option.value}\n onClick={() => !option.disabled && handleSelect(option.value)}\n className={`\n select-option\n px-4 py-2 text-sm transition-all duration-200 ease-out\n ${option.disabled ? 'opacity-50 cursor-not-allowed' : 'cursor-pointer'}\n `}\n style={{\n ...(option.value === value ? getSelectedOptionStyles() : {}),\n backgroundColor: option.value === value ? (selectedBgColor || '#FCEAE9') : undefined,\n color: option.value === value ? (selectedTextColor || '#EC615B') : '#181918',\n fontWeight: option.value === value ? 'medium' : undefined,\n }}\n onMouseEnter={(e) => {\n if (!option.disabled && option.value !== value) {\n e.currentTarget.style.backgroundColor = hoverBgColor || '#F3F4F6';\n }\n }}\n onMouseLeave={(e) => {\n if (option.value !== value) {\n e.currentTarget.style.backgroundColor = 'transparent';\n }\n }}\n >\n {option.label}\n </div>\n ))\n )}\n </div>\n </div>\n )}\n </div>\n );\n};\n\nexport default Select;\n","import { useState } from 'react';\nimport type { FC, ReactNode, HTMLAttributes, CSSProperties } from 'react';\nimport { Select } from './Select';\n\nexport interface ColumnDef<T = any> {\n key: string;\n title: string;\n dataIndex?: string;\n render?: (value: any, record: T, index: number) => ReactNode;\n width?: string | number;\n align?: 'left' | 'center' | 'right';\n sortable?: boolean;\n}\n\nexport interface TableProps<T = any> {\n columns: ColumnDef<T>[];\n dataSource: T[];\n rowKey?: string | ((record: T) => string);\n pagination?: PaginationConfig | false;\n loading?: boolean;\n onRow?: (record: T, index: number) => HTMLAttributes<HTMLTableRowElement>;\n className?: string;\n bordered?: boolean;\n striped?: boolean;\n size?: 'sm' | 'md' | 'lg' | 'responsive';\n headerBgColor?: string;\n headerTextColor?: string;\n rowHoverColor?: string;\n borderColor?: string;\n stripedRowColor?: string;\n rounded?: 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';\n style?: CSSProperties;\n}\n\nexport interface PaginationConfig {\n current?: number;\n pageSize?: number;\n total?: number;\n onChange?: (page: number, pageSize: number) => void;\n showSizeChanger?: boolean;\n pageSizeOptions?: number[];\n showTotal?: boolean;\n size?: 'sm' | 'md' | 'lg';\n}\n\nexport const Table = <T extends Record<string, any>>({\n columns,\n dataSource,\n rowKey = 'id',\n pagination,\n loading = false,\n onRow,\n className = '',\n bordered = false,\n striped = false,\n size = 'md',\n headerBgColor,\n headerTextColor,\n rowHoverColor,\n borderColor,\n stripedRowColor,\n rounded = 'md',\n style,\n}: TableProps<T>) => {\n const [currentPage, setCurrentPage] = useState(\n pagination && typeof pagination === 'object' ? pagination.current || 1 : 1\n );\n const [pageSize, setPageSize] = useState(\n pagination && typeof pagination === 'object' ? pagination.pageSize || 10 : 10\n );\n\n // Size configuration for responsive sizing\n const sizeConfig = {\n sm: {\n headerPadding: 'px-3 py-2',\n headerFontSize: 'text-xs',\n rowPadding: 'px-3 py-2',\n rowFontSize: 'text-xs',\n containerRounded: 'rounded-md',\n },\n md: {\n headerPadding: 'px-4 py-3',\n headerFontSize: 'text-xs',\n rowPadding: 'px-4 py-3',\n rowFontSize: 'text-sm',\n containerRounded: 'rounded-lg',\n },\n lg: {\n headerPadding: 'px-6 py-4',\n headerFontSize: 'text-sm',\n rowPadding: 'px-6 py-4',\n rowFontSize: 'text-base',\n containerRounded: 'rounded-xl',\n },\n responsive: {\n headerPadding: 'px-2 sm:px-3 md:px-4 py-2 sm:py-2.5 md:py-3',\n headerFontSize: 'text-xs sm:text-xs md:text-sm',\n rowPadding: 'px-2 sm:px-3 md:px-4 py-2 sm:py-2.5 md:py-3',\n rowFontSize: 'text-xs sm:text-xs md:text-sm',\n containerRounded: 'rounded-md sm:rounded-lg md:rounded-lg',\n },\n };\n\n // Rounded configuration\n const roundedClasses = {\n none: '',\n sm: 'rounded-sm',\n md: 'rounded-md',\n lg: 'rounded-lg',\n xl: 'rounded-xl',\n '2xl': 'rounded-2xl',\n };\n\n const currentSizeConfig = sizeConfig[size];\n const currentRoundedClass = roundedClasses[rounded];\n\n const getRowKey = (record: T, index: number): string => {\n if (typeof rowKey === 'function') {\n return rowKey(record);\n }\n return record[rowKey] || String(index);\n };\n\n const getValue = (record: T, dataIndex?: string) => {\n if (!dataIndex) return record;\n return dataIndex.split('.').reduce((obj, key) => obj?.[key], record);\n };\n\n // Pagination logic\n const paginatedData =\n pagination === false\n ? dataSource\n : dataSource.slice((currentPage - 1) * pageSize, currentPage * pageSize);\n\n const handlePageChange = (page: number) => {\n setCurrentPage(page);\n if (pagination && typeof pagination === 'object' && pagination.onChange) {\n pagination.onChange(page, pageSize);\n }\n };\n\n const handlePageSizeChange = (newPageSize: number) => {\n setPageSize(newPageSize);\n setCurrentPage(1);\n if (pagination && typeof pagination === 'object' && pagination.onChange) {\n pagination.onChange(1, newPageSize);\n }\n };\n\n return (\n <div className=\"w-full\" style={style}>\n <div\n className={`overflow-x-auto ${currentRoundedClass || 'rounded-2xl'} border`}\n style={{ borderColor: borderColor || '#EEEEEE' }}\n >\n <table className={`w-full ${bordered ? 'border-collapse' : ''} ${className}`}>\n <thead\n style={{\n backgroundColor: headerBgColor || '#F5F6F7',\n color: headerTextColor || '#333333',\n }}\n >\n <tr>\n {columns.map((column, idx) => (\n <th\n key={column.key}\n className={`${currentSizeConfig.headerPadding} text-left ${currentSizeConfig.headerFontSize} font-medium uppercase tracking-wider ${\n bordered && idx !== columns.length - 1 ? 'border-r' : ''\n } ${\n column.align === 'center'\n ? 'text-center'\n : column.align === 'right'\n ? 'text-right'\n : ''\n }`}\n style={{\n width: column.width,\n borderColor: borderColor || '#EEEEEE',\n color: headerTextColor || '#333333',\n }}\n >\n {column.title}\n </th>\n ))}\n </tr>\n </thead>\n <tbody\n className=\"bg-white divide-y\"\n style={{ borderColor: borderColor || '#e5e5e5' }}\n >\n {loading ? (\n <tr>\n <td\n colSpan={columns.length}\n className={`${currentSizeConfig.rowPadding} py-8 text-center`}\n style={{ color: '#333333' }}\n >\n <div className=\"flex justify-center items-center\">\n <svg\n className=\"animate-spin h-5 w-5 mr-2\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <circle\n className=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n strokeWidth=\"4\"\n />\n <path\n className=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n />\n </svg>\n Loading...\n </div>\n </td>\n </tr>\n ) : paginatedData.length === 0 ? (\n <tr>\n <td\n colSpan={columns.length}\n className={`${currentSizeConfig.rowPadding} py-8 text-center`}\n style={{ color: '#333333' }}\n >\n No data\n </td>\n </tr>\n ) : (\n paginatedData.map((record, index) => {\n const rowProps = onRow ? onRow(record, index) : {};\n const stripedBg = striped && index % 2 === 1 ? (stripedRowColor || '#F5F6F7') : 'transparent';\n const hoverBg = rowHoverColor || '#f3f4f6';\n return (\n <tr\n key={getRowKey(record, index)}\n className=\"transition-colors duration-200 ease-out\"\n style={{\n backgroundColor: stripedBg,\n }}\n onMouseEnter={(e) => {\n if (rowHoverColor || !striped || index % 2 === 0) {\n e.currentTarget.style.backgroundColor = hoverBg;\n }\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = stripedBg;\n }}\n {...rowProps}\n >\n {columns.map((column, colIdx) => {\n const value = getValue(record, column.dataIndex);\n const content = column.render ? column.render(value, record, index) : value;\n\n return (\n <td\n key={column.key}\n className={`${currentSizeConfig.rowPadding} ${currentSizeConfig.rowFontSize} text-gray-900 ${\n bordered && colIdx !== columns.length - 1 ? 'border-r' : ''\n } ${\n column.align === 'center'\n ? 'text-center'\n : column.align === 'right'\n ? 'text-right'\n : ''\n }`}\n style={{\n borderColor: borderColor || '#EEEEEE',\n }}\n >\n {content as ReactNode}\n </td>\n );\n })}\n </tr>\n );\n })\n )}\n </tbody>\n </table>\n </div>\n\n {/* Pagination */}\n {pagination !== false && (\n <Pagination\n current={currentPage}\n pageSize={pageSize}\n total={dataSource.length}\n onChange={handlePageChange}\n onPageSizeChange={handlePageSizeChange}\n showSizeChanger={\n pagination && typeof pagination === 'object' ? pagination.showSizeChanger : true\n }\n pageSizeOptions={\n pagination && typeof pagination === 'object'\n ? pagination.pageSizeOptions\n : [10, 20, 50, 100]\n }\n showTotal={pagination && typeof pagination === 'object' ? pagination.showTotal : true}\n size={\n pagination && typeof pagination === 'object' && pagination.size\n ? pagination.size\n : size === 'responsive'\n ? 'md'\n : size\n }\n />\n )}\n </div>\n );\n};\n\ninterface PaginationProps {\n current: number;\n pageSize: number;\n total: number;\n onChange: (page: number) => void;\n onPageSizeChange: (pageSize: number) => void;\n showSizeChanger?: boolean;\n pageSizeOptions?: number[];\n showTotal?: boolean;\n size?: 'sm' | 'md' | 'lg';\n}\n\nconst Pagination: FC<PaginationProps> = ({\n current,\n pageSize,\n total,\n onChange,\n onPageSizeChange,\n showSizeChanger = true,\n pageSizeOptions = [10, 20, 50, 100],\n showTotal = true,\n size = 'md',\n}) => {\n const totalPages = Math.ceil(total / pageSize);\n const startItem = (current - 1) * pageSize + 1;\n const endItem = Math.min(current * pageSize, total);\n\n const sizeClasses = {\n sm: {\n button: 'px-2.5 py-1 text-xs',\n icon: 'h-3.5 w-3.5',\n nav: 'px-1.5 py-1.5',\n },\n md: {\n button: 'px-4 py-2 text-sm',\n icon: 'h-5 w-5',\n nav: 'px-2 py-2',\n },\n lg: {\n button: 'px-5 py-2.5 text-base',\n icon: 'h-6 w-6',\n nav: 'px-3 py-3',\n },\n };\n\n const getPageNumbers = () => {\n const pages: (number | string)[] = [];\n const maxVisible = 7;\n\n if (totalPages <= maxVisible) {\n for (let i = 1; i <= totalPages; i++) {\n pages.push(i);\n }\n } else {\n if (current <= 3) {\n for (let i = 1; i <= 5; i++) pages.push(i);\n pages.push('...');\n pages.push(totalPages);\n } else if (current >= totalPages - 2) {\n pages.push(1);\n pages.push('...');\n for (let i = totalPages - 4; i <= totalPages; i++) pages.push(i);\n } else {\n pages.push(1);\n pages.push('...');\n for (let i = current - 1; i <= current + 1; i++) pages.push(i);\n pages.push('...');\n pages.push(totalPages);\n }\n }\n\n return pages;\n };\n\n return (\n <div className=\"flex items-center justify-between px-4 py-3 border-t border-[#EEEEEE] sm:px-6 mt-4\">\n {showTotal && (\n <div className=\"text-sm text-[#181918]\">\n {startItem}-{endItem} of {total} items\n </div>\n )}\n\n <div className=\"flex items-center gap-2\">\n {showSizeChanger && (\n <Select\n value={pageSize.toString()}\n onChange={(value) => onPageSizeChange(Number(value))}\n options={pageSizeOptions.map((size) => ({\n value: size.toString(),\n label: `${size} / page`,\n }))}\n size=\"sm\"\n className=\"w-32\"\n />\n )}\n\n <nav className=\"inline-flex gap-1 items-center\" aria-label=\"Pagination\">\n <button\n onClick={() => onChange(current - 1)}\n disabled={current === 1}\n className={`relative inline-flex items-center justify-center rounded-md ${sizeClasses[size].nav} text-[#181918] hover:bg-gray-100 focus:z-20 disabled:opacity-30 disabled:cursor-not-allowed disabled:hover:bg-transparent transition-all duration-300 ease-out hover:scale-110 active:scale-95`}\n >\n <svg className={sizeClasses[size].icon} viewBox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\">\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M15 19l-7-7 7-7\"\n />\n </svg>\n </button>\n\n {getPageNumbers().map((page, index) => {\n if (page === '...') {\n return (\n <span\n key={`ellipsis-${index}`}\n className={`relative inline-flex items-center justify-center ${sizeClasses[size].button} font-normal text-[#181918]`}\n >\n ...\n </span>\n );\n }\n\n return (\n <button\n key={page}\n onClick={() => onChange(page as number)}\n className={`relative inline-flex items-center justify-center rounded-md ${sizeClasses[size].button} font-medium transition-all duration-300 ease-out focus:z-20 hover:scale-105 active:scale-95 ${\n current === page\n ? 'bg-[#EC615B] text-white shadow-sm'\n : 'text-[#181918] hover:bg-gray-100'\n }`}\n >\n {page}\n </button>\n );\n })}\n\n <button\n onClick={() => onChange(current + 1)}\n disabled={current === totalPages}\n className={`relative inline-flex items-center justify-center rounded-md ${sizeClasses[size].nav} text-[#181918] hover:bg-gray-100 focus:z-20 disabled:opacity-30 disabled:cursor-not-allowed disabled:hover:bg-transparent transition-all duration-300 ease-out hover:scale-110 active:scale-95`}\n >\n <svg className={sizeClasses[size].icon} viewBox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\">\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M9 5l7 7-7 7\"\n />\n </svg>\n </button>\n </nav>\n </div>\n </div>\n );\n};\n\nexport default Table;\n","import type { FC, ReactNode, ChangeEvent, CSSProperties } from 'react';\n\nexport interface TableTopProps {\n // Existing props\n title?: string;\n description?: string;\n searchPlaceholder?: string;\n onSearch?: (value: string) => void;\n actions?: ReactNode;\n filters?: ReactNode;\n className?: string;\n\n // New responsive props\n size?: 'sm' | 'md' | 'lg' | 'responsive';\n\n // Custom color props\n titleColor?: string;\n descriptionColor?: string;\n searchBgColor?: string;\n searchBorderColor?: string;\n searchFocusBorderColor?: string;\n\n // Search input border radius\n rounded?: 'none' | 'sm' | 'md' | 'lg' | 'full';\n\n // Custom styles\n style?: CSSProperties;\n\n // New props for conditional action button display\n hideActionButtons?: boolean;\n selectedActionButton?: ReactNode;\n}\n\nexport const TableTop: FC<TableTopProps> = ({\n title,\n description,\n searchPlaceholder = 'Search...',\n onSearch,\n actions,\n filters,\n className = '',\n size = 'responsive',\n titleColor,\n descriptionColor,\n searchBgColor = 'white',\n searchBorderColor = '#d1d5db',\n searchFocusBorderColor = '#3b82f6',\n rounded = 'md',\n style,\n hideActionButtons = false,\n selectedActionButton,\n}) => {\n const handleSearchChange = (e: ChangeEvent<HTMLInputElement>) => {\n onSearch?.(e.target.value);\n };\n\n // Size configuration\n const sizeConfig = {\n sm: {\n titleSize: 'text-lg',\n titleWeight: 'font-semibold',\n descriptionSize: 'text-xs',\n searchInputSize: 'text-xs',\n searchInputPy: 'py-1.5',\n searchPaddingLeft: 'pl-8',\n iconSize: 'h-4 w-4',\n spacing: 'space-y-2',\n gap: 'gap-2',\n maxWidth: 'max-w-sm',\n descriptionMargin: 'mt-0.5',\n },\n md: {\n titleSize: 'text-xl',\n titleWeight: 'font-semibold',\n descriptionSize: 'text-sm',\n searchInputSize: 'text-sm',\n searchInputPy: 'py-2',\n searchPaddingLeft: 'pl-10',\n iconSize: 'h-5 w-5',\n spacing: 'space-y-3',\n gap: 'gap-3',\n maxWidth: 'max-w-md',\n descriptionMargin: 'mt-1',\n },\n lg: {\n titleSize: 'text-2xl',\n titleWeight: 'font-bold',\n descriptionSize: 'text-base',\n searchInputSize: 'text-base',\n searchInputPy: 'py-2.5',\n searchPaddingLeft: 'pl-12',\n iconSize: 'h-6 w-6',\n spacing: 'space-y-4',\n gap: 'gap-4',\n maxWidth: 'max-w-lg',\n descriptionMargin: 'mt-2',\n },\n responsive: {\n titleSize: 'text-lg sm:text-xl md:text-2xl',\n titleWeight: 'font-semibold md:font-bold',\n descriptionSize: 'text-xs sm:text-sm md:text-base',\n searchInputSize: 'text-xs sm:text-sm md:text-base',\n searchInputPy: 'py-1.5 sm:py-2 md:py-2.5',\n searchPaddingLeft: 'pl-8 sm:pl-10 md:pl-12',\n iconSize: 'h-4 w-4 sm:h-5 sm:w-5 md:h-6 md:w-6',\n spacing: 'space-y-2 sm:space-y-3 md:space-y-4',\n gap: 'gap-2 sm:gap-3 md:gap-4',\n maxWidth: 'max-w-sm md:max-w-md lg:max-w-lg',\n descriptionMargin: 'mt-0.5 sm:mt-1 md:mt-2',\n },\n };\n\n const config = sizeConfig[size];\n\n // Border radius configuration\n const radiusConfig = {\n none: 'rounded-none',\n sm: 'rounded-sm',\n md: 'rounded-md',\n lg: 'rounded-lg',\n full: 'rounded-full',\n };\n\n const radiusClass = radiusConfig[rounded];\n\n // Build inline styles for custom colors\n const searchInputStyle: CSSProperties = {\n backgroundColor: searchBgColor,\n borderColor: searchBorderColor,\n };\n\n return (\n <div\n className={`${config.spacing} mb-4 ${className}`}\n style={style}\n >\n {/* Title and Description */}\n {(title || description) && (\n <div>\n {title && (\n <h2\n className={`${config.titleSize} ${config.titleWeight}`}\n style={{ color: titleColor || '#111827' }}\n >\n {title}\n </h2>\n )}\n {description && (\n <p\n className={`${config.descriptionSize} ${config.descriptionMargin}`}\n style={{ color: descriptionColor || '#6b7280' }}\n >\n {description}\n </p>\n )}\n </div>\n )}\n\n {/* Search and Actions Row */}\n <div className={`flex flex-col sm:flex-row items-stretch sm:items-center justify-between ${config.gap}`}>\n {/* Search Input */}\n {onSearch && (\n <div className={`flex-1 ${config.maxWidth}`}>\n <div className=\"relative\">\n <div className=\"absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none\">\n <svg\n className={`${config.iconSize} text-gray-400`}\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z\"\n />\n </svg>\n </div>\n <input\n type=\"text\"\n placeholder={searchPlaceholder}\n onChange={handleSearchChange}\n className={`block w-full ${config.searchPaddingLeft} pr-3 ${config.searchInputPy} border ${radiusClass} focus:outline-none focus:ring-2 focus:ring-opacity-50 ${config.searchInputSize} transition-colors duration-200`}\n style={searchInputStyle}\n onFocus={(e) => {\n e.currentTarget.style.borderColor = searchFocusBorderColor;\n e.currentTarget.style.boxShadow = `0 0 0 2px rgba(59, 130, 246, 0.1)`;\n }}\n onBlur={(e) => {\n e.currentTarget.style.borderColor = searchBorderColor;\n e.currentTarget.style.boxShadow = 'none';\n }}\n />\n </div>\n </div>\n )}\n\n {/* Actions (Buttons) */}\n <div className={`flex items-center gap-2 w-full sm:w-auto`}>\n {hideActionButtons && selectedActionButton ? (\n selectedActionButton\n ) : (\n actions\n )}\n </div>\n </div>\n\n {/* Filters Row */}\n {filters && (\n <div className={`flex flex-wrap items-center ${config.gap}`}>\n {filters}\n </div>\n )}\n </div>\n );\n};\n\nexport default TableTop;\n","import { useEffect, useState, CSSProperties } from 'react';\nimport type { FC, ReactNode, MouseEvent } from 'react';\n\ntype ModalSize = 'sm' | 'md' | 'lg' | 'xl' | 'full' | 'responsive';\n\nconst widthMap: Record<ModalSize, string> = {\n sm: '384px',\n md: '448px',\n lg: '512px',\n xl: '600px',\n full: '100%',\n responsive: '90vw',\n};\n\nexport interface ModalProps {\n open: boolean;\n onClose: () => void;\n title?: string;\n children: ReactNode;\n footer?: ReactNode;\n width?: string | number;\n size?: ModalSize;\n closable?: boolean;\n maskClosable?: boolean;\n centered?: boolean;\n className?: string;\n bgColor?: string;\n headerBgColor?: string;\n overlayColor?: string;\n bodyClassName?: string;\n headerClassName?: string;\n maxHeight?: string | number;\n}\n\nexport const Modal: FC<ModalProps> = ({\n open,\n onClose,\n title,\n children,\n footer,\n width,\n size = 'md',\n closable = true,\n maskClosable = true,\n centered = true,\n className = '',\n bgColor = '#ffffff',\n headerBgColor = '#ffffff',\n overlayColor = 'rgba(0, 0, 0, 0.5)',\n bodyClassName = '',\n headerClassName = '',\n maxHeight = '70vh',\n}) => {\n const [isVisible, setIsVisible] = useState(false);\n const [isAnimating, setIsAnimating] = useState(false);\n\n // Determine effective width\n const effectiveWidth = width || widthMap[size];\n const effectiveWidthNum = typeof effectiveWidth === 'number' ? `${effectiveWidth}px` : effectiveWidth;\n\n // Prepare modal style\n const modalStyle: CSSProperties = {\n width: effectiveWidthNum,\n maxWidth: '90vw',\n backgroundColor: bgColor,\n };\n\n // Prepare header style\n const headerStyle: CSSProperties = {\n backgroundColor: headerBgColor,\n };\n\n // Prepare overlay style\n const overlayStyle: CSSProperties = {\n backgroundColor: overlayColor,\n };\n\n useEffect(() => {\n if (open) {\n setIsVisible(true);\n // Small delay to trigger animation\n setTimeout(() => setIsAnimating(true), 10);\n document.body.style.overflow = 'hidden';\n } else {\n setIsAnimating(false);\n // Wait for animation to complete before unmounting\n const timer = setTimeout(() => {\n setIsVisible(false);\n }, 200);\n document.body.style.overflow = 'unset';\n return () => clearTimeout(timer);\n }\n }, [open]);\n\n // Close on Escape key\n useEffect(() => {\n const handleEscape = (e: KeyboardEvent) => {\n if (e.key === 'Escape' && closable && open) {\n onClose();\n }\n };\n\n if (open) {\n document.addEventListener('keydown', handleEscape);\n }\n\n return () => {\n document.removeEventListener('keydown', handleEscape);\n };\n }, [open, onClose, closable]);\n\n if (!isVisible) return null;\n\n const handleMaskClick = () => {\n if (maskClosable) {\n onClose();\n }\n };\n\n const handleModalClick = (e: MouseEvent) => {\n e.stopPropagation();\n };\n\n return (\n <div\n className=\"fixed inset-0 z-50 overflow-y-auto\"\n onClick={handleMaskClick}\n >\n {/* Backdrop */}\n <div\n className={`fixed inset-0 transition-opacity duration-200 ease-out ${\n isAnimating ? 'opacity-100' : 'opacity-0'\n }`}\n style={overlayStyle}\n />\n\n {/* Modal Container */}\n <div className={`flex min-h-full items-center justify-center p-4 ${centered ? 'items-center' : 'items-start pt-20'}`}>\n <div\n className={`relative rounded-lg shadow-xl transition-all duration-200 ease-out overflow-y-auto ${\n isAnimating\n ? 'opacity-100 scale-100 translate-y-0'\n : 'opacity-0 scale-95 -translate-y-4'\n } ${className}`}\n style={{...modalStyle, maxHeight: typeof maxHeight === 'number' ? `${maxHeight}px` : maxHeight}}\n onClick={handleModalClick}\n >\n {/* Header */}\n {(title || closable) && (\n <div\n className={`flex items-center justify-between px-6 py-4 border-b border-gray-200 ${headerClassName}`}\n style={headerStyle}\n >\n {title && <h3 className=\"text-lg font-semibold text-gray-900\">{title}</h3>}\n {closable && (\n <button\n onClick={onClose}\n className=\"text-gray-400 hover:text-gray-600 transition-colors duration-200 ease-out\"\n >\n <svg\n className=\"w-5 h-5\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M6 18L18 6M6 6l12 12\"\n />\n </svg>\n </button>\n )}\n </div>\n )}\n\n {/* Body */}\n <div\n className={`px-6 py-4 ${bodyClassName}`}\n >\n {children}\n </div>\n\n {/* Footer */}\n {footer && (\n <div className=\"px-6 py-4 border-t border-gray-200 flex justify-end gap-2\">\n {footer}\n </div>\n )}\n </div>\n </div>\n </div>\n );\n};\n\nexport default Modal;\n","import type { FC, ReactNode, CSSProperties } from 'react';\n\nexport interface BadgeProps {\n children: ReactNode;\n variant?: 'default' | 'primary' | 'success' | 'warning' | 'danger' | 'info';\n size?: 'sm' | 'md' | 'lg' | 'responsive';\n dot?: boolean;\n icon?: ReactNode;\n iconPosition?: 'left' | 'right';\n className?: string;\n bgColor?: string;\n textColor?: string;\n borderColor?: string;\n rounded?: 'none' | 'sm' | 'md' | 'lg' | 'full';\n style?: CSSProperties;\n}\n\nexport const Badge: FC<BadgeProps> = ({\n children,\n variant = 'default',\n size = 'md',\n dot = false,\n icon,\n iconPosition = 'left',\n className = '',\n bgColor,\n textColor,\n borderColor,\n rounded = 'full',\n style,\n}) => {\n const variantClasses = {\n default: 'bg-gray-100 text-[#181918]',\n primary: 'bg-[#FCEAE9] text-[#EC615B]',\n success: 'bg-green-100 text-green-800',\n warning: 'bg-yellow-100 text-yellow-800',\n danger: 'bg-red-100 text-red-800',\n info: 'bg-cyan-100 text-cyan-800',\n };\n\n const sizeClasses = {\n sm: 'px-2 py-0.5 text-xs',\n md: 'px-2.5 py-1 text-sm',\n lg: 'px-3 py-1.5 text-base',\n responsive: 'px-1.5 py-0.5 text-[10px] sm:px-2 sm:py-0.5 sm:text-xs md:px-2.5 md:py-1 md:text-sm lg:px-3 lg:py-1.5 lg:text-base',\n };\n\n const dotSizeClasses = {\n sm: 'w-1.5 h-1.5',\n md: 'w-2 h-2',\n lg: 'w-2.5 h-2.5',\n responsive: 'w-1 h-1 sm:w-1.5 sm:h-1.5 md:w-2 md:h-2 lg:w-2.5 lg:h-2.5',\n };\n\n const dotColorClasses = {\n default: 'bg-gray-600',\n primary: 'bg-[#EC615B]',\n success: 'bg-green-600',\n warning: 'bg-yellow-600',\n danger: 'bg-red-600',\n info: 'bg-cyan-600',\n };\n\n const iconSizeClasses = {\n sm: 'w-3 h-3',\n md: 'w-3.5 h-3.5',\n lg: 'w-4 h-4',\n responsive: 'w-2.5 h-2.5 sm:w-3 sm:h-3 md:w-3.5 md:h-3.5 lg:w-4 lg:h-4',\n };\n\n const roundedClasses = {\n none: 'rounded-none',\n sm: 'rounded-sm',\n md: 'rounded-md',\n lg: 'rounded-lg',\n full: 'rounded-full',\n };\n\n const customStyles: CSSProperties = {\n ...(bgColor && { backgroundColor: bgColor }),\n ...(textColor && { color: textColor }),\n ...(borderColor && { borderColor, borderWidth: '1px', borderStyle: 'solid' }),\n ...style,\n };\n\n return (\n <span\n className={`inline-flex items-center gap-1.5 font-medium transition-all duration-200 ${!bgColor ? variantClasses[variant] : ''} ${sizeClasses[size]} ${roundedClasses[rounded]} ${className}`}\n style={customStyles}\n >\n {dot && (\n <span className={`rounded-full ${dotSizeClasses[size]} ${dotColorClasses[variant]}`} />\n )}\n {icon && iconPosition === 'left' && (\n <span className={`inline-flex items-center ${iconSizeClasses[size]}`}>\n {icon}\n </span>\n )}\n {children}\n {icon && iconPosition === 'right' && (\n <span className={`inline-flex items-center ${iconSizeClasses[size]}`}>\n {icon}\n </span>\n )}\n </span>\n );\n};\n\nexport default Badge;\n","import type { FC, ReactNode, CSSProperties } from 'react';\n\nexport interface StepItem {\n title: string;\n description?: string;\n status?: 'wait' | 'process' | 'finish' | 'error';\n icon?: ReactNode;\n}\n\nexport interface StepsProps {\n items: StepItem[];\n current?: number;\n direction?: 'horizontal' | 'vertical';\n size?: 'sm' | 'md' | 'lg' | 'responsive';\n variant?: 'default' | 'outline';\n className?: string;\n style?: CSSProperties;\n finishColor?: string;\n processColor?: string;\n waitColor?: string;\n errorColor?: string;\n lineColor?: string;\n}\n\nexport const Steps: FC<StepsProps> = ({\n items,\n current = 0,\n direction = 'vertical',\n size = 'md',\n variant = 'default',\n className = '',\n style,\n finishColor,\n processColor,\n waitColor,\n errorColor,\n lineColor,\n}) => {\n const getStepStatus = (index: number, item: StepItem): StepItem['status'] => {\n if (item.status) return item.status;\n if (index < current) return 'finish';\n if (index === current) return 'process';\n return 'wait';\n };\n\n const iconSizeClasses = {\n sm: 'w-6 h-6',\n md: 'w-8 h-8',\n lg: 'w-10 h-10',\n responsive: 'w-6 h-6 sm:w-7 sm:h-7 md:w-8 md:h-8 lg:w-10 lg:h-10',\n };\n\n const textSizeClasses = {\n sm: 'text-sm',\n md: 'text-base',\n lg: 'text-lg',\n responsive: 'text-xs sm:text-sm md:text-base lg:text-lg',\n };\n\n const descriptionSizeClasses = {\n sm: 'text-xs',\n md: 'text-sm',\n lg: 'text-base',\n responsive: 'text-xs sm:text-xs md:text-sm lg:text-base',\n };\n\n const renderIcon = (status: StepItem['status'], icon?: ReactNode) => {\n if (icon) return icon;\n\n if (status === 'finish') {\n return (\n <svg className=\"w-5 h-5\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\"\n clipRule=\"evenodd\"\n />\n </svg>\n );\n }\n\n if (status === 'error') {\n return (\n <svg className=\"w-5 h-5\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\"\n clipRule=\"evenodd\"\n />\n </svg>\n );\n }\n\n return null;\n };\n\n const getStatusClasses = (status: StepItem['status']) => {\n const isOutline = variant === 'outline';\n\n switch (status) {\n case 'finish':\n return {\n icon: isOutline\n ? `bg-white text-white border ${finishColor ? `border-[${finishColor}]` : 'border-green-500'}`\n : `${finishColor ? `bg-[${finishColor}]` : 'bg-green-500'} text-white ${finishColor ? `border-[${finishColor}]` : 'border-green-500'}`,\n title: 'text-[#181918]',\n description: 'text-gray-600',\n line: lineColor ? `bg-[${lineColor}]` : 'bg-green-500',\n iconColor: finishColor,\n };\n case 'process':\n return {\n icon: isOutline\n ? `bg-white text-white border ${processColor ? `border-[${processColor}]` : 'border-[#EC615B]'}`\n : `${processColor ? `bg-[${processColor}]` : 'bg-[#EC615B]'} text-white ${processColor ? `border-[${processColor}]` : 'border-[#EC615B]'}`,\n title: 'text-[#181918] font-semibold',\n description: 'text-gray-700',\n line: lineColor ? `bg-[${lineColor}]` : 'bg-gray-300',\n iconColor: processColor,\n };\n case 'error':\n return {\n icon: isOutline\n ? `bg-white text-white border ${errorColor ? `border-[${errorColor}]` : 'border-red-500'}`\n : `${errorColor ? `bg-[${errorColor}]` : 'bg-red-500'} text-white ${errorColor ? `border-[${errorColor}]` : 'border-red-500'}`,\n title: 'text-red-600',\n description: 'text-red-500',\n line: lineColor ? `bg-[${lineColor}]` : 'bg-gray-300',\n iconColor: errorColor,\n };\n default:\n return {\n icon: 'bg-white text-gray-400 border-gray-300',\n title: 'text-gray-500',\n description: 'text-gray-400',\n line: lineColor ? `bg-[${lineColor}]` : 'bg-gray-300',\n iconColor: waitColor,\n };\n }\n };\n\n if (direction === 'horizontal') {\n return (\n <div className={`flex items-start ${className}`} style={style}>\n {items.map((item, index) => {\n const status = getStepStatus(index, item);\n const statusClasses = getStatusClasses(status);\n const isLast = index === items.length - 1;\n const iconStyle: CSSProperties = {};\n if (statusClasses.iconColor) {\n iconStyle.color = statusClasses.iconColor;\n }\n\n return (\n <div key={index} className=\"flex flex-1 items-start\">\n <div className=\"flex flex-col items-center\">\n <div\n className={`flex items-center justify-center ${iconSizeClasses[size]} rounded-full border transition-all duration-300 ${statusClasses.icon}`}\n style={iconStyle}\n >\n {renderIcon(status, item.icon)}\n </div>\n <div className=\"mt-2 text-center\">\n <div\n className={`${textSizeClasses[size]} ${statusClasses.title} transition-colors duration-300`}\n >\n {item.title}\n </div>\n {item.description && (\n <div\n className={`${descriptionSizeClasses[size]} ${statusClasses.description} mt-1 transition-colors duration-300`}\n >\n {item.description}\n </div>\n )}\n </div>\n </div>\n {!isLast && (\n <div\n className={`flex-1 h-0.5 mt-4 mx-2 ${statusClasses.line} transition-colors duration-300`}\n />\n )}\n </div>\n );\n })}\n </div>\n );\n }\n\n return (\n <div className={`flex flex-col ${className}`} style={style}>\n {items.map((item, index) => {\n const status = getStepStatus(index, item);\n const statusClasses = getStatusClasses(status);\n const isLast = index === items.length - 1;\n const iconStyle: CSSProperties = {};\n if (statusClasses.iconColor) {\n iconStyle.color = statusClasses.iconColor;\n }\n\n return (\n <div key={index} className=\"flex\">\n <div className=\"flex flex-col items-center mr-4\">\n <div\n className={`flex items-center justify-center ${iconSizeClasses[size]} rounded-full border transition-all duration-300 ${statusClasses.icon}`}\n style={iconStyle}\n >\n {renderIcon(status, item.icon)}\n </div>\n {!isLast && (\n <div\n className={`w-0.5 flex-1 my-1 ${statusClasses.line} transition-colors duration-300`}\n style={{ minHeight: '20px' }}\n />\n )}\n </div>\n <div className=\"flex-1 pb-6\">\n <div\n className={`${textSizeClasses[size]} ${statusClasses.title} transition-colors duration-300`}\n >\n {item.title}\n </div>\n {item.description && (\n <div\n className={`${descriptionSizeClasses[size]} ${statusClasses.description} mt-1 transition-colors duration-300`}\n >\n {item.description}\n </div>\n )}\n </div>\n </div>\n );\n })}\n </div>\n );\n};\n\nexport default Steps;\n","import type { FC, ReactNode } from 'react';\n\nexport interface ProgressProps {\n percent?: number;\n status?: 'normal' | 'success' | 'exception' | 'active';\n showInfo?: boolean;\n strokeColor?: string;\n strokeWidth?: number;\n size?: 'sm' | 'md' | 'lg' | 'responsive';\n className?: string;\n format?: (percent: number) => ReactNode;\n bgColor?: string;\n successColor?: string;\n exceptionColor?: string;\n trackColor?: string;\n rounded?: 'none' | 'sm' | 'md' | 'lg' | 'full';\n}\n\nexport const Progress: FC<ProgressProps> = ({\n percent = 0,\n status = 'normal',\n showInfo = true,\n strokeColor,\n strokeWidth,\n size = 'md',\n className = '',\n format,\n bgColor,\n successColor,\n exceptionColor,\n trackColor,\n rounded = 'full',\n}) => {\n const clampedPercent = Math.min(100, Math.max(0, percent));\n\n const heightClasses = {\n sm: 'h-1.5',\n md: 'h-2',\n lg: 'h-3',\n responsive: 'h-1.5 sm:h-2 md:h-3 lg:h-4',\n };\n\n const textSizeClasses = {\n sm: 'text-xs',\n md: 'text-sm',\n lg: 'text-base',\n responsive: 'text-xs sm:text-sm md:text-base lg:text-lg',\n };\n\n const roundedClasses = {\n none: 'rounded-none',\n sm: 'rounded-sm',\n md: 'rounded-md',\n lg: 'rounded-lg',\n full: 'rounded-full',\n };\n\n const getStatusColor = () => {\n if (strokeColor) return strokeColor;\n\n switch (status) {\n case 'success':\n return successColor || 'bg-green-500';\n case 'exception':\n return exceptionColor || 'bg-red-500';\n case 'active':\n return bgColor || 'bg-[#EC615B]';\n default:\n if (clampedPercent === 100) return successColor || 'bg-green-500';\n return bgColor || 'bg-[#EC615B]';\n }\n };\n\n const getTrackColor = () => {\n return trackColor || 'bg-gray-200';\n };\n\n const getStatusIcon = () => {\n if (status === 'success' || clampedPercent === 100) {\n return (\n <svg className=\"w-4 h-4 text-green-500\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z\"\n clipRule=\"evenodd\"\n />\n </svg>\n );\n }\n\n if (status === 'exception') {\n return (\n <svg className=\"w-4 h-4 text-red-500\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z\"\n clipRule=\"evenodd\"\n />\n </svg>\n );\n }\n\n return null;\n };\n\n const formatPercent = () => {\n if (format) return format(clampedPercent);\n return `${Math.round(clampedPercent)}%`;\n };\n\n const height = strokeWidth ? `${strokeWidth}px` : undefined;\n\n return (\n <div className={`flex items-center gap-2 ${className}`}>\n <div className=\"flex-1\">\n <div\n className={`w-full overflow-hidden ${heightClasses[size]} ${roundedClasses[rounded]} ${getTrackColor()}`}\n style={{ height }}\n >\n <div\n className={`${getStatusColor()} ${heightClasses[size]} ${roundedClasses[rounded]} transition-all duration-300 ease-out ${\n status === 'active' ? 'progress-active' : ''\n }`}\n style={{\n width: `${clampedPercent}%`,\n height,\n }}\n />\n </div>\n </div>\n\n {showInfo && (\n <div className={`flex items-center gap-1 ${textSizeClasses[size]} text-gray-600 font-normal`}>\n {getStatusIcon() || formatPercent()}\n </div>\n )}\n </div>\n );\n};\n\nexport default Progress;\n","import { useState } from 'react';\nimport type { FC, ChangeEvent, CSSProperties } from 'react';\n\nexport interface CheckboxProps {\n checked?: boolean;\n defaultChecked?: boolean;\n onChange?: (checked: boolean) => void;\n disabled?: boolean;\n indeterminate?: boolean;\n size?: 'sm' | 'md' | 'lg' | 'responsive';\n variant?: 'filled' | 'outline';\n className?: string;\n id?: string;\n name?: string;\n value?: string;\n checkedColor?: string;\n uncheckedColor?: string;\n checkedBorderColor?: string;\n style?: CSSProperties;\n}\n\nexport const Checkbox: FC<CheckboxProps> = ({\n checked: controlledChecked,\n defaultChecked = false,\n onChange,\n disabled = false,\n indeterminate = false,\n size = 'md',\n variant = 'filled',\n className = '',\n id,\n name,\n value,\n checkedColor = '#EC615B',\n uncheckedColor = '#ffffff',\n checkedBorderColor = '#EC615B',\n style,\n}) => {\n const [internalChecked, setInternalChecked] = useState(defaultChecked);\n\n const isControlled = controlledChecked !== undefined;\n const checked = isControlled ? controlledChecked : internalChecked;\n\n const handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n if (disabled) return;\n\n const newChecked = e.target.checked;\n\n if (!isControlled) {\n setInternalChecked(newChecked);\n }\n\n onChange?.(newChecked);\n };\n\n const sizeClasses = {\n sm: 'w-4 h-4',\n md: 'w-5 h-5',\n lg: 'w-6 h-6',\n responsive: 'w-4 h-4 sm:w-5 sm:h-5 lg:w-6 lg:h-6',\n };\n\n const iconSizeClasses = {\n sm: 'w-3 h-3',\n md: 'w-3.5 h-3.5',\n lg: 'w-4 h-4',\n responsive: 'w-2.5 h-2.5 sm:w-3.5 sm:h-3.5 lg:w-4 lg:h-4',\n };\n\n const isFilled = variant === 'filled';\n\n const getCheckboxClasses = () => {\n if (disabled) {\n return 'cursor-not-allowed opacity-50 border-gray-300 bg-gray-100';\n }\n\n if (isFilled) {\n // Filled variant\n if (!checked && !indeterminate) {\n return 'border-gray-300 bg-white hover:border-gray-400';\n }\n return '';\n } else {\n // Outline variant\n if (!checked && !indeterminate) {\n return 'border-gray-300 bg-white hover:border-gray-400';\n }\n return '';\n }\n };\n\n const getCheckboxInlineStyles = (): CSSProperties | undefined => {\n if (disabled) return undefined;\n\n if (!checked && !indeterminate) {\n return undefined;\n }\n\n if (isFilled) {\n return {\n borderColor: checkedBorderColor,\n backgroundColor: checkedColor,\n };\n } else {\n return {\n borderColor: checkedBorderColor,\n backgroundColor: uncheckedColor,\n };\n }\n };\n\n const getIconColor = () => {\n if (isFilled && (checked || indeterminate)) {\n return 'text-white';\n }\n return '';\n };\n\n return (\n <div className=\"inline-flex items-center\" style={style}>\n <input\n type=\"checkbox\"\n id={id}\n name={name}\n value={value}\n checked={checked}\n onChange={handleChange}\n disabled={disabled}\n className=\"sr-only\"\n />\n <label\n htmlFor={id}\n className={`\n relative flex items-center justify-center\n ${sizeClasses[size]}\n ${variant === 'outline' ? 'border' : 'border-2'}\n rounded\n transition-all duration-200 ease-out\n cursor-pointer\n ${getCheckboxClasses()}\n ${className}\n `}\n style={getCheckboxInlineStyles()}\n >\n {/* Checkmark Icon */}\n {checked && !indeterminate && (\n <svg\n className={`${iconSizeClasses[size]} ${getIconColor()}`}\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n strokeWidth={3}\n style={\n !isFilled && (checked || indeterminate)\n ? { color: checkedColor }\n : undefined\n }\n >\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M5 13l4 4L19 7\" />\n </svg>\n )}\n\n {/* Indeterminate Icon */}\n {indeterminate && (\n <svg\n className={`${iconSizeClasses[size]} ${getIconColor()}`}\n fill=\"currentColor\"\n viewBox=\"0 0 24 24\"\n style={\n !isFilled && (checked || indeterminate)\n ? { color: checkedColor }\n : undefined\n }\n >\n <rect x=\"4\" y=\"11\" width=\"16\" height=\"2\" rx=\"1\" />\n </svg>\n )}\n </label>\n </div>\n );\n};\n\nexport default Checkbox;\n","import type { FC, CSSProperties } from 'react';\n\nexport interface SelectedItem {\n id: string | number;\n label: string;\n sublabel?: string;\n}\n\nexport interface SelectedItemsListProps {\n items: SelectedItem[];\n onRemove: (id: string | number) => void;\n emptyMessage?: string;\n className?: string;\n itemClassName?: string;\n maxHeight?: string;\n // New size and responsive props\n size?: 'sm' | 'md' | 'lg' | 'responsive';\n // New custom color props\n bgColor?: string;\n hoverBgColor?: string;\n textColor?: string;\n sublabelColor?: string;\n removeButtonColor?: string;\n removeButtonHoverColor?: string;\n // New border radius prop\n rounded?: 'none' | 'sm' | 'md' | 'lg' | 'full';\n // New style prop\n style?: CSSProperties;\n}\n\n// Helper function to get size-based classes\nconst getSizeClasses = (size: 'sm' | 'md' | 'lg' | 'responsive' = 'md') => {\n const baseClasses = {\n sm: {\n container: 'space-y-1',\n item: 'px-2 py-1.5',\n label: 'text-xs',\n sublabel: 'text-[10px]',\n button: 'w-5 h-5',\n icon: 'w-3 h-3',\n },\n md: {\n container: 'space-y-2',\n item: 'px-4 py-3',\n label: 'text-sm',\n sublabel: 'text-xs',\n button: 'w-6 h-6',\n icon: 'w-4 h-4',\n },\n lg: {\n container: 'space-y-3',\n item: 'px-5 py-4',\n label: 'text-base',\n sublabel: 'text-sm',\n button: 'w-7 h-7',\n icon: 'w-5 h-5',\n },\n responsive: {\n container: 'space-y-1 sm:space-y-2 md:space-y-3',\n item: 'px-2 py-1.5 sm:px-3 sm:py-2 md:px-4 md:py-3 lg:px-5 lg:py-4',\n label: 'text-xs sm:text-sm md:text-base',\n sublabel: 'text-[10px] sm:text-xs md:text-sm',\n button: 'w-5 h-5 sm:w-5 sm:h-5 md:w-6 md:h-6 lg:w-7 lg:h-7',\n icon: 'w-3 h-3 sm:w-3 sm:h-3 md:w-4 md:h-4 lg:w-5 lg:h-5',\n },\n };\n\n return baseClasses[size];\n};\n\n// Helper function to get rounded corner classes\nconst getRoundedClasses = (rounded: 'none' | 'sm' | 'md' | 'lg' | 'full' = 'md') => {\n const roundedMap = {\n none: 'rounded-none',\n sm: 'rounded-sm',\n md: 'rounded-lg',\n lg: 'rounded-xl',\n full: 'rounded-full',\n };\n\n return roundedMap[rounded];\n};\n\nexport const SelectedItemsList: FC<SelectedItemsListProps> = ({\n items,\n onRemove,\n emptyMessage = 'No items selected',\n className = '',\n itemClassName = '',\n maxHeight = '300px',\n size = 'md',\n bgColor,\n hoverBgColor,\n textColor,\n sublabelColor,\n removeButtonColor,\n removeButtonHoverColor,\n rounded = 'md',\n style,\n}) => {\n const sizeClasses = getSizeClasses(size);\n const roundedClass = getRoundedClasses(rounded);\n\n // Default colors\n const defaultBgColor = '#F4F4F4';\n const defaultHoverBgColor = '#EBEBEB';\n const defaultTextColor = '#181918';\n const defaultSublabelColor = '#999999';\n const defaultRemoveButtonColor = '#9CA3AF';\n const defaultRemoveButtonHoverColor = '#EC615B';\n\n // Get final colors (use provided or default)\n const finalBgColor = bgColor || defaultBgColor;\n const finalHoverBgColor = hoverBgColor || defaultHoverBgColor;\n const finalTextColor = textColor || defaultTextColor;\n const finalSublabelColor = sublabelColor || defaultSublabelColor;\n const finalRemoveButtonColor = removeButtonColor || defaultRemoveButtonColor;\n const finalRemoveButtonHoverColor = removeButtonHoverColor || defaultRemoveButtonHoverColor;\n\n if (items.length === 0) {\n return (\n <div\n className={`text-center py-8 text-gray-500 text-sm ${className}`}\n style={{\n color: finalSublabelColor,\n ...style,\n }}\n >\n {emptyMessage}\n </div>\n );\n }\n\n return (\n <div\n className={`overflow-y-auto ${sizeClasses.container} ${className}`}\n style={{ maxHeight, ...style }}\n >\n {items.map((item, index) => (\n <div\n key={item.id}\n className={`\n group flex items-center justify-between\n ${roundedClass}\n transition-all duration-300 ease-out\n hover:shadow-sm\n animate-slide-in-item\n ${itemClassName}\n `}\n style={{\n backgroundColor: finalBgColor,\n animationDelay: `${index * 50}ms`,\n }}\n onMouseEnter={(e) => {\n (e.currentTarget as HTMLElement).style.backgroundColor = finalHoverBgColor;\n }}\n onMouseLeave={(e) => {\n (e.currentTarget as HTMLElement).style.backgroundColor = finalBgColor;\n }}\n >\n <div className={`flex-1 min-w-0 ${sizeClasses.item}`}>\n {item.sublabel && (\n <div\n className={`font-normal mb-0.5 ${sizeClasses.sublabel}`}\n style={{ color: finalSublabelColor }}\n >\n {item.sublabel}\n </div>\n )}\n <div\n className={`font-medium truncate ${sizeClasses.label}`}\n style={{ color: finalTextColor }}\n >\n {item.label}\n </div>\n </div>\n\n <button\n onClick={() => onRemove(item.id)}\n className={`\n ml-3 flex-shrink-0 rounded-full\n flex items-center justify-center\n transition-all duration-200 ease-out\n hover:scale-110\n active:scale-95\n focus:outline-none focus:ring-2 focus:ring-opacity-50\n ${sizeClasses.button}\n `}\n style={{\n color: finalRemoveButtonColor,\n }}\n onMouseEnter={(e) => {\n (e.currentTarget as HTMLElement).style.backgroundColor = 'white';\n (e.currentTarget as HTMLElement).style.color = finalRemoveButtonHoverColor;\n }}\n onMouseLeave={(e) => {\n (e.currentTarget as HTMLElement).style.backgroundColor = 'transparent';\n (e.currentTarget as HTMLElement).style.color = finalRemoveButtonColor;\n }}\n aria-label={`Remove ${item.label}`}\n >\n <svg\n className={sizeClasses.icon}\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M6 18L18 6M6 6l12 12\"\n />\n </svg>\n </button>\n </div>\n ))}\n </div>\n );\n};\n\nexport default SelectedItemsList;\n","import React from 'react';\nimport { Input as AntInput, InputProps as AntInputProps } from 'antd';\n\nexport interface InputProps extends AntInputProps {\n label?: string;\n error?: string;\n helperText?: string;\n}\n\nexport const Input: React.FC<InputProps> = ({\n label,\n error,\n helperText,\n className = '',\n status,\n ...props\n}) => {\n // Generate a unique class name for this input instance to scope the styles\n const errorClass = error ? 'input-error-state' : '';\n\n return (\n <div className=\"w-full\">\n {label && (\n <label className=\"block text-sm font-medium mb-2\" style={{ color: error ? '#C21919' : '#181918' }}>\n {label}\n {props.required && <span style={{ color: '#C21919' }}>*</span>}\n </label>\n )}\n <style>\n {error && `\n .input-error-state .ant-input-group-addon {\n border-color: #C21919 !important;\n }\n .input-error-state .ant-input-group-addon:first-child {\n border-right: none !important;\n }\n .input-error-state .ant-input {\n border-color: #C21919 !important;\n }\n .input-error-state .ant-input:focus,\n .input-error-state .ant-input-focused {\n border-color: #C21919 !important;\n box-shadow: 0 0 0 2px rgba(194, 25, 25, 0.1) !important;\n }\n `}\n </style>\n <AntInput\n className={`${className} ${errorClass}`}\n status={error ? 'error' : status}\n {...props}\n style={{\n height: '44px',\n borderRadius: '12px',\n borderColor: error ? '#C21919' : '#D1D1D1',\n ...props.style,\n }}\n />\n {error && (\n <div className=\"flex items-center mt-1 text-xs text-[#C21919]\">\n <svg\n className=\"w-3 h-3 mr-1\"\n fill=\"currentColor\"\n viewBox=\"0 0 20 20\"\n >\n <path\n fillRule=\"evenodd\"\n d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7 4a1 1 0 11-2 0 1 1 0 012 0zm-1-9a1 1 0 00-1 1v4a1 1 0 102 0V6a1 1 0 00-1-1z\"\n clipRule=\"evenodd\"\n />\n </svg>\n {error}\n </div>\n )}\n {!error && helperText && (\n <div className=\"mt-1 text-xs text-gray-500\">{helperText}</div>\n )}\n </div>\n );\n};\n","import React from 'react';\nimport { Input as AntInput } from 'antd';\nimport type { PasswordProps as AntPasswordProps } from 'antd/es/input';\n\nexport interface PasswordInputProps extends AntPasswordProps {\n label?: string;\n error?: string;\n helperText?: string;\n}\n\nexport const PasswordInput: React.FC<PasswordInputProps> = ({\n label,\n error,\n helperText,\n className = '',\n status,\n ...props\n}) => {\n const errorClass = error ? 'password-input-error-state' : '';\n const combinedClassName = `password-input-custom ${className} ${errorClass}`;\n\n return (\n <div className=\"w-full\">\n {label && (\n <label className=\"block text-sm font-medium mb-2\" style={{ color: error ? '#C21919' : '#181918' }}>\n {label}\n {props.required && <span style={{ color: '#C21919' }}>*</span>}\n </label>\n )}\n <style>\n {error && `\n .password-input-error-state .ant-input-group-addon {\n border-color: #C21919 !important;\n }\n .password-input-error-state .ant-input-group-addon:first-child {\n border-right: none !important;\n }\n .password-input-error-state .ant-input,\n .password-input-error-state .ant-input-password .ant-input {\n border-color: #C21919 !important;\n }\n .password-input-error-state .ant-input:focus,\n .password-input-error-state .ant-input-focused,\n .password-input-error-state .ant-input-password .ant-input:focus {\n border-color: #C21919 !important;\n box-shadow: 0 0 0 2px rgba(194, 25, 25, 0.1) !important;\n }\n `}\n </style>\n <AntInput.Password\n className={combinedClassName}\n status={error ? 'error' : status}\n {...props}\n style={{\n height: '44px',\n borderRadius: '12px',\n borderColor: error ? '#C21919' : '#D1D1D1',\n ...props.style,\n }}\n />\n {error && (\n <div className=\"flex items-center mt-1 text-xs text-[#C21919]\">\n <svg\n className=\"w-3 h-3 mr-1\"\n fill=\"currentColor\"\n viewBox=\"0 0 20 20\"\n >\n <path\n fillRule=\"evenodd\"\n d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7 4a1 1 0 11-2 0 1 1 0 012 0zm-1-9a1 1 0 00-1 1v4a1 1 0 102 0V6a1 1 0 00-1-1z\"\n clipRule=\"evenodd\"\n />\n </svg>\n {error}\n </div>\n )}\n {!error && helperText && (\n <div className=\"mt-1 text-xs text-gray-500\">{helperText}</div>\n )}\n </div>\n );\n};\n","import React, { useRef, useState, useEffect, KeyboardEvent, ClipboardEvent } from 'react';\nimport { Input, InputRef } from 'antd';\n\nexport interface OTPInputProps {\n length?: number;\n value?: string;\n onChange?: (value: string) => void;\n onComplete?: (value: string) => void;\n error?: boolean;\n errorMessage?: string;\n disabled?: boolean;\n className?: string;\n}\n\nexport const OTPInput: React.FC<OTPInputProps> = ({\n length = 6,\n value = '',\n onChange,\n onComplete,\n error = false,\n errorMessage,\n disabled = false,\n className = '',\n}) => {\n const [otp, setOtp] = useState<string[]>(Array(length).fill(''));\n const inputRefs = useRef<(InputRef | null)[]>([]);\n\n useEffect(() => {\n if (value) {\n const otpArray = value.split('').slice(0, length);\n const filledOtp = [...otpArray, ...Array(length - otpArray.length).fill('')];\n setOtp(filledOtp);\n }\n }, [value, length]);\n\n const handleChange = (index: number, val: string) => {\n // Only allow numbers\n if (val && !/^\\d+$/.test(val)) return;\n\n const newOtp = [...otp];\n newOtp[index] = val.slice(-1); // Take only the last character\n setOtp(newOtp);\n\n const otpString = newOtp.join('');\n onChange?.(otpString);\n\n // Move to next input if value is entered\n if (val && index < length - 1) {\n inputRefs.current[index + 1]?.focus();\n }\n\n // Call onComplete if all fields are filled\n if (newOtp.every((digit) => digit !== '')) {\n onComplete?.(otpString);\n }\n };\n\n const handleKeyDown = (index: number, e: KeyboardEvent<HTMLInputElement>) => {\n // Move to previous input on backspace if current input is empty\n if (e.key === 'Backspace' && !otp[index] && index > 0) {\n inputRefs.current[index - 1]?.focus();\n }\n };\n\n const handlePaste = (e: ClipboardEvent<HTMLInputElement>) => {\n e.preventDefault();\n const pastedData = e.clipboardData.getData('text/plain');\n\n // Only allow numbers\n if (!/^\\d+$/.test(pastedData)) return;\n\n const pastedArray = pastedData.split('').slice(0, length);\n const newOtp = [...pastedArray, ...Array(length - pastedArray.length).fill('')];\n setOtp(newOtp);\n\n const otpString = newOtp.join('');\n onChange?.(otpString);\n\n // Focus on the next empty input or the last input\n const nextIndex = Math.min(pastedArray.length, length - 1);\n inputRefs.current[nextIndex]?.focus();\n\n // Call onComplete if all fields are filled\n if (newOtp.every((digit) => digit !== '')) {\n onComplete?.(otpString);\n }\n };\n\n return (\n <div className=\"w-full\">\n <div className={`flex gap-2 justify-center ${className}`}>\n {otp.map((digit, index) => (\n <React.Fragment key={index}>\n <Input\n ref={(el) => {\n inputRefs.current[index] = el;\n }}\n placeholder=\"\"\n value={digit}\n onChange={(e) => handleChange(index, e.target.value)}\n onKeyDown={(e) => handleKeyDown(index, e)}\n onPaste={handlePaste}\n disabled={disabled}\n maxLength={1}\n className=\"text-center text-lg font-semibold otp-input-field\"\n style={{\n width: '63px',\n height: '44px',\n borderRadius: '12px',\n borderColor: error ? '#C21919' : '#D1D1D1',\n }}\n />\n {index === Math.floor(length / 2) - 1 && (\n <div className=\"flex items-center justify-center px-1\">\n <span className=\"text-gray-400 text-xl\">—</span>\n </div>\n )}\n </React.Fragment>\n ))}\n </div>\n {error && errorMessage && (\n <div className=\"flex items-center justify-center mt-2 text-xs text-[#C21919]\">\n <svg className=\"w-3 h-3 mr-1\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7 4a1 1 0 11-2 0 1 1 0 012 0zm-1-9a1 1 0 00-1 1v4a1 1 0 102 0V6a1 1 0 00-1-1z\"\n clipRule=\"evenodd\"\n />\n </svg>\n {errorMessage}\n </div>\n )}\n </div>\n );\n};\n","import React, { useState, useEffect } from 'react';\nimport { Input as AntInput, Select } from 'antd';\nimport type { InputProps as AntInputProps } from 'antd';\n\nexport interface PhoneInputProps\n extends Omit<AntInputProps, 'addonBefore' | 'value' | 'onChange'> {\n label?: string;\n error?: string;\n helperText?: string;\n countryCode?: string;\n onCountryCodeChange?: (value: string) => void;\n countryCodes?: { value: string; label: string }[];\n showCountryCodeDropdown?: boolean;\n format?: 'default' | 'spaced' | 'dashed' | 'none';\n customFormat?: (value: string) => string;\n value?: string;\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n}\n\nexport const PhoneInput: React.FC<PhoneInputProps> = ({\n label,\n error,\n helperText,\n className = '',\n countryCode = '+234',\n onCountryCodeChange,\n countryCodes = [\n { value: '+234', label: '+234' },\n { value: '+1', label: '+1' },\n { value: '+44', label: '+44' },\n { value: '+91', label: '+91' },\n ],\n showCountryCodeDropdown = true,\n format = 'spaced',\n customFormat,\n value,\n onChange,\n ...props\n}) => {\n const errorClass = error ? 'phone-input-error-state' : '';\n const [displayValue, setDisplayValue] = useState('');\n\n // Update display value when external value changes\n useEffect(() => {\n if (value !== undefined) {\n const cleaned = String(value).replace(/\\D/g, '');\n const formatted = formatPhoneNumber(cleaned);\n setDisplayValue(formatted);\n }\n }, [value, format, countryCode]);\n\n const formatPhoneNumber = (val: string): string => {\n // Remove all non-digits\n const cleaned = val.replace(/\\D/g, '');\n\n // If custom format is provided, use it\n if (customFormat) {\n return customFormat(cleaned);\n }\n\n // If format is 'none', return unformatted\n if (format === 'none') {\n return cleaned;\n }\n\n // Format based on country code and format type\n let formatted = '';\n\n if (format === 'spaced') {\n // Format: 803 456 7890\n if (cleaned.length <= 3) {\n formatted = cleaned;\n } else if (cleaned.length <= 6) {\n formatted = `${cleaned.slice(0, 3)} ${cleaned.slice(3)}`;\n } else {\n formatted = `${cleaned.slice(0, 3)} ${cleaned.slice(3, 6)} ${cleaned.slice(6, 10)}`;\n }\n } else if (format === 'dashed') {\n // Format: 803-456-7890\n if (cleaned.length <= 3) {\n formatted = cleaned;\n } else if (cleaned.length <= 6) {\n formatted = `${cleaned.slice(0, 3)}-${cleaned.slice(3)}`;\n } else {\n formatted = `${cleaned.slice(0, 3)}-${cleaned.slice(3, 6)}-${cleaned.slice(6, 10)}`;\n }\n } else {\n // Default format based on country code\n if (countryCode === '+1') {\n // US format: (803) 456-7890\n if (cleaned.length <= 3) {\n formatted = cleaned;\n } else if (cleaned.length <= 6) {\n formatted = `(${cleaned.slice(0, 3)}) ${cleaned.slice(3)}`;\n } else {\n formatted = `(${cleaned.slice(0, 3)}) ${cleaned.slice(3, 6)}-${cleaned.slice(6, 10)}`;\n }\n } else {\n // International format: 803 456 7890\n if (cleaned.length <= 3) {\n formatted = cleaned;\n } else if (cleaned.length <= 6) {\n formatted = `${cleaned.slice(0, 3)} ${cleaned.slice(3)}`;\n } else {\n formatted = `${cleaned.slice(0, 3)} ${cleaned.slice(3, 6)} ${cleaned.slice(6, 10)}`;\n }\n }\n }\n\n return formatted;\n };\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n // Only allow numbers and control keys\n if (\n !/^\\d$/.test(e.key) &&\n e.key !== 'Backspace' &&\n e.key !== 'Delete' &&\n e.key !== 'Tab' &&\n e.key !== 'ArrowLeft' &&\n e.key !== 'ArrowRight' &&\n e.key !== 'Home' &&\n e.key !== 'End'\n ) {\n e.preventDefault();\n }\n props.onKeyDown?.(e);\n };\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const input = e.target;\n const cursorPosition = input.selectionStart || 0;\n\n // Only allow numbers\n const cleaned = input.value.replace(/\\D/g, '');\n\n // Format the number\n const formatted = formatPhoneNumber(cleaned);\n\n // Update display value\n setDisplayValue(formatted);\n\n // Calculate cursor position adjustment\n const oldLength = displayValue.length;\n const newLength = formatted.length;\n const diff = newLength - oldLength;\n\n // Restore cursor position after React updates\n requestAnimationFrame(() => {\n const newCursorPosition = Math.max(0, Math.min(cursorPosition + diff, formatted.length));\n input.setSelectionRange(newCursorPosition, newCursorPosition);\n });\n\n // Call onChange with the raw cleaned value\n if (onChange) {\n const syntheticEvent = {\n ...e,\n target: { ...e.target, value: cleaned },\n } as React.ChangeEvent<HTMLInputElement>;\n onChange(syntheticEvent);\n }\n };\n\n const handlePaste = (e: React.ClipboardEvent<HTMLInputElement>) => {\n e.preventDefault();\n const pastedData = e.clipboardData.getData('text/plain');\n const numericData = pastedData.replace(/\\D/g, '');\n\n const target = e.target as HTMLInputElement;\n const start = target.selectionStart || 0;\n const currentCleaned = displayValue.replace(/\\D/g, '');\n const newCleaned = currentCleaned.slice(0, start) + numericData;\n\n // Format the new value\n const formatted = formatPhoneNumber(newCleaned);\n setDisplayValue(formatted);\n\n // Call onChange with the raw cleaned value\n if (onChange) {\n const syntheticEvent = {\n ...e,\n target: { ...e.target, value: newCleaned },\n } as any;\n onChange(syntheticEvent);\n }\n\n props.onPaste?.(e);\n };\n\n return (\n <div className=\"w-full\">\n {label && (\n <label\n className=\"block text-sm font-medium mb-2\"\n style={{ color: error ? '#C21919' : '#181918' }}\n >\n {label}\n {props.required && <span style={{ color: '#C21919' }}>*</span>}\n </label>\n )}\n <style>\n {`\n .phone-input-container {\n display: flex;\n gap: 8px;\n }\n\n .phone-input-error-state .ant-select-selector {\n border-color: #C21919 !important;\n }\n\n .phone-input-error-state .ant-select-focused .ant-select-selector {\n border-color: #C21919 !important;\n box-shadow: 0 0 0 2px rgba(194, 25, 25, 0.1) !important;\n }\n\n .phone-input-error-state .ant-input {\n border-color: #C21919 !important;\n }\n\n .phone-input-error-state .ant-input:focus {\n border-color: #C21919 !important;\n box-shadow: 0 0 0 2px rgba(194, 25, 25, 0.1) !important;\n }\n\n .phone-input-country-code-static {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 61px;\n height: 44px;\n border-radius: 12px;\n border: 1px solid;\n font-size: 14px;\n font-weight: 500;\n background-color: #FAFAFA;\n }\n\n .phone-input-error-state .phone-input-country-code-static {\n border-color: #C21919 !important;\n }\n `}\n </style>\n <div className={`phone-input-container ${errorClass}`}>\n {showCountryCodeDropdown ? (\n <Select\n value={countryCode}\n onChange={onCountryCodeChange}\n options={countryCodes}\n style={{\n width: '85px',\n borderRadius: '12px',\n }}\n className={errorClass}\n popupClassName=\"country-code-dropdown\"\n disabled={props.disabled}\n />\n ) : (\n <div\n className=\"phone-input-country-code-static\"\n style={{\n borderColor: error ? '#C21919' : '#D1D1D1',\n color: props.disabled ? '#00000040' : '#000000',\n backgroundColor: props.disabled ? '#f5f5f5' : '#FAFAFA',\n }}\n >\n {countryCode}\n </div>\n )}\n <AntInput\n {...props}\n value={displayValue}\n className={className}\n onKeyDown={handleKeyDown}\n onChange={handleChange}\n onPaste={handlePaste}\n style={{\n flex: 1,\n height: '44px',\n borderRadius: '12px',\n borderColor: error ? '#C21919' : '#D1D1D1',\n ...props.style,\n }}\n />\n </div>\n {error && (\n <div className=\"flex items-center mt-1 text-xs text-[#C21919]\">\n <svg className=\"w-3 h-3 mr-1\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7 4a1 1 0 11-2 0 1 1 0 012 0zm-1-9a1 1 0 00-1 1v4a1 1 0 102 0V6a1 1 0 00-1-1z\"\n clipRule=\"evenodd\"\n />\n </svg>\n {error}\n </div>\n )}\n {!error && helperText && <div className=\"mt-1 text-xs text-gray-500\">{helperText}</div>}\n </div>\n );\n};\n","import React, { useState, useEffect } from 'react';\nimport { Input as AntInput } from 'antd';\nimport type { InputProps as AntInputProps } from 'antd';\n\nexport interface CurrencyInputProps extends Omit<AntInputProps, 'onChange'> {\n label?: string;\n error?: string;\n helperText?: string;\n currencySymbol?: string;\n formatAmount?: boolean;\n onChange?: (value: string, event: React.ChangeEvent<HTMLInputElement>) => void;\n}\n\nexport const CurrencyInput: React.FC<CurrencyInputProps> = ({\n label,\n error,\n helperText,\n className = '',\n status,\n currencySymbol = '₦',\n formatAmount = false,\n onChange,\n value: externalValue,\n ...props\n}) => {\n const errorClass = error ? 'currency-input-error-state' : '';\n const [displayValue, setDisplayValue] = useState<string>('');\n\n // Format number with commas\n const formatNumber = (num: string): string => {\n // Remove all non-digit characters except decimal point\n const cleanNum = num.replace(/[^\\d.]/g, '');\n\n // Split into integer and decimal parts\n const parts = cleanNum.split('.');\n const integerPart = parts[0];\n const decimalPart = parts[1];\n\n // Add commas to integer part\n const formattedInteger = integerPart.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n\n // Combine with decimal part if exists\n return decimalPart !== undefined ? `${formattedInteger}.${decimalPart}` : formattedInteger;\n };\n\n // Remove formatting to get raw value\n const unformatNumber = (formatted: string): string => {\n return formatted.replace(/,/g, '');\n };\n\n // Update display value when external value changes\n useEffect(() => {\n if (externalValue !== undefined) {\n const stringValue = String(externalValue);\n setDisplayValue(formatAmount ? formatNumber(stringValue) : stringValue);\n }\n }, [externalValue, formatAmount]);\n\n // Handle input change\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const inputValue = e.target.value;\n\n if (formatAmount) {\n const rawValue = unformatNumber(inputValue);\n const formatted = formatNumber(rawValue);\n setDisplayValue(formatted);\n\n if (onChange) {\n onChange(rawValue, e);\n }\n } else {\n setDisplayValue(inputValue);\n if (onChange) {\n onChange(inputValue, e);\n }\n }\n };\n\n return (\n <div className=\"w-full\">\n {label && (\n <label\n className=\"block text-sm font-medium mb-2\"\n style={{ color: error ? '#C21919' : '#181918' }}\n >\n {label}\n {props.required && <span style={{ color: '#C21919' }}>*</span>}\n </label>\n )}\n <style>\n {`\n .currency-input-wrapper.ant-input-affix-wrapper {\n display: flex;\n align-items: center;\n padding: 0;\n height: 44px;\n border-radius: 12px;\n }\n\n .currency-input-wrapper .ant-input-prefix {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 37px;\n height: 41px;\n background-color: #F0F2F4;\n margin: 0;\n border-radius: 12px 0 0 12px;\n color: #000000;\n flex-shrink: 0;\n margin-right: 10px;\n }\n\n .currency-input-wrapper .ant-input {\n padding: 11px 16px 11px 20px;\n height: 44px;\n }\n\n .currency-input-error-state.ant-input-affix-wrapper {\n border-color: #C21919 !important;\n }\n\n .currency-input-error-state.ant-input-affix-wrapper:focus,\n .currency-input-error-state.ant-input-affix-wrapper-focused {\n border-color: #C21919 !important;\n box-shadow: 0 0 0 2px rgba(194, 25, 25, 0.1) !important;\n }\n `}\n </style>\n <AntInput\n className={`currency-input-wrapper ${className} ${errorClass}`}\n status={error ? 'error' : status}\n prefix={<span>{currencySymbol}</span>}\n {...props}\n value={formatAmount ? displayValue : externalValue}\n onChange={handleChange}\n style={{\n borderColor: error ? '#C21919' : '#D1D1D1',\n ...props.style,\n }}\n />\n {error && (\n <div className=\"flex items-center mt-1 text-xs text-[#C21919]\">\n <svg className=\"w-3 h-3 mr-1\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7 4a1 1 0 11-2 0 1 1 0 012 0zm-1-9a1 1 0 00-1 1v4a1 1 0 102 0V6a1 1 0 00-1-1z\"\n clipRule=\"evenodd\"\n />\n </svg>\n {error}\n </div>\n )}\n {!error && helperText && <div className=\"mt-1 text-xs text-gray-500\">{helperText}</div>}\n </div>\n );\n};\n","import { createContext } from 'react';\nconst IconContext = /*#__PURE__*/createContext({});\nexport default IconContext;","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","// 36 Hex to reduce the size of the file\nexport default {\n aliceblue: '9ehhb',\n antiquewhite: '9sgk7',\n aqua: '1ekf',\n aquamarine: '4zsno',\n azure: '9eiv3',\n beige: '9lhp8',\n bisque: '9zg04',\n black: '0',\n blanchedalmond: '9zhe5',\n blue: '73',\n blueviolet: '5e31e',\n brown: '6g016',\n burlywood: '8ouiv',\n cadetblue: '3qba8',\n chartreuse: '4zshs',\n chocolate: '87k0u',\n coral: '9yvyo',\n cornflowerblue: '3xael',\n cornsilk: '9zjz0',\n crimson: '8l4xo',\n cyan: '1ekf',\n darkblue: '3v',\n darkcyan: 'rkb',\n darkgoldenrod: '776yz',\n darkgray: '6mbhl',\n darkgreen: 'jr4',\n darkgrey: '6mbhl',\n darkkhaki: '7ehkb',\n darkmagenta: '5f91n',\n darkolivegreen: '3bzfz',\n darkorange: '9yygw',\n darkorchid: '5z6x8',\n darkred: '5f8xs',\n darksalmon: '9441m',\n darkseagreen: '5lwgf',\n darkslateblue: '2th1n',\n darkslategray: '1ugcv',\n darkslategrey: '1ugcv',\n darkturquoise: '14up',\n darkviolet: '5rw7n',\n deeppink: '9yavn',\n deepskyblue: '11xb',\n dimgray: '442g9',\n dimgrey: '442g9',\n dodgerblue: '16xof',\n firebrick: '6y7tu',\n floralwhite: '9zkds',\n forestgreen: '1cisi',\n fuchsia: '9y70f',\n gainsboro: '8m8kc',\n ghostwhite: '9pq0v',\n goldenrod: '8j4f4',\n gold: '9zda8',\n gray: '50i2o',\n green: 'pa8',\n greenyellow: '6senj',\n grey: '50i2o',\n honeydew: '9eiuo',\n hotpink: '9yrp0',\n indianred: '80gnw',\n indigo: '2xcoy',\n ivory: '9zldc',\n khaki: '9edu4',\n lavenderblush: '9ziet',\n lavender: '90c8q',\n lawngreen: '4vk74',\n lemonchiffon: '9zkct',\n lightblue: '6s73a',\n lightcoral: '9dtog',\n lightcyan: '8s1rz',\n lightgoldenrodyellow: '9sjiq',\n lightgray: '89jo3',\n lightgreen: '5nkwg',\n lightgrey: '89jo3',\n lightpink: '9z6wx',\n lightsalmon: '9z2ii',\n lightseagreen: '19xgq',\n lightskyblue: '5arju',\n lightslategray: '4nwk9',\n lightslategrey: '4nwk9',\n lightsteelblue: '6wau6',\n lightyellow: '9zlcw',\n lime: '1edc',\n limegreen: '1zcxe',\n linen: '9shk6',\n magenta: '9y70f',\n maroon: '4zsow',\n mediumaquamarine: '40eju',\n mediumblue: '5p',\n mediumorchid: '79qkz',\n mediumpurple: '5r3rv',\n mediumseagreen: '2d9ip',\n mediumslateblue: '4tcku',\n mediumspringgreen: '1di2',\n mediumturquoise: '2uabw',\n mediumvioletred: '7rn9h',\n midnightblue: 'z980',\n mintcream: '9ljp6',\n mistyrose: '9zg0x',\n moccasin: '9zfzp',\n navajowhite: '9zest',\n navy: '3k',\n oldlace: '9wq92',\n olive: '50hz4',\n olivedrab: '472ub',\n orange: '9z3eo',\n orangered: '9ykg0',\n orchid: '8iu3a',\n palegoldenrod: '9bl4a',\n palegreen: '5yw0o',\n paleturquoise: '6v4ku',\n palevioletred: '8k8lv',\n papayawhip: '9zi6t',\n peachpuff: '9ze0p',\n peru: '80oqn',\n pink: '9z8wb',\n plum: '8nba5',\n powderblue: '6wgdi',\n purple: '4zssg',\n rebeccapurple: '3zk49',\n red: '9y6tc',\n rosybrown: '7cv4f',\n royalblue: '2jvtt',\n saddlebrown: '5fmkz',\n salmon: '9rvci',\n sandybrown: '9jn1c',\n seagreen: '1tdnb',\n seashell: '9zje6',\n sienna: '6973h',\n silver: '7ir40',\n skyblue: '5arjf',\n slateblue: '45e4t',\n slategray: '4e100',\n slategrey: '4e100',\n snow: '9zke2',\n springgreen: '1egv',\n steelblue: '2r1kk',\n tan: '87yx8',\n teal: 'pds',\n thistle: '8ggk8',\n tomato: '9yqfb',\n turquoise: '2j4r4',\n violet: '9b10u',\n wheat: '9ld4j',\n white: '9zldr',\n whitesmoke: '9lhpx',\n yellow: '9zl6o',\n yellowgreen: '61fzm'\n};","import presetColors from \"./presetColors\";\nconst round = Math.round;\n\n/**\n * Support format, alpha unit will check the % mark:\n * - rgba(102, 204, 255, .5) -> [102, 204, 255, 0.5]\n * - rgb(102 204 255 / .5) -> [102, 204, 255, 0.5]\n * - rgb(100%, 50%, 0% / 50%) -> [255, 128, 0, 0.5]\n * - hsl(270, 60, 40, .5) -> [270, 60, 40, 0.5]\n * - hsl(270deg 60% 40% / 50%) -> [270, 60, 40, 0.5]\n *\n * When `base` is provided, the percentage value will be divided by `base`.\n */\nfunction splitColorStr(str, parseNum) {\n const match = str\n // Remove str before `(`\n .replace(/^[^(]*\\((.*)/, '$1')\n // Remove str after `)`\n .replace(/\\).*/, '').match(/\\d*\\.?\\d+%?/g) || [];\n const numList = match.map(item => parseFloat(item));\n for (let i = 0; i < 3; i += 1) {\n numList[i] = parseNum(numList[i] || 0, match[i] || '', i);\n }\n\n // For alpha. 50% should be 0.5\n if (match[3]) {\n numList[3] = match[3].includes('%') ? numList[3] / 100 : numList[3];\n } else {\n // By default, alpha is 1\n numList[3] = 1;\n }\n return numList;\n}\nconst parseHSVorHSL = (num, _, index) => index === 0 ? num : num / 100;\n\n/** round and limit number to integer between 0-255 */\nfunction limitRange(value, max) {\n const mergedMax = max || 255;\n if (value > mergedMax) {\n return mergedMax;\n }\n if (value < 0) {\n return 0;\n }\n return value;\n}\nexport class FastColor {\n /**\n * All FastColor objects are valid. So isValid is always true. This property is kept to be compatible with TinyColor.\n */\n isValid = true;\n\n /**\n * Red, R in RGB\n */\n r = 0;\n\n /**\n * Green, G in RGB\n */\n g = 0;\n\n /**\n * Blue, B in RGB\n */\n b = 0;\n\n /**\n * Alpha/Opacity, A in RGBA/HSLA\n */\n a = 1;\n\n // HSV privates\n _h;\n _hsl_s;\n _hsv_s;\n _l;\n _v;\n\n // intermediate variables to calculate HSL/HSV\n _max;\n _min;\n _brightness;\n constructor(input) {\n /**\n * Always check 3 char in the object to determine the format.\n * We not use function in check to save bundle size.\n * e.g. 'rgb' -> { r: 0, g: 0, b: 0 }.\n */\n function matchFormat(str) {\n return str[0] in input && str[1] in input && str[2] in input;\n }\n if (!input) {\n // Do nothing since already initialized\n } else if (typeof input === 'string') {\n const trimStr = input.trim();\n function matchPrefix(prefix) {\n return trimStr.startsWith(prefix);\n }\n if (/^#?[A-F\\d]{3,8}$/i.test(trimStr)) {\n this.fromHexString(trimStr);\n } else if (matchPrefix('rgb')) {\n this.fromRgbString(trimStr);\n } else if (matchPrefix('hsl')) {\n this.fromHslString(trimStr);\n } else if (matchPrefix('hsv') || matchPrefix('hsb')) {\n this.fromHsvString(trimStr);\n } else {\n // From preset color\n const presetColor = presetColors[trimStr.toLowerCase()];\n if (presetColor) {\n this.fromHexString(\n // Convert 36 hex to 16 hex\n parseInt(presetColor, 36).toString(16).padStart(6, '0'));\n }\n }\n } else if (input instanceof FastColor) {\n this.r = input.r;\n this.g = input.g;\n this.b = input.b;\n this.a = input.a;\n this._h = input._h;\n this._hsl_s = input._hsl_s;\n this._hsv_s = input._hsv_s;\n this._l = input._l;\n this._v = input._v;\n } else if (matchFormat('rgb')) {\n this.r = limitRange(input.r);\n this.g = limitRange(input.g);\n this.b = limitRange(input.b);\n this.a = typeof input.a === 'number' ? limitRange(input.a, 1) : 1;\n } else if (matchFormat('hsl')) {\n this.fromHsl(input);\n } else if (matchFormat('hsv')) {\n this.fromHsv(input);\n } else {\n throw new Error('@ant-design/fast-color: unsupported input ' + JSON.stringify(input));\n }\n }\n\n // ======================= Setter =======================\n\n setR(value) {\n return this._sc('r', value);\n }\n setG(value) {\n return this._sc('g', value);\n }\n setB(value) {\n return this._sc('b', value);\n }\n setA(value) {\n return this._sc('a', value, 1);\n }\n setHue(value) {\n const hsv = this.toHsv();\n hsv.h = value;\n return this._c(hsv);\n }\n\n // ======================= Getter =======================\n /**\n * Returns the perceived luminance of a color, from 0-1.\n * @see http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n */\n getLuminance() {\n function adjustGamma(raw) {\n const val = raw / 255;\n return val <= 0.03928 ? val / 12.92 : Math.pow((val + 0.055) / 1.055, 2.4);\n }\n const R = adjustGamma(this.r);\n const G = adjustGamma(this.g);\n const B = adjustGamma(this.b);\n return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n }\n getHue() {\n if (typeof this._h === 'undefined') {\n const delta = this.getMax() - this.getMin();\n if (delta === 0) {\n this._h = 0;\n } else {\n this._h = round(60 * (this.r === this.getMax() ? (this.g - this.b) / delta + (this.g < this.b ? 6 : 0) : this.g === this.getMax() ? (this.b - this.r) / delta + 2 : (this.r - this.g) / delta + 4));\n }\n }\n return this._h;\n }\n\n /**\n * @deprecated should use getHSVSaturation or getHSLSaturation instead\n */\n getSaturation() {\n return this.getHSVSaturation();\n }\n getHSVSaturation() {\n if (typeof this._hsv_s === 'undefined') {\n const delta = this.getMax() - this.getMin();\n if (delta === 0) {\n this._hsv_s = 0;\n } else {\n this._hsv_s = delta / this.getMax();\n }\n }\n return this._hsv_s;\n }\n getHSLSaturation() {\n if (typeof this._hsl_s === 'undefined') {\n const delta = this.getMax() - this.getMin();\n if (delta === 0) {\n this._hsl_s = 0;\n } else {\n const l = this.getLightness();\n this._hsl_s = delta / 255 / (1 - Math.abs(2 * l - 1));\n }\n }\n return this._hsl_s;\n }\n getLightness() {\n if (typeof this._l === 'undefined') {\n this._l = (this.getMax() + this.getMin()) / 510;\n }\n return this._l;\n }\n getValue() {\n if (typeof this._v === 'undefined') {\n this._v = this.getMax() / 255;\n }\n return this._v;\n }\n\n /**\n * Returns the perceived brightness of the color, from 0-255.\n * Note: this is not the b of HSB\n * @see http://www.w3.org/TR/AERT#color-contrast\n */\n getBrightness() {\n if (typeof this._brightness === 'undefined') {\n this._brightness = (this.r * 299 + this.g * 587 + this.b * 114) / 1000;\n }\n return this._brightness;\n }\n\n // ======================== Func ========================\n\n darken(amount = 10) {\n const h = this.getHue();\n const s = this.getSaturation();\n let l = this.getLightness() - amount / 100;\n if (l < 0) {\n l = 0;\n }\n return this._c({\n h,\n s,\n l,\n a: this.a\n });\n }\n lighten(amount = 10) {\n const h = this.getHue();\n const s = this.getSaturation();\n let l = this.getLightness() + amount / 100;\n if (l > 1) {\n l = 1;\n }\n return this._c({\n h,\n s,\n l,\n a: this.a\n });\n }\n\n /**\n * Mix the current color a given amount with another color, from 0 to 100.\n * 0 means no mixing (return current color).\n */\n mix(input, amount = 50) {\n const color = this._c(input);\n const p = amount / 100;\n const calc = key => (color[key] - this[key]) * p + this[key];\n const rgba = {\n r: round(calc('r')),\n g: round(calc('g')),\n b: round(calc('b')),\n a: round(calc('a') * 100) / 100\n };\n return this._c(rgba);\n }\n\n /**\n * Mix the color with pure white, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return white.\n */\n tint(amount = 10) {\n return this.mix({\n r: 255,\n g: 255,\n b: 255,\n a: 1\n }, amount);\n }\n\n /**\n * Mix the color with pure black, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return black.\n */\n shade(amount = 10) {\n return this.mix({\n r: 0,\n g: 0,\n b: 0,\n a: 1\n }, amount);\n }\n onBackground(background) {\n const bg = this._c(background);\n const alpha = this.a + bg.a * (1 - this.a);\n const calc = key => {\n return round((this[key] * this.a + bg[key] * bg.a * (1 - this.a)) / alpha);\n };\n return this._c({\n r: calc('r'),\n g: calc('g'),\n b: calc('b'),\n a: alpha\n });\n }\n\n // ======================= Status =======================\n isDark() {\n return this.getBrightness() < 128;\n }\n isLight() {\n return this.getBrightness() >= 128;\n }\n\n // ======================== MISC ========================\n equals(other) {\n return this.r === other.r && this.g === other.g && this.b === other.b && this.a === other.a;\n }\n clone() {\n return this._c(this);\n }\n\n // ======================= Format =======================\n toHexString() {\n let hex = '#';\n const rHex = (this.r || 0).toString(16);\n hex += rHex.length === 2 ? rHex : '0' + rHex;\n const gHex = (this.g || 0).toString(16);\n hex += gHex.length === 2 ? gHex : '0' + gHex;\n const bHex = (this.b || 0).toString(16);\n hex += bHex.length === 2 ? bHex : '0' + bHex;\n if (typeof this.a === 'number' && this.a >= 0 && this.a < 1) {\n const aHex = round(this.a * 255).toString(16);\n hex += aHex.length === 2 ? aHex : '0' + aHex;\n }\n return hex;\n }\n\n /** CSS support color pattern */\n toHsl() {\n return {\n h: this.getHue(),\n s: this.getHSLSaturation(),\n l: this.getLightness(),\n a: this.a\n };\n }\n\n /** CSS support color pattern */\n toHslString() {\n const h = this.getHue();\n const s = round(this.getHSLSaturation() * 100);\n const l = round(this.getLightness() * 100);\n return this.a !== 1 ? `hsla(${h},${s}%,${l}%,${this.a})` : `hsl(${h},${s}%,${l}%)`;\n }\n\n /** Same as toHsb */\n toHsv() {\n return {\n h: this.getHue(),\n s: this.getHSVSaturation(),\n v: this.getValue(),\n a: this.a\n };\n }\n toRgb() {\n return {\n r: this.r,\n g: this.g,\n b: this.b,\n a: this.a\n };\n }\n toRgbString() {\n return this.a !== 1 ? `rgba(${this.r},${this.g},${this.b},${this.a})` : `rgb(${this.r},${this.g},${this.b})`;\n }\n toString() {\n return this.toRgbString();\n }\n\n // ====================== Privates ======================\n /** Return a new FastColor object with one channel changed */\n _sc(rgb, value, max) {\n const clone = this.clone();\n clone[rgb] = limitRange(value, max);\n return clone;\n }\n _c(input) {\n return new this.constructor(input);\n }\n getMax() {\n if (typeof this._max === 'undefined') {\n this._max = Math.max(this.r, this.g, this.b);\n }\n return this._max;\n }\n getMin() {\n if (typeof this._min === 'undefined') {\n this._min = Math.min(this.r, this.g, this.b);\n }\n return this._min;\n }\n fromHexString(trimStr) {\n const withoutPrefix = trimStr.replace('#', '');\n function connectNum(index1, index2) {\n return parseInt(withoutPrefix[index1] + withoutPrefix[index2 || index1], 16);\n }\n if (withoutPrefix.length < 6) {\n // #rgb or #rgba\n this.r = connectNum(0);\n this.g = connectNum(1);\n this.b = connectNum(2);\n this.a = withoutPrefix[3] ? connectNum(3) / 255 : 1;\n } else {\n // #rrggbb or #rrggbbaa\n this.r = connectNum(0, 1);\n this.g = connectNum(2, 3);\n this.b = connectNum(4, 5);\n this.a = withoutPrefix[6] ? connectNum(6, 7) / 255 : 1;\n }\n }\n fromHsl({\n h: _h,\n s,\n l,\n a\n }) {\n const h = (_h % 360 + 360) % 360;\n this._h = h;\n this._hsl_s = s;\n this._l = l;\n this.a = typeof a === 'number' ? a : 1;\n if (s <= 0) {\n const rgb = round(l * 255);\n this.r = rgb;\n this.g = rgb;\n this.b = rgb;\n return;\n }\n let r = 0,\n g = 0,\n b = 0;\n const huePrime = h / 60;\n const chroma = (1 - Math.abs(2 * l - 1)) * s;\n const secondComponent = chroma * (1 - Math.abs(huePrime % 2 - 1));\n if (huePrime >= 0 && huePrime < 1) {\n r = chroma;\n g = secondComponent;\n } else if (huePrime >= 1 && huePrime < 2) {\n r = secondComponent;\n g = chroma;\n } else if (huePrime >= 2 && huePrime < 3) {\n g = chroma;\n b = secondComponent;\n } else if (huePrime >= 3 && huePrime < 4) {\n g = secondComponent;\n b = chroma;\n } else if (huePrime >= 4 && huePrime < 5) {\n r = secondComponent;\n b = chroma;\n } else if (huePrime >= 5 && huePrime < 6) {\n r = chroma;\n b = secondComponent;\n }\n const lightnessModification = l - chroma / 2;\n this.r = round((r + lightnessModification) * 255);\n this.g = round((g + lightnessModification) * 255);\n this.b = round((b + lightnessModification) * 255);\n }\n fromHsv({\n h: _h,\n s,\n v,\n a\n }) {\n const h = (_h % 360 + 360) % 360;\n this._h = h;\n this._hsv_s = s;\n this._v = v;\n this.a = typeof a === 'number' ? a : 1;\n const vv = round(v * 255);\n this.r = vv;\n this.g = vv;\n this.b = vv;\n if (s <= 0) {\n return;\n }\n const hh = h / 60;\n const i = Math.floor(hh);\n const ff = hh - i;\n const p = round(v * (1.0 - s) * 255);\n const q = round(v * (1.0 - s * ff) * 255);\n const t = round(v * (1.0 - s * (1.0 - ff)) * 255);\n switch (i) {\n case 0:\n this.g = t;\n this.b = p;\n break;\n case 1:\n this.r = q;\n this.b = p;\n break;\n case 2:\n this.r = p;\n this.b = t;\n break;\n case 3:\n this.r = p;\n this.g = q;\n break;\n case 4:\n this.r = t;\n this.g = p;\n break;\n case 5:\n default:\n this.g = p;\n this.b = q;\n break;\n }\n }\n fromHsvString(trimStr) {\n const cells = splitColorStr(trimStr, parseHSVorHSL);\n this.fromHsv({\n h: cells[0],\n s: cells[1],\n v: cells[2],\n a: cells[3]\n });\n }\n fromHslString(trimStr) {\n const cells = splitColorStr(trimStr, parseHSVorHSL);\n this.fromHsl({\n h: cells[0],\n s: cells[1],\n l: cells[2],\n a: cells[3]\n });\n }\n fromRgbString(trimStr) {\n const cells = splitColorStr(trimStr, (num, txt) =>\n // Convert percentage to number. e.g. 50% -> 128\n txt.includes('%') ? round(num / 100 * 255) : num);\n this.r = cells[0];\n this.g = cells[1];\n this.b = cells[2];\n this.a = cells[3];\n }\n}","import { FastColor } from '@ant-design/fast-color';\nconst hueStep = 2; // 色相阶梯\nconst saturationStep = 0.16; // 饱和度阶梯,浅色部分\nconst saturationStep2 = 0.05; // 饱和度阶梯,深色部分\nconst brightnessStep1 = 0.05; // 亮度阶梯,浅色部分\nconst brightnessStep2 = 0.15; // 亮度阶梯,深色部分\nconst lightColorCount = 5; // 浅色数量,主色上\nconst darkColorCount = 4; // 深色数量,主色下\n\n// 暗色主题颜色映射关系表\nconst darkColorMap = [{\n index: 7,\n amount: 15\n}, {\n index: 6,\n amount: 25\n}, {\n index: 5,\n amount: 30\n}, {\n index: 5,\n amount: 45\n}, {\n index: 5,\n amount: 65\n}, {\n index: 5,\n amount: 85\n}, {\n index: 4,\n amount: 90\n}, {\n index: 3,\n amount: 95\n}, {\n index: 2,\n amount: 97\n}, {\n index: 1,\n amount: 98\n}];\nfunction getHue(hsv, i, light) {\n let hue;\n // 根据色相不同,色相转向不同\n if (Math.round(hsv.h) >= 60 && Math.round(hsv.h) <= 240) {\n hue = light ? Math.round(hsv.h) - hueStep * i : Math.round(hsv.h) + hueStep * i;\n } else {\n hue = light ? Math.round(hsv.h) + hueStep * i : Math.round(hsv.h) - hueStep * i;\n }\n if (hue < 0) {\n hue += 360;\n } else if (hue >= 360) {\n hue -= 360;\n }\n return hue;\n}\nfunction getSaturation(hsv, i, light) {\n // grey color don't change saturation\n if (hsv.h === 0 && hsv.s === 0) {\n return hsv.s;\n }\n let saturation;\n if (light) {\n saturation = hsv.s - saturationStep * i;\n } else if (i === darkColorCount) {\n saturation = hsv.s + saturationStep;\n } else {\n saturation = hsv.s + saturationStep2 * i;\n }\n // 边界值修正\n if (saturation > 1) {\n saturation = 1;\n }\n // 第一格的 s 限制在 0.06-0.1 之间\n if (light && i === lightColorCount && saturation > 0.1) {\n saturation = 0.1;\n }\n if (saturation < 0.06) {\n saturation = 0.06;\n }\n return Math.round(saturation * 100) / 100;\n}\nfunction getValue(hsv, i, light) {\n let value;\n if (light) {\n value = hsv.v + brightnessStep1 * i;\n } else {\n value = hsv.v - brightnessStep2 * i;\n }\n // Clamp value between 0 and 1\n value = Math.max(0, Math.min(1, value));\n return Math.round(value * 100) / 100;\n}\nexport default function generate(color, opts = {}) {\n const patterns = [];\n const pColor = new FastColor(color);\n const hsv = pColor.toHsv();\n for (let i = lightColorCount; i > 0; i -= 1) {\n const c = new FastColor({\n h: getHue(hsv, i, true),\n s: getSaturation(hsv, i, true),\n v: getValue(hsv, i, true)\n });\n patterns.push(c);\n }\n patterns.push(pColor);\n for (let i = 1; i <= darkColorCount; i += 1) {\n const c = new FastColor({\n h: getHue(hsv, i),\n s: getSaturation(hsv, i),\n v: getValue(hsv, i)\n });\n patterns.push(c);\n }\n\n // dark theme patterns\n if (opts.theme === 'dark') {\n return darkColorMap.map(({\n index,\n amount\n }) => new FastColor(opts.backgroundColor || '#141414').mix(patterns[index], amount).toHexString());\n }\n return patterns.map(c => c.toHexString());\n}","// Generated by script. Do NOT modify!\n\nexport const presetPrimaryColors = {\n \"red\": \"#F5222D\",\n \"volcano\": \"#FA541C\",\n \"orange\": \"#FA8C16\",\n \"gold\": \"#FAAD14\",\n \"yellow\": \"#FADB14\",\n \"lime\": \"#A0D911\",\n \"green\": \"#52C41A\",\n \"cyan\": \"#13C2C2\",\n \"blue\": \"#1677FF\",\n \"geekblue\": \"#2F54EB\",\n \"purple\": \"#722ED1\",\n \"magenta\": \"#EB2F96\",\n \"grey\": \"#666666\"\n};\nexport const red = [\"#fff1f0\", \"#ffccc7\", \"#ffa39e\", \"#ff7875\", \"#ff4d4f\", \"#f5222d\", \"#cf1322\", \"#a8071a\", \"#820014\", \"#5c0011\"];\nred.primary = red[5];\nexport const volcano = [\"#fff2e8\", \"#ffd8bf\", \"#ffbb96\", \"#ff9c6e\", \"#ff7a45\", \"#fa541c\", \"#d4380d\", \"#ad2102\", \"#871400\", \"#610b00\"];\nvolcano.primary = volcano[5];\nexport const orange = [\"#fff7e6\", \"#ffe7ba\", \"#ffd591\", \"#ffc069\", \"#ffa940\", \"#fa8c16\", \"#d46b08\", \"#ad4e00\", \"#873800\", \"#612500\"];\norange.primary = orange[5];\nexport const gold = [\"#fffbe6\", \"#fff1b8\", \"#ffe58f\", \"#ffd666\", \"#ffc53d\", \"#faad14\", \"#d48806\", \"#ad6800\", \"#874d00\", \"#613400\"];\ngold.primary = gold[5];\nexport const yellow = [\"#feffe6\", \"#ffffb8\", \"#fffb8f\", \"#fff566\", \"#ffec3d\", \"#fadb14\", \"#d4b106\", \"#ad8b00\", \"#876800\", \"#614700\"];\nyellow.primary = yellow[5];\nexport const lime = [\"#fcffe6\", \"#f4ffb8\", \"#eaff8f\", \"#d3f261\", \"#bae637\", \"#a0d911\", \"#7cb305\", \"#5b8c00\", \"#3f6600\", \"#254000\"];\nlime.primary = lime[5];\nexport const green = [\"#f6ffed\", \"#d9f7be\", \"#b7eb8f\", \"#95de64\", \"#73d13d\", \"#52c41a\", \"#389e0d\", \"#237804\", \"#135200\", \"#092b00\"];\ngreen.primary = green[5];\nexport const cyan = [\"#e6fffb\", \"#b5f5ec\", \"#87e8de\", \"#5cdbd3\", \"#36cfc9\", \"#13c2c2\", \"#08979c\", \"#006d75\", \"#00474f\", \"#002329\"];\ncyan.primary = cyan[5];\nexport const blue = [\"#e6f4ff\", \"#bae0ff\", \"#91caff\", \"#69b1ff\", \"#4096ff\", \"#1677ff\", \"#0958d9\", \"#003eb3\", \"#002c8c\", \"#001d66\"];\nblue.primary = blue[5];\nexport const geekblue = [\"#f0f5ff\", \"#d6e4ff\", \"#adc6ff\", \"#85a5ff\", \"#597ef7\", \"#2f54eb\", \"#1d39c4\", \"#10239e\", \"#061178\", \"#030852\"];\ngeekblue.primary = geekblue[5];\nexport const purple = [\"#f9f0ff\", \"#efdbff\", \"#d3adf7\", \"#b37feb\", \"#9254de\", \"#722ed1\", \"#531dab\", \"#391085\", \"#22075e\", \"#120338\"];\npurple.primary = purple[5];\nexport const magenta = [\"#fff0f6\", \"#ffd6e7\", \"#ffadd2\", \"#ff85c0\", \"#f759ab\", \"#eb2f96\", \"#c41d7f\", \"#9e1068\", \"#780650\", \"#520339\"];\nmagenta.primary = magenta[5];\nexport const grey = [\"#a6a6a6\", \"#999999\", \"#8c8c8c\", \"#808080\", \"#737373\", \"#666666\", \"#404040\", \"#1a1a1a\", \"#000000\", \"#000000\"];\ngrey.primary = grey[5];\nexport const gray = grey;\nexport const presetPalettes = {\n red,\n volcano,\n orange,\n gold,\n yellow,\n lime,\n green,\n cyan,\n blue,\n geekblue,\n purple,\n magenta,\n grey\n};\nexport const redDark = [\"#2a1215\", \"#431418\", \"#58181c\", \"#791a1f\", \"#a61d24\", \"#d32029\", \"#e84749\", \"#f37370\", \"#f89f9a\", \"#fac8c3\"];\nredDark.primary = redDark[5];\nexport const volcanoDark = [\"#2b1611\", \"#441d12\", \"#592716\", \"#7c3118\", \"#aa3e19\", \"#d84a1b\", \"#e87040\", \"#f3956a\", \"#f8b692\", \"#fad4bc\"];\nvolcanoDark.primary = volcanoDark[5];\nexport const orangeDark = [\"#2b1d11\", \"#442a11\", \"#593815\", \"#7c4a15\", \"#aa6215\", \"#d87a16\", \"#e89a3c\", \"#f3b765\", \"#f8cf8d\", \"#fae3b7\"];\norangeDark.primary = orangeDark[5];\nexport const goldDark = [\"#2b2111\", \"#443111\", \"#594214\", \"#7c5914\", \"#aa7714\", \"#d89614\", \"#e8b339\", \"#f3cc62\", \"#f8df8b\", \"#faedb5\"];\ngoldDark.primary = goldDark[5];\nexport const yellowDark = [\"#2b2611\", \"#443b11\", \"#595014\", \"#7c6e14\", \"#aa9514\", \"#d8bd14\", \"#e8d639\", \"#f3ea62\", \"#f8f48b\", \"#fafab5\"];\nyellowDark.primary = yellowDark[5];\nexport const limeDark = [\"#1f2611\", \"#2e3c10\", \"#3e4f13\", \"#536d13\", \"#6f9412\", \"#8bbb11\", \"#a9d134\", \"#c9e75d\", \"#e4f88b\", \"#f0fab5\"];\nlimeDark.primary = limeDark[5];\nexport const greenDark = [\"#162312\", \"#1d3712\", \"#274916\", \"#306317\", \"#3c8618\", \"#49aa19\", \"#6abe39\", \"#8fd460\", \"#b2e58b\", \"#d5f2bb\"];\ngreenDark.primary = greenDark[5];\nexport const cyanDark = [\"#112123\", \"#113536\", \"#144848\", \"#146262\", \"#138585\", \"#13a8a8\", \"#33bcb7\", \"#58d1c9\", \"#84e2d8\", \"#b2f1e8\"];\ncyanDark.primary = cyanDark[5];\nexport const blueDark = [\"#111a2c\", \"#112545\", \"#15325b\", \"#15417e\", \"#1554ad\", \"#1668dc\", \"#3c89e8\", \"#65a9f3\", \"#8dc5f8\", \"#b7dcfa\"];\nblueDark.primary = blueDark[5];\nexport const geekblueDark = [\"#131629\", \"#161d40\", \"#1c2755\", \"#203175\", \"#263ea0\", \"#2b4acb\", \"#5273e0\", \"#7f9ef3\", \"#a8c1f8\", \"#d2e0fa\"];\ngeekblueDark.primary = geekblueDark[5];\nexport const purpleDark = [\"#1a1325\", \"#24163a\", \"#301c4d\", \"#3e2069\", \"#51258f\", \"#642ab5\", \"#854eca\", \"#ab7ae0\", \"#cda8f0\", \"#ebd7fa\"];\npurpleDark.primary = purpleDark[5];\nexport const magentaDark = [\"#291321\", \"#40162f\", \"#551c3b\", \"#75204f\", \"#a02669\", \"#cb2b83\", \"#e0529c\", \"#f37fb7\", \"#f8a8cc\", \"#fad2e3\"];\nmagentaDark.primary = magentaDark[5];\nexport const greyDark = [\"#151515\", \"#1f1f1f\", \"#2d2d2d\", \"#393939\", \"#494949\", \"#5a5a5a\", \"#6a6a6a\", \"#7b7b7b\", \"#888888\", \"#969696\"];\ngreyDark.primary = greyDark[5];\nexport const presetDarkPalettes = {\n red: redDark,\n volcano: volcanoDark,\n orange: orangeDark,\n gold: goldDark,\n yellow: yellowDark,\n lime: limeDark,\n green: greenDark,\n cyan: cyanDark,\n blue: blueDark,\n geekblue: geekblueDark,\n purple: purpleDark,\n magenta: magentaDark,\n grey: greyDark\n};","export default function canUseDom() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}","export default function contains(root, n) {\n if (!root) {\n return false;\n }\n\n // Use native if support\n if (root.contains) {\n return root.contains(n);\n }\n\n // `document.contains` not support with IE11\n let node = n;\n while (node) {\n if (node === root) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n}","import canUseDom from \"./canUseDom\";\nimport contains from \"./contains\";\nconst APPEND_ORDER = 'data-rc-order';\nconst APPEND_PRIORITY = 'data-rc-priority';\nconst MARK_KEY = `rc-util-key`;\nconst containerCache = new Map();\nfunction getMark({\n mark\n} = {}) {\n if (mark) {\n return mark.startsWith('data-') ? mark : `data-${mark}`;\n }\n return MARK_KEY;\n}\nfunction getContainer(option) {\n if (option.attachTo) {\n return option.attachTo;\n }\n const head = document.querySelector('head');\n return head || document.body;\n}\nfunction getOrder(prepend) {\n if (prepend === 'queue') {\n return 'prependQueue';\n }\n return prepend ? 'prepend' : 'append';\n}\n\n/**\n * Find style which inject by rc-util\n */\nfunction findStyles(container) {\n return Array.from((containerCache.get(container) || container).children).filter(node => node.tagName === 'STYLE');\n}\nexport function injectCSS(css, option = {}) {\n if (!canUseDom()) {\n return null;\n }\n const {\n csp,\n prepend,\n priority = 0\n } = option;\n const mergedOrder = getOrder(prepend);\n const isPrependQueue = mergedOrder === 'prependQueue';\n const styleNode = document.createElement('style');\n styleNode.setAttribute(APPEND_ORDER, mergedOrder);\n if (isPrependQueue && priority) {\n styleNode.setAttribute(APPEND_PRIORITY, `${priority}`);\n }\n if (csp?.nonce) {\n styleNode.nonce = csp?.nonce;\n }\n styleNode.innerHTML = css;\n const container = getContainer(option);\n const {\n firstChild\n } = container;\n if (prepend) {\n // If is queue `prepend`, it will prepend first style and then append rest style\n if (isPrependQueue) {\n const existStyle = (option.styles || findStyles(container)).filter(node => {\n // Ignore style which not injected by rc-util with prepend\n if (!['prepend', 'prependQueue'].includes(node.getAttribute(APPEND_ORDER))) {\n return false;\n }\n\n // Ignore style which priority less then new style\n const nodePriority = Number(node.getAttribute(APPEND_PRIORITY) || 0);\n return priority >= nodePriority;\n });\n if (existStyle.length) {\n container.insertBefore(styleNode, existStyle[existStyle.length - 1].nextSibling);\n return styleNode;\n }\n }\n\n // Use `insertBefore` as `prepend`\n container.insertBefore(styleNode, firstChild);\n } else {\n container.appendChild(styleNode);\n }\n return styleNode;\n}\nfunction findExistNode(key, option = {}) {\n let {\n styles\n } = option;\n styles ||= findStyles(getContainer(option));\n return styles.find(node => node.getAttribute(getMark(option)) === key);\n}\nexport function removeCSS(key, option = {}) {\n const existNode = findExistNode(key, option);\n if (existNode) {\n const container = getContainer(option);\n container.removeChild(existNode);\n }\n}\n\n/**\n * qiankun will inject `appendChild` to insert into other\n */\nfunction syncRealContainer(container, option) {\n const cachedRealContainer = containerCache.get(container);\n\n // Find real container when not cached or cached container removed\n if (!cachedRealContainer || !contains(document, cachedRealContainer)) {\n const placeholderStyle = injectCSS('', option);\n const {\n parentNode\n } = placeholderStyle;\n containerCache.set(container, parentNode);\n container.removeChild(placeholderStyle);\n }\n}\n\n/**\n * manually clear container cache to avoid global cache in unit testes\n */\nexport function clearContainerCache() {\n containerCache.clear();\n}\nexport function updateCSS(css, key, originOption = {}) {\n const container = getContainer(originOption);\n const styles = findStyles(container);\n const option = {\n ...originOption,\n styles\n };\n\n // Sync real parent\n syncRealContainer(container, option);\n const existNode = findExistNode(key, option);\n if (existNode) {\n if (option.csp?.nonce && existNode.nonce !== option.csp?.nonce) {\n existNode.nonce = option.csp?.nonce;\n }\n if (existNode.innerHTML !== css) {\n existNode.innerHTML = css;\n }\n return existNode;\n }\n const newNode = injectCSS(css, option);\n newNode.setAttribute(getMark(option), key);\n return newNode;\n}","function getRoot(ele) {\n return ele?.getRootNode?.();\n}\n\n/**\n * Check if is in shadowRoot\n */\nexport function inShadow(ele) {\n return getRoot(ele) instanceof ShadowRoot;\n}\n\n/**\n * Return shadowRoot if possible\n */\nexport function getShadowRoot(ele) {\n return inShadow(ele) ? getRoot(ele) : null;\n}","/* eslint-disable no-console */\nlet warned = {};\nconst preWarningFns = [];\n\n/**\n * Pre warning enable you to parse content before console.error.\n * Modify to null will prevent warning.\n */\nexport const preMessage = fn => {\n preWarningFns.push(fn);\n};\n\n/**\n * Warning if condition not match.\n * @param valid Condition\n * @param message Warning message\n * @example\n * ```js\n * warning(false, 'some error'); // print some error\n * warning(true, 'some error'); // print nothing\n * warning(1 === 2, 'some error'); // print some error\n * ```\n */\nexport function warning(valid, message) {\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n const finalMessage = preWarningFns.reduce((msg, preMessageFn) => preMessageFn(msg ?? '', 'warning'), message);\n if (finalMessage) {\n console.error(`Warning: ${finalMessage}`);\n }\n }\n}\n\n/** @see Similar to {@link warning} */\nexport function note(valid, message) {\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n const finalMessage = preWarningFns.reduce((msg, preMessageFn) => preMessageFn(msg ?? '', 'note'), message);\n if (finalMessage) {\n console.warn(`Note: ${finalMessage}`);\n }\n }\n}\nexport function resetWarned() {\n warned = {};\n}\nexport function call(method, valid, message) {\n if (!valid && !warned[message]) {\n method(false, message);\n warned[message] = true;\n }\n}\n\n/** @see Same as {@link warning}, but only warn once for the same message */\nexport function warningOnce(valid, message) {\n call(warning, valid, message);\n}\n\n/** @see Same as {@link warning}, but only warn once for the same message */\nexport function noteOnce(valid, message) {\n call(note, valid, message);\n}\nwarningOnce.preMessage = preMessage;\nwarningOnce.resetWarned = resetWarned;\nwarningOnce.noteOnce = noteOnce;\nexport default warningOnce;","import { generate as generateColor } from '@ant-design/colors';\nimport { updateCSS } from \"@rc-component/util/es/Dom/dynamicCSS\";\nimport { getShadowRoot } from \"@rc-component/util/es/Dom/shadow\";\nimport { warningOnce } from \"@rc-component/util/es/warning\";\nimport React, { useContext, useEffect } from 'react';\nimport IconContext from \"./components/Context\";\nfunction camelCase(input) {\n return input.replace(/-(.)/g, (match, g) => g.toUpperCase());\n}\nexport function warning(valid, message) {\n warningOnce(valid, `[@ant-design/icons] ${message}`);\n}\nexport function isIconDefinition(target) {\n return typeof target === 'object' && typeof target.name === 'string' && typeof target.theme === 'string' && (typeof target.icon === 'object' || typeof target.icon === 'function');\n}\nexport function normalizeAttrs(attrs = {}) {\n return Object.keys(attrs).reduce((acc, key) => {\n const val = attrs[key];\n switch (key) {\n case 'class':\n acc.className = val;\n delete acc.class;\n break;\n default:\n delete acc[key];\n acc[camelCase(key)] = val;\n }\n return acc;\n }, {});\n}\nexport function generate(node, key, rootProps) {\n if (!rootProps) {\n return /*#__PURE__*/React.createElement(node.tag, {\n key,\n ...normalizeAttrs(node.attrs)\n }, (node.children || []).map((child, index) => generate(child, `${key}-${node.tag}-${index}`)));\n }\n return /*#__PURE__*/React.createElement(node.tag, {\n key,\n ...normalizeAttrs(node.attrs),\n ...rootProps\n }, (node.children || []).map((child, index) => generate(child, `${key}-${node.tag}-${index}`)));\n}\nexport function getSecondaryColor(primaryColor) {\n // choose the second color\n return generateColor(primaryColor)[0];\n}\nexport function normalizeTwoToneColors(twoToneColor) {\n if (!twoToneColor) {\n return [];\n }\n return Array.isArray(twoToneColor) ? twoToneColor : [twoToneColor];\n}\n\n// These props make sure that the SVG behaviours like general text.\n// Reference: https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4\nexport const svgBaseProps = {\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true',\n focusable: 'false'\n};\nexport const iconStyles = `\n.anticon {\n display: inline-flex;\n align-items: center;\n color: inherit;\n font-style: normal;\n line-height: 0;\n text-align: center;\n text-transform: none;\n vertical-align: -0.125em;\n text-rendering: optimizeLegibility;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.anticon > * {\n line-height: 1;\n}\n\n.anticon svg {\n display: inline-block;\n vertical-align: inherit;\n}\n\n.anticon::before {\n display: none;\n}\n\n.anticon .anticon-icon {\n display: block;\n}\n\n.anticon[tabindex] {\n cursor: pointer;\n}\n\n.anticon-spin::before,\n.anticon-spin {\n display: inline-block;\n -webkit-animation: loadingCircle 1s infinite linear;\n animation: loadingCircle 1s infinite linear;\n}\n\n@-webkit-keyframes loadingCircle {\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes loadingCircle {\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n`;\nexport const useInsertStyles = eleRef => {\n const {\n csp,\n prefixCls,\n layer\n } = useContext(IconContext);\n let mergedStyleStr = iconStyles;\n if (prefixCls) {\n mergedStyleStr = mergedStyleStr.replace(/anticon/g, prefixCls);\n }\n if (layer) {\n mergedStyleStr = `@layer ${layer} {\\n${mergedStyleStr}\\n}`;\n }\n useEffect(() => {\n const ele = eleRef.current;\n const shadowRoot = getShadowRoot(ele);\n updateCSS(mergedStyleStr, '@ant-design-icons', {\n prepend: !layer,\n csp,\n attachTo: shadowRoot\n });\n }, []);\n};","import * as React from 'react';\nimport { generate, getSecondaryColor, isIconDefinition, warning, useInsertStyles } from \"../utils\";\nconst twoToneColorPalette = {\n primaryColor: '#333',\n secondaryColor: '#E6E6E6',\n calculated: false\n};\nfunction setTwoToneColors({\n primaryColor,\n secondaryColor\n}) {\n twoToneColorPalette.primaryColor = primaryColor;\n twoToneColorPalette.secondaryColor = secondaryColor || getSecondaryColor(primaryColor);\n twoToneColorPalette.calculated = !!secondaryColor;\n}\nfunction getTwoToneColors() {\n return {\n ...twoToneColorPalette\n };\n}\nconst IconBase = props => {\n const {\n icon,\n className,\n onClick,\n style,\n primaryColor,\n secondaryColor,\n ...restProps\n } = props;\n const svgRef = React.useRef(null);\n let colors = twoToneColorPalette;\n if (primaryColor) {\n colors = {\n primaryColor,\n secondaryColor: secondaryColor || getSecondaryColor(primaryColor)\n };\n }\n useInsertStyles(svgRef);\n warning(isIconDefinition(icon), `icon should be icon definiton, but got ${icon}`);\n if (!isIconDefinition(icon)) {\n return null;\n }\n let target = icon;\n if (target && typeof target.icon === 'function') {\n target = {\n ...target,\n icon: target.icon(colors.primaryColor, colors.secondaryColor)\n };\n }\n return generate(target.icon, `svg-${target.name}`, {\n className,\n onClick,\n style,\n 'data-icon': target.name,\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true',\n ...restProps,\n ref: svgRef\n });\n};\nIconBase.displayName = 'IconReact';\nIconBase.getTwoToneColors = getTwoToneColors;\nIconBase.setTwoToneColors = setTwoToneColors;\nexport default IconBase;","import ReactIcon from \"./IconBase\";\nimport { normalizeTwoToneColors } from \"../utils\";\nexport function setTwoToneColor(twoToneColor) {\n const [primaryColor, secondaryColor] = normalizeTwoToneColors(twoToneColor);\n return ReactIcon.setTwoToneColors({\n primaryColor,\n secondaryColor\n });\n}\nexport function getTwoToneColor() {\n const colors = ReactIcon.getTwoToneColors();\n if (!colors.calculated) {\n return colors.primaryColor;\n }\n return [colors.primaryColor, colors.secondaryColor];\n}","'use client';\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from 'react';\nimport { clsx } from 'clsx';\nimport { blue } from '@ant-design/colors';\nimport Context from \"./Context\";\nimport ReactIcon from \"./IconBase\";\nimport { getTwoToneColor, setTwoToneColor } from \"./twoTonePrimaryColor\";\nimport { normalizeTwoToneColors } from \"../utils\";\n// Initial setting\n// should move it to antd main repo?\nsetTwoToneColor(blue.primary);\n\n// https://github.com/DefinitelyTyped/DefinitelyTyped/issues/34757#issuecomment-488848720\n\nconst Icon = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n // affect outter <i>...</i>\n className,\n // affect inner <svg>...</svg>\n icon,\n spin,\n rotate,\n tabIndex,\n onClick,\n // other\n twoToneColor,\n ...restProps\n } = props;\n const {\n prefixCls = 'anticon',\n rootClassName\n } = React.useContext(Context);\n const classString = clsx(rootClassName, prefixCls, {\n [`${prefixCls}-${icon.name}`]: !!icon.name,\n [`${prefixCls}-spin`]: !!spin || icon.name === 'loading'\n }, className);\n let iconTabIndex = tabIndex;\n if (iconTabIndex === undefined && onClick) {\n iconTabIndex = -1;\n }\n const svgStyle = rotate ? {\n msTransform: `rotate(${rotate}deg)`,\n transform: `rotate(${rotate}deg)`\n } : undefined;\n const [primaryColor, secondaryColor] = normalizeTwoToneColors(twoToneColor);\n return /*#__PURE__*/React.createElement(\"span\", _extends({\n role: \"img\",\n \"aria-label\": icon.name\n }, restProps, {\n ref: ref,\n tabIndex: iconTabIndex,\n onClick: onClick,\n className: classString\n }), /*#__PURE__*/React.createElement(ReactIcon, {\n icon: icon,\n primaryColor: primaryColor,\n secondaryColor: secondaryColor,\n style: svgStyle\n }));\n});\nIcon.getTwoToneColor = getTwoToneColor;\nIcon.setTwoToneColor = setTwoToneColor;\nif (process.env.NODE_ENV !== 'production') {\n Icon.displayName = 'AntdIcon';\n}\nexport default Icon;","// This icon file is generated automatically.\nvar UserOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M858.5 763.6a374 374 0 00-80.6-119.5 375.63 375.63 0 00-119.5-80.6c-.4-.2-.8-.3-1.2-.5C719.5 518 760 444.7 760 362c0-137-111-248-248-248S264 225 264 362c0 82.7 40.5 156 102.8 201.1-.4.2-.8.3-1.2.5-44.8 18.9-85 46-119.5 80.6a375.63 375.63 0 00-80.6 119.5A371.7 371.7 0 00136 901.8a8 8 0 008 8.2h60c4.4 0 7.9-3.5 8-7.8 2-77.2 33-149.5 87.8-204.3 56.7-56.7 132-87.9 212.2-87.9s155.5 31.2 212.2 87.9C779 752.7 810 825 812 902.2c.1 4.4 3.6 7.8 8 7.8h60a8 8 0 008-8.2c-1-47.8-10.9-94.3-29.5-138.2zM512 534c-45.9 0-89.1-17.9-121.6-50.4S340 407.9 340 362c0-45.9 17.9-89.1 50.4-121.6S466.1 190 512 190s89.1 17.9 121.6 50.4S684 316.1 684 362c0 45.9-17.9 89.1-50.4 121.6S557.9 534 512 534z\" } }] }, \"name\": \"user\", \"theme\": \"outlined\" };\nexport default UserOutlined;\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport UserOutlinedSvg from \"@ant-design/icons-svg/es/asn/UserOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nconst UserOutlined = (props, ref) => /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: UserOutlinedSvg\n}));\n\n/**![user](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg1OC41IDc2My42YTM3NCAzNzQgMCAwMC04MC42LTExOS41IDM3NS42MyAzNzUuNjMgMCAwMC0xMTkuNS04MC42Yy0uNC0uMi0uOC0uMy0xLjItLjVDNzE5LjUgNTE4IDc2MCA0NDQuNyA3NjAgMzYyYzAtMTM3LTExMS0yNDgtMjQ4LTI0OFMyNjQgMjI1IDI2NCAzNjJjMCA4Mi43IDQwLjUgMTU2IDEwMi44IDIwMS4xLS40LjItLjguMy0xLjIuNS00NC44IDE4LjktODUgNDYtMTE5LjUgODAuNmEzNzUuNjMgMzc1LjYzIDAgMDAtODAuNiAxMTkuNUEzNzEuNyAzNzEuNyAwIDAwMTM2IDkwMS44YTggOCAwIDAwOCA4LjJoNjBjNC40IDAgNy45LTMuNSA4LTcuOCAyLTc3LjIgMzMtMTQ5LjUgODcuOC0yMDQuMyA1Ni43LTU2LjcgMTMyLTg3LjkgMjEyLjItODcuOXMxNTUuNSAzMS4yIDIxMi4yIDg3LjlDNzc5IDc1Mi43IDgxMCA4MjUgODEyIDkwMi4yYy4xIDQuNCAzLjYgNy44IDggNy44aDYwYTggOCAwIDAwOC04LjJjLTEtNDcuOC0xMC45LTk0LjMtMjkuNS0xMzguMnpNNTEyIDUzNGMtNDUuOSAwLTg5LjEtMTcuOS0xMjEuNi01MC40UzM0MCA0MDcuOSAzNDAgMzYyYzAtNDUuOSAxNy45LTg5LjEgNTAuNC0xMjEuNlM0NjYuMSAxOTAgNTEyIDE5MHM4OS4xIDE3LjkgMTIxLjYgNTAuNFM2ODQgMzE2LjEgNjg0IDM2MmMwIDQ1LjktMTcuOSA4OS4xLTUwLjQgMTIxLjZTNTU3LjkgNTM0IDUxMiA1MzR6IiAvPjwvc3ZnPg==) */\nconst RefIcon = /*#__PURE__*/React.forwardRef(UserOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'UserOutlined';\n}\nexport default RefIcon;","import React from 'react';\nimport { Avatar } from 'antd';\nimport { UserOutlined } from '@ant-design/icons';\n\nexport interface UserPillProps {\n name: string;\n subtitle?: string;\n avatar?: string;\n className?: string;\n size?: 'small' | 'medium' | 'large';\n}\n\nexport const UserPill: React.FC<UserPillProps> = ({\n name,\n subtitle,\n avatar,\n className = '',\n}) => {\n const avatarSize = 30;\n\n return (\n <div\n className={`flex items-center ${className}`}\n style={{\n backgroundColor: '#E6E6E6',\n borderRadius: '40px',\n padding: '5px 12px 5px 5px',\n height: '40px',\n gap: '8px',\n }}\n >\n {avatar ? (\n <Avatar src={avatar} size={avatarSize} />\n ) : (\n <Avatar icon={<UserOutlined />} size={avatarSize} style={{ backgroundColor: '#6B7280' }} />\n )}\n <div className=\"flex flex-col\">\n <span\n style={{\n color: '#181918',\n fontSize: '14px',\n fontWeight: 600,\n lineHeight: '1.2',\n }}\n >\n {name}\n </span>\n {subtitle && (\n <span\n style={{\n color: '#181918',\n fontSize: '12px',\n fontWeight: 400,\n lineHeight: '1.2',\n marginTop: '2px',\n }}\n >\n {subtitle}\n </span>\n )}\n </div>\n </div>\n );\n};\n","export default \"data:image/svg+xml,%3csvg%20width='353'%20height='130'%20viewBox='0%200%20353%20130'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20opacity='0.1'%3e%3cpath%20d='M17%2024C17%2015.1634%2024.1634%208%2033%208H327C335.837%208%20343%2015.1634%20343%2024V98C343%20106.837%20335.837%20114%20327%20114H33C24.1635%20114%2017%20106.837%2017%2098V24Z'%20fill='url(%23paint0_linear_683_56525)'/%3e%3crect%20x='41'%20y='29'%20width='67'%20height='67'%20rx='33.5'%20fill='%231B1C1E'/%3e%3cpath%20d='M68.8552%2071V55.0216H75.5683C76.5263%2055.0216%2077.3484%2055.1932%2078.0347%2055.5363C78.7354%2055.8795%2079.2715%2056.3657%2079.6433%2056.9948C80.0294%2057.6096%2080.2224%2058.346%2080.2224%2059.2039C80.2224%2059.9903%2080.0151%2060.7052%2079.6004%2061.3486C79.2%2061.9777%2078.6067%2062.471%2077.8203%2062.8285L77.7988%2062.0349C78.4851%2062.2923%2079.0499%2062.6355%2079.4932%2063.0644C79.9507%2063.4791%2080.2939%2063.9652%2080.5226%2064.5229C80.7514%2065.0662%2080.8658%2065.6453%2080.8658%2066.2601C80.8658%2067.7328%2080.394%2068.891%2079.4503%2069.7346C78.5066%2070.5782%2077.2197%2071%2075.5897%2071H68.8552ZM70.9571%2069.0697H75.6755C76.6049%2069.0697%2077.3484%2068.8195%2077.906%2068.3191C78.4637%2067.8186%2078.7425%2067.1394%2078.7425%2066.2815C78.7425%2065.4236%2078.4637%2064.7445%2077.906%2064.244C77.3484%2063.7293%2076.6049%2063.4719%2075.6755%2063.4719H70.9571V69.0697ZM70.9571%2061.5845H75.5254C76.2975%2061.5845%2076.9195%2061.3629%2077.3913%2060.9197C77.8632%2060.4621%2078.0991%2059.883%2078.0991%2059.1824C78.0991%2058.4532%2077.8632%2057.8956%2077.3913%2057.5095C76.9195%2057.1235%2076.2975%2056.9304%2075.5254%2056.9304H70.9571V61.5845Z'%20fill='%23FDFDFE'/%3e%3cpath%20d='M133.44%2049V34.1H139.72C140.707%2034.1%20141.547%2034.2733%20142.24%2034.62C142.947%2034.9533%20143.487%2035.4333%20143.86%2036.06C144.247%2036.6733%20144.44%2037.42%20144.44%2038.3C144.44%2038.98%20144.253%2039.62%20143.88%2040.22C143.52%2040.8067%20142.94%2041.2933%20142.14%2041.68V40.42C142.873%2040.7%20143.453%2041.0467%20143.88%2041.46C144.307%2041.8733%20144.607%2042.3333%20144.78%2042.84C144.953%2043.3467%20145.04%2043.88%20145.04%2044.44C145.04%2045.8667%20144.567%2046.9867%20143.62%2047.8C142.687%2048.6%20141.387%2049%20139.72%2049H133.44ZM136.16%2046.6H140C140.707%2046.6%20141.267%2046.4067%20141.68%2046.02C142.107%2045.62%20142.32%2045.0933%20142.32%2044.44C142.32%2043.7867%20142.107%2043.26%20141.68%2042.86C141.267%2042.46%20140.707%2042.26%20140%2042.26H136.16V46.6ZM136.16%2039.88H139.86C140.42%2039.88%20140.867%2039.72%20141.2%2039.4C141.533%2039.0667%20141.7%2038.64%20141.7%2038.12C141.7%2037.6%20141.533%2037.1867%20141.2%2036.88C140.867%2036.5733%20140.42%2036.42%20139.86%2036.42H136.16V39.88ZM152.208%2049.24C151.088%2049.24%20150.108%2048.9867%20149.268%2048.48C148.428%2047.9733%20147.775%2047.2867%20147.308%2046.42C146.841%2045.5533%20146.608%2044.5933%20146.608%2043.54C146.608%2042.4467%20146.841%2041.48%20147.308%2040.64C147.788%2039.7867%20148.435%2039.1133%20149.248%2038.62C150.075%2038.1267%20150.995%2037.88%20152.008%2037.88C152.861%2037.88%20153.608%2038.02%20154.248%2038.3C154.901%2038.58%20155.455%2038.9667%20155.908%2039.46C156.361%2039.9533%20156.708%2040.52%20156.948%2041.16C157.188%2041.7867%20157.308%2042.4667%20157.308%2043.2C157.308%2043.3867%20157.295%2043.58%20157.268%2043.78C157.255%2043.98%20157.221%2044.1533%20157.168%2044.3H148.768V42.3H155.688L154.448%2043.24C154.568%2042.6267%20154.535%2042.08%20154.348%2041.6C154.175%2041.12%20153.881%2040.74%20153.468%2040.46C153.068%2040.18%20152.581%2040.04%20152.008%2040.04C151.461%2040.04%20150.975%2040.18%20150.548%2040.46C150.121%2040.7267%20149.795%2041.1267%20149.568%2041.66C149.355%2042.18%20149.275%2042.8133%20149.328%2043.56C149.275%2044.2267%20149.361%2044.82%20149.588%2045.34C149.828%2045.8467%20150.175%2046.24%20150.628%2046.52C151.095%2046.8%20151.628%2046.94%20152.228%2046.94C152.828%2046.94%20153.335%2046.8133%20153.748%2046.56C154.175%2046.3067%20154.508%2045.9667%20154.748%2045.54L156.868%2046.58C156.655%2047.1%20156.321%2047.56%20155.868%2047.96C155.415%2048.36%20154.875%2048.6733%20154.248%2048.9C153.635%2049.1267%20152.955%2049.24%20152.208%2049.24ZM159.294%2049V38.12H161.754V40.26L161.554%2039.88C161.808%2039.2267%20162.221%2038.7333%20162.794%2038.4C163.381%2038.0533%20164.061%2037.88%20164.834%2037.88C165.634%2037.88%20166.341%2038.0533%20166.954%2038.4C167.581%2038.7467%20168.068%2039.2333%20168.414%2039.86C168.761%2040.4733%20168.934%2041.1867%20168.934%2042V49H166.314V42.62C166.314%2042.14%20166.221%2041.7267%20166.034%2041.38C165.848%2041.0333%20165.588%2040.7667%20165.254%2040.58C164.934%2040.38%20164.554%2040.28%20164.114%2040.28C163.688%2040.28%20163.308%2040.38%20162.974%2040.58C162.641%2040.7667%20162.381%2041.0333%20162.194%2041.38C162.008%2041.7267%20161.914%2042.14%20161.914%2042.62V49H159.294ZM169.65%2053.42C169.476%2053.42%20169.296%2053.4133%20169.11%2053.4C168.923%2053.3867%20168.77%2053.3667%20168.65%2053.34V51.06C168.89%2051.1%20169.13%2051.12%20169.37%2051.12C169.93%2051.12%20170.363%2050.9867%20170.67%2050.72C170.99%2050.4667%20171.15%2050.0733%20171.15%2049.54V38.12H173.77V49.54C173.77%2050.3667%20173.603%2051.0667%20173.27%2051.64C172.936%2052.2267%20172.456%2052.6667%20171.83%2052.96C171.216%2053.2667%20170.49%2053.42%20169.65%2053.42ZM171.15%2036.9V34.1H173.77V36.9H171.15ZM179.489%2049.24C178.729%2049.24%20178.069%2049.1133%20177.509%2048.86C176.949%2048.6067%20176.515%2048.2467%20176.209%2047.78C175.902%2047.3%20175.749%2046.7467%20175.749%2046.12C175.749%2045.52%20175.882%2044.9867%20176.149%2044.52C176.415%2044.04%20176.829%2043.64%20177.389%2043.32C177.949%2043%20178.655%2042.7733%20179.509%2042.64L183.069%2042.06V44.06L180.009%2044.58C179.489%2044.6733%20179.102%2044.84%20178.849%2045.08C178.595%2045.32%20178.469%2045.6333%20178.469%2046.02C178.469%2046.3933%20178.609%2046.6933%20178.889%2046.92C179.182%2047.1333%20179.542%2047.24%20179.969%2047.24C180.515%2047.24%20180.995%2047.1267%20181.409%2046.9C181.835%2046.66%20182.162%2046.3333%20182.389%2045.92C182.629%2045.5067%20182.749%2045.0533%20182.749%2044.56V41.76C182.749%2041.2933%20182.562%2040.9067%20182.189%2040.6C181.829%2040.28%20181.349%2040.12%20180.749%2040.12C180.189%2040.12%20179.689%2040.2733%20179.249%2040.58C178.822%2040.8733%20178.509%2041.2667%20178.309%2041.76L176.169%2040.72C176.382%2040.1467%20176.715%2039.6533%20177.169%2039.24C177.635%2038.8133%20178.182%2038.48%20178.809%2038.24C179.435%2038%20180.115%2037.88%20180.849%2037.88C181.742%2037.88%20182.529%2038.0467%20183.209%2038.38C183.889%2038.7%20184.415%2039.1533%20184.789%2039.74C185.175%2040.3133%20185.369%2040.9867%20185.369%2041.76V49H182.889V47.14L183.449%2047.1C183.169%2047.5667%20182.835%2047.96%20182.449%2048.28C182.062%2048.5867%20181.622%2048.8267%20181.129%2049C180.635%2049.16%20180.089%2049.24%20179.489%2049.24ZM187.79%2049V38.12H190.25V40.64L189.97%2040.22C190.17%2039.4333%20190.57%2038.8467%20191.17%2038.46C191.77%2038.0733%20192.477%2037.88%20193.29%2037.88C194.184%2037.88%20194.97%2038.1133%20195.65%2038.58C196.33%2039.0467%20196.77%2039.66%20196.97%2040.42L196.23%2040.48C196.564%2039.6133%20197.064%2038.9667%20197.73%2038.54C198.397%2038.1%20199.164%2037.88%20200.03%2037.88C200.804%2037.88%20201.49%2038.0533%20202.09%2038.4C202.704%2038.7467%20203.184%2039.2333%20203.53%2039.86C203.877%2040.4733%20204.05%2041.1867%20204.05%2042V49H201.43V42.62C201.43%2042.14%20201.344%2041.7267%20201.17%2041.38C200.997%2041.0333%20200.757%2040.7667%20200.45%2040.58C200.144%2040.38%20199.77%2040.28%20199.33%2040.28C198.917%2040.28%20198.55%2040.38%20198.23%2040.58C197.91%2040.7667%20197.664%2041.0333%20197.49%2041.38C197.317%2041.7267%20197.23%2042.14%20197.23%2042.62V49H194.61V42.62C194.61%2042.14%20194.524%2041.7267%20194.35%2041.38C194.177%2041.0333%20193.93%2040.7667%20193.61%2040.58C193.304%2040.38%20192.937%2040.28%20192.51%2040.28C192.097%2040.28%20191.73%2040.38%20191.41%2040.58C191.09%2040.7667%20190.844%2041.0333%20190.67%2041.38C190.497%2041.7267%20190.41%2042.14%20190.41%2042.62V49H187.79ZM206.267%2049V38.12H208.887V49H206.267ZM206.267%2036.9V34.1H208.887V36.9H206.267ZM211.306%2049V38.12H213.766V40.26L213.566%2039.88C213.819%2039.2267%20214.233%2038.7333%20214.806%2038.4C215.393%2038.0533%20216.073%2037.88%20216.846%2037.88C217.646%2037.88%20218.353%2038.0533%20218.966%2038.4C219.593%2038.7467%20220.079%2039.2333%20220.426%2039.86C220.773%2040.4733%20220.946%2041.1867%20220.946%2042V49H218.326V42.62C218.326%2042.14%20218.233%2041.7267%20218.046%2041.38C217.859%2041.0333%20217.599%2040.7667%20217.266%2040.58C216.946%2040.38%20216.566%2040.28%20216.126%2040.28C215.699%2040.28%20215.319%2040.38%20214.986%2040.58C214.653%2040.7667%20214.393%2041.0333%20214.206%2041.38C214.019%2041.7267%20213.926%2042.14%20213.926%2042.62V49H211.306Z'%20fill='%23181918'/%3e%3cpath%20d='M136.872%2072.168C136.228%2072.168%20135.645%2072.0233%20135.122%2071.734C134.609%2071.4353%20134.221%2071.0153%20133.96%2070.474L134.128%2070.32V72H133.078V61.402H134.128V66.176L133.96%2065.882C134.259%2065.406%20134.655%2065.028%20135.15%2064.748C135.654%2064.468%20136.228%2064.328%20136.872%2064.328C137.581%2064.328%20138.211%2064.5007%20138.762%2064.846C139.322%2065.182%20139.761%2065.644%20140.078%2066.232C140.405%2066.82%20140.568%2067.492%20140.568%2068.248C140.568%2068.9947%20140.405%2069.6667%20140.078%2070.264C139.761%2070.852%20139.322%2071.3187%20138.762%2071.664C138.211%2072%20137.581%2072.168%20136.872%2072.168ZM136.816%2071.118C137.32%2071.118%20137.768%2070.992%20138.16%2070.74C138.561%2070.488%20138.874%2070.1473%20139.098%2069.718C139.331%2069.2793%20139.448%2068.7893%20139.448%2068.248C139.448%2067.6973%20139.331%2067.2073%20139.098%2066.778C138.874%2066.3487%20138.561%2066.008%20138.16%2065.756C137.768%2065.504%20137.32%2065.378%20136.816%2065.378C136.312%2065.378%20135.855%2065.504%20135.444%2065.756C135.043%2066.008%20134.721%2066.3533%20134.478%2066.792C134.245%2067.2213%20134.128%2067.7067%20134.128%2068.248C134.128%2068.7893%20134.245%2069.2793%20134.478%2069.718C134.721%2070.1473%20135.043%2070.488%20135.444%2070.74C135.855%2070.992%20136.312%2071.118%20136.816%2071.118ZM145.832%2072.168C145.132%2072.168%20144.497%2072%20143.928%2071.664C143.368%2071.3187%20142.925%2070.8473%20142.598%2070.25C142.271%2069.6527%20142.108%2068.976%20142.108%2068.22C142.108%2067.464%20142.267%2066.7967%20142.584%2066.218C142.901%2065.63%20143.331%2065.168%20143.872%2064.832C144.423%2064.496%20145.039%2064.328%20145.72%2064.328C146.261%2064.328%20146.742%2064.4307%20147.162%2064.636C147.591%2064.832%20147.955%2065.1027%20148.254%2065.448C148.553%2065.784%20148.781%2066.1667%20148.94%2066.596C149.099%2067.016%20149.178%2067.45%20149.178%2067.898C149.178%2067.9913%20149.173%2068.0987%20149.164%2068.22C149.155%2068.332%20149.141%2068.4487%20149.122%2068.57H142.78V67.59H148.52L148.016%2068.01C148.1%2067.4967%20148.039%2067.0393%20147.834%2066.638C147.638%2066.2273%20147.353%2065.9053%20146.98%2065.672C146.607%2065.4293%20146.187%2065.308%20145.72%2065.308C145.253%2065.308%20144.819%2065.4293%20144.418%2065.672C144.026%2065.9147%20143.718%2066.2553%20143.494%2066.694C143.27%2067.1233%20143.181%2067.6367%20143.228%2068.234C143.181%2068.8313%20143.275%2069.354%20143.508%2069.802C143.751%2070.2407%20144.077%2070.5813%20144.488%2070.824C144.908%2071.0667%20145.356%2071.188%20145.832%2071.188C146.383%2071.188%20146.845%2071.0573%20147.218%2070.796C147.591%2070.5347%20147.895%2070.208%20148.128%2069.816L149.024%2070.292C148.875%2070.628%20148.646%2070.9407%20148.338%2071.23C148.03%2071.51%20147.661%2071.7387%20147.232%2071.916C146.812%2072.084%20146.345%2072.168%20145.832%2072.168ZM151.029%2072V64.496H152.079V65.952L151.841%2065.896C152.028%2065.4107%20152.331%2065.028%20152.751%2064.748C153.181%2064.468%20153.675%2064.328%20154.235%2064.328C154.767%2064.328%20155.243%2064.4493%20155.663%2064.692C156.093%2064.9347%20156.429%2065.2707%20156.671%2065.7C156.923%2066.12%20157.049%2066.596%20157.049%2067.128V72H155.999V67.534C155.999%2067.0767%20155.915%2066.6893%20155.747%2066.372C155.589%2066.0547%20155.36%2065.812%20155.061%2065.644C154.772%2065.4667%20154.436%2065.378%20154.053%2065.378C153.671%2065.378%20153.33%2065.4667%20153.031%2065.644C152.733%2065.812%20152.499%2066.0593%20152.331%2066.386C152.163%2066.7033%20152.079%2067.086%20152.079%2067.534V72H151.029ZM164.725%2074.898C163.903%2074.898%20163.138%2074.7487%20162.429%2074.45C161.729%2074.1607%20161.113%2073.75%20160.581%2073.218C160.049%2072.686%20159.633%2072.07%20159.335%2071.37C159.045%2070.6607%20158.901%2069.9%20158.901%2069.088C158.901%2068.276%20159.05%2067.52%20159.349%2066.82C159.647%2066.12%20160.058%2065.5087%20160.581%2064.986C161.113%2064.4633%20161.733%2064.0573%20162.443%2063.768C163.152%2063.4693%20163.913%2063.32%20164.725%2063.32C165.565%2063.32%20166.339%2063.4787%20167.049%2063.796C167.758%2064.104%20168.369%2064.5287%20168.883%2065.07C169.405%2065.602%20169.807%2066.2087%20170.087%2066.89C170.376%2067.5713%20170.521%2068.2853%20170.521%2069.032C170.521%2069.62%20170.427%2070.138%20170.241%2070.586C170.063%2071.0247%20169.802%2071.37%20169.457%2071.622C169.111%2071.874%20168.696%2072%20168.211%2072C167.921%2072%20167.646%2071.9487%20167.385%2071.846C167.123%2071.734%20166.899%2071.58%20166.713%2071.384C166.535%2071.1787%20166.414%2070.936%20166.349%2070.656L166.573%2070.838C166.423%2071.09%20166.237%2071.3047%20166.013%2071.482C165.798%2071.65%20165.555%2071.7807%20165.285%2071.874C165.014%2071.958%20164.72%2072%20164.403%2072C163.861%2072%20163.371%2071.8693%20162.933%2071.608C162.503%2071.3467%20162.163%2070.992%20161.911%2070.544C161.659%2070.096%20161.533%2069.5873%20161.533%2069.018C161.533%2068.4487%20161.659%2067.94%20161.911%2067.492C162.163%2067.044%20162.503%2066.6893%20162.933%2066.428C163.371%2066.1573%20163.861%2066.022%20164.403%2066.022C164.86%2066.022%20165.275%2066.1153%20165.649%2066.302C166.031%2066.4887%20166.335%2066.75%20166.559%2067.086L166.461%2067.254V66.162H167.371V70.026C167.371%2070.3713%20167.445%2070.6233%20167.595%2070.782C167.753%2070.9407%20167.963%2071.02%20168.225%2071.02C168.617%2071.02%20168.92%2070.8567%20169.135%2070.53C169.359%2070.2033%20169.471%2069.7133%20169.471%2069.06C169.471%2068.388%20169.354%2067.7627%20169.121%2067.184C168.887%2066.6053%20168.561%2066.1013%20168.141%2065.672C167.721%2065.2427%20167.221%2064.9067%20166.643%2064.664C166.064%2064.4213%20165.425%2064.3%20164.725%2064.3C164.043%2064.3%20163.409%2064.4213%20162.821%2064.664C162.242%2064.8973%20161.738%2065.2287%20161.309%2065.658C160.879%2066.0873%20160.543%2066.5913%20160.301%2067.17C160.067%2067.7487%20159.951%2068.3833%20159.951%2069.074C159.951%2069.746%20160.063%2070.376%20160.287%2070.964C160.52%2071.5427%20160.847%2072.0513%20161.267%2072.49C161.696%2072.938%20162.205%2073.288%20162.793%2073.54C163.381%2073.792%20164.034%2073.918%20164.753%2073.918C165.173%2073.918%20165.579%2073.8713%20165.971%2073.778C166.363%2073.694%20166.717%2073.5633%20167.035%2073.386L167.483%2074.226C166.689%2074.674%20165.77%2074.898%20164.725%2074.898ZM164.445%2071.02C164.809%2071.02%20165.131%2070.9313%20165.411%2070.754C165.691%2070.5767%20165.91%2070.3387%20166.069%2070.04C166.237%2069.732%20166.321%2069.3867%20166.321%2069.004C166.321%2068.4253%20166.143%2067.954%20165.789%2067.59C165.434%2067.2167%20164.986%2067.03%20164.445%2067.03C164.09%2067.03%20163.768%2067.1187%20163.479%2067.296C163.199%2067.464%20162.979%2067.6973%20162.821%2067.996C162.662%2068.2947%20162.583%2068.6353%20162.583%2069.018C162.583%2069.3913%20162.662%2069.732%20162.821%2070.04C162.989%2070.3387%20163.213%2070.5767%20163.493%2070.754C163.773%2070.9313%20164.09%2071.02%20164.445%2071.02ZM174.661%2072.168C173.942%2072.168%20173.312%2071.986%20172.771%2071.622C172.229%2071.258%20171.837%2070.7633%20171.595%2070.138L172.477%2069.718C172.691%2070.1753%20172.99%2070.5393%20173.373%2070.81C173.765%2071.0807%20174.194%2071.216%20174.661%2071.216C175.109%2071.216%20175.487%2071.1087%20175.795%2070.894C176.103%2070.67%20176.257%2070.3807%20176.257%2070.026C176.257%2069.7647%20176.182%2069.5593%20176.033%2069.41C175.883%2069.2513%20175.711%2069.13%20175.515%2069.046C175.319%2068.962%20175.146%2068.9013%20174.997%2068.864L173.919%2068.556C173.228%2068.36%20172.729%2068.0847%20172.421%2067.73C172.113%2067.3753%20171.959%2066.9647%20171.959%2066.498C171.959%2066.0593%20172.071%2065.6767%20172.295%2065.35C172.519%2065.0233%20172.822%2064.7713%20173.205%2064.594C173.587%2064.4167%20174.012%2064.328%20174.479%2064.328C175.113%2064.328%20175.687%2064.496%20176.201%2064.832C176.723%2065.1587%20177.092%2065.616%20177.307%2066.204L176.411%2066.624C176.224%2066.204%20175.953%2065.8773%20175.599%2065.644C175.253%2065.4013%20174.866%2065.28%20174.437%2065.28C174.017%2065.28%20173.681%2065.3873%20173.429%2065.602C173.177%2065.8167%20173.051%2066.0873%20173.051%2066.414C173.051%2066.666%20173.116%2066.8667%20173.247%2067.016C173.377%2067.1653%20173.527%2067.2773%20173.695%2067.352C173.872%2067.4267%20174.026%2067.4827%20174.157%2067.52L175.403%2067.884C176.009%2068.0613%20176.481%2068.3367%20176.817%2068.71C177.162%2069.0833%20177.335%2069.522%20177.335%2070.026C177.335%2070.4367%20177.218%2070.8053%20176.985%2071.132C176.761%2071.4587%20176.448%2071.7153%20176.047%2071.902C175.645%2072.0793%20175.183%2072.168%20174.661%2072.168ZM179.18%2072V61.402H180.23V65.952L179.992%2065.896C180.178%2065.4107%20180.482%2065.028%20180.902%2064.748C181.331%2064.468%20181.826%2064.328%20182.386%2064.328C182.918%2064.328%20183.394%2064.4493%20183.814%2064.692C184.243%2064.9347%20184.579%2065.2707%20184.822%2065.7C185.074%2066.12%20185.2%2066.596%20185.2%2067.128V72H184.15V67.534C184.15%2067.0767%20184.066%2066.6893%20183.898%2066.372C183.73%2066.0547%20183.496%2065.812%20183.198%2065.644C182.908%2065.4667%20182.577%2065.378%20182.204%2065.378C181.83%2065.378%20181.494%2065.4667%20181.196%2065.644C180.897%2065.812%20180.659%2066.0593%20180.482%2066.386C180.314%2066.7033%20180.23%2067.086%20180.23%2067.534V72H179.18ZM190.621%2072.168C189.921%2072.168%20189.286%2072%20188.717%2071.664C188.157%2071.3187%20187.714%2070.8473%20187.387%2070.25C187.06%2069.6527%20186.897%2068.976%20186.897%2068.22C186.897%2067.464%20187.056%2066.7967%20187.373%2066.218C187.69%2065.63%20188.12%2065.168%20188.661%2064.832C189.212%2064.496%20189.828%2064.328%20190.509%2064.328C191.05%2064.328%20191.531%2064.4307%20191.951%2064.636C192.38%2064.832%20192.744%2065.1027%20193.043%2065.448C193.342%2065.784%20193.57%2066.1667%20193.729%2066.596C193.888%2067.016%20193.967%2067.45%20193.967%2067.898C193.967%2067.9913%20193.962%2068.0987%20193.953%2068.22C193.944%2068.332%20193.93%2068.4487%20193.911%2068.57H187.569V67.59H193.309L192.805%2068.01C192.889%2067.4967%20192.828%2067.0393%20192.623%2066.638C192.427%2066.2273%20192.142%2065.9053%20191.769%2065.672C191.396%2065.4293%20190.976%2065.308%20190.509%2065.308C190.042%2065.308%20189.608%2065.4293%20189.207%2065.672C188.815%2065.9147%20188.507%2066.2553%20188.283%2066.694C188.059%2067.1233%20187.97%2067.6367%20188.017%2068.234C187.97%2068.8313%20188.064%2069.354%20188.297%2069.802C188.54%2070.2407%20188.866%2070.5813%20189.277%2070.824C189.697%2071.0667%20190.145%2071.188%20190.621%2071.188C191.172%2071.188%20191.634%2071.0573%20192.007%2070.796C192.38%2070.5347%20192.684%2070.208%20192.917%2069.816L193.813%2070.292C193.664%2070.628%20193.435%2070.9407%20193.127%2071.23C192.819%2071.51%20192.45%2071.7387%20192.021%2071.916C191.601%2072.084%20191.134%2072.168%20190.621%2072.168ZM195.818%2072V61.402H196.868V68.822L196.42%2068.752L200.634%2064.496H201.992L199.052%2067.506L202.258%2072H200.998L197.988%2067.842L198.66%2067.898L196.518%2070.11L196.868%2069.242V72H195.818ZM206.767%2072.168C206.067%2072.168%20205.433%2072%20204.863%2071.664C204.303%2071.3187%20203.86%2070.8473%20203.533%2070.25C203.207%2069.6527%20203.043%2068.976%20203.043%2068.22C203.043%2067.464%20203.202%2066.7967%20203.519%2066.218C203.837%2065.63%20204.266%2065.168%20204.807%2064.832C205.358%2064.496%20205.974%2064.328%20206.655%2064.328C207.197%2064.328%20207.677%2064.4307%20208.097%2064.636C208.527%2064.832%20208.891%2065.1027%20209.189%2065.448C209.488%2065.784%20209.717%2066.1667%20209.875%2066.596C210.034%2067.016%20210.113%2067.45%20210.113%2067.898C210.113%2067.9913%20210.109%2068.0987%20210.099%2068.22C210.09%2068.332%20210.076%2068.4487%20210.057%2068.57H203.715V67.59H209.455L208.951%2068.01C209.035%2067.4967%20208.975%2067.0393%20208.769%2066.638C208.573%2066.2273%20208.289%2065.9053%20207.915%2065.672C207.542%2065.4293%20207.122%2065.308%20206.655%2065.308C206.189%2065.308%20205.755%2065.4293%20205.353%2065.672C204.961%2065.9147%20204.653%2066.2553%20204.429%2066.694C204.205%2067.1233%20204.117%2067.6367%20204.163%2068.234C204.117%2068.8313%20204.21%2069.354%20204.443%2069.802C204.686%2070.2407%20205.013%2070.5813%20205.423%2070.824C205.843%2071.0667%20206.291%2071.188%20206.767%2071.188C207.318%2071.188%20207.78%2071.0573%20208.153%2070.796C208.527%2070.5347%20208.83%2070.208%20209.063%2069.816L209.959%2070.292C209.81%2070.628%20209.581%2070.9407%20209.273%2071.23C208.965%2071.51%20208.597%2071.7387%20208.167%2071.916C207.747%2072.084%20207.281%2072.168%20206.767%2072.168ZM211.965%2072V61.402H213.015V72H211.965ZM215.528%2072V70.46H216.648V72H215.528ZM221.34%2072.168C220.864%2072.168%20220.439%2072.0793%20220.066%2071.902C219.692%2071.7153%20219.398%2071.4633%20219.184%2071.146C218.969%2070.8287%20218.862%2070.4647%20218.862%2070.054C218.862%2069.662%20218.946%2069.3073%20219.114%2068.99C219.282%2068.6633%20219.543%2068.388%20219.898%2068.164C220.252%2067.94%20220.705%2067.7813%20221.256%2067.688L224.196%2067.198V68.15L221.508%2068.598C220.966%2068.6913%20220.574%2068.864%20220.332%2069.116C220.098%2069.368%20219.982%2069.6667%20219.982%2070.012C219.982%2070.348%20220.112%2070.6327%20220.374%2070.866C220.644%2071.0993%20220.99%2071.216%20221.41%2071.216C221.923%2071.216%20222.371%2071.1087%20222.754%2070.894C223.136%2070.67%20223.435%2070.3713%20223.65%2069.998C223.864%2069.6247%20223.972%2069.2093%20223.972%2068.752V66.848C223.972%2066.4%20223.808%2066.036%20223.482%2065.756C223.155%2065.476%20222.73%2065.336%20222.208%2065.336C221.75%2065.336%20221.349%2065.4527%20221.004%2065.686C220.658%2065.91%20220.402%2066.204%20220.234%2066.568L219.282%2066.05C219.422%2065.7327%20219.641%2065.4433%20219.94%2065.182C220.248%2064.9207%20220.598%2064.7153%20220.99%2064.566C221.382%2064.4073%20221.788%2064.328%20222.208%2064.328C222.758%2064.328%20223.244%2064.4353%20223.664%2064.65C224.093%2064.8647%20224.424%2065.1633%20224.658%2065.546C224.9%2065.9193%20225.022%2066.3533%20225.022%2066.848V72H223.972V70.502L224.126%2070.656C223.995%2070.936%20223.79%2071.1927%20223.51%2071.426C223.239%2071.65%20222.917%2071.832%20222.544%2071.972C222.18%2072.1027%20221.778%2072.168%20221.34%2072.168ZM227.952%2072V65.546H226.454V64.496H227.952V63.824C227.952%2063.3013%20228.068%2062.8627%20228.302%2062.508C228.535%2062.144%20228.843%2061.8687%20229.226%2061.682C229.608%2061.4953%20230.019%2061.402%20230.458%2061.402C230.551%2061.402%20230.658%2061.4113%20230.78%2061.43C230.901%2061.4393%20230.999%2061.4533%20231.074%2061.472V62.424C231.008%2062.4053%20230.92%2062.396%20230.808%2062.396C230.696%2062.3867%20230.616%2062.382%20230.57%2062.382C230.122%2062.382%20229.748%2062.4893%20229.45%2062.704C229.151%2062.9187%20229.002%2063.292%20229.002%2063.824V64.496H230.836V65.546H229.002V72H227.952ZM232.541%2072V64.496H233.591V65.728L233.451%2065.546C233.628%2065.1913%20233.894%2064.9113%20234.249%2064.706C234.613%2064.5007%20235.052%2064.398%20235.565%2064.398H236.041V65.448H235.383C234.842%2065.448%20234.408%2065.616%20234.081%2065.952C233.754%2066.288%20233.591%2066.764%20233.591%2067.38V72H232.541ZM237.271%2072V64.496H238.321V72H237.271ZM237.271%2063.11V61.57H238.321V63.11H237.271ZM243.901%2072.168C243.163%2072.168%20242.515%2071.9953%20241.955%2071.65C241.395%2071.3047%20240.956%2070.838%20240.639%2070.25C240.321%2069.6527%20240.163%2068.9807%20240.163%2068.234C240.163%2067.4873%20240.321%2066.82%20240.639%2066.232C240.956%2065.644%20241.395%2065.182%20241.955%2064.846C242.515%2064.5007%20243.163%2064.328%20243.901%2064.328C244.367%2064.328%20244.806%2064.412%20245.217%2064.58C245.627%2064.748%20245.991%2064.9767%20246.309%2065.266C246.626%2065.546%20246.864%2065.8727%20247.023%2066.246L246.071%2066.736C245.884%2066.3347%20245.599%2066.008%20245.217%2065.756C244.834%2065.504%20244.395%2065.378%20243.901%2065.378C243.406%2065.378%20242.958%2065.504%20242.557%2065.756C242.165%2065.9987%20241.852%2066.3393%20241.619%2066.778C241.395%2067.2073%20241.283%2067.6973%20241.283%2068.248C241.283%2068.7893%20241.395%2069.2793%20241.619%2069.718C241.852%2070.1473%20242.165%2070.488%20242.557%2070.74C242.958%2070.992%20243.406%2071.118%20243.901%2071.118C244.395%2071.118%20244.829%2070.992%20245.203%2070.74C245.585%2070.488%20245.875%2070.152%20246.071%2069.732L247.023%2070.25C246.864%2070.614%20246.626%2070.9407%20246.309%2071.23C245.991%2071.5193%20245.627%2071.748%20245.217%2071.916C244.806%2072.084%20244.367%2072.168%20243.901%2072.168ZM250.898%2072.168C250.422%2072.168%20249.998%2072.0793%20249.624%2071.902C249.251%2071.7153%20248.957%2071.4633%20248.742%2071.146C248.528%2070.8287%20248.42%2070.4647%20248.42%2070.054C248.42%2069.662%20248.504%2069.3073%20248.672%2068.99C248.84%2068.6633%20249.102%2068.388%20249.456%2068.164C249.811%2067.94%20250.264%2067.7813%20250.814%2067.688L253.754%2067.198V68.15L251.066%2068.598C250.525%2068.6913%20250.133%2068.864%20249.89%2069.116C249.657%2069.368%20249.54%2069.6667%20249.54%2070.012C249.54%2070.348%20249.671%2070.6327%20249.932%2070.866C250.203%2071.0993%20250.548%2071.216%20250.968%2071.216C251.482%2071.216%20251.93%2071.1087%20252.312%2070.894C252.695%2070.67%20252.994%2070.3713%20253.208%2069.998C253.423%2069.6247%20253.53%2069.2093%20253.53%2068.752V66.848C253.53%2066.4%20253.367%2066.036%20253.04%2065.756C252.714%2065.476%20252.289%2065.336%20251.766%2065.336C251.309%2065.336%20250.908%2065.4527%20250.562%2065.686C250.217%2065.91%20249.96%2066.204%20249.792%2066.568L248.84%2066.05C248.98%2065.7327%20249.2%2065.4433%20249.498%2065.182C249.806%2064.9207%20250.156%2064.7153%20250.548%2064.566C250.94%2064.4073%20251.346%2064.328%20251.766%2064.328C252.317%2064.328%20252.802%2064.4353%20253.222%2064.65C253.652%2064.8647%20253.983%2065.1633%20254.216%2065.546C254.459%2065.9193%20254.58%2066.3533%20254.58%2066.848V72H253.53V70.502L253.684%2070.656C253.554%2070.936%20253.348%2071.1927%20253.068%2071.426C252.798%2071.65%20252.476%2071.832%20252.102%2071.972C251.738%2072.1027%20251.337%2072.168%20250.898%2072.168Z'%20fill='%23181918'/%3e%3cpath%20d='M137.992%2093.168C137.255%2093.168%20136.578%2093.0373%20135.962%2092.776C135.346%2092.5053%20134.809%2092.132%20134.352%2091.656C133.904%2091.1707%20133.554%2090.6013%20133.302%2089.948C133.05%2089.2947%20132.924%2088.576%20132.924%2087.792C132.924%2087.008%20133.05%2086.2893%20133.302%2085.636C133.554%2084.9827%20133.904%2084.4133%20134.352%2083.928C134.809%2083.4427%20135.346%2083.0693%20135.962%2082.808C136.578%2082.5373%20137.255%2082.402%20137.992%2082.402C138.701%2082.402%20139.336%2082.528%20139.896%2082.78C140.465%2083.032%20140.941%2083.3587%20141.324%2083.76C141.716%2084.152%20141.996%2084.5673%20142.164%2085.006L141.114%2085.468C140.853%2084.8613%20140.451%2084.376%20139.91%2084.012C139.378%2083.6387%20138.739%2083.452%20137.992%2083.452C137.227%2083.452%20136.545%2083.634%20135.948%2083.998C135.351%2084.362%20134.884%2084.8707%20134.548%2085.524C134.212%2086.168%20134.044%2086.924%20134.044%2087.792C134.044%2088.6507%20134.212%2089.4067%20134.548%2090.06C134.884%2090.7133%20135.351%2091.222%20135.948%2091.586C136.545%2091.9407%20137.227%2092.118%20137.992%2092.118C138.739%2092.118%20139.378%2091.936%20139.91%2091.572C140.451%2091.208%20140.853%2090.7227%20141.114%2090.116L142.164%2090.578C141.996%2091.0073%20141.716%2091.4227%20141.324%2091.824C140.941%2092.216%20140.465%2092.538%20139.896%2092.79C139.336%2093.042%20138.701%2093.168%20137.992%2093.168ZM147.393%2093.168C146.683%2093.168%20146.039%2093%20145.461%2092.664C144.882%2092.3187%20144.42%2091.852%20144.075%2091.264C143.739%2090.6667%20143.571%2089.99%20143.571%2089.234C143.571%2088.4873%20143.739%2087.82%20144.075%2087.232C144.411%2086.644%20144.863%2086.182%20145.433%2085.846C146.011%2085.5007%20146.665%2085.328%20147.393%2085.328C148.121%2085.328%20148.769%2085.496%20149.339%2085.832C149.917%2086.168%20150.37%2086.63%20150.697%2087.218C151.033%2087.806%20151.201%2088.478%20151.201%2089.234C151.201%2089.9993%20151.028%2090.6807%20150.683%2091.278C150.337%2091.866%20149.875%2092.328%20149.297%2092.664C148.727%2093%20148.093%2093.168%20147.393%2093.168ZM147.393%2092.118C147.897%2092.118%20148.349%2091.992%20148.751%2091.74C149.161%2091.488%20149.483%2091.1427%20149.717%2090.704C149.959%2090.2653%20150.081%2089.7753%20150.081%2089.234C150.081%2088.6927%20149.959%2088.2073%20149.717%2087.778C149.483%2087.3487%20149.161%2087.008%20148.751%2086.756C148.349%2086.504%20147.897%2086.378%20147.393%2086.378C146.889%2086.378%20146.431%2086.504%20146.021%2086.756C145.619%2087.008%20145.297%2087.3487%20145.055%2087.778C144.812%2088.2073%20144.691%2088.6927%20144.691%2089.234C144.691%2089.7753%20144.812%2090.2653%20145.055%2090.704C145.297%2091.1427%20145.619%2091.488%20146.021%2091.74C146.431%2091.992%20146.889%2092.118%20147.393%2092.118ZM153.417%2093V91.46H154.537V93H153.417ZM160.207%2093V86.546H158.709V85.496H160.207V84.824C160.207%2084.3013%20160.324%2083.8627%20160.557%2083.508C160.791%2083.144%20161.099%2082.8687%20161.481%2082.682C161.864%2082.4953%20162.275%2082.402%20162.713%2082.402C162.807%2082.402%20162.914%2082.4113%20163.035%2082.43C163.157%2082.4393%20163.255%2082.4533%20163.329%2082.472V83.424C163.264%2083.4053%20163.175%2083.396%20163.063%2083.396C162.951%2083.3867%20162.872%2083.382%20162.825%2083.382C162.377%2083.382%20162.004%2083.4893%20161.705%2083.704C161.407%2083.9187%20161.257%2084.292%20161.257%2084.824V85.496H163.091V86.546H161.257V93H160.207ZM168.024%2093.168C167.314%2093.168%20166.67%2093%20166.092%2092.664C165.513%2092.3187%20165.051%2091.852%20164.706%2091.264C164.37%2090.6667%20164.202%2089.99%20164.202%2089.234C164.202%2088.4873%20164.37%2087.82%20164.706%2087.232C165.042%2086.644%20165.494%2086.182%20166.064%2085.846C166.642%2085.5007%20167.296%2085.328%20168.024%2085.328C168.752%2085.328%20169.4%2085.496%20169.97%2085.832C170.548%2086.168%20171.001%2086.63%20171.328%2087.218C171.664%2087.806%20171.832%2088.478%20171.832%2089.234C171.832%2089.9993%20171.659%2090.6807%20171.314%2091.278C170.968%2091.866%20170.506%2092.328%20169.928%2092.664C169.358%2093%20168.724%2093.168%20168.024%2093.168ZM168.024%2092.118C168.528%2092.118%20168.98%2091.992%20169.382%2091.74C169.792%2091.488%20170.114%2091.1427%20170.348%2090.704C170.59%2090.2653%20170.712%2089.7753%20170.712%2089.234C170.712%2088.6927%20170.59%2088.2073%20170.348%2087.778C170.114%2087.3487%20169.792%2087.008%20169.382%2086.756C168.98%2086.504%20168.528%2086.378%20168.024%2086.378C167.52%2086.378%20167.062%2086.504%20166.652%2086.756C166.25%2087.008%20165.928%2087.3487%20165.686%2087.778C165.443%2088.2073%20165.322%2088.6927%20165.322%2089.234C165.322%2089.7753%20165.443%2090.2653%20165.686%2090.704C165.928%2091.1427%20166.25%2091.488%20166.652%2091.74C167.062%2091.992%20167.52%2092.118%20168.024%2092.118ZM176.343%2093.168C175.821%2093.168%20175.345%2093.0467%20174.915%2092.804C174.486%2092.552%20174.145%2092.2067%20173.893%2091.768C173.651%2091.32%20173.529%2090.8067%20173.529%2090.228V85.496H174.579V90.102C174.579%2090.5033%20174.659%2090.858%20174.817%2091.166C174.985%2091.4647%20175.214%2091.698%20175.503%2091.866C175.802%2092.034%20176.143%2092.118%20176.525%2092.118C176.908%2092.118%20177.249%2092.034%20177.547%2091.866C177.846%2091.6887%20178.079%2091.4413%20178.247%2091.124C178.415%2090.7973%20178.499%2090.41%20178.499%2089.962V85.496H179.549V93H178.499V91.544L178.737%2091.6C178.56%2092.0853%20178.257%2092.468%20177.827%2092.748C177.398%2093.028%20176.903%2093.168%20176.343%2093.168ZM181.709%2093V85.496H182.759V86.952L182.521%2086.896C182.708%2086.4107%20183.011%2086.028%20183.431%2085.748C183.86%2085.468%20184.355%2085.328%20184.915%2085.328C185.447%2085.328%20185.923%2085.4493%20186.343%2085.692C186.772%2085.9347%20187.108%2086.2707%20187.351%2086.7C187.603%2087.12%20187.729%2087.596%20187.729%2088.128V93H186.679V88.534C186.679%2088.0767%20186.595%2087.6893%20186.427%2087.372C186.268%2087.0547%20186.04%2086.812%20185.741%2086.644C185.452%2086.4667%20185.116%2086.378%20184.733%2086.378C184.35%2086.378%20184.01%2086.4667%20183.711%2086.644C183.412%2086.812%20183.179%2087.0593%20183.011%2087.386C182.843%2087.7033%20182.759%2088.086%20182.759%2088.534V93H181.709ZM193.122%2093.168C192.422%2093.168%20191.792%2093%20191.232%2092.664C190.672%2092.3187%20190.229%2091.852%20189.902%2091.264C189.585%2090.6667%20189.426%2089.9947%20189.426%2089.248C189.426%2088.492%20189.585%2087.82%20189.902%2087.232C190.229%2086.644%20190.668%2086.182%20191.218%2085.846C191.778%2085.5007%20192.413%2085.328%20193.122%2085.328C193.766%2085.328%20194.34%2085.468%20194.844%2085.748C195.348%2086.028%20195.745%2086.406%20196.034%2086.882L195.866%2087.176V82.402H196.916V93H195.866V91.32L196.034%2091.474C195.773%2092.0153%20195.381%2092.4353%20194.858%2092.734C194.345%2093.0233%20193.766%2093.168%20193.122%2093.168ZM193.178%2092.118C193.682%2092.118%20194.135%2091.992%20194.536%2091.74C194.947%2091.488%20195.269%2091.1473%20195.502%2090.718C195.745%2090.2793%20195.866%2089.7893%20195.866%2089.248C195.866%2088.7067%20195.745%2088.2213%20195.502%2087.792C195.269%2087.3533%20194.947%2087.008%20194.536%2086.756C194.135%2086.504%20193.682%2086.378%20193.178%2086.378C192.684%2086.378%20192.236%2086.504%20191.834%2086.756C191.433%2087.008%20191.116%2087.3487%20190.882%2087.778C190.658%2088.2073%20190.546%2088.6973%20190.546%2089.248C190.546%2089.7893%20190.658%2090.2793%20190.882%2090.718C191.116%2091.1473%20191.428%2091.488%20191.82%2091.74C192.222%2091.992%20192.674%2092.118%20193.178%2092.118ZM202.488%2093.168C201.788%2093.168%20201.153%2093%20200.584%2092.664C200.024%2092.3187%20199.581%2091.8473%20199.254%2091.25C198.927%2090.6527%20198.764%2089.976%20198.764%2089.22C198.764%2088.464%20198.923%2087.7967%20199.24%2087.218C199.557%2086.63%20199.987%2086.168%20200.528%2085.832C201.079%2085.496%20201.695%2085.328%20202.376%2085.328C202.917%2085.328%20203.398%2085.4307%20203.818%2085.636C204.247%2085.832%20204.611%2086.1027%20204.91%2086.448C205.209%2086.784%20205.437%2087.1667%20205.596%2087.596C205.755%2088.016%20205.834%2088.45%20205.834%2088.898C205.834%2088.9913%20205.829%2089.0987%20205.82%2089.22C205.811%2089.332%20205.797%2089.4487%20205.778%2089.57H199.436V88.59H205.176L204.672%2089.01C204.756%2088.4967%20204.695%2088.0393%20204.49%2087.638C204.294%2087.2273%20204.009%2086.9053%20203.636%2086.672C203.263%2086.4293%20202.843%2086.308%20202.376%2086.308C201.909%2086.308%20201.475%2086.4293%20201.074%2086.672C200.682%2086.9147%20200.374%2087.2553%20200.15%2087.694C199.926%2088.1233%20199.837%2088.6367%20199.884%2089.234C199.837%2089.8313%20199.931%2090.354%20200.164%2090.802C200.407%2091.2407%20200.733%2091.5813%20201.144%2091.824C201.564%2092.0667%20202.012%2092.188%20202.488%2092.188C203.039%2092.188%20203.501%2092.0573%20203.874%2091.796C204.247%2091.5347%20204.551%2091.208%20204.784%2090.816L205.68%2091.292C205.531%2091.628%20205.302%2091.9407%20204.994%2092.23C204.686%2092.51%20204.317%2092.7387%20203.888%2092.916C203.468%2093.084%20203.001%2093.168%20202.488%2093.168ZM207.685%2093V85.496H208.735V86.728L208.595%2086.546C208.773%2086.1913%20209.039%2085.9113%20209.393%2085.706C209.757%2085.5007%20210.196%2085.398%20210.709%2085.398H211.185V86.448H210.527C209.986%2086.448%20209.552%2086.616%20209.225%2086.952C208.899%2087.288%20208.735%2087.764%20208.735%2088.38V93H207.685Z'%20fill='%23181918'/%3e%3ccircle%20cx='219.5'%20cy='87'%20r='2.5'%20fill='%23181918'/%3e%3cpath%20d='M232.992%2093.168C232.255%2093.168%20231.578%2093.0373%20230.962%2092.776C230.346%2092.5053%20229.809%2092.132%20229.352%2091.656C228.904%2091.1707%20228.554%2090.6013%20228.302%2089.948C228.05%2089.2947%20227.924%2088.576%20227.924%2087.792C227.924%2087.008%20228.05%2086.2893%20228.302%2085.636C228.554%2084.9827%20228.904%2084.4133%20229.352%2083.928C229.809%2083.4427%20230.346%2083.0693%20230.962%2082.808C231.578%2082.5373%20232.255%2082.402%20232.992%2082.402C233.701%2082.402%20234.336%2082.528%20234.896%2082.78C235.465%2083.032%20235.941%2083.3587%20236.324%2083.76C236.716%2084.152%20236.996%2084.5673%20237.164%2085.006L236.156%2085.496C235.895%2084.8613%20235.493%2084.362%20234.952%2083.998C234.411%2083.634%20233.757%2083.452%20232.992%2083.452C232.227%2083.452%20231.545%2083.634%20230.948%2083.998C230.351%2084.362%20229.884%2084.8707%20229.548%2085.524C229.212%2086.168%20229.044%2086.924%20229.044%2087.792C229.044%2088.6507%20229.212%2089.4067%20229.548%2090.06C229.884%2090.7133%20230.351%2091.222%20230.948%2091.586C231.545%2091.9407%20232.227%2092.118%20232.992%2092.118C233.673%2092.118%20234.285%2091.9687%20234.826%2091.67C235.377%2091.3713%20235.811%2090.9653%20236.128%2090.452C236.445%2089.9293%20236.604%2089.332%20236.604%2088.66V88.086L237.108%2088.59H232.992V87.61H237.724V88.478C237.724%2089.1593%20237.603%2089.7893%20237.36%2090.368C237.117%2090.9373%20236.781%2091.432%20236.352%2091.852C235.923%2092.272%20235.419%2092.5987%20234.84%2092.832C234.271%2093.056%20233.655%2093.168%20232.992%2093.168ZM239.576%2093V82.402H240.626V93H239.576ZM246.289%2093.168C245.58%2093.168%20244.936%2093%20244.357%2092.664C243.779%2092.3187%20243.317%2091.852%20242.971%2091.264C242.635%2090.6667%20242.467%2089.99%20242.467%2089.234C242.467%2088.4873%20242.635%2087.82%20242.971%2087.232C243.307%2086.644%20243.76%2086.182%20244.329%2085.846C244.908%2085.5007%20245.561%2085.328%20246.289%2085.328C247.017%2085.328%20247.666%2085.496%20248.235%2085.832C248.814%2086.168%20249.267%2086.63%20249.593%2087.218C249.929%2087.806%20250.097%2088.478%20250.097%2089.234C250.097%2089.9993%20249.925%2090.6807%20249.579%2091.278C249.234%2091.866%20248.772%2092.328%20248.193%2092.664C247.624%2093%20246.989%2093.168%20246.289%2093.168ZM246.289%2092.118C246.793%2092.118%20247.246%2091.992%20247.647%2091.74C248.058%2091.488%20248.38%2091.1427%20248.613%2090.704C248.856%2090.2653%20248.977%2089.7753%20248.977%2089.234C248.977%2088.6927%20248.856%2088.2073%20248.613%2087.778C248.38%2087.3487%20248.058%2087.008%20247.647%2086.756C247.246%2086.504%20246.793%2086.378%20246.289%2086.378C245.785%2086.378%20245.328%2086.504%20244.917%2086.756C244.516%2087.008%20244.194%2087.3487%20243.951%2087.778C243.709%2088.2073%20243.587%2088.6927%20243.587%2089.234C243.587%2089.7753%20243.709%2090.2653%20243.951%2090.704C244.194%2091.1427%20244.516%2091.488%20244.917%2091.74C245.328%2091.992%20245.785%2092.118%20246.289%2092.118ZM255.743%2093.168C255.099%2093.168%20254.516%2093.0233%20253.993%2092.734C253.48%2092.4353%20253.092%2092.0153%20252.831%2091.474L252.999%2091.32V93H251.949V82.402H252.999V87.176L252.831%2086.882C253.13%2086.406%20253.526%2086.028%20254.021%2085.748C254.525%2085.468%20255.099%2085.328%20255.743%2085.328C256.452%2085.328%20257.082%2085.5007%20257.633%2085.846C258.193%2086.182%20258.632%2086.644%20258.949%2087.232C259.276%2087.82%20259.439%2088.492%20259.439%2089.248C259.439%2089.9947%20259.276%2090.6667%20258.949%2091.264C258.632%2091.852%20258.193%2092.3187%20257.633%2092.664C257.082%2093%20256.452%2093.168%20255.743%2093.168ZM255.687%2092.118C256.191%2092.118%20256.639%2091.992%20257.031%2091.74C257.432%2091.488%20257.745%2091.1473%20257.969%2090.718C258.202%2090.2793%20258.319%2089.7893%20258.319%2089.248C258.319%2088.6973%20258.202%2088.2073%20257.969%2087.778C257.745%2087.3487%20257.432%2087.008%20257.031%2086.756C256.639%2086.504%20256.191%2086.378%20255.687%2086.378C255.183%2086.378%20254.726%2086.504%20254.315%2086.756C253.914%2087.008%20253.592%2087.3533%20253.349%2087.792C253.116%2088.2213%20252.999%2088.7067%20252.999%2089.248C252.999%2089.7893%20253.116%2090.2793%20253.349%2090.718C253.592%2091.1473%20253.914%2091.488%20254.315%2091.74C254.726%2091.992%20255.183%2092.118%20255.687%2092.118ZM263.457%2093.168C262.981%2093.168%20262.556%2093.0793%20262.183%2092.902C261.81%2092.7153%20261.516%2092.4633%20261.301%2092.146C261.086%2091.8287%20260.979%2091.4647%20260.979%2091.054C260.979%2090.662%20261.063%2090.3073%20261.231%2089.99C261.399%2089.6633%20261.66%2089.388%20262.015%2089.164C262.37%2088.94%20262.822%2088.7813%20263.373%2088.688L266.313%2088.198V89.15L263.625%2089.598C263.084%2089.6913%20262.692%2089.864%20262.449%2090.116C262.216%2090.368%20262.099%2090.6667%20262.099%2091.012C262.099%2091.348%20262.23%2091.6327%20262.491%2091.866C262.762%2092.0993%20263.107%2092.216%20263.527%2092.216C264.04%2092.216%20264.488%2092.1087%20264.871%2091.894C265.254%2091.67%20265.552%2091.3713%20265.767%2090.998C265.982%2090.6247%20266.089%2090.2093%20266.089%2089.752V87.848C266.089%2087.4%20265.926%2087.036%20265.599%2086.756C265.272%2086.476%20264.848%2086.336%20264.325%2086.336C263.868%2086.336%20263.466%2086.4527%20263.121%2086.686C262.776%2086.91%20262.519%2087.204%20262.351%2087.568L261.399%2087.05C261.539%2086.7327%20261.758%2086.4433%20262.057%2086.182C262.365%2085.9207%20262.715%2085.7153%20263.107%2085.566C263.499%2085.4073%20263.905%2085.328%20264.325%2085.328C264.876%2085.328%20265.361%2085.4353%20265.781%2085.65C266.21%2085.8647%20266.542%2086.1633%20266.775%2086.546C267.018%2086.9193%20267.139%2087.3533%20267.139%2087.848V93H266.089V91.502L266.243%2091.656C266.112%2091.936%20265.907%2092.1927%20265.627%2092.426C265.356%2092.65%20265.034%2092.832%20264.661%2092.972C264.297%2093.1027%20263.896%2093.168%20263.457%2093.168ZM269.299%2093V82.402H270.349V93H269.299ZM273.953%2093L277.761%2082.57H278.965L282.773%2093H281.597L280.701%2090.452H276.039L275.129%2093H273.953ZM276.403%2089.402H280.309L278.195%2083.41H278.531L276.403%2089.402ZM287.124%2093.168C286.424%2093.168%20285.794%2093%20285.234%2092.664C284.674%2092.3187%20284.231%2091.852%20283.904%2091.264C283.587%2090.6667%20283.428%2089.9947%20283.428%2089.248C283.428%2088.492%20283.587%2087.82%20283.904%2087.232C284.231%2086.644%20284.67%2086.182%20285.22%2085.846C285.78%2085.5007%20286.415%2085.328%20287.124%2085.328C287.768%2085.328%20288.342%2085.468%20288.846%2085.748C289.35%2086.028%20289.747%2086.406%20290.036%2086.882L289.868%2087.176V82.402H290.918V93H289.868V91.32L290.036%2091.474C289.775%2092.0153%20289.383%2092.4353%20288.86%2092.734C288.347%2093.0233%20287.768%2093.168%20287.124%2093.168ZM287.18%2092.118C287.684%2092.118%20288.137%2091.992%20288.538%2091.74C288.949%2091.488%20289.271%2091.1473%20289.504%2090.718C289.747%2090.2793%20289.868%2089.7893%20289.868%2089.248C289.868%2088.7067%20289.747%2088.2213%20289.504%2087.792C289.271%2087.3533%20288.949%2087.008%20288.538%2086.756C288.137%2086.504%20287.684%2086.378%20287.18%2086.378C286.686%2086.378%20286.238%2086.504%20285.836%2086.756C285.435%2087.008%20285.118%2087.3487%20284.884%2087.778C284.66%2088.2073%20284.548%2088.6973%20284.548%2089.248C284.548%2089.7893%20284.66%2090.2793%20284.884%2090.718C285.118%2091.1473%20285.43%2091.488%20285.822%2091.74C286.224%2091.992%20286.676%2092.118%20287.18%2092.118ZM293.074%2093V85.496H294.124V86.924L293.956%2086.714C294.161%2086.2753%20294.465%2085.9347%20294.866%2085.692C295.277%2085.4493%20295.725%2085.328%20296.21%2085.328C296.789%2085.328%20297.311%2085.4913%20297.778%2085.818C298.245%2086.1447%20298.576%2086.5693%20298.772%2087.092L298.478%2087.106C298.665%2086.5273%20298.987%2086.0887%20299.444%2085.79C299.911%2085.482%20300.424%2085.328%20300.984%2085.328C301.488%2085.328%20301.95%2085.4493%20302.37%2085.692C302.799%2085.9347%20303.14%2086.2707%20303.392%2086.7C303.653%2087.12%20303.784%2087.596%20303.784%2088.128V93H302.734V88.534C302.734%2088.0767%20302.65%2087.6893%20302.482%2087.372C302.323%2087.0547%20302.104%2086.812%20301.824%2086.644C301.544%2086.4667%20301.222%2086.378%20300.858%2086.378C300.503%2086.378%20300.181%2086.4667%20299.892%2086.644C299.603%2086.812%20299.374%2087.0593%20299.206%2087.386C299.038%2087.7033%20298.954%2088.086%20298.954%2088.534V93H297.904V88.534C297.904%2088.0767%20297.82%2087.6893%20297.652%2087.372C297.493%2087.0547%20297.274%2086.812%20296.994%2086.644C296.714%2086.4667%20296.392%2086.378%20296.028%2086.378C295.664%2086.378%20295.337%2086.4667%20295.048%2086.644C294.768%2086.812%20294.544%2087.0593%20294.376%2087.386C294.208%2087.7033%20294.124%2088.086%20294.124%2088.534V93H293.074ZM305.789%2093V85.496H306.839V93H305.789ZM305.789%2084.11V82.57H306.839V84.11H305.789ZM308.988%2093V85.496H310.038V86.952L309.8%2086.896C309.987%2086.4107%20310.29%2086.028%20310.71%2085.748C311.139%2085.468%20311.634%2085.328%20312.194%2085.328C312.726%2085.328%20313.202%2085.4493%20313.622%2085.692C314.051%2085.9347%20314.387%2086.2707%20314.63%2086.7C314.882%2087.12%20315.008%2087.596%20315.008%2088.128V93H313.958V88.534C313.958%2088.0767%20313.874%2087.6893%20313.706%2087.372C313.547%2087.0547%20313.319%2086.812%20313.02%2086.644C312.731%2086.4667%20312.395%2086.378%20312.012%2086.378C311.629%2086.378%20311.289%2086.4667%20310.99%2086.644C310.691%2086.812%20310.458%2087.0593%20310.29%2087.386C310.122%2087.7033%20310.038%2088.086%20310.038%2088.534V93H308.988Z'%20fill='%23181918'/%3e%3c/g%3e%3cg%20opacity='0.1'%3e%3cpath%20d='M41%2016C41%207.16344%2048.1634%200%2057%200H315C323.837%200%20331%207.16344%20331%2016V111C331%20119.837%20323.837%20127%20315%20127H57C48.1635%20127%2041%20119.837%2041%20111V16Z'%20fill='url(%23paint1_linear_683_56525)'/%3e%3crect%20x='65'%20y='36'%20width='67'%20height='67'%20rx='33.5'%20fill='%231B1C1E'/%3e%3cpath%20d='M92.8552%2078V62.0216H99.5683C100.526%2062.0216%20101.348%2062.1932%20102.035%2062.5363C102.735%2062.8795%20103.272%2063.3657%20103.643%2063.9948C104.029%2064.6096%20104.222%2065.346%20104.222%2066.2039C104.222%2066.9903%20104.015%2067.7052%20103.6%2068.3486C103.2%2068.9777%20102.607%2069.471%20101.82%2069.8285L101.799%2069.0349C102.485%2069.2923%20103.05%2069.6355%20103.493%2070.0644C103.951%2070.4791%20104.294%2070.9652%20104.523%2071.5229C104.751%2072.0662%20104.866%2072.6453%20104.866%2073.2601C104.866%2074.7328%20104.394%2075.891%20103.45%2076.7346C102.507%2077.5782%20101.22%2078%2099.5897%2078H92.8552ZM94.9571%2076.0697H99.6755C100.605%2076.0697%20101.348%2075.8195%20101.906%2075.3191C102.464%2074.8186%20102.743%2074.1394%20102.743%2073.2815C102.743%2072.4236%20102.464%2071.7445%20101.906%2071.244C101.348%2070.7293%20100.605%2070.4719%2099.6755%2070.4719H94.9571V76.0697ZM94.9571%2068.5845H99.5254C100.297%2068.5845%20100.919%2068.3629%20101.391%2067.9197C101.863%2067.4621%20102.099%2066.883%20102.099%2066.1824C102.099%2065.4532%20101.863%2064.8956%20101.391%2064.5095C100.919%2064.1235%20100.297%2063.9304%2099.5254%2063.9304H94.9571V68.5845Z'%20fill='%23FDFDFE'/%3e%3cpath%20d='M157.44%2056V41.1H163.72C164.707%2041.1%20165.547%2041.2733%20166.24%2041.62C166.947%2041.9533%20167.487%2042.4333%20167.86%2043.06C168.247%2043.6733%20168.44%2044.42%20168.44%2045.3C168.44%2045.98%20168.253%2046.62%20167.88%2047.22C167.52%2047.8067%20166.94%2048.2933%20166.14%2048.68V47.42C166.873%2047.7%20167.453%2048.0467%20167.88%2048.46C168.307%2048.8733%20168.607%2049.3333%20168.78%2049.84C168.953%2050.3467%20169.04%2050.88%20169.04%2051.44C169.04%2052.8667%20168.567%2053.9867%20167.62%2054.8C166.687%2055.6%20165.387%2056%20163.72%2056H157.44ZM160.16%2053.6H164C164.707%2053.6%20165.267%2053.4067%20165.68%2053.02C166.107%2052.62%20166.32%2052.0933%20166.32%2051.44C166.32%2050.7867%20166.107%2050.26%20165.68%2049.86C165.267%2049.46%20164.707%2049.26%20164%2049.26H160.16V53.6ZM160.16%2046.88H163.86C164.42%2046.88%20164.867%2046.72%20165.2%2046.4C165.533%2046.0667%20165.7%2045.64%20165.7%2045.12C165.7%2044.6%20165.533%2044.1867%20165.2%2043.88C164.867%2043.5733%20164.42%2043.42%20163.86%2043.42H160.16V46.88ZM176.208%2056.24C175.088%2056.24%20174.108%2055.9867%20173.268%2055.48C172.428%2054.9733%20171.775%2054.2867%20171.308%2053.42C170.841%2052.5533%20170.608%2051.5933%20170.608%2050.54C170.608%2049.4467%20170.841%2048.48%20171.308%2047.64C171.788%2046.7867%20172.435%2046.1133%20173.248%2045.62C174.075%2045.1267%20174.995%2044.88%20176.008%2044.88C176.861%2044.88%20177.608%2045.02%20178.248%2045.3C178.901%2045.58%20179.455%2045.9667%20179.908%2046.46C180.361%2046.9533%20180.708%2047.52%20180.948%2048.16C181.188%2048.7867%20181.308%2049.4667%20181.308%2050.2C181.308%2050.3867%20181.295%2050.58%20181.268%2050.78C181.255%2050.98%20181.221%2051.1533%20181.168%2051.3H172.768V49.3H179.688L178.448%2050.24C178.568%2049.6267%20178.535%2049.08%20178.348%2048.6C178.175%2048.12%20177.881%2047.74%20177.468%2047.46C177.068%2047.18%20176.581%2047.04%20176.008%2047.04C175.461%2047.04%20174.975%2047.18%20174.548%2047.46C174.121%2047.7267%20173.795%2048.1267%20173.568%2048.66C173.355%2049.18%20173.275%2049.8133%20173.328%2050.56C173.275%2051.2267%20173.361%2051.82%20173.588%2052.34C173.828%2052.8467%20174.175%2053.24%20174.628%2053.52C175.095%2053.8%20175.628%2053.94%20176.228%2053.94C176.828%2053.94%20177.335%2053.8133%20177.748%2053.56C178.175%2053.3067%20178.508%2052.9667%20178.748%2052.54L180.868%2053.58C180.655%2054.1%20180.321%2054.56%20179.868%2054.96C179.415%2055.36%20178.875%2055.6733%20178.248%2055.9C177.635%2056.1267%20176.955%2056.24%20176.208%2056.24ZM183.294%2056V45.12H185.754V47.26L185.554%2046.88C185.808%2046.2267%20186.221%2045.7333%20186.794%2045.4C187.381%2045.0533%20188.061%2044.88%20188.834%2044.88C189.634%2044.88%20190.341%2045.0533%20190.954%2045.4C191.581%2045.7467%20192.068%2046.2333%20192.414%2046.86C192.761%2047.4733%20192.934%2048.1867%20192.934%2049V56H190.314V49.62C190.314%2049.14%20190.221%2048.7267%20190.034%2048.38C189.848%2048.0333%20189.588%2047.7667%20189.254%2047.58C188.934%2047.38%20188.554%2047.28%20188.114%2047.28C187.688%2047.28%20187.308%2047.38%20186.974%2047.58C186.641%2047.7667%20186.381%2048.0333%20186.194%2048.38C186.008%2048.7267%20185.914%2049.14%20185.914%2049.62V56H183.294ZM193.65%2060.42C193.476%2060.42%20193.296%2060.4133%20193.11%2060.4C192.923%2060.3867%20192.77%2060.3667%20192.65%2060.34V58.06C192.89%2058.1%20193.13%2058.12%20193.37%2058.12C193.93%2058.12%20194.363%2057.9867%20194.67%2057.72C194.99%2057.4667%20195.15%2057.0733%20195.15%2056.54V45.12H197.77V56.54C197.77%2057.3667%20197.603%2058.0667%20197.27%2058.64C196.936%2059.2267%20196.456%2059.6667%20195.83%2059.96C195.216%2060.2667%20194.49%2060.42%20193.65%2060.42ZM195.15%2043.9V41.1H197.77V43.9H195.15ZM203.489%2056.24C202.729%2056.24%20202.069%2056.1133%20201.509%2055.86C200.949%2055.6067%20200.515%2055.2467%20200.209%2054.78C199.902%2054.3%20199.749%2053.7467%20199.749%2053.12C199.749%2052.52%20199.882%2051.9867%20200.149%2051.52C200.415%2051.04%20200.829%2050.64%20201.389%2050.32C201.949%2050%20202.655%2049.7733%20203.509%2049.64L207.069%2049.06V51.06L204.009%2051.58C203.489%2051.6733%20203.102%2051.84%20202.849%2052.08C202.595%2052.32%20202.469%2052.6333%20202.469%2053.02C202.469%2053.3933%20202.609%2053.6933%20202.889%2053.92C203.182%2054.1333%20203.542%2054.24%20203.969%2054.24C204.515%2054.24%20204.995%2054.1267%20205.409%2053.9C205.835%2053.66%20206.162%2053.3333%20206.389%2052.92C206.629%2052.5067%20206.749%2052.0533%20206.749%2051.56V48.76C206.749%2048.2933%20206.562%2047.9067%20206.189%2047.6C205.829%2047.28%20205.349%2047.12%20204.749%2047.12C204.189%2047.12%20203.689%2047.2733%20203.249%2047.58C202.822%2047.8733%20202.509%2048.2667%20202.309%2048.76L200.169%2047.72C200.382%2047.1467%20200.715%2046.6533%20201.169%2046.24C201.635%2045.8133%20202.182%2045.48%20202.809%2045.24C203.435%2045%20204.115%2044.88%20204.849%2044.88C205.742%2044.88%20206.529%2045.0467%20207.209%2045.38C207.889%2045.7%20208.415%2046.1533%20208.789%2046.74C209.175%2047.3133%20209.369%2047.9867%20209.369%2048.76V56H206.889V54.14L207.449%2054.1C207.169%2054.5667%20206.835%2054.96%20206.449%2055.28C206.062%2055.5867%20205.622%2055.8267%20205.129%2056C204.635%2056.16%20204.089%2056.24%20203.489%2056.24ZM211.79%2056V45.12H214.25V47.64L213.97%2047.22C214.17%2046.4333%20214.57%2045.8467%20215.17%2045.46C215.77%2045.0733%20216.477%2044.88%20217.29%2044.88C218.184%2044.88%20218.97%2045.1133%20219.65%2045.58C220.33%2046.0467%20220.77%2046.66%20220.97%2047.42L220.23%2047.48C220.564%2046.6133%20221.064%2045.9667%20221.73%2045.54C222.397%2045.1%20223.164%2044.88%20224.03%2044.88C224.804%2044.88%20225.49%2045.0533%20226.09%2045.4C226.704%2045.7467%20227.184%2046.2333%20227.53%2046.86C227.877%2047.4733%20228.05%2048.1867%20228.05%2049V56H225.43V49.62C225.43%2049.14%20225.344%2048.7267%20225.17%2048.38C224.997%2048.0333%20224.757%2047.7667%20224.45%2047.58C224.144%2047.38%20223.77%2047.28%20223.33%2047.28C222.917%2047.28%20222.55%2047.38%20222.23%2047.58C221.91%2047.7667%20221.664%2048.0333%20221.49%2048.38C221.317%2048.7267%20221.23%2049.14%20221.23%2049.62V56H218.61V49.62C218.61%2049.14%20218.524%2048.7267%20218.35%2048.38C218.177%2048.0333%20217.93%2047.7667%20217.61%2047.58C217.304%2047.38%20216.937%2047.28%20216.51%2047.28C216.097%2047.28%20215.73%2047.38%20215.41%2047.58C215.09%2047.7667%20214.844%2048.0333%20214.67%2048.38C214.497%2048.7267%20214.41%2049.14%20214.41%2049.62V56H211.79ZM230.267%2056V45.12H232.887V56H230.267ZM230.267%2043.9V41.1H232.887V43.9H230.267ZM235.306%2056V45.12H237.766V47.26L237.566%2046.88C237.819%2046.2267%20238.233%2045.7333%20238.806%2045.4C239.393%2045.0533%20240.073%2044.88%20240.846%2044.88C241.646%2044.88%20242.353%2045.0533%20242.966%2045.4C243.593%2045.7467%20244.079%2046.2333%20244.426%2046.86C244.773%2047.4733%20244.946%2048.1867%20244.946%2049V56H242.326V49.62C242.326%2049.14%20242.233%2048.7267%20242.046%2048.38C241.859%2048.0333%20241.599%2047.7667%20241.266%2047.58C240.946%2047.38%20240.566%2047.28%20240.126%2047.28C239.699%2047.28%20239.319%2047.38%20238.986%2047.58C238.653%2047.7667%20238.393%2048.0333%20238.206%2048.38C238.019%2048.7267%20237.926%2049.14%20237.926%2049.62V56H235.306Z'%20fill='%23181918'/%3e%3cpath%20d='M160.872%2079.168C160.228%2079.168%20159.645%2079.0233%20159.122%2078.734C158.609%2078.4353%20158.221%2078.0153%20157.96%2077.474L158.128%2077.32V79H157.078V68.402H158.128V73.176L157.96%2072.882C158.259%2072.406%20158.655%2072.028%20159.15%2071.748C159.654%2071.468%20160.228%2071.328%20160.872%2071.328C161.581%2071.328%20162.211%2071.5007%20162.762%2071.846C163.322%2072.182%20163.761%2072.644%20164.078%2073.232C164.405%2073.82%20164.568%2074.492%20164.568%2075.248C164.568%2075.9947%20164.405%2076.6667%20164.078%2077.264C163.761%2077.852%20163.322%2078.3187%20162.762%2078.664C162.211%2079%20161.581%2079.168%20160.872%2079.168ZM160.816%2078.118C161.32%2078.118%20161.768%2077.992%20162.16%2077.74C162.561%2077.488%20162.874%2077.1473%20163.098%2076.718C163.331%2076.2793%20163.448%2075.7893%20163.448%2075.248C163.448%2074.6973%20163.331%2074.2073%20163.098%2073.778C162.874%2073.3487%20162.561%2073.008%20162.16%2072.756C161.768%2072.504%20161.32%2072.378%20160.816%2072.378C160.312%2072.378%20159.855%2072.504%20159.444%2072.756C159.043%2073.008%20158.721%2073.3533%20158.478%2073.792C158.245%2074.2213%20158.128%2074.7067%20158.128%2075.248C158.128%2075.7893%20158.245%2076.2793%20158.478%2076.718C158.721%2077.1473%20159.043%2077.488%20159.444%2077.74C159.855%2077.992%20160.312%2078.118%20160.816%2078.118ZM169.832%2079.168C169.132%2079.168%20168.497%2079%20167.928%2078.664C167.368%2078.3187%20166.925%2077.8473%20166.598%2077.25C166.271%2076.6527%20166.108%2075.976%20166.108%2075.22C166.108%2074.464%20166.267%2073.7967%20166.584%2073.218C166.901%2072.63%20167.331%2072.168%20167.872%2071.832C168.423%2071.496%20169.039%2071.328%20169.72%2071.328C170.261%2071.328%20170.742%2071.4307%20171.162%2071.636C171.591%2071.832%20171.955%2072.1027%20172.254%2072.448C172.553%2072.784%20172.781%2073.1667%20172.94%2073.596C173.099%2074.016%20173.178%2074.45%20173.178%2074.898C173.178%2074.9913%20173.173%2075.0987%20173.164%2075.22C173.155%2075.332%20173.141%2075.4487%20173.122%2075.57H166.78V74.59H172.52L172.016%2075.01C172.1%2074.4967%20172.039%2074.0393%20171.834%2073.638C171.638%2073.2273%20171.353%2072.9053%20170.98%2072.672C170.607%2072.4293%20170.187%2072.308%20169.72%2072.308C169.253%2072.308%20168.819%2072.4293%20168.418%2072.672C168.026%2072.9147%20167.718%2073.2553%20167.494%2073.694C167.27%2074.1233%20167.181%2074.6367%20167.228%2075.234C167.181%2075.8313%20167.275%2076.354%20167.508%2076.802C167.751%2077.2407%20168.077%2077.5813%20168.488%2077.824C168.908%2078.0667%20169.356%2078.188%20169.832%2078.188C170.383%2078.188%20170.845%2078.0573%20171.218%2077.796C171.591%2077.5347%20171.895%2077.208%20172.128%2076.816L173.024%2077.292C172.875%2077.628%20172.646%2077.9407%20172.338%2078.23C172.03%2078.51%20171.661%2078.7387%20171.232%2078.916C170.812%2079.084%20170.345%2079.168%20169.832%2079.168ZM175.029%2079V71.496H176.079V72.952L175.841%2072.896C176.028%2072.4107%20176.331%2072.028%20176.751%2071.748C177.181%2071.468%20177.675%2071.328%20178.235%2071.328C178.767%2071.328%20179.243%2071.4493%20179.663%2071.692C180.093%2071.9347%20180.429%2072.2707%20180.671%2072.7C180.923%2073.12%20181.049%2073.596%20181.049%2074.128V79H179.999V74.534C179.999%2074.0767%20179.915%2073.6893%20179.747%2073.372C179.589%2073.0547%20179.36%2072.812%20179.061%2072.644C178.772%2072.4667%20178.436%2072.378%20178.053%2072.378C177.671%2072.378%20177.33%2072.4667%20177.031%2072.644C176.733%2072.812%20176.499%2073.0593%20176.331%2073.386C176.163%2073.7033%20176.079%2074.086%20176.079%2074.534V79H175.029ZM188.725%2081.898C187.903%2081.898%20187.138%2081.7487%20186.429%2081.45C185.729%2081.1607%20185.113%2080.75%20184.581%2080.218C184.049%2079.686%20183.633%2079.07%20183.335%2078.37C183.045%2077.6607%20182.901%2076.9%20182.901%2076.088C182.901%2075.276%20183.05%2074.52%20183.349%2073.82C183.647%2073.12%20184.058%2072.5087%20184.581%2071.986C185.113%2071.4633%20185.733%2071.0573%20186.443%2070.768C187.152%2070.4693%20187.913%2070.32%20188.725%2070.32C189.565%2070.32%20190.339%2070.4787%20191.049%2070.796C191.758%2071.104%20192.369%2071.5287%20192.883%2072.07C193.405%2072.602%20193.807%2073.2087%20194.087%2073.89C194.376%2074.5713%20194.521%2075.2853%20194.521%2076.032C194.521%2076.62%20194.427%2077.138%20194.241%2077.586C194.063%2078.0247%20193.802%2078.37%20193.457%2078.622C193.111%2078.874%20192.696%2079%20192.211%2079C191.921%2079%20191.646%2078.9487%20191.385%2078.846C191.123%2078.734%20190.899%2078.58%20190.713%2078.384C190.535%2078.1787%20190.414%2077.936%20190.349%2077.656L190.573%2077.838C190.423%2078.09%20190.237%2078.3047%20190.013%2078.482C189.798%2078.65%20189.555%2078.7807%20189.285%2078.874C189.014%2078.958%20188.72%2079%20188.403%2079C187.861%2079%20187.371%2078.8693%20186.933%2078.608C186.503%2078.3467%20186.163%2077.992%20185.911%2077.544C185.659%2077.096%20185.533%2076.5873%20185.533%2076.018C185.533%2075.4487%20185.659%2074.94%20185.911%2074.492C186.163%2074.044%20186.503%2073.6893%20186.933%2073.428C187.371%2073.1573%20187.861%2073.022%20188.403%2073.022C188.86%2073.022%20189.275%2073.1153%20189.649%2073.302C190.031%2073.4887%20190.335%2073.75%20190.559%2074.086L190.461%2074.254V73.162H191.371V77.026C191.371%2077.3713%20191.445%2077.6233%20191.595%2077.782C191.753%2077.9407%20191.963%2078.02%20192.225%2078.02C192.617%2078.02%20192.92%2077.8567%20193.135%2077.53C193.359%2077.2033%20193.471%2076.7133%20193.471%2076.06C193.471%2075.388%20193.354%2074.7627%20193.121%2074.184C192.887%2073.6053%20192.561%2073.1013%20192.141%2072.672C191.721%2072.2427%20191.221%2071.9067%20190.643%2071.664C190.064%2071.4213%20189.425%2071.3%20188.725%2071.3C188.043%2071.3%20187.409%2071.4213%20186.821%2071.664C186.242%2071.8973%20185.738%2072.2287%20185.309%2072.658C184.879%2073.0873%20184.543%2073.5913%20184.301%2074.17C184.067%2074.7487%20183.951%2075.3833%20183.951%2076.074C183.951%2076.746%20184.063%2077.376%20184.287%2077.964C184.52%2078.5427%20184.847%2079.0513%20185.267%2079.49C185.696%2079.938%20186.205%2080.288%20186.793%2080.54C187.381%2080.792%20188.034%2080.918%20188.753%2080.918C189.173%2080.918%20189.579%2080.8713%20189.971%2080.778C190.363%2080.694%20190.717%2080.5633%20191.035%2080.386L191.483%2081.226C190.689%2081.674%20189.77%2081.898%20188.725%2081.898ZM188.445%2078.02C188.809%2078.02%20189.131%2077.9313%20189.411%2077.754C189.691%2077.5767%20189.91%2077.3387%20190.069%2077.04C190.237%2076.732%20190.321%2076.3867%20190.321%2076.004C190.321%2075.4253%20190.143%2074.954%20189.789%2074.59C189.434%2074.2167%20188.986%2074.03%20188.445%2074.03C188.09%2074.03%20187.768%2074.1187%20187.479%2074.296C187.199%2074.464%20186.979%2074.6973%20186.821%2074.996C186.662%2075.2947%20186.583%2075.6353%20186.583%2076.018C186.583%2076.3913%20186.662%2076.732%20186.821%2077.04C186.989%2077.3387%20187.213%2077.5767%20187.493%2077.754C187.773%2077.9313%20188.09%2078.02%20188.445%2078.02ZM198.661%2079.168C197.942%2079.168%20197.312%2078.986%20196.771%2078.622C196.229%2078.258%20195.837%2077.7633%20195.595%2077.138L196.477%2076.718C196.691%2077.1753%20196.99%2077.5393%20197.373%2077.81C197.765%2078.0807%20198.194%2078.216%20198.661%2078.216C199.109%2078.216%20199.487%2078.1087%20199.795%2077.894C200.103%2077.67%20200.257%2077.3807%20200.257%2077.026C200.257%2076.7647%20200.182%2076.5593%20200.033%2076.41C199.883%2076.2513%20199.711%2076.13%20199.515%2076.046C199.319%2075.962%20199.146%2075.9013%20198.997%2075.864L197.919%2075.556C197.228%2075.36%20196.729%2075.0847%20196.421%2074.73C196.113%2074.3753%20195.959%2073.9647%20195.959%2073.498C195.959%2073.0593%20196.071%2072.6767%20196.295%2072.35C196.519%2072.0233%20196.822%2071.7713%20197.205%2071.594C197.587%2071.4167%20198.012%2071.328%20198.479%2071.328C199.113%2071.328%20199.687%2071.496%20200.201%2071.832C200.723%2072.1587%20201.092%2072.616%20201.307%2073.204L200.411%2073.624C200.224%2073.204%20199.953%2072.8773%20199.599%2072.644C199.253%2072.4013%20198.866%2072.28%20198.437%2072.28C198.017%2072.28%20197.681%2072.3873%20197.429%2072.602C197.177%2072.8167%20197.051%2073.0873%20197.051%2073.414C197.051%2073.666%20197.116%2073.8667%20197.247%2074.016C197.377%2074.1653%20197.527%2074.2773%20197.695%2074.352C197.872%2074.4267%20198.026%2074.4827%20198.157%2074.52L199.403%2074.884C200.009%2075.0613%20200.481%2075.3367%20200.817%2075.71C201.162%2076.0833%20201.335%2076.522%20201.335%2077.026C201.335%2077.4367%20201.218%2077.8053%20200.985%2078.132C200.761%2078.4587%20200.448%2078.7153%20200.047%2078.902C199.645%2079.0793%20199.183%2079.168%20198.661%2079.168ZM203.18%2079V68.402H204.23V72.952L203.992%2072.896C204.178%2072.4107%20204.482%2072.028%20204.902%2071.748C205.331%2071.468%20205.826%2071.328%20206.386%2071.328C206.918%2071.328%20207.394%2071.4493%20207.814%2071.692C208.243%2071.9347%20208.579%2072.2707%20208.822%2072.7C209.074%2073.12%20209.2%2073.596%20209.2%2074.128V79H208.15V74.534C208.15%2074.0767%20208.066%2073.6893%20207.898%2073.372C207.73%2073.0547%20207.496%2072.812%20207.198%2072.644C206.908%2072.4667%20206.577%2072.378%20206.204%2072.378C205.83%2072.378%20205.494%2072.4667%20205.196%2072.644C204.897%2072.812%20204.659%2073.0593%20204.482%2073.386C204.314%2073.7033%20204.23%2074.086%20204.23%2074.534V79H203.18ZM214.621%2079.168C213.921%2079.168%20213.286%2079%20212.717%2078.664C212.157%2078.3187%20211.714%2077.8473%20211.387%2077.25C211.06%2076.6527%20210.897%2075.976%20210.897%2075.22C210.897%2074.464%20211.056%2073.7967%20211.373%2073.218C211.69%2072.63%20212.12%2072.168%20212.661%2071.832C213.212%2071.496%20213.828%2071.328%20214.509%2071.328C215.05%2071.328%20215.531%2071.4307%20215.951%2071.636C216.38%2071.832%20216.744%2072.1027%20217.043%2072.448C217.342%2072.784%20217.57%2073.1667%20217.729%2073.596C217.888%2074.016%20217.967%2074.45%20217.967%2074.898C217.967%2074.9913%20217.962%2075.0987%20217.953%2075.22C217.944%2075.332%20217.93%2075.4487%20217.911%2075.57H211.569V74.59H217.309L216.805%2075.01C216.889%2074.4967%20216.828%2074.0393%20216.623%2073.638C216.427%2073.2273%20216.142%2072.9053%20215.769%2072.672C215.396%2072.4293%20214.976%2072.308%20214.509%2072.308C214.042%2072.308%20213.608%2072.4293%20213.207%2072.672C212.815%2072.9147%20212.507%2073.2553%20212.283%2073.694C212.059%2074.1233%20211.97%2074.6367%20212.017%2075.234C211.97%2075.8313%20212.064%2076.354%20212.297%2076.802C212.54%2077.2407%20212.866%2077.5813%20213.277%2077.824C213.697%2078.0667%20214.145%2078.188%20214.621%2078.188C215.172%2078.188%20215.634%2078.0573%20216.007%2077.796C216.38%2077.5347%20216.684%2077.208%20216.917%2076.816L217.813%2077.292C217.664%2077.628%20217.435%2077.9407%20217.127%2078.23C216.819%2078.51%20216.45%2078.7387%20216.021%2078.916C215.601%2079.084%20215.134%2079.168%20214.621%2079.168ZM219.818%2079V68.402H220.868V75.822L220.42%2075.752L224.634%2071.496H225.992L223.052%2074.506L226.258%2079H224.998L221.988%2074.842L222.66%2074.898L220.518%2077.11L220.868%2076.242V79H219.818ZM230.767%2079.168C230.067%2079.168%20229.433%2079%20228.863%2078.664C228.303%2078.3187%20227.86%2077.8473%20227.533%2077.25C227.207%2076.6527%20227.043%2075.976%20227.043%2075.22C227.043%2074.464%20227.202%2073.7967%20227.519%2073.218C227.837%2072.63%20228.266%2072.168%20228.807%2071.832C229.358%2071.496%20229.974%2071.328%20230.655%2071.328C231.197%2071.328%20231.677%2071.4307%20232.097%2071.636C232.527%2071.832%20232.891%2072.1027%20233.189%2072.448C233.488%2072.784%20233.717%2073.1667%20233.875%2073.596C234.034%2074.016%20234.113%2074.45%20234.113%2074.898C234.113%2074.9913%20234.109%2075.0987%20234.099%2075.22C234.09%2075.332%20234.076%2075.4487%20234.057%2075.57H227.715V74.59H233.455L232.951%2075.01C233.035%2074.4967%20232.975%2074.0393%20232.769%2073.638C232.573%2073.2273%20232.289%2072.9053%20231.915%2072.672C231.542%2072.4293%20231.122%2072.308%20230.655%2072.308C230.189%2072.308%20229.755%2072.4293%20229.353%2072.672C228.961%2072.9147%20228.653%2073.2553%20228.429%2073.694C228.205%2074.1233%20228.117%2074.6367%20228.163%2075.234C228.117%2075.8313%20228.21%2076.354%20228.443%2076.802C228.686%2077.2407%20229.013%2077.5813%20229.423%2077.824C229.843%2078.0667%20230.291%2078.188%20230.767%2078.188C231.318%2078.188%20231.78%2078.0573%20232.153%2077.796C232.527%2077.5347%20232.83%2077.208%20233.063%2076.816L233.959%2077.292C233.81%2077.628%20233.581%2077.9407%20233.273%2078.23C232.965%2078.51%20232.597%2078.7387%20232.167%2078.916C231.747%2079.084%20231.281%2079.168%20230.767%2079.168ZM235.965%2079V68.402H237.015V79H235.965ZM239.528%2079V77.46H240.648V79H239.528ZM245.34%2079.168C244.864%2079.168%20244.439%2079.0793%20244.066%2078.902C243.692%2078.7153%20243.398%2078.4633%20243.184%2078.146C242.969%2077.8287%20242.862%2077.4647%20242.862%2077.054C242.862%2076.662%20242.946%2076.3073%20243.114%2075.99C243.282%2075.6633%20243.543%2075.388%20243.898%2075.164C244.252%2074.94%20244.705%2074.7813%20245.256%2074.688L248.196%2074.198V75.15L245.508%2075.598C244.966%2075.6913%20244.574%2075.864%20244.332%2076.116C244.098%2076.368%20243.982%2076.6667%20243.982%2077.012C243.982%2077.348%20244.112%2077.6327%20244.374%2077.866C244.644%2078.0993%20244.99%2078.216%20245.41%2078.216C245.923%2078.216%20246.371%2078.1087%20246.754%2077.894C247.136%2077.67%20247.435%2077.3713%20247.65%2076.998C247.864%2076.6247%20247.972%2076.2093%20247.972%2075.752V73.848C247.972%2073.4%20247.808%2073.036%20247.482%2072.756C247.155%2072.476%20246.73%2072.336%20246.208%2072.336C245.75%2072.336%20245.349%2072.4527%20245.004%2072.686C244.658%2072.91%20244.402%2073.204%20244.234%2073.568L243.282%2073.05C243.422%2072.7327%20243.641%2072.4433%20243.94%2072.182C244.248%2071.9207%20244.598%2071.7153%20244.99%2071.566C245.382%2071.4073%20245.788%2071.328%20246.208%2071.328C246.758%2071.328%20247.244%2071.4353%20247.664%2071.65C248.093%2071.8647%20248.424%2072.1633%20248.658%2072.546C248.9%2072.9193%20249.022%2073.3533%20249.022%2073.848V79H247.972V77.502L248.126%2077.656C247.995%2077.936%20247.79%2078.1927%20247.51%2078.426C247.239%2078.65%20246.917%2078.832%20246.544%2078.972C246.18%2079.1027%20245.778%2079.168%20245.34%2079.168ZM251.952%2079V72.546H250.454V71.496H251.952V70.824C251.952%2070.3013%20252.068%2069.8627%20252.302%2069.508C252.535%2069.144%20252.843%2068.8687%20253.226%2068.682C253.608%2068.4953%20254.019%2068.402%20254.458%2068.402C254.551%2068.402%20254.658%2068.4113%20254.78%2068.43C254.901%2068.4393%20254.999%2068.4533%20255.074%2068.472V69.424C255.008%2069.4053%20254.92%2069.396%20254.808%2069.396C254.696%2069.3867%20254.616%2069.382%20254.57%2069.382C254.122%2069.382%20253.748%2069.4893%20253.45%2069.704C253.151%2069.9187%20253.002%2070.292%20253.002%2070.824V71.496H254.836V72.546H253.002V79H251.952ZM256.541%2079V71.496H257.591V72.728L257.451%2072.546C257.628%2072.1913%20257.894%2071.9113%20258.249%2071.706C258.613%2071.5007%20259.052%2071.398%20259.565%2071.398H260.041V72.448H259.383C258.842%2072.448%20258.408%2072.616%20258.081%2072.952C257.754%2073.288%20257.591%2073.764%20257.591%2074.38V79H256.541ZM261.271%2079V71.496H262.321V79H261.271ZM261.271%2070.11V68.57H262.321V70.11H261.271ZM267.901%2079.168C267.163%2079.168%20266.515%2078.9953%20265.955%2078.65C265.395%2078.3047%20264.956%2077.838%20264.639%2077.25C264.321%2076.6527%20264.163%2075.9807%20264.163%2075.234C264.163%2074.4873%20264.321%2073.82%20264.639%2073.232C264.956%2072.644%20265.395%2072.182%20265.955%2071.846C266.515%2071.5007%20267.163%2071.328%20267.901%2071.328C268.367%2071.328%20268.806%2071.412%20269.217%2071.58C269.627%2071.748%20269.991%2071.9767%20270.309%2072.266C270.626%2072.546%20270.864%2072.8727%20271.023%2073.246L270.071%2073.736C269.884%2073.3347%20269.599%2073.008%20269.217%2072.756C268.834%2072.504%20268.395%2072.378%20267.901%2072.378C267.406%2072.378%20266.958%2072.504%20266.557%2072.756C266.165%2072.9987%20265.852%2073.3393%20265.619%2073.778C265.395%2074.2073%20265.283%2074.6973%20265.283%2075.248C265.283%2075.7893%20265.395%2076.2793%20265.619%2076.718C265.852%2077.1473%20266.165%2077.488%20266.557%2077.74C266.958%2077.992%20267.406%2078.118%20267.901%2078.118C268.395%2078.118%20268.829%2077.992%20269.203%2077.74C269.585%2077.488%20269.875%2077.152%20270.071%2076.732L271.023%2077.25C270.864%2077.614%20270.626%2077.9407%20270.309%2078.23C269.991%2078.5193%20269.627%2078.748%20269.217%2078.916C268.806%2079.084%20268.367%2079.168%20267.901%2079.168ZM274.898%2079.168C274.422%2079.168%20273.998%2079.0793%20273.624%2078.902C273.251%2078.7153%20272.957%2078.4633%20272.742%2078.146C272.528%2077.8287%20272.42%2077.4647%20272.42%2077.054C272.42%2076.662%20272.504%2076.3073%20272.672%2075.99C272.84%2075.6633%20273.102%2075.388%20273.456%2075.164C273.811%2074.94%20274.264%2074.7813%20274.814%2074.688L277.754%2074.198V75.15L275.066%2075.598C274.525%2075.6913%20274.133%2075.864%20273.89%2076.116C273.657%2076.368%20273.54%2076.6667%20273.54%2077.012C273.54%2077.348%20273.671%2077.6327%20273.932%2077.866C274.203%2078.0993%20274.548%2078.216%20274.968%2078.216C275.482%2078.216%20275.93%2078.1087%20276.312%2077.894C276.695%2077.67%20276.994%2077.3713%20277.208%2076.998C277.423%2076.6247%20277.53%2076.2093%20277.53%2075.752V73.848C277.53%2073.4%20277.367%2073.036%20277.04%2072.756C276.714%2072.476%20276.289%2072.336%20275.766%2072.336C275.309%2072.336%20274.908%2072.4527%20274.562%2072.686C274.217%2072.91%20273.96%2073.204%20273.792%2073.568L272.84%2073.05C272.98%2072.7327%20273.2%2072.4433%20273.498%2072.182C273.806%2071.9207%20274.156%2071.7153%20274.548%2071.566C274.94%2071.4073%20275.346%2071.328%20275.766%2071.328C276.317%2071.328%20276.802%2071.4353%20277.222%2071.65C277.652%2071.8647%20277.983%2072.1633%20278.216%2072.546C278.459%2072.9193%20278.58%2073.3533%20278.58%2073.848V79H277.53V77.502L277.684%2077.656C277.554%2077.936%20277.348%2078.1927%20277.068%2078.426C276.798%2078.65%20276.476%2078.832%20276.102%2078.972C275.738%2079.1027%20275.337%2079.168%20274.898%2079.168Z'%20fill='%23181918'/%3e%3cpath%20d='M161.992%20100.168C161.255%20100.168%20160.578%20100.037%20159.962%2099.776C159.346%2099.5053%20158.809%2099.132%20158.352%2098.656C157.904%2098.1707%20157.554%2097.6013%20157.302%2096.948C157.05%2096.2947%20156.924%2095.576%20156.924%2094.792C156.924%2094.008%20157.05%2093.2893%20157.302%2092.636C157.554%2091.9827%20157.904%2091.4133%20158.352%2090.928C158.809%2090.4427%20159.346%2090.0693%20159.962%2089.808C160.578%2089.5373%20161.255%2089.402%20161.992%2089.402C162.701%2089.402%20163.336%2089.528%20163.896%2089.78C164.465%2090.032%20164.941%2090.3587%20165.324%2090.76C165.716%2091.152%20165.996%2091.5673%20166.164%2092.006L165.114%2092.468C164.853%2091.8613%20164.451%2091.376%20163.91%2091.012C163.378%2090.6387%20162.739%2090.452%20161.992%2090.452C161.227%2090.452%20160.545%2090.634%20159.948%2090.998C159.351%2091.362%20158.884%2091.8707%20158.548%2092.524C158.212%2093.168%20158.044%2093.924%20158.044%2094.792C158.044%2095.6507%20158.212%2096.4067%20158.548%2097.06C158.884%2097.7133%20159.351%2098.222%20159.948%2098.586C160.545%2098.9407%20161.227%2099.118%20161.992%2099.118C162.739%2099.118%20163.378%2098.936%20163.91%2098.572C164.451%2098.208%20164.853%2097.7227%20165.114%2097.116L166.164%2097.578C165.996%2098.0073%20165.716%2098.4227%20165.324%2098.824C164.941%2099.216%20164.465%2099.538%20163.896%2099.79C163.336%20100.042%20162.701%20100.168%20161.992%20100.168ZM171.393%20100.168C170.683%20100.168%20170.039%20100%20169.461%2099.664C168.882%2099.3187%20168.42%2098.852%20168.075%2098.264C167.739%2097.6667%20167.571%2096.99%20167.571%2096.234C167.571%2095.4873%20167.739%2094.82%20168.075%2094.232C168.411%2093.644%20168.863%2093.182%20169.433%2092.846C170.011%2092.5007%20170.665%2092.328%20171.393%2092.328C172.121%2092.328%20172.769%2092.496%20173.339%2092.832C173.917%2093.168%20174.37%2093.63%20174.697%2094.218C175.033%2094.806%20175.201%2095.478%20175.201%2096.234C175.201%2096.9993%20175.028%2097.6807%20174.683%2098.278C174.337%2098.866%20173.875%2099.328%20173.297%2099.664C172.727%20100%20172.093%20100.168%20171.393%20100.168ZM171.393%2099.118C171.897%2099.118%20172.349%2098.992%20172.751%2098.74C173.161%2098.488%20173.483%2098.1427%20173.717%2097.704C173.959%2097.2653%20174.081%2096.7753%20174.081%2096.234C174.081%2095.6927%20173.959%2095.2073%20173.717%2094.778C173.483%2094.3487%20173.161%2094.008%20172.751%2093.756C172.349%2093.504%20171.897%2093.378%20171.393%2093.378C170.889%2093.378%20170.431%2093.504%20170.021%2093.756C169.619%2094.008%20169.297%2094.3487%20169.055%2094.778C168.812%2095.2073%20168.691%2095.6927%20168.691%2096.234C168.691%2096.7753%20168.812%2097.2653%20169.055%2097.704C169.297%2098.1427%20169.619%2098.488%20170.021%2098.74C170.431%2098.992%20170.889%2099.118%20171.393%2099.118ZM177.417%20100V98.46H178.537V100H177.417ZM184.207%20100V93.546H182.709V92.496H184.207V91.824C184.207%2091.3013%20184.324%2090.8627%20184.557%2090.508C184.791%2090.144%20185.099%2089.8687%20185.481%2089.682C185.864%2089.4953%20186.275%2089.402%20186.713%2089.402C186.807%2089.402%20186.914%2089.4113%20187.035%2089.43C187.157%2089.4393%20187.255%2089.4533%20187.329%2089.472V90.424C187.264%2090.4053%20187.175%2090.396%20187.063%2090.396C186.951%2090.3867%20186.872%2090.382%20186.825%2090.382C186.377%2090.382%20186.004%2090.4893%20185.705%2090.704C185.407%2090.9187%20185.257%2091.292%20185.257%2091.824V92.496H187.091V93.546H185.257V100H184.207ZM192.024%20100.168C191.314%20100.168%20190.67%20100%20190.092%2099.664C189.513%2099.3187%20189.051%2098.852%20188.706%2098.264C188.37%2097.6667%20188.202%2096.99%20188.202%2096.234C188.202%2095.4873%20188.37%2094.82%20188.706%2094.232C189.042%2093.644%20189.494%2093.182%20190.064%2092.846C190.642%2092.5007%20191.296%2092.328%20192.024%2092.328C192.752%2092.328%20193.4%2092.496%20193.97%2092.832C194.548%2093.168%20195.001%2093.63%20195.328%2094.218C195.664%2094.806%20195.832%2095.478%20195.832%2096.234C195.832%2096.9993%20195.659%2097.6807%20195.314%2098.278C194.968%2098.866%20194.506%2099.328%20193.928%2099.664C193.358%20100%20192.724%20100.168%20192.024%20100.168ZM192.024%2099.118C192.528%2099.118%20192.98%2098.992%20193.382%2098.74C193.792%2098.488%20194.114%2098.1427%20194.348%2097.704C194.59%2097.2653%20194.712%2096.7753%20194.712%2096.234C194.712%2095.6927%20194.59%2095.2073%20194.348%2094.778C194.114%2094.3487%20193.792%2094.008%20193.382%2093.756C192.98%2093.504%20192.528%2093.378%20192.024%2093.378C191.52%2093.378%20191.062%2093.504%20190.652%2093.756C190.25%2094.008%20189.928%2094.3487%20189.686%2094.778C189.443%2095.2073%20189.322%2095.6927%20189.322%2096.234C189.322%2096.7753%20189.443%2097.2653%20189.686%2097.704C189.928%2098.1427%20190.25%2098.488%20190.652%2098.74C191.062%2098.992%20191.52%2099.118%20192.024%2099.118ZM200.343%20100.168C199.821%20100.168%20199.345%20100.047%20198.915%2099.804C198.486%2099.552%20198.145%2099.2067%20197.893%2098.768C197.651%2098.32%20197.529%2097.8067%20197.529%2097.228V92.496H198.579V97.102C198.579%2097.5033%20198.659%2097.858%20198.817%2098.166C198.985%2098.4647%20199.214%2098.698%20199.503%2098.866C199.802%2099.034%20200.143%2099.118%20200.525%2099.118C200.908%2099.118%20201.249%2099.034%20201.547%2098.866C201.846%2098.6887%20202.079%2098.4413%20202.247%2098.124C202.415%2097.7973%20202.499%2097.41%20202.499%2096.962V92.496H203.549V100H202.499V98.544L202.737%2098.6C202.56%2099.0853%20202.257%2099.468%20201.827%2099.748C201.398%20100.028%20200.903%20100.168%20200.343%20100.168ZM205.709%20100V92.496H206.759V93.952L206.521%2093.896C206.708%2093.4107%20207.011%2093.028%20207.431%2092.748C207.86%2092.468%20208.355%2092.328%20208.915%2092.328C209.447%2092.328%20209.923%2092.4493%20210.343%2092.692C210.772%2092.9347%20211.108%2093.2707%20211.351%2093.7C211.603%2094.12%20211.729%2094.596%20211.729%2095.128V100H210.679V95.534C210.679%2095.0767%20210.595%2094.6893%20210.427%2094.372C210.268%2094.0547%20210.04%2093.812%20209.741%2093.644C209.452%2093.4667%20209.116%2093.378%20208.733%2093.378C208.35%2093.378%20208.01%2093.4667%20207.711%2093.644C207.412%2093.812%20207.179%2094.0593%20207.011%2094.386C206.843%2094.7033%20206.759%2095.086%20206.759%2095.534V100H205.709ZM217.122%20100.168C216.422%20100.168%20215.792%20100%20215.232%2099.664C214.672%2099.3187%20214.229%2098.852%20213.902%2098.264C213.585%2097.6667%20213.426%2096.9947%20213.426%2096.248C213.426%2095.492%20213.585%2094.82%20213.902%2094.232C214.229%2093.644%20214.668%2093.182%20215.218%2092.846C215.778%2092.5007%20216.413%2092.328%20217.122%2092.328C217.766%2092.328%20218.34%2092.468%20218.844%2092.748C219.348%2093.028%20219.745%2093.406%20220.034%2093.882L219.866%2094.176V89.402H220.916V100H219.866V98.32L220.034%2098.474C219.773%2099.0153%20219.381%2099.4353%20218.858%2099.734C218.345%20100.023%20217.766%20100.168%20217.122%20100.168ZM217.178%2099.118C217.682%2099.118%20218.135%2098.992%20218.536%2098.74C218.947%2098.488%20219.269%2098.1473%20219.502%2097.718C219.745%2097.2793%20219.866%2096.7893%20219.866%2096.248C219.866%2095.7067%20219.745%2095.2213%20219.502%2094.792C219.269%2094.3533%20218.947%2094.008%20218.536%2093.756C218.135%2093.504%20217.682%2093.378%20217.178%2093.378C216.684%2093.378%20216.236%2093.504%20215.834%2093.756C215.433%2094.008%20215.116%2094.3487%20214.882%2094.778C214.658%2095.2073%20214.546%2095.6973%20214.546%2096.248C214.546%2096.7893%20214.658%2097.2793%20214.882%2097.718C215.116%2098.1473%20215.428%2098.488%20215.82%2098.74C216.222%2098.992%20216.674%2099.118%20217.178%2099.118ZM226.488%20100.168C225.788%20100.168%20225.153%20100%20224.584%2099.664C224.024%2099.3187%20223.581%2098.8473%20223.254%2098.25C222.927%2097.6527%20222.764%2096.976%20222.764%2096.22C222.764%2095.464%20222.923%2094.7967%20223.24%2094.218C223.557%2093.63%20223.987%2093.168%20224.528%2092.832C225.079%2092.496%20225.695%2092.328%20226.376%2092.328C226.917%2092.328%20227.398%2092.4307%20227.818%2092.636C228.247%2092.832%20228.611%2093.1027%20228.91%2093.448C229.209%2093.784%20229.437%2094.1667%20229.596%2094.596C229.755%2095.016%20229.834%2095.45%20229.834%2095.898C229.834%2095.9913%20229.829%2096.0987%20229.82%2096.22C229.811%2096.332%20229.797%2096.4487%20229.778%2096.57H223.436V95.59H229.176L228.672%2096.01C228.756%2095.4967%20228.695%2095.0393%20228.49%2094.638C228.294%2094.2273%20228.009%2093.9053%20227.636%2093.672C227.263%2093.4293%20226.843%2093.308%20226.376%2093.308C225.909%2093.308%20225.475%2093.4293%20225.074%2093.672C224.682%2093.9147%20224.374%2094.2553%20224.15%2094.694C223.926%2095.1233%20223.837%2095.6367%20223.884%2096.234C223.837%2096.8313%20223.931%2097.354%20224.164%2097.802C224.407%2098.2407%20224.733%2098.5813%20225.144%2098.824C225.564%2099.0667%20226.012%2099.188%20226.488%2099.188C227.039%2099.188%20227.501%2099.0573%20227.874%2098.796C228.247%2098.5347%20228.551%2098.208%20228.784%2097.816L229.68%2098.292C229.531%2098.628%20229.302%2098.9407%20228.994%2099.23C228.686%2099.51%20228.317%2099.7387%20227.888%2099.916C227.468%20100.084%20227.001%20100.168%20226.488%20100.168ZM231.685%20100V92.496H232.735V93.728L232.595%2093.546C232.773%2093.1913%20233.039%2092.9113%20233.393%2092.706C233.757%2092.5007%20234.196%2092.398%20234.709%2092.398H235.185V93.448H234.527C233.986%2093.448%20233.552%2093.616%20233.225%2093.952C232.899%2094.288%20232.735%2094.764%20232.735%2095.38V100H231.685Z'%20fill='%23181918'/%3e%3ccircle%20cx='243.5'%20cy='94'%20r='2.5'%20fill='%23181918'/%3e%3cpath%20d='M256.992%20100.168C256.255%20100.168%20255.578%20100.037%20254.962%2099.776C254.346%2099.5053%20253.809%2099.132%20253.352%2098.656C252.904%2098.1707%20252.554%2097.6013%20252.302%2096.948C252.05%2096.2947%20251.924%2095.576%20251.924%2094.792C251.924%2094.008%20252.05%2093.2893%20252.302%2092.636C252.554%2091.9827%20252.904%2091.4133%20253.352%2090.928C253.809%2090.4427%20254.346%2090.0693%20254.962%2089.808C255.578%2089.5373%20256.255%2089.402%20256.992%2089.402C257.701%2089.402%20258.336%2089.528%20258.896%2089.78C259.465%2090.032%20259.941%2090.3587%20260.324%2090.76C260.716%2091.152%20260.996%2091.5673%20261.164%2092.006L260.156%2092.496C259.895%2091.8613%20259.493%2091.362%20258.952%2090.998C258.411%2090.634%20257.757%2090.452%20256.992%2090.452C256.227%2090.452%20255.545%2090.634%20254.948%2090.998C254.351%2091.362%20253.884%2091.8707%20253.548%2092.524C253.212%2093.168%20253.044%2093.924%20253.044%2094.792C253.044%2095.6507%20253.212%2096.4067%20253.548%2097.06C253.884%2097.7133%20254.351%2098.222%20254.948%2098.586C255.545%2098.9407%20256.227%2099.118%20256.992%2099.118C257.673%2099.118%20258.285%2098.9687%20258.826%2098.67C259.377%2098.3713%20259.811%2097.9653%20260.128%2097.452C260.445%2096.9293%20260.604%2096.332%20260.604%2095.66V95.086L261.108%2095.59H256.992V94.61H261.724V95.478C261.724%2096.1593%20261.603%2096.7893%20261.36%2097.368C261.117%2097.9373%20260.781%2098.432%20260.352%2098.852C259.923%2099.272%20259.419%2099.5987%20258.84%2099.832C258.271%20100.056%20257.655%20100.168%20256.992%20100.168ZM263.576%20100V89.402H264.626V100H263.576ZM270.289%20100.168C269.58%20100.168%20268.936%20100%20268.357%2099.664C267.779%2099.3187%20267.317%2098.852%20266.971%2098.264C266.635%2097.6667%20266.467%2096.99%20266.467%2096.234C266.467%2095.4873%20266.635%2094.82%20266.971%2094.232C267.307%2093.644%20267.76%2093.182%20268.329%2092.846C268.908%2092.5007%20269.561%2092.328%20270.289%2092.328C271.017%2092.328%20271.666%2092.496%20272.235%2092.832C272.814%2093.168%20273.267%2093.63%20273.593%2094.218C273.929%2094.806%20274.097%2095.478%20274.097%2096.234C274.097%2096.9993%20273.925%2097.6807%20273.579%2098.278C273.234%2098.866%20272.772%2099.328%20272.193%2099.664C271.624%20100%20270.989%20100.168%20270.289%20100.168ZM270.289%2099.118C270.793%2099.118%20271.246%2098.992%20271.647%2098.74C272.058%2098.488%20272.38%2098.1427%20272.613%2097.704C272.856%2097.2653%20272.977%2096.7753%20272.977%2096.234C272.977%2095.6927%20272.856%2095.2073%20272.613%2094.778C272.38%2094.3487%20272.058%2094.008%20271.647%2093.756C271.246%2093.504%20270.793%2093.378%20270.289%2093.378C269.785%2093.378%20269.328%2093.504%20268.917%2093.756C268.516%2094.008%20268.194%2094.3487%20267.951%2094.778C267.709%2095.2073%20267.587%2095.6927%20267.587%2096.234C267.587%2096.7753%20267.709%2097.2653%20267.951%2097.704C268.194%2098.1427%20268.516%2098.488%20268.917%2098.74C269.328%2098.992%20269.785%2099.118%20270.289%2099.118ZM279.743%20100.168C279.099%20100.168%20278.516%20100.023%20277.993%2099.734C277.48%2099.4353%20277.092%2099.0153%20276.831%2098.474L276.999%2098.32V100H275.949V89.402H276.999V94.176L276.831%2093.882C277.13%2093.406%20277.526%2093.028%20278.021%2092.748C278.525%2092.468%20279.099%2092.328%20279.743%2092.328C280.452%2092.328%20281.082%2092.5007%20281.633%2092.846C282.193%2093.182%20282.632%2093.644%20282.949%2094.232C283.276%2094.82%20283.439%2095.492%20283.439%2096.248C283.439%2096.9947%20283.276%2097.6667%20282.949%2098.264C282.632%2098.852%20282.193%2099.3187%20281.633%2099.664C281.082%20100%20280.452%20100.168%20279.743%20100.168ZM279.687%2099.118C280.191%2099.118%20280.639%2098.992%20281.031%2098.74C281.432%2098.488%20281.745%2098.1473%20281.969%2097.718C282.202%2097.2793%20282.319%2096.7893%20282.319%2096.248C282.319%2095.6973%20282.202%2095.2073%20281.969%2094.778C281.745%2094.3487%20281.432%2094.008%20281.031%2093.756C280.639%2093.504%20280.191%2093.378%20279.687%2093.378C279.183%2093.378%20278.726%2093.504%20278.315%2093.756C277.914%2094.008%20277.592%2094.3533%20277.349%2094.792C277.116%2095.2213%20276.999%2095.7067%20276.999%2096.248C276.999%2096.7893%20277.116%2097.2793%20277.349%2097.718C277.592%2098.1473%20277.914%2098.488%20278.315%2098.74C278.726%2098.992%20279.183%2099.118%20279.687%2099.118ZM287.457%20100.168C286.981%20100.168%20286.556%20100.079%20286.183%2099.902C285.81%2099.7153%20285.516%2099.4633%20285.301%2099.146C285.086%2098.8287%20284.979%2098.4647%20284.979%2098.054C284.979%2097.662%20285.063%2097.3073%20285.231%2096.99C285.399%2096.6633%20285.66%2096.388%20286.015%2096.164C286.37%2095.94%20286.822%2095.7813%20287.373%2095.688L290.313%2095.198V96.15L287.625%2096.598C287.084%2096.6913%20286.692%2096.864%20286.449%2097.116C286.216%2097.368%20286.099%2097.6667%20286.099%2098.012C286.099%2098.348%20286.23%2098.6327%20286.491%2098.866C286.762%2099.0993%20287.107%2099.216%20287.527%2099.216C288.04%2099.216%20288.488%2099.1087%20288.871%2098.894C289.254%2098.67%20289.552%2098.3713%20289.767%2097.998C289.982%2097.6247%20290.089%2097.2093%20290.089%2096.752V94.848C290.089%2094.4%20289.926%2094.036%20289.599%2093.756C289.272%2093.476%20288.848%2093.336%20288.325%2093.336C287.868%2093.336%20287.466%2093.4527%20287.121%2093.686C286.776%2093.91%20286.519%2094.204%20286.351%2094.568L285.399%2094.05C285.539%2093.7327%20285.758%2093.4433%20286.057%2093.182C286.365%2092.9207%20286.715%2092.7153%20287.107%2092.566C287.499%2092.4073%20287.905%2092.328%20288.325%2092.328C288.876%2092.328%20289.361%2092.4353%20289.781%2092.65C290.21%2092.8647%20290.542%2093.1633%20290.775%2093.546C291.018%2093.9193%20291.139%2094.3533%20291.139%2094.848V100H290.089V98.502L290.243%2098.656C290.112%2098.936%20289.907%2099.1927%20289.627%2099.426C289.356%2099.65%20289.034%2099.832%20288.661%2099.972C288.297%20100.103%20287.896%20100.168%20287.457%20100.168ZM293.299%20100V89.402H294.349V100H293.299ZM297.953%20100L301.761%2089.57H302.965L306.773%20100H305.597L304.701%2097.452H300.039L299.129%20100H297.953ZM300.403%2096.402H304.309L302.195%2090.41H302.531L300.403%2096.402ZM311.124%20100.168C310.424%20100.168%20309.794%20100%20309.234%2099.664C308.674%2099.3187%20308.231%2098.852%20307.904%2098.264C307.587%2097.6667%20307.428%2096.9947%20307.428%2096.248C307.428%2095.492%20307.587%2094.82%20307.904%2094.232C308.231%2093.644%20308.67%2093.182%20309.22%2092.846C309.78%2092.5007%20310.415%2092.328%20311.124%2092.328C311.768%2092.328%20312.342%2092.468%20312.846%2092.748C313.35%2093.028%20313.747%2093.406%20314.036%2093.882L313.868%2094.176V89.402H314.918V100H313.868V98.32L314.036%2098.474C313.775%2099.0153%20313.383%2099.4353%20312.86%2099.734C312.347%20100.023%20311.768%20100.168%20311.124%20100.168ZM311.18%2099.118C311.684%2099.118%20312.137%2098.992%20312.538%2098.74C312.949%2098.488%20313.271%2098.1473%20313.504%2097.718C313.747%2097.2793%20313.868%2096.7893%20313.868%2096.248C313.868%2095.7067%20313.747%2095.2213%20313.504%2094.792C313.271%2094.3533%20312.949%2094.008%20312.538%2093.756C312.137%2093.504%20311.684%2093.378%20311.18%2093.378C310.686%2093.378%20310.238%2093.504%20309.836%2093.756C309.435%2094.008%20309.118%2094.3487%20308.884%2094.778C308.66%2095.2073%20308.548%2095.6973%20308.548%2096.248C308.548%2096.7893%20308.66%2097.2793%20308.884%2097.718C309.118%2098.1473%20309.43%2098.488%20309.822%2098.74C310.224%2098.992%20310.676%2099.118%20311.18%2099.118ZM317.074%20100V92.496H318.124V93.924L317.956%2093.714C318.161%2093.2753%20318.465%2092.9347%20318.866%2092.692C319.277%2092.4493%20319.725%2092.328%20320.21%2092.328C320.789%2092.328%20321.311%2092.4913%20321.778%2092.818C322.245%2093.1447%20322.576%2093.5693%20322.772%2094.092L322.478%2094.106C322.665%2093.5273%20322.987%2093.0887%20323.444%2092.79C323.911%2092.482%20324.424%2092.328%20324.984%2092.328C325.488%2092.328%20325.95%2092.4493%20326.37%2092.692C326.799%2092.9347%20327.14%2093.2707%20327.392%2093.7C327.653%2094.12%20327.784%2094.596%20327.784%2095.128V100H326.734V95.534C326.734%2095.0767%20326.65%2094.6893%20326.482%2094.372C326.323%2094.0547%20326.104%2093.812%20325.824%2093.644C325.544%2093.4667%20325.222%2093.378%20324.858%2093.378C324.503%2093.378%20324.181%2093.4667%20323.892%2093.644C323.603%2093.812%20323.374%2094.0593%20323.206%2094.386C323.038%2094.7033%20322.954%2095.086%20322.954%2095.534V100H321.904V95.534C321.904%2095.0767%20321.82%2094.6893%20321.652%2094.372C321.493%2094.0547%20321.274%2093.812%20320.994%2093.644C320.714%2093.4667%20320.392%2093.378%20320.028%2093.378C319.664%2093.378%20319.337%2093.4667%20319.048%2093.644C318.768%2093.812%20318.544%2094.0593%20318.376%2094.386C318.208%2094.7033%20318.124%2095.086%20318.124%2095.534V100H317.074ZM329.789%20100V92.496H330.839V100H329.789ZM329.789%2091.11V89.57H330.839V91.11H329.789ZM332.988%20100V92.496H334.038V93.952L333.8%2093.896C333.987%2093.4107%20334.29%2093.028%20334.71%2092.748C335.139%2092.468%20335.634%2092.328%20336.194%2092.328C336.726%2092.328%20337.202%2092.4493%20337.622%2092.692C338.051%2092.9347%20338.387%2093.2707%20338.63%2093.7C338.882%2094.12%20339.008%2094.596%20339.008%2095.128V100H337.958V95.534C337.958%2095.0767%20337.874%2094.6893%20337.706%2094.372C337.547%2094.0547%20337.319%2093.812%20337.02%2093.644C336.731%2093.4667%20336.395%2093.378%20336.012%2093.378C335.629%2093.378%20335.289%2093.4667%20334.99%2093.644C334.691%2093.812%20334.458%2094.0593%20334.29%2094.386C334.122%2094.7033%20334.038%2095.086%20334.038%2095.534V100H332.988Z'%20fill='%23181918'/%3e%3c/g%3e%3cmask%20id='path-17-inside-1_683_56525'%20fill='white'%3e%3cpath%20d='M0%2031C0%2022.1634%207.16344%2015%2016%2015H330C338.837%2015%20346%2022.1634%20346%2031V114C346%20122.837%20338.837%20130%20330%20130H16C7.16344%20130%200%20122.837%200%20114V31Z'/%3e%3c/mask%3e%3cpath%20d='M0%2031C0%2022.1634%207.16344%2015%2016%2015H330C338.837%2015%20346%2022.1634%20346%2031V114C346%20122.837%20338.837%20130%20330%20130H16C7.16344%20130%200%20122.837%200%20114V31Z'%20fill='%23FDFDFD'/%3e%3cpath%20d='M-0.5%2031C-0.5%2021.8873%206.8873%2014.5%2016%2014.5H329.5C338.613%2014.5%20346%2021.8873%20346%2031C346%2022.4396%20338.837%2015.5%20330%2015.5H16C7.43959%2015.5%200.5%2022.4396%200.5%2031H-0.5ZM0.5%2031M346%20130H0H346M16%20130C6.8873%20130%20-0.5%20122.613%20-0.5%20113.5V31C-0.5%2021.8873%206.8873%2014.5%2016%2014.5V15.5C7.43959%2015.5%200.5%2022.4396%200.5%2031V114C0.5%20122.837%207.43959%20130%2016%20130ZM16%20130M346%2015V130V15'%20fill='url(%23paint2_linear_683_56525)'%20mask='url(%23path-17-inside-1_683_56525)'/%3e%3cdefs%3e%3clinearGradient%20id='paint0_linear_683_56525'%20x1='59'%20y1='49'%20x2='286'%20y2='98'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%232B2A2A'/%3e%3cstop%20offset='1'%20stop-color='white'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint1_linear_683_56525'%20x1='78.362'%20y1='49.1226'%20x2='284.411'%20y2='82.1461'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%232B2A2A'/%3e%3cstop%20offset='1'%20stop-color='white'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint2_linear_683_56525'%20x1='-5.20861e-07'%20y1='-8.5'%20x2='70.9255'%20y2='193.231'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%238E3530'/%3e%3cstop%20offset='0.575999'%20stop-color='white'/%3e%3c/linearGradient%3e%3c/defs%3e%3c/svg%3e\"","import React from 'react';\nimport { Avatar } from 'antd';\nimport cardBorderSvg from '../../assets/card-border.svg';\n\nexport interface UserCardProps {\n name: string;\n email: string;\n role?: string;\n avatar?: string;\n className?: string;\n}\n\nexport const UserCard: React.FC<UserCardProps> = ({\n name,\n email,\n role,\n avatar,\n className = '',\n}) => {\n return (\n <div\n style={{\n boxShadow: '0px -8px 30px rgba(236, 97, 91, 0.1)',\n borderRadius: '16px',\n background:\n 'linear-gradient(to bottom, rgba(236, 97, 91, 0.05) 0%, rgba(255, 255, 255, 0) 50%)',\n }}\n className=\"relative min-h-[120px] pt-8 pb-4 pl-4 pr-4\"\n >\n <img\n src={cardBorderSvg}\n alt=\"img-bg\"\n style={{\n position: 'absolute',\n top: -8,\n left: 0,\n objectFit: 'cover',\n }}\n />\n <div\n className={`flex gap-4 items-center relative ${className}`}\n style={{\n position: 'relative',\n }}\n >\n {avatar ? (\n <Avatar src={avatar} size={80} />\n ) : (\n <Avatar\n size={80}\n style={{ backgroundColor: '#181918', fontSize: '32px', fontWeight: 600 }}\n >\n {name\n .split(' ')\n .map((n) => n[0])\n .join('')\n .toUpperCase()}\n </Avatar>\n )}\n <div className=\"flex flex-col\">\n <span\n style={{\n color: '#181918',\n fontSize: '16px',\n fontWeight: 600,\n lineHeight: '1.3',\n }}\n >\n {name}\n </span>\n <span\n style={{\n color: '#181918',\n fontSize: '14px',\n fontWeight: 400,\n lineHeight: '1.4',\n marginTop: '4px',\n }}\n >\n {email}\n </span>\n {role && (\n <span\n style={{\n color: '#181918',\n fontSize: '14px',\n fontWeight: 400,\n lineHeight: '1.4',\n marginTop: '2px',\n }}\n >\n {role}\n </span>\n )}\n </div>\n </div>\n </div>\n );\n};\n","import React from 'react';\nimport { Select } from 'antd';\nimport type { SelectProps } from 'antd';\n\nexport interface Country {\n code: string;\n name: string;\n flag: string;\n}\n\nexport interface CountrySelectorProps extends Omit<SelectProps, 'options'> {\n countries?: Country[];\n defaultCountry?: string;\n onCountryChange?: (countryCode: string) => void;\n showSearch?: boolean;\n}\n\nconst defaultCountries: Country[] = [\n { code: 'NG', name: 'Nigeria', flag: '/images/flags/NG.svg' },\n { code: 'US', name: 'United States', flag: '/images/flags/US.svg' },\n { code: 'GB', name: 'United Kingdom', flag: '/images/flags/GB.svg' },\n { code: 'GH', name: 'Ghana', flag: '/images/flags/GH.svg' },\n { code: 'KE', name: 'Kenya', flag: '/images/flags/KE.svg' },\n { code: 'ZA', name: 'South Africa', flag: '/images/flags/ZA.svg' },\n];\n\nexport const CountrySelector: React.FC<CountrySelectorProps> = ({\n countries = defaultCountries,\n defaultCountry = 'NG',\n onCountryChange,\n showSearch = false,\n className = '',\n ...props\n}) => {\n const handleChange = (value: string) => {\n if (onCountryChange) {\n onCountryChange(value);\n }\n };\n\n const renderFlag = (flag: string) => {\n return (\n <img\n src={flag}\n alt=\"flag\"\n className=\"w-7 h-7 rounded-full object-cover\"\n style={{ width: '28px', height: '28px' }}\n />\n );\n };\n\n const options = countries.map((country) => ({\n value: country.code,\n label: (\n <div className=\"flex items-center gap-2\">\n {renderFlag(country.flag)}\n <span>{country.code}</span>\n </div>\n ),\n // Add searchable text for filtering\n searchLabel: `${country.name} ${country.code}`.toLowerCase(),\n }));\n\n // Custom filter function for searching\n const handleFilter = (input: string, option: any) => {\n return option?.searchLabel?.includes(input.toLowerCase()) || false;\n };\n\n return (\n <>\n <style>\n {`\n .country-selector.ant-select {\n min-width: 90px;\n heigh: 40px;\n border-radius: 20px;\n padding: 5px !important;\n background: #EEEEEE;\n }\n\n .country-selector .ant-select-selector {\n border-radius: 20px !important;\n border: 1px solid #E5E7EB !important;\n height: 40px !important;\n display: flex;\n align-items: center;\n background: #FFFFFF !important;\n }\n\n .country-selector .ant-select-selection-item {\n display: flex;\n align-items: center;\n gap: 8px;\n font-weight: 500;\n color: #000000;\n }\n\n .country-selector:hover .ant-select-selector {\n border-color: #D1D5DB !important;\n }\n\n .country-selector.ant-select-focused .ant-select-selector {\n border-color: #EC615B !important;\n box-shadow: 0 0 0 2px rgba(236, 97, 91, 0.1) !important;\n }\n\n .country-selector .ant-select-arrow {\n color: #6B7280;\n }\n\n .country-selector .ant-select-dropdown {\n border-radius: 12px !important;\n }\n `}\n </style>\n <Select\n className={`country-selector ${className}`}\n defaultValue={defaultCountry}\n onChange={handleChange}\n options={options}\n showSearch={showSearch}\n filterOption={handleFilter}\n placeholder=\"Search country...\"\n suffixIcon={\n <svg width=\"12\" height=\"8\" viewBox=\"0 0 12 8\" fill=\"none\">\n <path\n d=\"M1 1.5L6 6.5L11 1.5\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n }\n {...props}\n />\n </>\n );\n};\n","import React from 'react';\nimport { Dropdown } from 'antd';\nimport type { MenuProps } from 'antd';\n\nexport interface UserProfileDropdownProps {\n name: string;\n role?: string;\n avatarUrl?: string;\n menuItems?: MenuProps['items'];\n onMenuClick?: (key: string) => void;\n className?: string;\n width?: string | number;\n}\n\nexport const UserProfileDropdown: React.FC<UserProfileDropdownProps> = ({\n name,\n role,\n avatarUrl,\n menuItems,\n onMenuClick,\n className = '',\n width,\n}) => {\n const defaultMenuItems: MenuProps['items'] = [\n {\n key: 'profile',\n label: 'My Profile',\n },\n {\n key: 'settings',\n label: 'Settings',\n },\n {\n type: 'divider',\n },\n {\n key: 'logout',\n label: 'Logout',\n danger: true,\n },\n ];\n\n const handleMenuClick: MenuProps['onClick'] = ({ key }) => {\n if (onMenuClick) {\n onMenuClick(key);\n }\n };\n\n const getInitials = (name: string) => {\n const parts = name.split(' ');\n if (parts.length >= 2) {\n return `${parts[0][0]}${parts[1][0]}`.toUpperCase();\n }\n return name.substring(0, 2).toUpperCase();\n };\n\n return (\n <>\n <style>\n {`\n .user-profile-dropdown {\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 5px;\n border-radius: 50px;\n background: #EEEEEE;\n border: 1px solid #E6E6E6;\n transition: background-color 0.2s;\n }\n\n .user-profile-dropdown:hover {\n background-color: #E5E5E5;\n }\n\n .user-profile-avatar {\n width: 30px;\n height: 30px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n font-weight: 600;\n font-size: 14px;\n color: #FFFFFF;\n background: linear-gradient(135deg, #EC615B 0%, #F59E95 100%);\n flex-shrink: 0;\n overflow: hidden;\n }\n\n .user-profile-avatar img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n\n .user-profile-info {\n flex: 1;\n display: flex;\n flex-direction: column;\n gap: 2px;\n min-width: 0;\n }\n\n .user-profile-name {\n font-weight: 700;\n font-size: 14px;\n color: #000000;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n line-height: 1.2;\n }\n\n .user-profile-role {\n font-size: 12px;\n color: #666666;\n font-weight: 400;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n line-height: 1.2;\n }\n\n .user-profile-dropdown-icon {\n color: #000000;\n flex-shrink: 0;\n transition: transform 0.2s;\n margin-left: auto;\n }\n\n .user-profile-dropdown[aria-expanded=\"true\"] .user-profile-dropdown-icon {\n transform: rotate(180deg);\n }\n `}\n </style>\n <Dropdown\n menu={{\n items: menuItems || defaultMenuItems,\n onClick: handleMenuClick,\n }}\n trigger={['click']}\n placement=\"bottomRight\"\n >\n <div\n className={`user-profile-dropdown ${className}`}\n style={{ width: typeof width === 'number' ? `${width}px` : width }}\n >\n <div className=\"user-profile-avatar\">\n {avatarUrl ? <img src={avatarUrl} alt={name} /> : getInitials(name)}\n </div>\n <div className=\"user-profile-info\">\n <div className=\"user-profile-name\">{name}</div>\n {role && <div className=\"user-profile-role\">{role}</div>}\n </div>\n <svg\n className=\"user-profile-dropdown-icon\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n >\n <path\n d=\"M6 9L12 15L18 9\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </div>\n </Dropdown>\n </>\n );\n};\n","import React from 'react';\n\nexport interface ActionCardProps {\n label: string;\n icon: React.ReactNode;\n iconColor?: 'red' | 'blue' | 'green' | 'purple' | 'orange' | 'yellow';\n onClick?: () => void;\n disabled?: boolean;\n className?: string;\n}\n\nexport const ActionCard: React.FC<ActionCardProps> = ({\n label,\n icon,\n iconColor = 'blue',\n onClick,\n disabled = false,\n className = '',\n}) => {\n const colorStyles = {\n red: {\n background: '#FFEAE8',\n color: '#EC615B',\n },\n blue: {\n background: '#E8F4FD',\n color: '#4A9FD8',\n },\n green: {\n background: '#E8F8F0',\n color: '#5FB894',\n },\n purple: {\n background: '#F3E8FD',\n color: '#9B59D8',\n },\n orange: {\n background: '#FFF3E8',\n color: '#F59E42',\n },\n yellow: {\n background: '#FFFBE8',\n color: '#F5D742',\n },\n };\n\n const currentColor = colorStyles[iconColor];\n\n return (\n <button\n className={`bg-[#FDFDFD] border border-[#E6E6E6] rounded-[14px] px-[18px] py-2.5 flex items-center gap-4 cursor-pointer transition-all duration-300 ease-in-out w-full h-[60px] hover:border-gray-300 hover:-translate-y-1 active:translate-y-0 disabled:opacity-50 disabled:cursor-not-allowed disabled:hover:border-[#E6E6E6] disabled:hover:translate-y-0 ${className}`}\n style={{\n boxShadow: '0 0 0 0 rgba(0, 0, 0, 0)',\n transition: 'all 0.3s ease-in-out',\n }}\n onMouseEnter={(e) => {\n if (!disabled) {\n e.currentTarget.style.boxShadow = '0 0 16px 0 rgba(0, 0, 0, 0.08)';\n }\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.boxShadow = '0 0 0 0 rgba(0, 0, 0, 0)';\n }}\n onClick={onClick}\n disabled={disabled}\n >\n <div\n className=\"w-10 h-10 rounded-full flex items-center justify-center shrink-0 [&>svg]:w-6 [&>svg]:h-6 transition-transform duration-300 ease-in-out\"\n style={{\n backgroundColor: currentColor.background,\n color: currentColor.color,\n }}\n >\n {icon}\n </div>\n <div className=\"text-sm font-medium text-[#181918] transition-colors duration-200\">{label}</div>\n </button>\n );\n};\n","import React, { useState } from 'react';\n\nexport interface DashboardCardProps {\n label: string;\n value: string | number;\n icon?: React.ReactNode;\n showVisibilityToggle?: boolean;\n onVisibilityToggle?: () => void;\n valuePrefix?: string;\n ledgerBalance?: string | number;\n backgroundPattern?: 'wave' | 'grid' | 'none';\n width?: string | number;\n className?: string;\n}\n\nexport const DashboardCard: React.FC<DashboardCardProps> = ({\n label,\n value,\n icon,\n showVisibilityToggle = true,\n onVisibilityToggle,\n valuePrefix = '₦',\n ledgerBalance,\n backgroundPattern = 'wave',\n width = 348,\n className = '',\n}) => {\n const [isVisible, setIsVisible] = useState(true);\n\n const handleToggleVisibility = () => {\n setIsVisible(!isVisible);\n if (onVisibilityToggle) {\n onVisibilityToggle();\n }\n };\n const defaultIcon = (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <rect x=\"3\" y=\"6\" width=\"18\" height=\"12\" rx=\"2\" stroke=\"currentColor\" strokeWidth=\"2\" />\n <path d=\"M3 10h18M7 14h4\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n </svg>\n );\n\n return (\n <>\n <style>\n {`\n .dashboard-card-bg {\n background: radial-gradient(circle at 50% 136%, #7A7F7A 0%, #181918 100%);\n }\n\n .dashboard-card-pattern {\n background-image: url('/images/card-pattern.svg');\n background-size: cover;\n background-position: center;\n background-repeat: no-repeat;\n }\n `}\n </style>\n <div\n className={`dashboard-card-bg relative overflow-hidden min-h-[160px] flex flex-col justify-between rounded-[20px] px-[22px] pt-3 pb-1 transition-all duration-300 ease-in-out hover:-translate-y-1 cursor-pointer ${className}`}\n style={{\n width: typeof width === 'number' ? `${width}px` : width,\n boxShadow: '0 0 0 0 rgba(0, 0, 0, 0)',\n transition: 'all 0.3s ease-in-out',\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.boxShadow = '0 0 24px 0 rgba(0, 0, 0, 0.15)';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.boxShadow = '0 0 0 0 rgba(0, 0, 0, 0)';\n }}\n >\n {backgroundPattern !== 'none' && (\n <div className=\"dashboard-card-pattern absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-full h-full pointer-events-none transition-opacity duration-300\" />\n )}\n <div className=\"relative z-10\">\n <div className=\"flex items-center justify-between mb-4\">\n <div className=\"w-10 h-10 bg-[#616161] rounded-full flex items-center justify-center text-white transition-transform duration-300 ease-in-out hover:scale-110\">\n {icon || defaultIcon}\n </div>\n </div>\n <div className=\"flex items-center gap-2 mt-3\">\n <span className=\"text-sm text-[#E6E6E6] font-light transition-colors duration-200\">{label}</span>\n {showVisibilityToggle && (\n <button\n className=\"bg-transparent border-none cursor-pointer p-1 flex items-center justify-center text-white hover:text-white/80 transition-colors duration-200\"\n onClick={handleToggleVisibility}\n aria-label=\"Toggle visibility\"\n >\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M1.61342 8.47806C1.52262 8.3343 1.47723 8.26242 1.45182 8.15155C1.43273 8.06827 1.43273 7.93694 1.45182 7.85366C1.47723 7.74279 1.52262 7.67091 1.61341 7.52715C2.36369 6.33916 4.59693 3.33594 8.00027 3.33594C11.4036 3.33594 13.6369 6.33916 14.3871 7.52715C14.4779 7.67091 14.5233 7.74279 14.5487 7.85366C14.5678 7.93694 14.5678 8.06827 14.5487 8.15155C14.5233 8.26242 14.4779 8.3343 14.3871 8.47806C13.6369 9.66604 11.4036 12.6693 8.00027 12.6693C4.59693 12.6693 2.36369 9.66604 1.61342 8.47806Z\"\n stroke=\"currentColor\"\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M8.00027 10.0026C9.10484 10.0026 10.0003 9.10717 10.0003 8.0026C10.0003 6.89803 9.10484 6.0026 8.00027 6.0026C6.8957 6.0026 6.00027 6.89803 6.00027 8.0026C6.00027 9.10717 6.8957 10.0026 8.00027 10.0026Z\"\n stroke=\"currentColor\"\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </button>\n )}\n </div>\n <div className=\"text-[32px] font-bold text-white transition-all duration-200\">\n {isVisible ? `${valuePrefix} ${value}` : '****'}\n </div>\n {ledgerBalance && (\n <div className=\"mb-1\">\n <div className=\"w-full h-px bg-white/10 mb-2 transition-opacity duration-300\"></div>\n <div className=\"flex items-center gap-2 transition-all duration-200\">\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8.0026 13.3307H3.46927C2.72253 13.3307 2.34917 13.3307 2.06395 13.1854C1.81307 13.0576 1.60909 12.8536 1.48126 12.6027C1.33594 12.3175 1.33594 11.9441 1.33594 11.1974V4.7974C1.33594 4.05066 1.33594 3.67729 1.48126 3.39208C1.60909 3.14119 1.81307 2.93722 2.06395 2.80939C2.34917 2.66406 2.72253 2.66406 3.46927 2.66406H3.73594C5.22941 2.66406 5.97615 2.66406 6.54658 2.95471C7.04834 3.21037 7.45629 3.61832 7.71195 4.12009C8.0026 4.69052 8.0026 5.43726 8.0026 6.93073M8.0026 13.3307V6.93073M8.0026 13.3307H12.5359C13.2827 13.3307 13.656 13.3307 13.9413 13.1854C14.1921 13.0576 14.3961 12.8536 14.5239 12.6027C14.6693 12.3175 14.6693 11.9441 14.6693 11.1974V4.7974C14.6693 4.05066 14.6693 3.67729 14.5239 3.39208C14.3961 3.14119 14.1921 2.93722 13.9413 2.80939C13.656 2.66406 13.2827 2.66406 12.5359 2.66406H12.2693C10.7758 2.66406 10.0291 2.66406 9.45863 2.95471C8.95686 3.21037 8.54892 3.61832 8.29325 4.12009C8.0026 4.69052 8.0026 5.43726 8.0026 6.93073\"\n stroke=\"#EC615B\"\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n <span className=\"text-xs text-[#E6E6E6] font-light transition-all duration-200\">\n Ledger Balance {isVisible ? `${valuePrefix} ${ledgerBalance}` : '****'}\n </span>\n </div>\n </div>\n )}\n </div>\n </div>\n </>\n );\n};\n","import React from 'react';\n\nexport interface NotificationItem {\n id: string;\n title: string;\n description: string;\n timestamp: string;\n isNew?: boolean;\n icon?: React.ReactNode;\n iconBackgroundColor?: string;\n iconColor?: string;\n onClick?: () => void;\n}\n\nexport interface NotificationDropdownProps {\n title: string;\n count?: number;\n notifications: NotificationItem[];\n onViewMore?: () => void;\n className?: string;\n maxHeight?: string | number;\n}\n\nexport const NotificationDropdown: React.FC<NotificationDropdownProps> = ({\n count,\n notifications,\n onViewMore,\n className = '',\n maxHeight = 400,\n}) => {\n const defaultIcon = (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"10\" cy=\"10\" r=\"9\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M10 6v4M10 14h.01\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </svg>\n );\n\n return (\n <div\n className={`bg-white rounded-2xl shadow-lg border border-gray-100 overflow-hidden ${className}`}\n style={{ width: '380px' }}\n >\n {/* Tab Section */}\n <div className=\"flex items-center justify-between px-4 py-3 bg-gray-50\">\n <div className=\"flex items-center gap-2\">\n <span className=\"text-sm font-medium text-[#181918]\">Issues</span>\n {count !== undefined && (\n <span className=\"flex flex-col items-center justify-center h-[22px] w-[22px] bg-[#FAE5B7] text-[#6C4D0B] border border-[#EFAC18] text-[11px] font-medium px-2 py-0.5 rounded-full\">\n {count}\n </span>\n )}\n </div>\n {onViewMore && (\n <button\n onClick={onViewMore}\n className=\"text-xs text-[#EC615B] font-normal hover:text-[#EC615B] transition-colors duration-200\"\n >\n View More\n </button>\n )}\n </div>\n\n {/* Notifications List */}\n <div\n className=\"overflow-y-auto\"\n style={{ maxHeight: typeof maxHeight === 'number' ? `${maxHeight}px` : maxHeight }}\n >\n {notifications.length === 0 ? (\n <div className=\"px-4 py-16 flex flex-col items-center justify-center\">\n <img\n src=\"/images/empty-notification.svg\"\n alt=\"No notifications\"\n className=\"w-16 h-16 mb-4\"\n />\n <h4 className=\"text-sm font-medium text-[#181918] mb-1\">\n No issues available\n </h4>\n <p className=\"text-xs text-gray-500 font-light\">\n All recent activities will appear here\n </p>\n </div>\n ) : (\n notifications.map((notification) => (\n <div\n key={notification.id}\n onClick={notification.onClick}\n className=\"flex gap-3 px-4 py-3 border-b border-[#E6E6E6] hover:bg-[#FDEFEF] transition-colors duration-200 cursor-pointer\"\n >\n {/* Icon */}\n <div\n className=\"flex items-center justify-center h-10 w-10 rounded-full flex-shrink-0 [&>svg]:w-5 [&>svg]:h-5\"\n style={{\n backgroundColor: notification.iconBackgroundColor || '#FCE7E6',\n color: notification.iconColor || '#EC615B',\n }}\n >\n {notification.icon || defaultIcon}\n </div>\n\n {/* Content */}\n <div className=\"flex-1 min-w-0\">\n <h4 className=\"text-sm font-medium text-[#181918] mb-1\">{notification.title}</h4>\n <p className=\"text-xs text-[#181918] font-light line-clamp-2\">\n {notification.description}\n </p>\n </div>\n\n {/* Timestamp/Badge */}\n <div className=\"flex-shrink-0\">\n {notification.isNew ? (\n <span className=\"text-[#EC615B] text-xs font-medium px-2 py-1 rounded\">New</span>\n ) : (\n <span className=\"text-xs text-gray-400\">{notification.timestamp}</span>\n )}\n </div>\n </div>\n ))\n )}\n </div>\n </div>\n );\n};\n","import React from 'react';\nimport { Tabs } from 'antd';\n\nexport interface TabItem {\n key: string;\n label: string;\n children: React.ReactNode;\n}\n\nexport interface TabsComponentProps {\n items: TabItem[];\n defaultActiveKey?: string;\n activeKey?: string;\n onChange?: (activeKey: string) => void;\n className?: string;\n}\n\nexport const TabsComponent: React.FC<TabsComponentProps> = ({\n items,\n defaultActiveKey,\n activeKey,\n onChange,\n className = '',\n}) => {\n return (\n <div className={className}>\n <style>\n {`\n .custom-tabs .ant-tabs-nav {\n margin-bottom: 0 !important;\n }\n\n .custom-tabs .ant-tabs-nav::before {\n border-bottom: 1px solid #E6E6E6 !important;\n }\n\n .custom-tabs .ant-tabs-tab {\n padding: 10px 0 !important;\n margin-right: 20px !important;\n color: #181918 !important;\n font-size: 14px !important;\n font-weight: 400 !important;\n font-family: 'Plus Jakarta Sans', sans-serif !important;\n }\n\n .custom-tabs .ant-tabs-tab:hover {\n color: #EC615B !important;\n }\n\n .custom-tabs .ant-tabs-tab-active .ant-tabs-tab-btn {\n color: #EC615B !important;\n font-weight: 400 !important;\n }\n\n .custom-tabs .ant-tabs-ink-bar {\n background: #EC615B !important;\n height: 2px !important;\n }\n\n .custom-tabs .ant-tabs-tab-btn {\n transition: color 0.3s ease !important;\n }\n\n .custom-tabs .ant-tabs-content-holder {\n padding-top: 16px;\n }\n `}\n </style>\n <Tabs\n className=\"custom-tabs\"\n items={items}\n defaultActiveKey={defaultActiveKey}\n activeKey={activeKey}\n onChange={onChange}\n />\n </div>\n );\n};\n"],"names":["Button","variant","size","className","children","props","getSizeHeight","getVariantStyles","height","jsx","AntButton","e","_a","styles","StatCard","label","value","icon","iconBackgroundColor","iconColor","valuePrefix","progressText","badge","width","defaultIcon","jsxs","SearchInput","iconPosition","fullWidth","onIconClick","bgColor","borderColor","focusBorderColor","textColor","placeholderColor","rounded","style","containerBaseClasses","inputBaseClasses","sizeClasses","iconSizeClasses","roundedClasses","paddingWithIcon","widthClass","customStyles","placeholderClass","defaultBorderClass","defaultTextClass","defaultFocusClass","inputClassName","iconPositionClasses","defaultIconColor","hoverIconColor","defaultSearchIcon","Card","shadow","combinedClassName","AntCard","Dropdown","items","trigger","placement","overlayClassName","disabled","menuBgColor","menuItemHoverColor","dangerColor","isOpen","setIsOpen","useState","dropdownRef","useRef","useEffect","handleClickOutside","event","handleTriggerClick","handleTriggerMouseEnter","handleTriggerMouseLeave","handleMenuItemClick","item","placementClasses","animationClasses","itemSizeClasses","defaultHoverColor","defaultBorderColor","defaultDangerColor","hoverColorStyle","customHoverClass","customDangerStyle","dangerHoverBgStyle","finalBorderColor","itemStyle","Select","options","controlledValue","defaultValue","placeholder","onChange","allowClear","showSearch","searchPlaceholder","selectedBgColor","selectedTextColor","hoverBgColor","internalValue","setInternalValue","searchQuery","setSearchQuery","selectRef","searchInputRef","handleSelect","optionValue","handleClear","selectedOption","opt","filteredOptions","option","getTriggerStyles","getSelectedOptionStyles","ChevronIcon","ClearIcon","Table","columns","dataSource","rowKey","pagination","loading","onRow","bordered","striped","headerBgColor","headerTextColor","rowHoverColor","stripedRowColor","currentPage","setCurrentPage","pageSize","setPageSize","sizeConfig","currentSizeConfig","currentRoundedClass","getRowKey","record","index","getValue","dataIndex","obj","key","paginatedData","handlePageChange","page","handlePageSizeChange","newPageSize","column","idx","rowProps","stripedBg","hoverBg","colIdx","content","Pagination","current","total","onPageSizeChange","showSizeChanger","pageSizeOptions","showTotal","totalPages","startItem","endItem","getPageNumbers","pages","i","TableTop","title","description","onSearch","actions","filters","titleColor","descriptionColor","searchBgColor","searchBorderColor","searchFocusBorderColor","hideActionButtons","selectedActionButton","handleSearchChange","config","radiusClass","searchInputStyle","widthMap","Modal","open","onClose","footer","closable","maskClosable","centered","overlayColor","bodyClassName","headerClassName","maxHeight","isVisible","setIsVisible","isAnimating","setIsAnimating","effectiveWidth","modalStyle","headerStyle","overlayStyle","timer","handleEscape","handleMaskClick","handleModalClick","Badge","dot","variantClasses","dotSizeClasses","dotColorClasses","Steps","direction","finishColor","processColor","waitColor","errorColor","lineColor","getStepStatus","textSizeClasses","descriptionSizeClasses","renderIcon","status","getStatusClasses","isOutline","statusClasses","isLast","iconStyle","Progress","percent","showInfo","strokeColor","strokeWidth","format","successColor","exceptionColor","trackColor","clampedPercent","heightClasses","getStatusColor","getTrackColor","getStatusIcon","formatPercent","Checkbox","controlledChecked","defaultChecked","indeterminate","id","name","checkedColor","uncheckedColor","checkedBorderColor","internalChecked","setInternalChecked","isControlled","checked","handleChange","newChecked","isFilled","getCheckboxClasses","getCheckboxInlineStyles","getIconColor","getSizeClasses","getRoundedClasses","SelectedItemsList","onRemove","emptyMessage","itemClassName","sublabelColor","removeButtonColor","removeButtonHoverColor","roundedClass","defaultBgColor","defaultHoverBgColor","defaultTextColor","defaultSublabelColor","defaultRemoveButtonColor","defaultRemoveButtonHoverColor","finalBgColor","finalHoverBgColor","finalTextColor","finalSublabelColor","finalRemoveButtonColor","finalRemoveButtonHoverColor","Input","error","helperText","errorClass","AntInput","PasswordInput","OTPInput","length","onComplete","errorMessage","otp","setOtp","inputRefs","otpArray","filledOtp","val","newOtp","otpString","digit","handleKeyDown","handlePaste","pastedData","pastedArray","nextIndex","React","el","PhoneInput","countryCode","onCountryCodeChange","countryCodes","showCountryCodeDropdown","customFormat","displayValue","setDisplayValue","cleaned","formatted","formatPhoneNumber","input","cursorPosition","oldLength","diff","newCursorPosition","syntheticEvent","numericData","start","newCleaned","CurrencyInput","currencySymbol","formatAmount","externalValue","formatNumber","num","parts","integerPart","decimalPart","formattedInteger","unformatNumber","stringValue","inputValue","rawValue","IconContext","createContext","r","t","f","n","clsx","presetColors","round","splitColorStr","str","parseNum","match","numList","parseHSVorHSL","_","limitRange","max","mergedMax","FastColor","__publicField","matchFormat","matchPrefix","prefix","trimStr","presetColor","hsv","adjustGamma","raw","R","G","B","delta","l","amount","h","s","color","p","calc","rgba","background","bg","alpha","other","hex","rHex","gHex","bHex","aHex","rgb","clone","withoutPrefix","connectNum","index1","index2","_h","a","g","b","huePrime","chroma","secondComponent","lightnessModification","v","vv","hh","ff","q","cells","txt","hueStep","saturationStep","saturationStep2","brightnessStep1","brightnessStep2","lightColorCount","darkColorCount","darkColorMap","getHue","light","hue","getSaturation","saturation","generate","opts","patterns","pColor","c","blue","canUseDom","contains","root","node","APPEND_ORDER","APPEND_PRIORITY","MARK_KEY","containerCache","getMark","mark","getContainer","getOrder","prepend","findStyles","container","injectCSS","css","csp","priority","mergedOrder","isPrependQueue","styleNode","firstChild","existStyle","nodePriority","findExistNode","syncRealContainer","cachedRealContainer","placeholderStyle","parentNode","updateCSS","originOption","existNode","_b","_c","newNode","getRoot","ele","inShadow","getShadowRoot","warned","preWarningFns","preMessage","fn","warning","valid","message","finalMessage","msg","preMessageFn","note","resetWarned","call","method","warningOnce","noteOnce","camelCase","isIconDefinition","target","normalizeAttrs","attrs","acc","rootProps","child","getSecondaryColor","primaryColor","generateColor","normalizeTwoToneColors","twoToneColor","iconStyles","useInsertStyles","eleRef","prefixCls","layer","useContext","mergedStyleStr","shadowRoot","twoToneColorPalette","setTwoToneColors","secondaryColor","getTwoToneColors","IconBase","onClick","restProps","svgRef","colors","setTwoToneColor","ReactIcon","getTwoToneColor","_extends","source","Icon","ref","spin","rotate","tabIndex","rootClassName","Context","classString","iconTabIndex","svgStyle","UserOutlined","AntdIcon","UserOutlinedSvg","RefIcon","UserPill","subtitle","avatar","Avatar","cardBorderSvg","UserCard","email","role","defaultCountries","CountrySelector","countries","defaultCountry","onCountryChange","renderFlag","flag","country","handleFilter","Fragment","UserProfileDropdown","avatarUrl","menuItems","onMenuClick","defaultMenuItems","handleMenuClick","getInitials","ActionCard","currentColor","DashboardCard","showVisibilityToggle","onVisibilityToggle","ledgerBalance","backgroundPattern","handleToggleVisibility","NotificationDropdown","count","notifications","onViewMore","notification","TabsComponent","defaultActiveKey","activeKey","Tabs"],"mappings":"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","x_google_ignoreList":[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35]}