@quantabit/payment-sdk 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +21 -0
- package/dist/index.cjs +1502 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.esm.js +1489 -0
- package/dist/index.esm.js.map +1 -0
- package/dist/styles.css +2 -0
- package/dist/styles.css.map +1 -0
- package/package.json +69 -0
- package/types/index.d.ts +14 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../src/components/PricingCard.jsx","../src/components/PricingTable.jsx","../src/i18n/index.js","../src/components/PaymentMethodSelector.jsx","../src/components/CheckoutSummary.jsx","../src/services/paymentApi.js","../src/components/RechargeModal.jsx"],"sourcesContent":["import React from'react';\nexport function PricingCard({name,price,period='/mo',description,features=[],cta='Get Started',popular=false,onSelect,className=''}){\n return(<div className={`qpay-card ${popular?'qpay-popular':''} ${className}`} style={{padding:28,borderRadius:16,\n border:popular?'2px solid #3b82f6':'1px solid #e4e4e7',background:'#fff',position:'relative',\n boxShadow:popular?'0 8px 32px rgba(59,130,246,0.12)':'none',transition:'all 0.3s'}}>\n {popular&&<span style={{position:'absolute',top:-12,left:'50%',transform:'translateX(-50%)',background:'#3b82f6',color:'#fff',fontSize:11,fontWeight:700,padding:'3px 12px',borderRadius:20}}>Most Popular</span>}\n <div style={{fontSize:18,fontWeight:700,color:'#18181b'}}>{name}</div>\n {description&&<div style={{fontSize:13,color:'#71717a',marginTop:4}}>{description}</div>}\n <div style={{marginTop:16,marginBottom:16}}><span style={{fontSize:36,fontWeight:800,color:'#18181b'}}>{price}</span>\n <span style={{fontSize:14,color:'#a1a1aa'}}>{period}</span></div>\n <ul style={{listStyle:'none',padding:0,margin:'0 0 20px',display:'flex',flexDirection:'column',gap:8}}>\n {features.map((f,i)=>(<li key={i} style={{display:'flex',alignItems:'center',gap:8,fontSize:13,color:'#3f3f46'}}>\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke={f.included!==false?'#22c55e':'#d4d4d8'} strokeWidth=\"2\"><polyline points=\"20 6 9 17 4 12\"/></svg>\n <span style={{opacity:f.included===false?0.5:1}}>{typeof f==='string'?f:f.text}</span>\n </li>))}\n </ul>\n <button onClick={()=>onSelect?.(name)} style={{width:'100%',padding:'10px',borderRadius:8,border:'none',\n background:popular?'#3b82f6':'#18181b',color:'#fff',fontSize:14,fontWeight:600,cursor:'pointer',transition:'all 0.2s'}}>{cta}</button>\n </div>);\n}\n","import React from'react';\nimport{PricingCard}from'./PricingCard';\nexport function PricingTable({plans=[],onSelect,columns=3,className=''}){\n return(<div className={`qpay-table ${className}`} style={{display:'grid',gridTemplateColumns:`repeat(${Math.min(columns,plans.length)}, 1fr)`,gap:20,alignItems:'start'}}>\n {plans.map((plan,i)=><PricingCard key={plan.name||i} {...plan} onSelect={onSelect}/>)}\n </div>);\n}\n","/**\n * Payment SDK - 国际化 i18n\n */\n\nexport const SUPPORTED_LANGUAGES = ['en', 'zh', 'ja', 'ko'];\n\nexport const messages = {\n zh: {\n 'pay.checkout': '结算',\n 'pay.total': '合计',\n 'pay.subtotal': '小计',\n 'pay.orderSummary': '订单明细',\n 'pay.discount': '折扣',\n 'pay.tax': '税费',\n 'pay.processing': '处理中...',\n 'pay.proceedToCheckout': '前往支付',\n \n // 充值相关\n 'enterValidAmount': '请输入有效的金额',\n 'recharge': '充值',\n 'createOrderFailed': '创建订单失败',\n 'networkError': '网络错误,请稍后重试',\n 'paymentConfirmFailed': '支付确认失败',\n 'rechargeSuccessful': '充值成功',\n 'rechargeSuccessMsg': '已成功充值 {amount} {currency}',\n 'paymentProcessing': '支付处理中',\n 'orderNo': '订单号',\n 'waitingForPayment': '等待支付...',\n 'simulatePaySuccess': '模拟支付成功',\n 'rechargeAmount': '充值金额',\n 'paymentMethod': '支付方式',\n 'confirmRecharge': '确认充值',\n 'walletRecharge': '钱包充值',\n \n // 支付方式\n 'method.card': '信用卡/借记卡',\n 'method.cardDesc': '支持 Visa, MasterCard 等',\n 'method.paypal': 'PayPal',\n 'method.paypalDesc': '快速安全的结算方式',\n 'method.crypto': '加密货币',\n 'methodCrypto': '加密货币',\n 'method.cryptoDesc': '使用 Web3 钱包支付',\n 'method.alipay': '支付宝',\n 'methodAlipay': '支付宝',\n 'method.alipayDesc': '支付宝快捷支付',\n 'method.wechat': '微信支付',\n 'methodWechat': '微信支付',\n 'method.wechatDesc': '微信快捷支付',\n 'method.apple': 'Apple Pay',\n 'method.appleDesc': '苹果设备快捷支付',\n 'method.google': 'Google Pay',\n 'method.googleDesc': '安卓设备快捷支付',\n 'method.selected': '已选择的支付方式'\n },\n \n en: {\n 'pay.checkout': 'Checkout',\n 'pay.total': 'Total',\n 'pay.subtotal': 'Subtotal',\n 'pay.orderSummary': 'Order Summary',\n 'pay.discount': 'Discount',\n 'pay.tax': 'Tax',\n 'pay.processing': 'Processing...',\n 'pay.proceedToCheckout': 'Proceed to Checkout',\n \n // Recharge\n 'enterValidAmount': 'Please enter a valid amount',\n 'recharge': 'Recharge',\n 'createOrderFailed': 'Failed to create order',\n 'networkError': 'Network error, please try again',\n 'paymentConfirmFailed': 'Failed to confirm payment',\n 'rechargeSuccessful': 'Recharge Successful',\n 'rechargeSuccessMsg': 'Successfully recharged {amount} {currency}',\n 'paymentProcessing': 'Payment Processing',\n 'orderNo': 'Order No',\n 'waitingForPayment': 'Waiting for payment...',\n 'simulatePaySuccess': 'Simulate Payment Success',\n 'rechargeAmount': 'Recharge Amount',\n 'paymentMethod': 'Payment Method',\n 'confirmRecharge': 'Confirm Recharge',\n 'walletRecharge': 'Wallet Recharge',\n \n // Payment Methods\n 'method.card': 'Credit Card',\n 'method.cardDesc': 'Visa, MasterCard, etc.',\n 'method.paypal': 'PayPal',\n 'method.paypalDesc': 'Fast & secure checkout',\n 'method.crypto': 'Crypto',\n 'methodCrypto': 'Crypto',\n 'method.cryptoDesc': 'Pay with Web3 wallet',\n 'method.alipay': 'Alipay',\n 'methodAlipay': 'Alipay',\n 'method.alipayDesc': 'Alipay quick pay',\n 'method.wechat': 'WeChat Pay',\n 'methodWechat': 'WeChat Pay',\n 'method.wechatDesc': 'WeChat quick pay',\n 'method.apple': 'Apple Pay',\n 'method.appleDesc': 'Quick pay on Apple devices',\n 'method.google': 'Google Pay',\n 'method.googleDesc': 'Quick pay on Android',\n 'method.selected': 'Selected payment method'\n },\n \n ja: {\n 'pay.checkout': 'チェックアウト',\n 'pay.total': '合計',\n 'pay.subtotal': '小計',\n 'pay.orderSummary': '注文の概要',\n 'pay.discount': '割引',\n 'pay.tax': '税金',\n 'pay.processing': '処理中...',\n 'pay.proceedToCheckout': '支払いに進む',\n \n // Recharge\n 'enterValidAmount': '有効な金額を入力してください',\n 'recharge': 'チャージ',\n 'createOrderFailed': '注文の作成に失敗しました',\n 'networkError': 'ネットワークエラーです。後でもう一度お試しください',\n 'paymentConfirmFailed': '支払いの確認に失敗しました',\n 'rechargeSuccessful': 'チャージ成功',\n 'rechargeSuccessMsg': '{amount} {currency}のチャージに成功しました',\n 'paymentProcessing': '支払い処理中',\n 'orderNo': '注文番号',\n 'waitingForPayment': '支払いを待っています...',\n 'simulatePaySuccess': '支払いの成功をシミュレート',\n 'rechargeAmount': 'チャージ金額',\n 'paymentMethod': '支払い方法',\n 'confirmRecharge': 'チャージを確認',\n 'walletRecharge': 'ウォレットチャージ',\n \n // Payment Methods\n 'method.card': 'クレジットカード',\n 'method.cardDesc': 'Visa、MasterCardなど',\n 'method.paypal': 'PayPal',\n 'method.paypalDesc': '迅速で安全な支払い',\n 'method.crypto': '暗号通貨',\n 'methodCrypto': '暗号通貨',\n 'method.cryptoDesc': 'Web3ウォレットで支払う',\n 'method.alipay': 'Alipay',\n 'methodAlipay': 'Alipay',\n 'method.alipayDesc': 'Alipayクイックペイ',\n 'method.wechat': 'WeChat Pay',\n 'methodWechat': 'WeChat Pay',\n 'method.wechatDesc': 'WeChatクイックペイ',\n 'method.apple': 'Apple Pay',\n 'method.appleDesc': 'Appleデバイスでクイックペイ',\n 'method.google': 'Google Pay',\n 'method.googleDesc': 'Androidデバイスでクイックペイ',\n 'method.selected': '選択された支払い方法'\n },\n \n ko: {\n 'pay.checkout': '결제',\n 'pay.total': '합계',\n 'pay.subtotal': '소계',\n 'pay.orderSummary': '주문 요약',\n 'pay.discount': '할인',\n 'pay.tax': '세금',\n 'pay.processing': '처리 중...',\n 'pay.proceedToCheckout': '결제 진행',\n \n // Recharge\n 'enterValidAmount': '유효한 금액을 입력하세요',\n 'recharge': '충전',\n 'createOrderFailed': '주문 생성 실패',\n 'networkError': '네트워크 오류, 나중에 다시 시도하세요',\n 'paymentConfirmFailed': '결제 확인 실패',\n 'rechargeSuccessful': '충전 성공',\n 'rechargeSuccessMsg': '{amount} {currency} 충전이 완료되었습니다',\n 'paymentProcessing': '결제 처리 중',\n 'orderNo': '주문 번호',\n 'waitingForPayment': '결제 대기 중...',\n 'simulatePaySuccess': '결제 성공 시뮬레이션',\n 'rechargeAmount': '충전 금액',\n 'paymentMethod': '결제 수단',\n 'confirmRecharge': '충전 확인',\n 'walletRecharge': '지갑 충전',\n \n // Payment Methods\n 'method.card': '신용카드',\n 'method.cardDesc': 'Visa, MasterCard 등',\n 'method.paypal': 'PayPal',\n 'method.paypalDesc': '빠르고 안전한 결제',\n 'method.crypto': '암호화폐',\n 'methodCrypto': '암호화폐',\n 'method.cryptoDesc': 'Web3 지갑으로 결제',\n 'method.alipay': 'Alipay',\n 'methodAlipay': 'Alipay',\n 'method.alipayDesc': 'Alipay 빠른 결제',\n 'method.wechat': 'WeChat Pay',\n 'methodWechat': 'WeChat Pay',\n 'method.wechatDesc': 'WeChat 빠른 결제',\n 'method.apple': 'Apple Pay',\n 'method.appleDesc': 'Apple 기기에서 빠른 결제',\n 'method.google': 'Google Pay',\n 'method.googleDesc': 'Android 기기에서 빠른 결제',\n 'method.selected': '선택한 결제 수단'\n }\n};\n\nlet currentLang = 'zh';\n\nexport function setLanguage(l) {\n if (SUPPORTED_LANGUAGES.includes(l)) currentLang = l;\n}\n\nexport function getLanguage() {\n return currentLang;\n}\n\nexport function t(key, params) {\n const msgs = messages[currentLang] || messages.zh;\n let text = msgs[key] || messages.en[key] || key;\n if (params) {\n Object.keys(params).forEach(k => {\n text = text.replace(new RegExp(`\\\\{${k}\\\\}`, 'g'), params[k]);\n });\n }\n return text;\n}\n\nexport default { messages, SUPPORTED_LANGUAGES, setLanguage, getLanguage, t };\n","import React from 'react';\nimport { t } from '../i18n';\n\n/**\n * Payment SDK - PaymentMethodSelector\n * 高品质支付方式选择器\n */\nexport function PaymentMethodSelector({ methods = ['card', 'paypal', 'crypto'], value, onChange, className = '' }) {\n const ICONS = {\n card: '💳', paypal: '🅿️', crypto: '₿', alipay: '🔷', wechat: '💬', apple: '🍎', google: 'G'\n };\n\n return (\n <div className={`qpay-methods ${className}`} style={{ display: 'flex', flexDirection: 'column', gap: '16px' }}>\n {methods.map(key => {\n const icon = ICONS[key] || '💰';\n const label = t(`method.${key}`);\n const desc = t(`method.${key}Desc`) || t('method.selected');\n const active = value === key;\n \n return (\n <button \n key={key} \n onClick={() => onChange?.(key)} \n style={{\n display: 'flex',\n alignItems: 'center',\n gap: '16px',\n padding: '20px',\n borderRadius: '24px',\n border: active ? '1px solid rgba(59, 130, 246, 0.8)' : '1px solid rgba(255, 255, 255, 0.4)',\n background: active ? 'rgba(255, 255, 255, 0.85)' : 'rgba(255, 255, 255, 0.6)',\n backdropFilter: 'blur(24px)',\n WebkitBackdropFilter: 'blur(24px)',\n cursor: 'pointer',\n textAlign: 'left',\n transition: 'all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275)',\n boxShadow: active \n ? '0 15px 35px -5px rgba(59, 130, 246, 0.15), inset 0 0 0 1px rgba(255, 255, 255, 0.8)' \n : '0 10px 30px -10px rgba(0,0,0,0.05), inset 0 0 0 1px rgba(255, 255, 255, 0.5)',\n outline: 'none'\n }}\n onMouseEnter={(e) => {\n if(!active) {\n e.currentTarget.style.background = 'rgba(255, 255, 255, 0.75)';\n e.currentTarget.style.transform = 'translateY(-2px)';\n e.currentTarget.style.boxShadow = '0 15px 35px -10px rgba(0,0,0,0.08), inset 0 0 0 1px rgba(255, 255, 255, 0.8)';\n }\n }}\n onMouseLeave={(e) => {\n if(!active) {\n e.currentTarget.style.background = 'rgba(255, 255, 255, 0.6)';\n e.currentTarget.style.transform = 'none';\n e.currentTarget.style.boxShadow = '0 10px 30px -10px rgba(0,0,0,0.05), inset 0 0 0 1px rgba(255, 255, 255, 0.5)';\n }\n }}\n >\n <div style={{\n width: '48px',\n height: '48px',\n borderRadius: '16px',\n background: 'rgba(255, 255, 255, 0.9)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: '24px',\n boxShadow: '0 4px 12px rgba(0,0,0,0.05)'\n }}>\n {icon}\n </div>\n \n <div style={{ display: 'flex', flexDirection: 'column', gap: '4px', flex: 1 }}>\n <span style={{ fontWeight: active ? 800 : 700, color: '#0F172A', fontSize: '16px', letterSpacing: '-0.01em' }}>{label}</span>\n <span style={{ fontSize: '13px', color: '#64748B', fontWeight: 500 }}>{desc}</span>\n </div>\n\n <div style={{\n width: '28px',\n height: '28px',\n borderRadius: '50%',\n border: active ? '8px solid #3B82F6' : '2px solid rgba(148, 163, 184, 0.5)',\n background: '#fff',\n transition: 'all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275)',\n marginLeft: 'auto',\n boxShadow: active ? '0 4px 12px rgba(59, 130, 246, 0.3)' : 'none'\n }} />\n </button>\n );\n })}\n </div>\n );\n}\n\nexport default PaymentMethodSelector;\n","import React from'react';\nexport function CheckoutSummary({items=[],subtotal,discount,tax,total,currency='$',onCheckout,loading=false,className=''}){\n return(<div className={`qpay-summary ${className}`} style={{padding:24,borderRadius:16,border:'1px solid #e4e4e7',background:'#fafafa'}}>\n <h3 style={{fontSize:16,fontWeight:700,margin:'0 0 16px'}}>Order Summary</h3>\n <div style={{display:'flex',flexDirection:'column',gap:8}}>\n {items.map((item,i)=>(<div key={i} style={{display:'flex',justifyContent:'space-between',fontSize:13}}>\n <span style={{color:'#3f3f46'}}>{item.name}{item.qty>1&&` × ${item.qty}`}</span>\n <span style={{fontWeight:500}}>{currency}{item.price}</span></div>))}\n </div>\n <div style={{borderTop:'1px solid #e4e4e7',marginTop:12,paddingTop:12,display:'flex',flexDirection:'column',gap:6,fontSize:13}}>\n {subtotal!=null&&<div style={{display:'flex',justifyContent:'space-between'}}><span style={{color:'#71717a'}}>Subtotal</span><span>{currency}{subtotal}</span></div>}\n {discount!=null&&<div style={{display:'flex',justifyContent:'space-between'}}><span style={{color:'#22c55e'}}>Discount</span><span style={{color:'#22c55e'}}>-{currency}{discount}</span></div>}\n {tax!=null&&<div style={{display:'flex',justifyContent:'space-between'}}><span style={{color:'#71717a'}}>Tax</span><span>{currency}{tax}</span></div>}\n <div style={{display:'flex',justifyContent:'space-between',fontSize:16,fontWeight:700,borderTop:'1px solid #e4e4e7',paddingTop:12,marginTop:4}}>\n <span>Total</span><span>{currency}{total}</span></div>\n </div>\n {onCheckout&&<button onClick={onCheckout} disabled={loading} style={{width:'100%',marginTop:16,padding:'12px',borderRadius:10,\n border:'none',background:'#18181b',color:'#fff',fontSize:14,fontWeight:600,cursor:'pointer'}}>{loading?'Processing...':'Checkout'}</button>}\n </div>);\n}\n","/**\n * Payment SDK - API 客户端\n * 支付系统后端接口封装\n * \n * 使用 BaseApiClient 基类简化代码\n */\n\nimport { BaseApiClient } from '@quantabit/sdk-config';\n\n/**\n * 支付 API 客户端\n */\nexport class PaymentApiClient extends BaseApiClient {\n constructor(config = {}) {\n super('/api/payment', config);\n }\n\n // ============ 支付方式 ============\n\n /**\n * 获取可用支付方式\n * @param {Object} orderInfo - 订单信息\n */\n async getPaymentMethods(orderInfo = {}) {\n return this.post('/methods', orderInfo);\n }\n\n /**\n * 获取已绑定的支付方式\n */\n async getSavedPaymentMethods() {\n return this.get('/methods/saved');\n }\n\n /**\n * 添加支付方式\n * @param {Object} paymentMethod - 支付方式数据\n */\n async addPaymentMethod(paymentMethod) {\n return this.post('/methods/add', paymentMethod);\n }\n\n /**\n * 删除支付方式\n * @param {string} methodId - 支付方式 ID\n */\n async removePaymentMethod(methodId) {\n return this.delete(`/methods/${methodId}`);\n }\n\n /**\n * 设置默认支付方式\n * @param {string} methodId - 支付方式 ID\n */\n async setDefaultPaymentMethod(methodId) {\n return this.post(`/methods/${methodId}/default`);\n }\n\n // ============ 支付操作 ============\n\n /**\n * 创建支付订单\n * @param {Object} data - 支付数据\n */\n async createPayment(data) {\n return this.post('/create', data);\n }\n\n /**\n * 获取支付信息\n * @param {string} paymentId - 支付 ID\n */\n async getPayment(paymentId) {\n return this.get(`/${paymentId}`);\n }\n\n /**\n * 确认支付\n * @param {string} paymentId - 支付 ID\n * @param {Object} paymentData - 支付数据\n */\n async confirmPayment(paymentId, paymentData) {\n return this.post(`/${paymentId}/confirm`, paymentData);\n }\n\n /**\n * 取消支付\n * @param {string} paymentId - 支付 ID\n */\n async cancelPayment(paymentId) {\n return this.post(`/${paymentId}/cancel`);\n }\n\n /**\n * 查询支付状态\n * @param {string} paymentId - 支付 ID\n */\n async getPaymentStatus(paymentId) {\n return this.get(`/${paymentId}/status`);\n }\n\n // ============ 退款 ============\n\n /**\n * 申请退款\n * @param {string} paymentId - 支付 ID\n * @param {Object} refundData - 退款数据\n */\n async requestRefund(paymentId, refundData) {\n return this.post(`/${paymentId}/refund`, refundData);\n }\n\n /**\n * 获取退款状态\n * @param {string} refundId - 退款 ID\n */\n async getRefundStatus(refundId) {\n return this.get(`/refunds/${refundId}`);\n }\n\n /**\n * 获取退款列表\n * @param {Object} params - 查询参数\n */\n async getRefunds(params = {}) {\n return this.get('/refunds', params);\n }\n\n // ============ 支付记录 ============\n\n /**\n * 获取支付记录\n * @param {Object} params - 查询参数\n */\n async getPaymentHistory(params = {}) {\n return this.get('/history', params);\n }\n\n /**\n * 获取支付统计\n * @param {Object} params - 统计参数\n */\n async getPaymentStats(params = {}) {\n return this.get('/stats', params);\n }\n\n // ============ 第三方支付 ============\n\n /**\n * 获取微信支付参数\n * @param {string} paymentId - 支付 ID\n */\n async getWechatPayParams(paymentId) {\n return this.get(`/${paymentId}/wechat/params`);\n }\n\n /**\n * 获取支付宝支付参数\n * @param {string} paymentId - 支付 ID\n */\n async getAlipayParams(paymentId) {\n return this.get(`/${paymentId}/alipay/params`);\n }\n\n /**\n * 获取 Apple Pay 参数\n * @param {string} paymentId - 支付 ID\n */\n async getApplePayParams(paymentId) {\n return this.get(`/${paymentId}/applepay/params`);\n }\n\n // ============ 加密货币支付 ============\n\n /**\n * 获取加密货币支付地址\n * @param {string} paymentId - 支付 ID\n * @param {string} currency - 币种\n */\n async getCryptoPaymentAddress(paymentId, currency) {\n return this.get(`/${paymentId}/crypto/address`, { currency });\n }\n\n /**\n * 确认加密货币支付\n * @param {string} paymentId - 支付 ID\n * @param {string} txHash - 交易哈希\n */\n async confirmCryptoPayment(paymentId, txHash) {\n return this.post(`/${paymentId}/crypto/confirm`, { tx_hash: txHash });\n }\n\n // ============ 平台支付同步 (QuantaBit) ============\n\n /**\n * 同步支付结果到 QuantaBit\n * 平台支付完成后调用,将支付信息同步到 QuantaBit 中台\n * @param {Object} data - 支付同步数据\n * @param {string} data.app_id - 来源应用 ID\n * @param {string} data.app_order_id - 应用内订单 ID\n * @param {string} data.payment_method - 支付方式\n * @param {number} data.amount - 支付金额\n * @param {string} [data.status] - 支付状态(默认 'success')\n * @param {string} [data.user_did] - 用户 DID\n * @param {string} [data.title] - 订单标题\n */\n async syncPaymentToQbitDid(data) {\n const baseURL = this.config?.qbitDidApiUrl || \n (this.baseURL.includes('/api/payment') \n ? this.baseURL.replace('/api/payment', '') \n : this.baseURL);\n \n return this.post('/platform-orders/sync-payment', data, { baseURL });\n }\n\n /**\n * 同步交易流水到 QuantaBit\n * @param {Object} data - 交易数据\n * @param {string} data.app_id - 应用 ID\n * @param {string} data.tx_type - 交易类型\n * @param {number} data.amount - 金额\n * @param {string} data.title - 交易标题\n * @param {string} [data.user_did] - 用户 DID\n */\n async syncTransactionToQbitDid(data) {\n const baseURL = this.config?.qbitDidApiUrl || \n (this.baseURL.includes('/api/payment') \n ? this.baseURL.replace('/api/payment', '') \n : this.baseURL);\n \n return this.post('/platform-orders/sync-transaction', data, { baseURL });\n }\n\n /**\n * 扣减用户 QuantaBit 积分\n * 用于支付时抵扣积分\n * @param {Object} data - 扣减数据\n * @param {string} data.app_id - 应用 ID\n * @param {number} data.points - 积分数量\n * @param {string} [data.user_did] - 用户 DID\n * @param {string} [data.order_id] - 关联订单 ID\n * @param {string} [data.reason] - 扣减原因\n */\n async deductQbitDidPoints(data) {\n const baseURL = this.config?.qbitDidApiUrl || \n (this.baseURL.includes('/api/payment') \n ? this.baseURL.replace('/api/payment', '') \n : this.baseURL);\n \n return this.post('/platform-orders/deduct-points', data, { baseURL });\n }\n\n /**\n * 获取用户 QuantaBit 积分余额\n * @param {string} userDid - 用户 DID\n */\n async getQbitDidPointsBalance(userDid) {\n const baseURL = this.config?.qbitDidApiUrl || \n (this.baseURL.includes('/api/payment') \n ? this.baseURL.replace('/api/payment', '') \n : this.baseURL);\n \n return this.get('/modules/points/balance', { did: userDid }, { baseURL });\n }\n\n /**\n * 获取用户 QuantaBit 代币余额\n * @param {string} userDid - 用户 DID\n * @param {string} [tokenSymbol] - 代币符号\n */\n async getQbitDidTokenBalance(userDid, tokenSymbol) {\n const baseURL = this.config?.qbitDidApiUrl || \n (this.baseURL.includes('/api/payment') \n ? this.baseURL.replace('/api/payment', '') \n : this.baseURL);\n \n return this.get('/modules/tokens/balance', { did: userDid, symbol: tokenSymbol }, { baseURL });\n }\n\n /**\n * 综合支付并同步到 QuantaBit\n * 一次调用完成:本地支付 + QuantaBit 同步\n * @param {Object} paymentData - 支付数据\n * @param {Object} syncOptions - 同步选项\n */\n async payAndSync(paymentData, syncOptions = {}) {\n // 1. 执行本地支付\n const paymentResult = await this.createPayment(paymentData);\n \n // 2. 如果支付成功,自动同步到 QuantaBit\n if (paymentResult.success || paymentResult.status === 'success') {\n try {\n await this.syncPaymentToQbitDid({\n app_id: syncOptions.app_id || 'default',\n app_order_id: paymentData.order_id,\n payment_method: paymentData.payment_method,\n amount: paymentData.amount,\n status: 'success',\n user_did: syncOptions.user_did,\n title: syncOptions.title || paymentData.title,\n });\n \n paymentResult.qbit_did_synced = true;\n } catch (syncError) {\n // 同步失败不影响支付结果,但记录错误\n console.warn('[PaymentSDK] QuantaBit 同步失败:', syncError);\n paymentResult.qbit_did_synced = false;\n paymentResult.qbit_did_sync_error = syncError.message;\n }\n }\n \n return paymentResult;\n }\n\n // ============ 余额查询 ============\n\n /**\n * 获取用户余额\n * @returns {Promise<{amount: number, points: number}>}\n */\n async getBalance() {\n return this.get('/balance');\n }\n\n // ============ 余额支付 ============\n\n /**\n * 使用余额支付\n * @param {string} orderId - 订单 ID\n * @param {string} password - 支付密码\n */\n async payWithBalance(orderId, password) {\n return this.post(`/${orderId}/pay-with-balance`, { password });\n }\n\n // ============ 充值 ============\n\n /**\n * 创建充值订单\n * @param {Object} data - 充值数据\n * @param {number} data.amount - 充值金额\n * @param {string} data.method - 充值方式\n */\n async createRecharge(data) {\n return this.post('/recharge', data);\n }\n\n // ============ 兼容别名(供 PaymentContext 调用) ============\n\n /** @alias getPaymentMethods */\n async getAvailableMethods(params) {\n return this.getPaymentMethods(params);\n }\n\n /** @alias createPayment */\n async create(data) {\n return this.createPayment(data);\n }\n\n /** @alias getPaymentStatus */\n async checkStatus(paymentId) {\n return this.getPaymentStatus(paymentId);\n }\n\n /** @alias cancelPayment */\n async cancel(paymentId) {\n return this.cancelPayment(paymentId);\n }\n\n // ============ 隐私合规 (PCI DSS + GDPR) ============\n\n /**\n * 导出用户支付数据 — GDPR 第20条\n * 导出匿名化的支付记录(不含完整卡号/密码)\n * @returns {Promise<object>} 匿名化的支付数据\n */\n async exportPaymentData() {\n try {\n const history = await this.getPaymentHistory({ page_size: 100 });\n const methods = await this.getSavedPaymentMethods();\n return {\n exportDate: new Date().toISOString(),\n format: 'QBit Payment Export (GDPR Art. 20)',\n note: 'Card numbers are masked per PCI DSS requirements',\n paymentHistory: history?.data?.items?.map(tx => ({\n ...tx,\n // 支付密码和卡号不导出\n card_number: tx.card_number ? `****${tx.card_number.slice(-4)}` : undefined,\n password: undefined,\n cvv: undefined,\n })) || [],\n savedMethods: methods?.data?.map(m => ({\n id: m.id,\n type: m.type,\n lastFour: m.last_four || m.card_number?.slice(-4),\n expiry: m.expiry,\n isDefault: m.is_default,\n })) || [],\n };\n } catch (e) {\n return { error: e.message, exportDate: new Date().toISOString() };\n }\n }\n\n /**\n * 获取隐私数据声明\n */\n getDataDisclosure() {\n return {\n sdk: '@quantabit/payment-sdk',\n privacyLevel: 'functional',\n consentRequired: false,\n collected: [\n { type: 'payment_methods', description: 'Saved payment methods (masked)', retention: 'Until deletion', encrypted: true },\n { type: 'transaction_history', description: 'Payment records', retention: '5 years (legal requirement)' },\n { type: 'billing_address', description: 'Billing details (if provided)', retention: 'Until deletion' },\n { type: 'points_balance', description: 'QBit points and token balances', retention: 'Active' },\n ],\n compliance: ['PCI DSS Level 1', 'GDPR Art. 20 (export)', 'AML/KYT'],\n gdprCapabilities: ['export'],\n note: 'Card numbers are never stored in full; only last 4 digits retained per PCI DSS.',\n };\n }\n}\n\n// 创建默认实例\nexport const paymentApi = new PaymentApiClient();\n\n\n\nexport default paymentApi;\n","/**\n * Payment SDK - RechargeModal 组件\n * 钱包充值弹窗\n * \n * 使用 i18n 国际化,不依赖 Tailwind CSS\n */\n\nimport React, { useState, useEffect } from \"react\";\nimport { Modal, Button, InputNumber, Spin, Typography } from \"antd\";\nimport { \n AlipayCircleFilled, \n WechatFilled, \n DollarCircleFilled, \n DollarOutlined,\n WalletFilled,\n CheckCircleFilled\n} from \"@ant-design/icons\";\nimport { paymentApi } from \"../services/paymentApi\";\nimport { t } from \"../i18n\";\n\nconst { Text, Title } = Typography;\n\nconst PAYMENT_METHODS = [\n { id: \"alipay\", nameKey: \"methodAlipay\", icon: <AlipayCircleFilled style={{ color: \"#1677FF\", fontSize: '24px' }} /> },\n { id: \"wechat\", nameKey: \"methodWechat\", icon: <WechatFilled style={{ color: \"#52C41A\", fontSize: '24px' }} /> },\n { id: \"crypto\", nameKey: \"methodCrypto\", icon: <DollarCircleFilled style={{ color: \"#F7B500\", fontSize: '24px' }} /> },\n];\n\nexport const RechargeModal = ({ \n visible, \n onCancel, \n onSuccess, \n userId, \n initialAmount = 100,\n currency = \"XWIN\" \n}) => {\n const [amount, setAmount] = useState(initialAmount);\n const [method, setMethod] = useState(\"alipay\");\n const [loading, setLoading] = useState(false);\n const [step, setStep] = useState(\"select\"); // select, paying, success\n const [paymentData, setPaymentData] = useState(null);\n\n useEffect(() => {\n if (visible) {\n setStep(\"select\");\n setAmount(initialAmount);\n setPaymentData(null);\n }\n }, [visible, initialAmount]);\n\n const handleRecharge = async () => {\n if (amount <= 0) {\n try {\n const { message } = await import(\"antd\");\n message.warning(t('enterValidAmount'));\n } catch {\n alert(t('enterValidAmount'));\n }\n return;\n }\n\n setLoading(true);\n try {\n const res = await paymentApi.createPayment({\n user_id: userId,\n amount,\n currency,\n payment_method: method,\n order_type: \"recharge\",\n description: `${t('recharge')} ${amount} ${currency}`\n });\n\n if (res.code === 0 || res.success) {\n setPaymentData(res.data);\n setStep(\"paying\");\n \n if (method === \"mock\" || method === \"wallet\") {\n handleSuccess();\n }\n } else {\n try {\n const { message } = await import(\"antd\");\n message.error(res.data?.msg || t('createOrderFailed'));\n } catch {\n alert(t('createOrderFailed'));\n }\n }\n } catch (error) {\n console.error(error);\n try {\n const { message } = await import(\"antd\");\n message.error(t('networkError'));\n } catch {\n alert(t('networkError'));\n }\n } finally {\n setLoading(false);\n }\n };\n\n const handleSuccess = () => {\n setStep(\"success\");\n if (onSuccess) onSuccess(amount);\n \n setTimeout(() => {\n onCancel();\n }, 3000);\n };\n\n const handleMockPay = async () => {\n setLoading(true);\n try {\n await paymentApi.confirmPayment(paymentData.payment_no || paymentData.id, { status: 'success' });\n handleSuccess();\n } catch (e) {\n try {\n const { message } = await import(\"antd\");\n message.error(t('paymentConfirmFailed'));\n } catch {\n alert(t('paymentConfirmFailed'));\n }\n } finally {\n setLoading(false);\n }\n };\n\n const getMethodName = (m) => t(m.nameKey) || m.id;\n\n const renderContent = () => {\n // ============ 充值成功 ============\n if (step === \"success\") {\n return (\n <div style={{ textAlign: 'center', padding: '40px 20px', animation: 'fadeIn 0.5s' }}>\n <CheckCircleFilled style={{ fontSize: 72, color: \"#52C41A\", marginBottom: '24px', animation: 'scaleIn 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275)' }} />\n <h2 style={{ fontSize: '24px', fontWeight: 800, color: '#0F172A', marginBottom: '8px' }}>{t('rechargeSuccessful')}</h2>\n <p style={{ fontSize: '15px', color: '#64748B' }}>{t('rechargeSuccessMsg', { amount, currency })}</p>\n </div>\n );\n }\n\n // ============ 等待支付 ============\n if (step === \"paying\") {\n return (\n <div style={{ padding: '20px', textAlign: 'center', animation: 'fadeIn 0.3s' }}>\n <h3 style={{ fontSize: '20px', fontWeight: 700, color: '#0F172A', marginBottom: '8px' }}>{t('paymentProcessing')}</h3>\n <div style={{ fontSize: '13px', color: '#94A3B8', marginBottom: '32px' }}>\n {t('orderNo')}: {paymentData?.order_no}\n </div>\n \n <div style={{\n background: 'rgba(241, 245, 249, 0.5)', border: '1px solid rgba(226, 232, 240, 0.8)',\n borderRadius: '24px', padding: '32px', marginBottom: '32px', display: 'flex', flexDirection: 'column', alignItems: 'center'\n }}>\n <div style={{ fontSize: '48px', fontWeight: 800, color: '#0F172A', lineHeight: 1, marginBottom: '16px' }}>\n {amount} <span style={{ fontSize: '20px', color: '#64748B' }}>{currency}</span>\n </div>\n <div style={{ display: 'flex', alignItems: 'center', gap: '8px', background: '#fff', padding: '8px 16px', borderRadius: '100px', boxShadow: '0 4px 12px rgba(0,0,0,0.05)' }}>\n {PAYMENT_METHODS.find(m => m.id === method)?.icon}\n <span style={{ fontSize: '15px', fontWeight: 600, color: '#334155' }}>{getMethodName(PAYMENT_METHODS.find(m => m.id === method))}</span>\n </div>\n </div>\n\n <div style={{ display: 'flex', flexDirection: 'column', gap: '24px', alignItems: 'center' }}>\n <Spin tip={t('waitingForPayment')} size=\"large\" />\n <button \n onClick={handleMockPay}\n style={{\n background: 'transparent', border: 'none', color: '#3B82F6', fontSize: '14px', fontWeight: 600,\n cursor: 'pointer', textDecoration: 'underline'\n }}\n >\n {t('simulatePaySuccess')}\n </button>\n </div>\n </div>\n );\n }\n\n // ============ 选择金额和方式 ============\n return (\n <div style={{ display: 'flex', flexDirection: 'column', gap: '32px', padding: '10px 0' }}>\n {/* 充值金额 */}\n <div>\n <div style={{ fontSize: '16px', fontWeight: 700, color: '#0F172A', marginBottom: '16px' }}>{t('rechargeAmount')} ({currency})</div>\n <div style={{ display: 'grid', gridTemplateColumns: 'repeat(4, 1fr)', gap: '12px', marginBottom: '16px' }}>\n {[100, 500, 1000, 5000].map(val => (\n <div \n key={val} \n onClick={() => setAmount(val)}\n style={{\n padding: '16px 0', textAlign: 'center', borderRadius: '16px', cursor: 'pointer', fontSize: '16px', fontWeight: 600,\n transition: 'all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275)', \n border: amount === val ? '1px solid rgba(59, 130, 246, 0.8)' : '1px solid rgba(255, 255, 255, 0.4)',\n background: amount === val ? 'rgba(255, 255, 255, 0.9)' : 'rgba(255, 255, 255, 0.6)',\n backdropFilter: 'blur(16px)', WebkitBackdropFilter: 'blur(16px)',\n color: amount === val ? '#2563EB' : '#475569',\n boxShadow: amount === val ? '0 10px 20px -5px rgba(59, 130, 246, 0.2), inset 0 0 0 1px rgba(255,255,255,0.8)' : '0 4px 12px rgba(0,0,0,0.02), inset 0 0 0 1px rgba(255,255,255,0.5)'\n }}\n onMouseEnter={e => { if(amount !== val) { e.currentTarget.style.transform = 'translateY(-2px)'; e.currentTarget.style.background = 'rgba(255, 255, 255, 0.8)'; } }}\n onMouseLeave={e => { if(amount !== val) { e.currentTarget.style.transform = 'none'; e.currentTarget.style.background = 'rgba(255, 255, 255, 0.6)'; } }}\n >\n {val}\n </div>\n ))}\n </div>\n <InputNumber \n style={{ width: \"100%\", borderRadius: '16px', background: 'rgba(241, 245, 249, 0.5)' }} \n size=\"large\"\n value={amount}\n onChange={setAmount}\n prefix={<DollarOutlined style={{ color: '#94A3B8' }} />}\n min={1}\n />\n </div>\n\n {/* 支付方式 */}\n <div>\n <div style={{ fontSize: '16px', fontWeight: 700, color: '#0F172A', marginBottom: '16px' }}>{t('paymentMethod')}</div>\n <div style={{ display: 'flex', flexDirection: 'column', gap: '12px' }}>\n {PAYMENT_METHODS.map(m => (\n <div \n key={m.id} \n onClick={() => setMethod(m.id)}\n style={{\n display: 'flex', alignItems: 'center', padding: '16px', borderRadius: '20px', cursor: 'pointer',\n border: method === m.id ? '1px solid rgba(59, 130, 246, 0.8)' : '1px solid rgba(255, 255, 255, 0.4)',\n background: method === m.id ? 'rgba(255, 255, 255, 0.85)' : 'rgba(255, 255, 255, 0.6)',\n backdropFilter: 'blur(16px)', WebkitBackdropFilter: 'blur(16px)',\n transition: 'all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275)', \n boxShadow: method === m.id ? '0 10px 25px -5px rgba(59, 130, 246, 0.15), inset 0 0 0 1px rgba(255,255,255,0.8)' : '0 4px 12px rgba(0,0,0,0.02), inset 0 0 0 1px rgba(255,255,255,0.5)'\n }}\n onMouseEnter={e => { if(method !== m.id) { e.currentTarget.style.transform = 'translateY(-2px)'; e.currentTarget.style.background = 'rgba(255, 255, 255, 0.8)'; } }}\n onMouseLeave={e => { if(method !== m.id) { e.currentTarget.style.transform = 'none'; e.currentTarget.style.background = 'rgba(255, 255, 255, 0.6)'; } }}\n >\n <div style={{ width: '40px', height: '40px', background: 'rgba(255,255,255,0.9)', borderRadius: '12px', display: 'flex', alignItems: 'center', justifyContent: 'center', boxShadow: '0 2px 8px rgba(0,0,0,0.05)' }}>\n {m.icon}\n </div>\n <div style={{ marginLeft: '16px', flex: 1, fontSize: '16px', fontWeight: 600, color: '#0F172A' }}>\n {getMethodName(m)}\n </div>\n <div style={{\n width: '24px', height: '24px', borderRadius: '50%', border: method === m.id ? '7px solid #3B82F6' : '2px solid rgba(148, 163, 184, 0.5)',\n background: '#fff', transition: 'all 0.2s', boxShadow: method === m.id ? '0 4px 8px rgba(59, 130, 246, 0.2)' : 'none'\n }} />\n </div>\n ))}\n </div>\n </div>\n\n {/* 确认充值按钮 */}\n <button \n onClick={handleRecharge}\n disabled={loading}\n style={{\n width: '100%', padding: '16px', borderRadius: '16px', border: 'none',\n background: 'linear-gradient(135deg, #1E293B 0%, #0F172A 100%)', color: '#fff',\n fontSize: '16px', fontWeight: 700, cursor: loading ? 'not-allowed' : 'pointer', opacity: loading ? 0.8 : 1,\n display: 'flex', alignItems: 'center', justifyContent: 'center', gap: '8px',\n boxShadow: '0 10px 25px -5px rgba(15, 23, 42, 0.3)', transition: 'all 0.2s'\n }}\n onMouseEnter={e => { if(!loading) { e.currentTarget.style.transform = 'translateY(-2px)'; e.currentTarget.style.boxShadow = '0 15px 35px -5px rgba(15, 23, 42, 0.4)'; } }}\n onMouseLeave={e => { if(!loading) { e.currentTarget.style.transform = 'none'; e.currentTarget.style.boxShadow = '0 10px 25px -5px rgba(15, 23, 42, 0.3)'; } }}\n >\n <WalletFilled />\n {loading ? t('pay.processing') : t('confirmRecharge')}\n </button>\n </div>\n );\n };\n\n return (\n <Modal\n open={visible}\n onCancel={onCancel}\n footer={null}\n width={480}\n destroyOnClose\n styles={{\n content: { padding: '32px', borderRadius: '32px', background: 'rgba(255, 255, 255, 0.9)', backdropFilter: 'blur(24px)', boxShadow: '0 25px 50px -12px rgba(0, 0, 0, 0.25)' },\n header: { background: 'transparent', marginBottom: '24px' },\n mask: { backdropFilter: 'blur(8px)', background: 'rgba(15, 23, 42, 0.4)' }\n }}\n title={<div style={{ fontSize: '24px', fontWeight: 800, color: '#0F172A' }}>{t('walletRecharge')}</div>}\n >\n <style>{`\n @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }\n @keyframes scaleIn { from { transform: scale(0.5); opacity: 0; } to { transform: scale(1); opacity: 1; } }\n `}</style>\n {renderContent()}\n </Modal>\n );\n};\n\nexport default RechargeModal;\n"],"names":["PricingCard","name","price","period","description","features","cta","popular","onSelect","className","React","createElement","style","padding","borderRadius","border","background","position","boxShadow","transition","top","left","transform","color","fontSize","fontWeight","marginTop","marginBottom","listStyle","margin","display","flexDirection","gap","map","f","i","key","alignItems","width","height","viewBox","fill","stroke","included","strokeWidth","points","opacity","text","onClick","cursor","PricingTable","plans","columns","gridTemplateColumns","Math","min","length","plan","_extends","SUPPORTED_LANGUAGES","messages","zh","en","ja","ko","currentLang","setLanguage","l","includes","getLanguage","t","params","msgs","Object","keys","forEach","k","replace","RegExp","PaymentMethodSelector","methods","value","onChange","ICONS","card","paypal","crypto","alipay","wechat","apple","google","icon","label","desc","active","backdropFilter","WebkitBackdropFilter","textAlign","outline","onMouseEnter","e","currentTarget","onMouseLeave","justifyContent","flex","letterSpacing","marginLeft","CheckoutSummary","items","subtotal","discount","tax","total","currency","onCheckout","loading","item","qty","borderTop","paddingTop","disabled","PaymentApiClient","BaseApiClient","constructor","config","getPaymentMethods","orderInfo","post","getSavedPaymentMethods","get","addPaymentMethod","paymentMethod","removePaymentMethod","methodId","delete","setDefaultPaymentMethod","createPayment","data","getPayment","paymentId","confirmPayment","paymentData","cancelPayment","getPaymentStatus","requestRefund","refundData","getRefundStatus","refundId","getRefunds","getPaymentHistory","getPaymentStats","getWechatPayParams","getAlipayParams","getApplePayParams","getCryptoPaymentAddress","confirmCryptoPayment","txHash","tx_hash","syncPaymentToQbitDid","baseURL","qbitDidApiUrl","syncTransactionToQbitDid","deductQbitDidPoints","getQbitDidPointsBalance","userDid","did","getQbitDidTokenBalance","tokenSymbol","symbol","payAndSync","syncOptions","paymentResult","success","status","app_id","app_order_id","order_id","payment_method","amount","user_did","title","qbit_did_synced","syncError","console","warn","qbit_did_sync_error","message","getBalance","payWithBalance","orderId","password","createRecharge","getAvailableMethods","create","checkStatus","cancel","exportPaymentData","history","page_size","exportDate","Date","toISOString","format","note","paymentHistory","tx","card_number","slice","undefined","cvv","savedMethods","m","id","type","lastFour","last_four","expiry","isDefault","is_default","error","getDataDisclosure","sdk","privacyLevel","consentRequired","collected","retention","encrypted","compliance","gdprCapabilities","paymentApi","Text","Title","Typography","PAYMENT_METHODS","nameKey","AlipayCircleFilled","WechatFilled","DollarCircleFilled","RechargeModal","visible","onCancel","onSuccess","userId","initialAmount","setAmount","useState","method","setMethod","setLoading","step","setStep","setPaymentData","useEffect","handleRecharge","warning","alert","res","user_id","order_type","code","handleSuccess","msg","setTimeout","handleMockPay","payment_no","getMethodName","renderContent","animation","CheckCircleFilled","order_no","lineHeight","find","Spin","tip","size","textDecoration","val","InputNumber","prefix","DollarOutlined","WalletFilled","Modal","open","footer","destroyOnClose","styles","content","header","mask"],"mappings":";;;;;;;;;;;;;;;AACO,SAASA,WAAWA,CAAC;EAACC,IAAI;EAACC,KAAK;AAACC,EAAAA,MAAM,GAAC,KAAK;EAACC,WAAW;AAACC,EAAAA,QAAQ,GAAC,EAAE;AAACC,EAAAA,GAAG,GAAC,aAAa;AAACC,EAAAA,OAAO,GAAC,KAAK;EAACC,QAAQ;AAACC,EAAAA,SAAS,GAAC;AAAE,CAAC,EAAC;EAClI,oBAAOC,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKF,SAAS,EAAE,aAAaF,OAAO,GAAC,cAAc,GAAC,EAAE,CAAA,CAAA,EAAIE,SAAS,CAAA,CAAG;AAACG,IAAAA,KAAK,EAAE;AAACC,MAAAA,OAAO,EAAC,EAAE;AAACC,MAAAA,YAAY,EAAC,EAAE;AAC9GC,MAAAA,MAAM,EAACR,OAAO,GAAC,mBAAmB,GAAC,mBAAmB;AAACS,MAAAA,UAAU,EAAC,MAAM;AAACC,MAAAA,QAAQ,EAAC,UAAU;AAC5FC,MAAAA,SAAS,EAACX,OAAO,GAAC,kCAAkC,GAAC,MAAM;AAACY,MAAAA,UAAU,EAAC;AAAU;AAAE,GAAA,EAClFZ,OAAO,iBAAEG,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMC,IAAAA,KAAK,EAAE;AAACK,MAAAA,QAAQ,EAAC,UAAU;MAACG,GAAG,EAAC,GAAG;AAACC,MAAAA,IAAI,EAAC,KAAK;AAACC,MAAAA,SAAS,EAAC,kBAAkB;AAACN,MAAAA,UAAU,EAAC,SAAS;AAACO,MAAAA,KAAK,EAAC,MAAM;AAACC,MAAAA,QAAQ,EAAC,EAAE;AAACC,MAAAA,UAAU,EAAC,GAAG;AAACZ,MAAAA,OAAO,EAAC,UAAU;AAACC,MAAAA,YAAY,EAAC;AAAE;AAAE,GAAA,EAAC,cAAkB,CAAC,eACjNJ,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,KAAK,EAAE;AAACY,MAAAA,QAAQ,EAAC,EAAE;AAACC,MAAAA,UAAU,EAAC,GAAG;AAACF,MAAAA,KAAK,EAAC;AAAS;AAAE,GAAA,EAAEtB,IAAU,CAAC,EACrEG,WAAW,iBAAEM,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,KAAK,EAAE;AAACY,MAAAA,QAAQ,EAAC,EAAE;AAACD,MAAAA,KAAK,EAAC,SAAS;AAACG,MAAAA,SAAS,EAAC;AAAC;AAAE,GAAA,EAAEtB,WAAiB,CAAC,eACxFM,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,KAAK,EAAE;AAACc,MAAAA,SAAS,EAAC,EAAE;AAACC,MAAAA,YAAY,EAAC;AAAE;GAAE,eAACjB,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMC,IAAAA,KAAK,EAAE;AAACY,MAAAA,QAAQ,EAAC,EAAE;AAACC,MAAAA,UAAU,EAAC,GAAG;AAACF,MAAAA,KAAK,EAAC;AAAS;AAAE,GAAA,EAAErB,KAAY,CAAC,eACnHQ,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMC,IAAAA,KAAK,EAAE;AAACY,MAAAA,QAAQ,EAAC,EAAE;AAACD,MAAAA,KAAK,EAAC;AAAS;AAAE,GAAA,EAAEpB,MAAa,CAAM,CAAC,eACnEO,KAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;AAAIC,IAAAA,KAAK,EAAE;AAACgB,MAAAA,SAAS,EAAC,MAAM;AAACf,MAAAA,OAAO,EAAC,CAAC;AAACgB,MAAAA,MAAM,EAAC,UAAU;AAACC,MAAAA,OAAO,EAAC,MAAM;AAACC,MAAAA,aAAa,EAAC,QAAQ;AAACC,MAAAA,GAAG,EAAC;AAAC;GAAE,EACnG3B,QAAQ,CAAC4B,GAAG,CAAC,CAACC,CAAC,EAACC,CAAC,kBAAIzB,KAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;AAAIyB,IAAAA,GAAG,EAAED,CAAE;AAACvB,IAAAA,KAAK,EAAE;AAACkB,MAAAA,OAAO,EAAC,MAAM;AAACO,MAAAA,UAAU,EAAC,QAAQ;AAACL,MAAAA,GAAG,EAAC,CAAC;AAACR,MAAAA,QAAQ,EAAC,EAAE;AAACD,MAAAA,KAAK,EAAC;AAAS;GAAE,eAC9Gb,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAK2B,IAAAA,KAAK,EAAC,IAAI;AAACC,IAAAA,MAAM,EAAC,IAAI;AAACC,IAAAA,OAAO,EAAC,WAAW;AAACC,IAAAA,IAAI,EAAC,MAAM;IAACC,MAAM,EAAER,CAAC,CAACS,QAAQ,KAAG,KAAK,GAAC,SAAS,GAAC,SAAU;AAACC,IAAAA,WAAW,EAAC;GAAG,eAAClC,KAAA,CAAAC,aAAA,CAAA,UAAA,EAAA;AAAUkC,IAAAA,MAAM,EAAC;AAAgB,GAAC,CAAM,CAAC,eACrKnC,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMC,IAAAA,KAAK,EAAE;MAACkC,OAAO,EAACZ,CAAC,CAACS,QAAQ,KAAG,KAAK,GAAC,GAAG,GAAC;AAAC;AAAE,GAAA,EAAE,OAAOT,CAAC,KAAG,QAAQ,GAACA,CAAC,GAACA,CAAC,CAACa,IAAW,CACnF,CAAE,CACJ,CAAC,eACLrC,KAAA,CAAAC,aAAA,CAAA,QAAA,EAAA;AAAQqC,IAAAA,OAAO,EAAEA,MAAIxC,QAAQ,GAAGP,IAAI,CAAE;AAACW,IAAAA,KAAK,EAAE;AAAC0B,MAAAA,KAAK,EAAC,MAAM;AAACzB,MAAAA,OAAO,EAAC,MAAM;AAACC,MAAAA,YAAY,EAAC,CAAC;AAACC,MAAAA,MAAM,EAAC,MAAM;AACrGC,MAAAA,UAAU,EAACT,OAAO,GAAC,SAAS,GAAC,SAAS;AAACgB,MAAAA,KAAK,EAAC,MAAM;AAACC,MAAAA,QAAQ,EAAC,EAAE;AAACC,MAAAA,UAAU,EAAC,GAAG;AAACwB,MAAAA,MAAM,EAAC,SAAS;AAAC9B,MAAAA,UAAU,EAAC;AAAU;GAAE,EAAEb,GAAY,CACpI,CAAC;AACR;;ACjBO,SAAS4C,YAAYA,CAAC;AAACC,EAAAA,KAAK,GAAC,EAAE;EAAC3C,QAAQ;AAAC4C,EAAAA,OAAO,GAAC,CAAC;AAAC3C,EAAAA,SAAS,GAAC;AAAE,CAAC,EAAC;EACtE,oBAAOC,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKF,SAAS,EAAE,CAAA,WAAA,EAAcA,SAAS,CAAA,CAAG;AAACG,IAAAA,KAAK,EAAE;AAACkB,MAAAA,OAAO,EAAC,MAAM;AAACuB,MAAAA,mBAAmB,EAAC,CAAA,OAAA,EAAUC,IAAI,CAACC,GAAG,CAACH,OAAO,EAACD,KAAK,CAACK,MAAM,CAAC,CAAA,MAAA,CAAQ;AAACxB,MAAAA,GAAG,EAAC,EAAE;AAACK,MAAAA,UAAU,EAAC;AAAO;AAAE,GAAA,EACtKc,KAAK,CAAClB,GAAG,CAAC,CAACwB,IAAI,EAACtB,CAAC,kBAAGzB,KAAA,CAAAC,aAAA,CAACX,WAAW,EAAA0D,QAAA,CAAA;AAACtB,IAAAA,GAAG,EAAEqB,IAAI,CAACxD,IAAI,IAAEkC;AAAE,GAAA,EAAKsB,IAAI,EAAA;AAAEjD,IAAAA,QAAQ,EAAEA;GAAS,CAAC,CAAC,CACjF,CAAC;AACR;;ACNA;AACA;AACA;;AAEO,MAAMmD,mBAAmB,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;AAEnD,MAAMC,QAAQ,GAAG;AACtBC,EAAAA,EAAE,EAAE;AACF,IAAA,cAAc,EAAE,IAAI;AACpB,IAAA,WAAW,EAAE,IAAI;AACjB,IAAA,cAAc,EAAE,IAAI;AACpB,IAAA,kBAAkB,EAAE,MAAM;AAC1B,IAAA,cAAc,EAAE,IAAI;AACpB,IAAA,SAAS,EAAE,IAAI;AACf,IAAA,gBAAgB,EAAE,QAAQ;AAC1B,IAAA,uBAAuB,EAAE,MAAM;AAE/B;AACA,IAAA,kBAAkB,EAAE,UAAU;AAC9B,IAAA,UAAU,EAAE,IAAI;AAChB,IAAA,mBAAmB,EAAE,QAAQ;AAC7B,IAAA,cAAc,EAAE,YAAY;AAC5B,IAAA,sBAAsB,EAAE,QAAQ;AAChC,IAAA,oBAAoB,EAAE,MAAM;AAC5B,IAAA,oBAAoB,EAAE,2BAA2B;AACjD,IAAA,mBAAmB,EAAE,OAAO;AAC5B,IAAA,SAAS,EAAE,KAAK;AAChB,IAAA,mBAAmB,EAAE,SAAS;AAC9B,IAAA,oBAAoB,EAAE,QAAQ;AAC9B,IAAA,gBAAgB,EAAE,MAAM;AACxB,IAAA,eAAe,EAAE,MAAM;AACvB,IAAA,iBAAiB,EAAE,MAAM;AACzB,IAAA,gBAAgB,EAAE,MAAM;AAExB;AACA,IAAA,aAAa,EAAE,SAAS;AACxB,IAAA,iBAAiB,EAAE,uBAAuB;AAC1C,IAAA,eAAe,EAAE,QAAQ;AACzB,IAAA,mBAAmB,EAAE,WAAW;AAChC,IAAA,eAAe,EAAE,MAAM;AACvB,IAAA,cAAc,EAAE,MAAM;AACtB,IAAA,mBAAmB,EAAE,cAAc;AACnC,IAAA,eAAe,EAAE,KAAK;AACtB,IAAA,cAAc,EAAE,KAAK;AACrB,IAAA,mBAAmB,EAAE,SAAS;AAC9B,IAAA,eAAe,EAAE,MAAM;AACvB,IAAA,cAAc,EAAE,MAAM;AACtB,IAAA,mBAAmB,EAAE,QAAQ;AAC7B,IAAA,cAAc,EAAE,WAAW;AAC3B,IAAA,kBAAkB,EAAE,UAAU;AAC9B,IAAA,eAAe,EAAE,YAAY;AAC7B,IAAA,mBAAmB,EAAE,UAAU;AAC/B,IAAA,iBAAiB,EAAE;GACpB;AAEDC,EAAAA,EAAE,EAAE;AACF,IAAA,cAAc,EAAE,UAAU;AAC1B,IAAA,WAAW,EAAE,OAAO;AACpB,IAAA,cAAc,EAAE,UAAU;AAC1B,IAAA,kBAAkB,EAAE,eAAe;AACnC,IAAA,cAAc,EAAE,UAAU;AAC1B,IAAA,SAAS,EAAE,KAAK;AAChB,IAAA,gBAAgB,EAAE,eAAe;AACjC,IAAA,uBAAuB,EAAE,qBAAqB;AAE9C;AACA,IAAA,kBAAkB,EAAE,6BAA6B;AACjD,IAAA,UAAU,EAAE,UAAU;AACtB,IAAA,mBAAmB,EAAE,wBAAwB;AAC7C,IAAA,cAAc,EAAE,iCAAiC;AACjD,IAAA,sBAAsB,EAAE,2BAA2B;AACnD,IAAA,oBAAoB,EAAE,qBAAqB;AAC3C,IAAA,oBAAoB,EAAE,4CAA4C;AAClE,IAAA,mBAAmB,EAAE,oBAAoB;AACzC,IAAA,SAAS,EAAE,UAAU;AACrB,IAAA,mBAAmB,EAAE,wBAAwB;AAC7C,IAAA,oBAAoB,EAAE,0BAA0B;AAChD,IAAA,gBAAgB,EAAE,iBAAiB;AACnC,IAAA,eAAe,EAAE,gBAAgB;AACjC,IAAA,iBAAiB,EAAE,kBAAkB;AACrC,IAAA,gBAAgB,EAAE,iBAAiB;AAEnC;AACA,IAAA,aAAa,EAAE,aAAa;AAC5B,IAAA,iBAAiB,EAAE,wBAAwB;AAC3C,IAAA,eAAe,EAAE,QAAQ;AACzB,IAAA,mBAAmB,EAAE,wBAAwB;AAC7C,IAAA,eAAe,EAAE,QAAQ;AACzB,IAAA,cAAc,EAAE,QAAQ;AACxB,IAAA,mBAAmB,EAAE,sBAAsB;AAC3C,IAAA,eAAe,EAAE,QAAQ;AACzB,IAAA,cAAc,EAAE,QAAQ;AACxB,IAAA,mBAAmB,EAAE,kBAAkB;AACvC,IAAA,eAAe,EAAE,YAAY;AAC7B,IAAA,cAAc,EAAE,YAAY;AAC5B,IAAA,mBAAmB,EAAE,kBAAkB;AACvC,IAAA,cAAc,EAAE,WAAW;AAC3B,IAAA,kBAAkB,EAAE,4BAA4B;AAChD,IAAA,eAAe,EAAE,YAAY;AAC7B,IAAA,mBAAmB,EAAE,sBAAsB;AAC3C,IAAA,iBAAiB,EAAE;GACpB;AAEDC,EAAAA,EAAE,EAAE;AACF,IAAA,cAAc,EAAE,SAAS;AACzB,IAAA,WAAW,EAAE,IAAI;AACjB,IAAA,cAAc,EAAE,IAAI;AACpB,IAAA,kBAAkB,EAAE,OAAO;AAC3B,IAAA,cAAc,EAAE,IAAI;AACpB,IAAA,SAAS,EAAE,IAAI;AACf,IAAA,gBAAgB,EAAE,QAAQ;AAC1B,IAAA,uBAAuB,EAAE,QAAQ;AAEjC;AACA,IAAA,kBAAkB,EAAE,gBAAgB;AACpC,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,mBAAmB,EAAE,cAAc;AACnC,IAAA,cAAc,EAAE,2BAA2B;AAC3C,IAAA,sBAAsB,EAAE,eAAe;AACvC,IAAA,oBAAoB,EAAE,QAAQ;AAC9B,IAAA,oBAAoB,EAAE,iCAAiC;AACvD,IAAA,mBAAmB,EAAE,QAAQ;AAC7B,IAAA,SAAS,EAAE,MAAM;AACjB,IAAA,mBAAmB,EAAE,eAAe;AACpC,IAAA,oBAAoB,EAAE,eAAe;AACrC,IAAA,gBAAgB,EAAE,QAAQ;AAC1B,IAAA,eAAe,EAAE,OAAO;AACxB,IAAA,iBAAiB,EAAE,SAAS;AAC5B,IAAA,gBAAgB,EAAE,WAAW;AAE7B;AACA,IAAA,aAAa,EAAE,UAAU;AACzB,IAAA,iBAAiB,EAAE,mBAAmB;AACtC,IAAA,eAAe,EAAE,QAAQ;AACzB,IAAA,mBAAmB,EAAE,WAAW;AAChC,IAAA,eAAe,EAAE,MAAM;AACvB,IAAA,cAAc,EAAE,MAAM;AACtB,IAAA,mBAAmB,EAAE,eAAe;AACpC,IAAA,eAAe,EAAE,QAAQ;AACzB,IAAA,cAAc,EAAE,QAAQ;AACxB,IAAA,mBAAmB,EAAE,cAAc;AACnC,IAAA,eAAe,EAAE,YAAY;AAC7B,IAAA,cAAc,EAAE,YAAY;AAC5B,IAAA,mBAAmB,EAAE,cAAc;AACnC,IAAA,cAAc,EAAE,WAAW;AAC3B,IAAA,kBAAkB,EAAE,kBAAkB;AACtC,IAAA,eAAe,EAAE,YAAY;AAC7B,IAAA,mBAAmB,EAAE,oBAAoB;AACzC,IAAA,iBAAiB,EAAE;GACpB;AAEDC,EAAAA,EAAE,EAAE;AACF,IAAA,cAAc,EAAE,IAAI;AACpB,IAAA,WAAW,EAAE,IAAI;AACjB,IAAA,cAAc,EAAE,IAAI;AACpB,IAAA,kBAAkB,EAAE,OAAO;AAC3B,IAAA,cAAc,EAAE,IAAI;AACpB,IAAA,SAAS,EAAE,IAAI;AACf,IAAA,gBAAgB,EAAE,SAAS;AAC3B,IAAA,uBAAuB,EAAE,OAAO;AAEhC;AACA,IAAA,kBAAkB,EAAE,eAAe;AACnC,IAAA,UAAU,EAAE,IAAI;AAChB,IAAA,mBAAmB,EAAE,UAAU;AAC/B,IAAA,cAAc,EAAE,uBAAuB;AACvC,IAAA,sBAAsB,EAAE,UAAU;AAClC,IAAA,oBAAoB,EAAE,OAAO;AAC7B,IAAA,oBAAoB,EAAE,iCAAiC;AACvD,IAAA,mBAAmB,EAAE,SAAS;AAC9B,IAAA,SAAS,EAAE,OAAO;AAClB,IAAA,mBAAmB,EAAE,YAAY;AACjC,IAAA,oBAAoB,EAAE,aAAa;AACnC,IAAA,gBAAgB,EAAE,OAAO;AACzB,IAAA,eAAe,EAAE,OAAO;AACxB,IAAA,iBAAiB,EAAE,OAAO;AAC1B,IAAA,gBAAgB,EAAE,OAAO;AAEzB;AACA,IAAA,aAAa,EAAE,MAAM;AACrB,IAAA,iBAAiB,EAAE,oBAAoB;AACvC,IAAA,eAAe,EAAE,QAAQ;AACzB,IAAA,mBAAmB,EAAE,YAAY;AACjC,IAAA,eAAe,EAAE,MAAM;AACvB,IAAA,cAAc,EAAE,MAAM;AACtB,IAAA,mBAAmB,EAAE,cAAc;AACnC,IAAA,eAAe,EAAE,QAAQ;AACzB,IAAA,cAAc,EAAE,QAAQ;AACxB,IAAA,mBAAmB,EAAE,cAAc;AACnC,IAAA,eAAe,EAAE,YAAY;AAC7B,IAAA,cAAc,EAAE,YAAY;AAC5B,IAAA,mBAAmB,EAAE,cAAc;AACnC,IAAA,cAAc,EAAE,WAAW;AAC3B,IAAA,kBAAkB,EAAE,kBAAkB;AACtC,IAAA,eAAe,EAAE,YAAY;AAC7B,IAAA,mBAAmB,EAAE,oBAAoB;AACzC,IAAA,iBAAiB,EAAE;AACrB;AACF;AAEA,IAAIC,WAAW,GAAG,IAAI;AAEf,SAASC,WAAWA,CAACC,CAAC,EAAE;EAC7B,IAAIR,mBAAmB,CAACS,QAAQ,CAACD,CAAC,CAAC,EAAEF,WAAW,GAAGE,CAAC;AACtD;AAEO,SAASE,WAAWA,GAAG;AAC5B,EAAA,OAAOJ,WAAW;AACpB;AAEO,SAASK,CAACA,CAAClC,GAAG,EAAEmC,MAAM,EAAE;EAC7B,MAAMC,IAAI,GAAGZ,QAAQ,CAACK,WAAW,CAAC,IAAIL,QAAQ,CAACC,EAAE;AACjD,EAAA,IAAId,IAAI,GAAGyB,IAAI,CAACpC,GAAG,CAAC,IAAIwB,QAAQ,CAACE,EAAE,CAAC1B,GAAG,CAAC,IAAIA,GAAG;AAC/C,EAAA,IAAImC,MAAM,EAAE;IACVE,MAAM,CAACC,IAAI,CAACH,MAAM,CAAC,CAACI,OAAO,CAACC,CAAC,IAAI;AAC/B7B,MAAAA,IAAI,GAAGA,IAAI,CAAC8B,OAAO,CAAC,IAAIC,MAAM,CAAC,CAAA,GAAA,EAAMF,CAAC,CAAA,GAAA,CAAK,EAAE,GAAG,CAAC,EAAEL,MAAM,CAACK,CAAC,CAAC,CAAC;AAC/D,IAAA,CAAC,CAAC;AACJ,EAAA;AACA,EAAA,OAAO7B,IAAI;AACb;;ACxNA;AACA;AACA;AACA;AACO,SAASgC,qBAAqBA,CAAC;AAAEC,EAAAA,OAAO,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC;EAAEC,KAAK;EAAEC,QAAQ;AAAEzE,EAAAA,SAAS,GAAG;AAAG,CAAC,EAAE;AACjH,EAAA,MAAM0E,KAAK,GAAG;AACZC,IAAAA,IAAI,EAAE,IAAI;AAAEC,IAAAA,MAAM,EAAE,KAAK;AAAEC,IAAAA,MAAM,EAAE,GAAG;AAAEC,IAAAA,MAAM,EAAE,IAAI;AAAEC,IAAAA,MAAM,EAAE,IAAI;AAAEC,IAAAA,KAAK,EAAE,IAAI;AAAEC,IAAAA,MAAM,EAAE;GAC1F;EAED,oBACEhF,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKF,SAAS,EAAE,CAAA,aAAA,EAAgBA,SAAS,CAAA,CAAG;AAACG,IAAAA,KAAK,EAAE;AAAEkB,MAAAA,OAAO,EAAE,MAAM;AAAEC,MAAAA,aAAa,EAAE,QAAQ;AAAEC,MAAAA,GAAG,EAAE;AAAO;AAAE,GAAA,EAC3GgD,OAAO,CAAC/C,GAAG,CAACG,GAAG,IAAI;AAClB,IAAA,MAAMuD,IAAI,GAAGR,KAAK,CAAC/C,GAAG,CAAC,IAAI,IAAI;AAC/B,IAAA,MAAMwD,KAAK,GAAGtB,CAAC,CAAC,CAAA,OAAA,EAAUlC,GAAG,EAAE,CAAC;AAChC,IAAA,MAAMyD,IAAI,GAAGvB,CAAC,CAAC,CAAA,OAAA,EAAUlC,GAAG,CAAA,IAAA,CAAM,CAAC,IAAIkC,CAAC,CAAC,iBAAiB,CAAC;AAC3D,IAAA,MAAMwB,MAAM,GAAGb,KAAK,KAAK7C,GAAG;IAE5B,oBACE1B,KAAA,CAAAC,aAAA,CAAA,QAAA,EAAA;AACEyB,MAAAA,GAAG,EAAEA,GAAI;AACTY,MAAAA,OAAO,EAAEA,MAAMkC,QAAQ,GAAG9C,GAAG,CAAE;AAC/BxB,MAAAA,KAAK,EAAE;AACLkB,QAAAA,OAAO,EAAE,MAAM;AACfO,QAAAA,UAAU,EAAE,QAAQ;AACpBL,QAAAA,GAAG,EAAE,MAAM;AACXnB,QAAAA,OAAO,EAAE,MAAM;AACfC,QAAAA,YAAY,EAAE,MAAM;AACpBC,QAAAA,MAAM,EAAE+E,MAAM,GAAG,mCAAmC,GAAG,oCAAoC;AAC3F9E,QAAAA,UAAU,EAAE8E,MAAM,GAAG,2BAA2B,GAAG,0BAA0B;AAC7EC,QAAAA,cAAc,EAAE,YAAY;AAC5BC,QAAAA,oBAAoB,EAAE,YAAY;AAClC/C,QAAAA,MAAM,EAAE,SAAS;AACjBgD,QAAAA,SAAS,EAAE,MAAM;AACjB9E,QAAAA,UAAU,EAAE,kDAAkD;AAC9DD,QAAAA,SAAS,EAAE4E,MAAM,GACb,qFAAqF,GACrF,8EAA8E;AAClFI,QAAAA,OAAO,EAAE;OACT;MACFC,YAAY,EAAGC,CAAC,IAAK;QACnB,IAAG,CAACN,MAAM,EAAE;AACVM,UAAAA,CAAC,CAACC,aAAa,CAACzF,KAAK,CAACI,UAAU,GAAG,2BAA2B;AAC9DoF,UAAAA,CAAC,CAACC,aAAa,CAACzF,KAAK,CAACU,SAAS,GAAG,kBAAkB;AACpD8E,UAAAA,CAAC,CAACC,aAAa,CAACzF,KAAK,CAACM,SAAS,GAAG,8EAA8E;AAClH,QAAA;MACF,CAAE;MACFoF,YAAY,EAAGF,CAAC,IAAK;QACnB,IAAG,CAACN,MAAM,EAAE;AACVM,UAAAA,CAAC,CAACC,aAAa,CAACzF,KAAK,CAACI,UAAU,GAAG,0BAA0B;AAC7DoF,UAAAA,CAAC,CAACC,aAAa,CAACzF,KAAK,CAACU,SAAS,GAAG,MAAM;AACxC8E,UAAAA,CAAC,CAACC,aAAa,CAACzF,KAAK,CAACM,SAAS,GAAG,8EAA8E;AAClH,QAAA;AACF,MAAA;KAAE,eAEFR,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,KAAK,EAAE;AACV0B,QAAAA,KAAK,EAAE,MAAM;AACbC,QAAAA,MAAM,EAAE,MAAM;AACdzB,QAAAA,YAAY,EAAE,MAAM;AACpBE,QAAAA,UAAU,EAAE,0BAA0B;AACtCc,QAAAA,OAAO,EAAE,MAAM;AACfO,QAAAA,UAAU,EAAE,QAAQ;AACpBkE,QAAAA,cAAc,EAAE,QAAQ;AACxB/E,QAAAA,QAAQ,EAAE,MAAM;AAChBN,QAAAA,SAAS,EAAE;AACb;AAAE,KAAA,EACCyE,IACE,CAAC,eAENjF,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,KAAK,EAAE;AAAEkB,QAAAA,OAAO,EAAE,MAAM;AAAEC,QAAAA,aAAa,EAAE,QAAQ;AAAEC,QAAAA,GAAG,EAAE,KAAK;AAAEwE,QAAAA,IAAI,EAAE;AAAE;KAAE,eAC5E9F,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMC,MAAAA,KAAK,EAAE;AAAEa,QAAAA,UAAU,EAAEqE,MAAM,GAAG,GAAG,GAAG,GAAG;AAAEvE,QAAAA,KAAK,EAAE,SAAS;AAAEC,QAAAA,QAAQ,EAAE,MAAM;AAAEiF,QAAAA,aAAa,EAAE;AAAU;AAAE,KAAA,EAAEb,KAAY,CAAC,eAC7HlF,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMC,MAAAA,KAAK,EAAE;AAAEY,QAAAA,QAAQ,EAAE,MAAM;AAAED,QAAAA,KAAK,EAAE,SAAS;AAAEE,QAAAA,UAAU,EAAE;AAAI;AAAE,KAAA,EAAEoE,IAAW,CAC/E,CAAC,eAENnF,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,KAAK,EAAE;AACV0B,QAAAA,KAAK,EAAE,MAAM;AACbC,QAAAA,MAAM,EAAE,MAAM;AACdzB,QAAAA,YAAY,EAAE,KAAK;AACnBC,QAAAA,MAAM,EAAE+E,MAAM,GAAG,mBAAmB,GAAG,oCAAoC;AAC3E9E,QAAAA,UAAU,EAAE,MAAM;AAClBG,QAAAA,UAAU,EAAE,kDAAkD;AAC9DuF,QAAAA,UAAU,EAAE,MAAM;AAClBxF,QAAAA,SAAS,EAAE4E,MAAM,GAAG,oCAAoC,GAAG;AAC7D;AAAE,KAAE,CACE,CAAC;AAEb,EAAA,CAAC,CACE,CAAC;AAEV;;AC1FO,SAASa,eAAeA,CAAC;AAACC,EAAAA,KAAK,GAAC,EAAE;EAACC,QAAQ;EAACC,QAAQ;EAACC,GAAG;EAACC,KAAK;AAACC,EAAAA,QAAQ,GAAC,GAAG;EAACC,UAAU;AAACC,EAAAA,OAAO,GAAC,KAAK;AAAC1G,EAAAA,SAAS,GAAC;AAAE,CAAC,EAAC;EACxH,oBAAOC,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKF,SAAS,EAAE,CAAA,aAAA,EAAgBA,SAAS,CAAA,CAAG;AAACG,IAAAA,KAAK,EAAE;AAACC,MAAAA,OAAO,EAAC,EAAE;AAACC,MAAAA,YAAY,EAAC,EAAE;AAACC,MAAAA,MAAM,EAAC,mBAAmB;AAACC,MAAAA,UAAU,EAAC;AAAS;GAAE,eACtIN,KAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;AAAIC,IAAAA,KAAK,EAAE;AAACY,MAAAA,QAAQ,EAAC,EAAE;AAACC,MAAAA,UAAU,EAAC,GAAG;AAACI,MAAAA,MAAM,EAAC;AAAU;AAAE,GAAA,EAAC,eAAiB,CAAC,eAC7EnB,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,KAAK,EAAE;AAACkB,MAAAA,OAAO,EAAC,MAAM;AAACC,MAAAA,aAAa,EAAC,QAAQ;AAACC,MAAAA,GAAG,EAAC;AAAC;GAAE,EACvD4E,KAAK,CAAC3E,GAAG,CAAC,CAACmF,IAAI,EAACjF,CAAC,kBAAIzB,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKyB,IAAAA,GAAG,EAAED,CAAE;AAACvB,IAAAA,KAAK,EAAE;AAACkB,MAAAA,OAAO,EAAC,MAAM;AAACyE,MAAAA,cAAc,EAAC,eAAe;AAAC/E,MAAAA,QAAQ,EAAC;AAAE;GAAE,eACpGd,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMC,IAAAA,KAAK,EAAE;AAACW,MAAAA,KAAK,EAAC;AAAS;AAAE,GAAA,EAAE6F,IAAI,CAACnH,IAAI,EAAEmH,IAAI,CAACC,GAAG,GAAC,CAAC,IAAE,CAAA,GAAA,EAAMD,IAAI,CAACC,GAAG,CAAA,CAAS,CAAC,eAChF3G,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMC,IAAAA,KAAK,EAAE;AAACa,MAAAA,UAAU,EAAC;AAAG;AAAE,GAAA,EAAEwF,QAAQ,EAAEG,IAAI,CAAClH,KAAY,CAAM,CAAE,CAClE,CAAC,eACNQ,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,KAAK,EAAE;AAAC0G,MAAAA,SAAS,EAAC,mBAAmB;AAAC5F,MAAAA,SAAS,EAAC,EAAE;AAAC6F,MAAAA,UAAU,EAAC,EAAE;AAACzF,MAAAA,OAAO,EAAC,MAAM;AAACC,MAAAA,aAAa,EAAC,QAAQ;AAACC,MAAAA,GAAG,EAAC,CAAC;AAACR,MAAAA,QAAQ,EAAC;AAAE;AAAE,GAAA,EAC5HqF,QAAQ,IAAE,IAAI,iBAAEnG,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,KAAK,EAAE;AAACkB,MAAAA,OAAO,EAAC,MAAM;AAACyE,MAAAA,cAAc,EAAC;AAAe;GAAE,eAAC7F,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMC,IAAAA,KAAK,EAAE;AAACW,MAAAA,KAAK,EAAC;AAAS;AAAE,GAAA,EAAC,UAAc,CAAC,eAAAb,KAAA,CAAAC,aAAA,eAAOsG,QAAQ,EAAEJ,QAAe,CAAM,CAAC,EACnKC,QAAQ,IAAE,IAAI,iBAAEpG,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,KAAK,EAAE;AAACkB,MAAAA,OAAO,EAAC,MAAM;AAACyE,MAAAA,cAAc,EAAC;AAAe;GAAE,eAAC7F,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMC,IAAAA,KAAK,EAAE;AAACW,MAAAA,KAAK,EAAC;AAAS;AAAE,GAAA,EAAC,UAAc,CAAC,eAAAb,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMC,IAAAA,KAAK,EAAE;AAACW,MAAAA,KAAK,EAAC;AAAS;AAAE,GAAA,EAAC,GAAC,EAAC0F,QAAQ,EAAEH,QAAe,CAAM,CAAC,EAC9LC,GAAG,IAAE,IAAI,iBAAErG,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,KAAK,EAAE;AAACkB,MAAAA,OAAO,EAAC,MAAM;AAACyE,MAAAA,cAAc,EAAC;AAAe;GAAE,eAAC7F,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMC,IAAAA,KAAK,EAAE;AAACW,MAAAA,KAAK,EAAC;AAAS;AAAE,GAAA,EAAC,KAAS,CAAC,eAAAb,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA,IAAA,EAAOsG,QAAQ,EAAEF,GAAU,CAAM,CAAC,eACrJrG,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,KAAK,EAAE;AAACkB,MAAAA,OAAO,EAAC,MAAM;AAACyE,MAAAA,cAAc,EAAC,eAAe;AAAC/E,MAAAA,QAAQ,EAAC,EAAE;AAACC,MAAAA,UAAU,EAAC,GAAG;AAAC6F,MAAAA,SAAS,EAAC,mBAAmB;AAACC,MAAAA,UAAU,EAAC,EAAE;AAAC7F,MAAAA,SAAS,EAAC;AAAC;GAAE,eAC7IhB,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA,IAAA,EAAM,OAAW,CAAC,eAAAD,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA,IAAA,EAAOsG,QAAQ,EAAED,KAAY,CAAM,CACpD,CAAC,EACLE,UAAU,iBAAExG,KAAA,CAAAC,aAAA,CAAA,QAAA,EAAA;AAAQqC,IAAAA,OAAO,EAAEkE,UAAW;AAACM,IAAAA,QAAQ,EAAEL,OAAQ;AAACvG,IAAAA,KAAK,EAAE;AAAC0B,MAAAA,KAAK,EAAC,MAAM;AAACZ,MAAAA,SAAS,EAAC,EAAE;AAACb,MAAAA,OAAO,EAAC,MAAM;AAACC,MAAAA,YAAY,EAAC,EAAE;AAC3HC,MAAAA,MAAM,EAAC,MAAM;AAACC,MAAAA,UAAU,EAAC,SAAS;AAACO,MAAAA,KAAK,EAAC,MAAM;AAACC,MAAAA,QAAQ,EAAC,EAAE;AAACC,MAAAA,UAAU,EAAC,GAAG;AAACwB,MAAAA,MAAM,EAAC;AAAS;AAAE,GAAA,EAAEkE,OAAO,GAAC,eAAe,GAAC,UAAmB,CACzI,CAAC;AACR;;ACnBA;AACA;AACA;AACA;AACA;AACA;;;AAIA;AACA;AACA;AACO,MAAMM,gBAAgB,SAASC,aAAa,CAAC;AAClDC,EAAAA,WAAWA,CAACC,MAAM,GAAG,EAAE,EAAE;AACvB,IAAA,KAAK,CAAC,cAAc,EAAEA,MAAM,CAAC;AAC/B,EAAA;;AAEA;;AAEA;AACF;AACA;AACA;AACE,EAAA,MAAMC,iBAAiBA,CAACC,SAAS,GAAG,EAAE,EAAE;AACtC,IAAA,OAAO,IAAI,CAACC,IAAI,CAAC,UAAU,EAAED,SAAS,CAAC;AACzC,EAAA;;AAEA;AACF;AACA;EACE,MAAME,sBAAsBA,GAAG;AAC7B,IAAA,OAAO,IAAI,CAACC,GAAG,CAAC,gBAAgB,CAAC;AACnC,EAAA;;AAEA;AACF;AACA;AACA;EACE,MAAMC,gBAAgBA,CAACC,aAAa,EAAE;AACpC,IAAA,OAAO,IAAI,CAACJ,IAAI,CAAC,cAAc,EAAEI,aAAa,CAAC;AACjD,EAAA;;AAEA;AACF;AACA;AACA;EACE,MAAMC,mBAAmBA,CAACC,QAAQ,EAAE;AAClC,IAAA,OAAO,IAAI,CAACC,MAAM,CAAC,CAAA,SAAA,EAAYD,QAAQ,EAAE,CAAC;AAC5C,EAAA;;AAEA;AACF;AACA;AACA;EACE,MAAME,uBAAuBA,CAACF,QAAQ,EAAE;AACtC,IAAA,OAAO,IAAI,CAACN,IAAI,CAAC,CAAA,SAAA,EAAYM,QAAQ,UAAU,CAAC;AAClD,EAAA;;AAEA;;AAEA;AACF;AACA;AACA;EACE,MAAMG,aAAaA,CAACC,IAAI,EAAE;AACxB,IAAA,OAAO,IAAI,CAACV,IAAI,CAAC,SAAS,EAAEU,IAAI,CAAC;AACnC,EAAA;;AAEA;AACF;AACA;AACA;EACE,MAAMC,UAAUA,CAACC,SAAS,EAAE;AAC1B,IAAA,OAAO,IAAI,CAACV,GAAG,CAAC,CAAA,CAAA,EAAIU,SAAS,EAAE,CAAC;AAClC,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACE,EAAA,MAAMC,cAAcA,CAACD,SAAS,EAAEE,WAAW,EAAE;IAC3C,OAAO,IAAI,CAACd,IAAI,CAAC,IAAIY,SAAS,CAAA,QAAA,CAAU,EAAEE,WAAW,CAAC;AACxD,EAAA;;AAEA;AACF;AACA;AACA;EACE,MAAMC,aAAaA,CAACH,SAAS,EAAE;AAC7B,IAAA,OAAO,IAAI,CAACZ,IAAI,CAAC,CAAA,CAAA,EAAIY,SAAS,SAAS,CAAC;AAC1C,EAAA;;AAEA;AACF;AACA;AACA;EACE,MAAMI,gBAAgBA,CAACJ,SAAS,EAAE;AAChC,IAAA,OAAO,IAAI,CAACV,GAAG,CAAC,CAAA,CAAA,EAAIU,SAAS,SAAS,CAAC;AACzC,EAAA;;AAEA;;AAEA;AACF;AACA;AACA;AACA;AACE,EAAA,MAAMK,aAAaA,CAACL,SAAS,EAAEM,UAAU,EAAE;IACzC,OAAO,IAAI,CAAClB,IAAI,CAAC,IAAIY,SAAS,CAAA,OAAA,CAAS,EAAEM,UAAU,CAAC;AACtD,EAAA;;AAEA;AACF;AACA;AACA;EACE,MAAMC,eAAeA,CAACC,QAAQ,EAAE;AAC9B,IAAA,OAAO,IAAI,CAAClB,GAAG,CAAC,CAAA,SAAA,EAAYkB,QAAQ,EAAE,CAAC;AACzC,EAAA;;AAEA;AACF;AACA;AACA;AACE,EAAA,MAAMC,UAAUA,CAAC7E,MAAM,GAAG,EAAE,EAAE;AAC5B,IAAA,OAAO,IAAI,CAAC0D,GAAG,CAAC,UAAU,EAAE1D,MAAM,CAAC;AACrC,EAAA;;AAEA;;AAEA;AACF;AACA;AACA;AACE,EAAA,MAAM8E,iBAAiBA,CAAC9E,MAAM,GAAG,EAAE,EAAE;AACnC,IAAA,OAAO,IAAI,CAAC0D,GAAG,CAAC,UAAU,EAAE1D,MAAM,CAAC;AACrC,EAAA;;AAEA;AACF;AACA;AACA;AACE,EAAA,MAAM+E,eAAeA,CAAC/E,MAAM,GAAG,EAAE,EAAE;AACjC,IAAA,OAAO,IAAI,CAAC0D,GAAG,CAAC,QAAQ,EAAE1D,MAAM,CAAC;AACnC,EAAA;;AAEA;;AAEA;AACF;AACA;AACA;EACE,MAAMgF,kBAAkBA,CAACZ,SAAS,EAAE;AAClC,IAAA,OAAO,IAAI,CAACV,GAAG,CAAC,CAAA,CAAA,EAAIU,SAAS,gBAAgB,CAAC;AAChD,EAAA;;AAEA;AACF;AACA;AACA;EACE,MAAMa,eAAeA,CAACb,SAAS,EAAE;AAC/B,IAAA,OAAO,IAAI,CAACV,GAAG,CAAC,CAAA,CAAA,EAAIU,SAAS,gBAAgB,CAAC;AAChD,EAAA;;AAEA;AACF;AACA;AACA;EACE,MAAMc,iBAAiBA,CAACd,SAAS,EAAE;AACjC,IAAA,OAAO,IAAI,CAACV,GAAG,CAAC,CAAA,CAAA,EAAIU,SAAS,kBAAkB,CAAC;AAClD,EAAA;;AAEA;;AAEA;AACF;AACA;AACA;AACA;AACE,EAAA,MAAMe,uBAAuBA,CAACf,SAAS,EAAE1B,QAAQ,EAAE;AACjD,IAAA,OAAO,IAAI,CAACgB,GAAG,CAAC,CAAA,CAAA,EAAIU,SAAS,iBAAiB,EAAE;AAAE1B,MAAAA;AAAS,KAAC,CAAC;AAC/D,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACE,EAAA,MAAM0C,oBAAoBA,CAAChB,SAAS,EAAEiB,MAAM,EAAE;AAC5C,IAAA,OAAO,IAAI,CAAC7B,IAAI,CAAC,CAAA,CAAA,EAAIY,SAAS,iBAAiB,EAAE;AAAEkB,MAAAA,OAAO,EAAED;AAAO,KAAC,CAAC;AACvE,EAAA;;AAEA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAME,oBAAoBA,CAACrB,IAAI,EAAE;AAC/B,IAAA,MAAMsB,OAAO,GAAG,IAAI,CAACnC,MAAM,EAAEoC,aAAa,KACvC,IAAI,CAACD,OAAO,CAAC3F,QAAQ,CAAC,cAAc,CAAC,GAClC,IAAI,CAAC2F,OAAO,CAAClF,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,GACxC,IAAI,CAACkF,OAAO,CAAC;AAEnB,IAAA,OAAO,IAAI,CAAChC,IAAI,CAAC,+BAA+B,EAAEU,IAAI,EAAE;AAAEsB,MAAAA;AAAQ,KAAC,CAAC;AACtE,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAME,wBAAwBA,CAACxB,IAAI,EAAE;AACnC,IAAA,MAAMsB,OAAO,GAAG,IAAI,CAACnC,MAAM,EAAEoC,aAAa,KACvC,IAAI,CAACD,OAAO,CAAC3F,QAAQ,CAAC,cAAc,CAAC,GAClC,IAAI,CAAC2F,OAAO,CAAClF,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,GACxC,IAAI,CAACkF,OAAO,CAAC;AAEnB,IAAA,OAAO,IAAI,CAAChC,IAAI,CAAC,mCAAmC,EAAEU,IAAI,EAAE;AAAEsB,MAAAA;AAAQ,KAAC,CAAC;AAC1E,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAMG,mBAAmBA,CAACzB,IAAI,EAAE;AAC9B,IAAA,MAAMsB,OAAO,GAAG,IAAI,CAACnC,MAAM,EAAEoC,aAAa,KACvC,IAAI,CAACD,OAAO,CAAC3F,QAAQ,CAAC,cAAc,CAAC,GAClC,IAAI,CAAC2F,OAAO,CAAClF,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,GACxC,IAAI,CAACkF,OAAO,CAAC;AAEnB,IAAA,OAAO,IAAI,CAAChC,IAAI,CAAC,gCAAgC,EAAEU,IAAI,EAAE;AAAEsB,MAAAA;AAAQ,KAAC,CAAC;AACvE,EAAA;;AAEA;AACF;AACA;AACA;EACE,MAAMI,uBAAuBA,CAACC,OAAO,EAAE;AACrC,IAAA,MAAML,OAAO,GAAG,IAAI,CAACnC,MAAM,EAAEoC,aAAa,KACvC,IAAI,CAACD,OAAO,CAAC3F,QAAQ,CAAC,cAAc,CAAC,GAClC,IAAI,CAAC2F,OAAO,CAAClF,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,GACxC,IAAI,CAACkF,OAAO,CAAC;AAEnB,IAAA,OAAO,IAAI,CAAC9B,GAAG,CAAC,yBAAyB,EAAE;AAAEoC,MAAAA,GAAG,EAAED;AAAQ,KAAC,EAAE;AAAEL,MAAAA;AAAQ,KAAC,CAAC;AAC3E,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACE,EAAA,MAAMO,sBAAsBA,CAACF,OAAO,EAAEG,WAAW,EAAE;AACjD,IAAA,MAAMR,OAAO,GAAG,IAAI,CAACnC,MAAM,EAAEoC,aAAa,KACvC,IAAI,CAACD,OAAO,CAAC3F,QAAQ,CAAC,cAAc,CAAC,GAClC,IAAI,CAAC2F,OAAO,CAAClF,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,GACxC,IAAI,CAACkF,OAAO,CAAC;AAEnB,IAAA,OAAO,IAAI,CAAC9B,GAAG,CAAC,yBAAyB,EAAE;AAAEoC,MAAAA,GAAG,EAAED,OAAO;AAAEI,MAAAA,MAAM,EAAED;AAAY,KAAC,EAAE;AAAER,MAAAA;AAAQ,KAAC,CAAC;AAChG,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;EACE,MAAMU,UAAUA,CAAC5B,WAAW,EAAE6B,WAAW,GAAG,EAAE,EAAE;AAC9C;IACA,MAAMC,aAAa,GAAG,MAAM,IAAI,CAACnC,aAAa,CAACK,WAAW,CAAC;;AAE3D;IACA,IAAI8B,aAAa,CAACC,OAAO,IAAID,aAAa,CAACE,MAAM,KAAK,SAAS,EAAE;MAC/D,IAAI;QACF,MAAM,IAAI,CAACf,oBAAoB,CAAC;AAC9BgB,UAAAA,MAAM,EAAEJ,WAAW,CAACI,MAAM,IAAI,SAAS;UACvCC,YAAY,EAAElC,WAAW,CAACmC,QAAQ;UAClCC,cAAc,EAAEpC,WAAW,CAACoC,cAAc;UAC1CC,MAAM,EAAErC,WAAW,CAACqC,MAAM;AAC1BL,UAAAA,MAAM,EAAE,SAAS;UACjBM,QAAQ,EAAET,WAAW,CAACS,QAAQ;AAC9BC,UAAAA,KAAK,EAAEV,WAAW,CAACU,KAAK,IAAIvC,WAAW,CAACuC;AAC1C,SAAC,CAAC;QAEFT,aAAa,CAACU,eAAe,GAAG,IAAI;MACtC,CAAC,CAAC,OAAOC,SAAS,EAAE;AAClB;AACAC,QAAAA,OAAO,CAACC,IAAI,CAAC,8BAA8B,EAAEF,SAAS,CAAC;QACvDX,aAAa,CAACU,eAAe,GAAG,KAAK;AACrCV,QAAAA,aAAa,CAACc,mBAAmB,GAAGH,SAAS,CAACI,OAAO;AACvD,MAAA;AACF,IAAA;AAEA,IAAA,OAAOf,aAAa;AACtB,EAAA;;AAEA;;AAEA;AACF;AACA;AACA;EACE,MAAMgB,UAAUA,GAAG;AACjB,IAAA,OAAO,IAAI,CAAC1D,GAAG,CAAC,UAAU,CAAC;AAC7B,EAAA;;AAEA;;AAEA;AACF;AACA;AACA;AACA;AACE,EAAA,MAAM2D,cAAcA,CAACC,OAAO,EAAEC,QAAQ,EAAE;AACtC,IAAA,OAAO,IAAI,CAAC/D,IAAI,CAAC,CAAA,CAAA,EAAI8D,OAAO,mBAAmB,EAAE;AAAEC,MAAAA;AAAS,KAAC,CAAC;AAChE,EAAA;;AAEA;;AAEA;AACF;AACA;AACA;AACA;AACA;EACE,MAAMC,cAAcA,CAACtD,IAAI,EAAE;AACzB,IAAA,OAAO,IAAI,CAACV,IAAI,CAAC,WAAW,EAAEU,IAAI,CAAC;AACrC,EAAA;;AAEA;;AAEA;EACA,MAAMuD,mBAAmBA,CAACzH,MAAM,EAAE;AAChC,IAAA,OAAO,IAAI,CAACsD,iBAAiB,CAACtD,MAAM,CAAC;AACvC,EAAA;;AAEA;EACA,MAAM0H,MAAMA,CAACxD,IAAI,EAAE;AACjB,IAAA,OAAO,IAAI,CAACD,aAAa,CAACC,IAAI,CAAC;AACjC,EAAA;;AAEA;EACA,MAAMyD,WAAWA,CAACvD,SAAS,EAAE;AAC3B,IAAA,OAAO,IAAI,CAACI,gBAAgB,CAACJ,SAAS,CAAC;AACzC,EAAA;;AAEA;EACA,MAAMwD,MAAMA,CAACxD,SAAS,EAAE;AACtB,IAAA,OAAO,IAAI,CAACG,aAAa,CAACH,SAAS,CAAC;AACtC,EAAA;;AAEA;;AAEA;AACF;AACA;AACA;AACA;EACE,MAAMyD,iBAAiBA,GAAG;IACxB,IAAI;AACF,MAAA,MAAMC,OAAO,GAAG,MAAM,IAAI,CAAChD,iBAAiB,CAAC;AAAEiD,QAAAA,SAAS,EAAE;AAAI,OAAC,CAAC;AAChE,MAAA,MAAMtH,OAAO,GAAG,MAAM,IAAI,CAACgD,sBAAsB,EAAE;MACnD,OAAO;QACLuE,UAAU,EAAE,IAAIC,IAAI,EAAE,CAACC,WAAW,EAAE;AACpCC,QAAAA,MAAM,EAAE,oCAAoC;AAC5CC,QAAAA,IAAI,EAAE,kDAAkD;QACxDC,cAAc,EAAEP,OAAO,EAAE5D,IAAI,EAAE7B,KAAK,EAAE3E,GAAG,CAAC4K,EAAE,KAAK;AAC/C,UAAA,GAAGA,EAAE;AACL;AACAC,UAAAA,WAAW,EAAED,EAAE,CAACC,WAAW,GAAG,OAAOD,EAAE,CAACC,WAAW,CAACC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA,CAAE,GAAGC,SAAS;AAC3ElB,UAAAA,QAAQ,EAAEkB,SAAS;AACnBC,UAAAA,GAAG,EAAED;SACN,CAAC,CAAC,IAAI,EAAE;QACTE,YAAY,EAAElI,OAAO,EAAEyD,IAAI,EAAExG,GAAG,CAACkL,CAAC,KAAK;UACrCC,EAAE,EAAED,CAAC,CAACC,EAAE;UACRC,IAAI,EAAEF,CAAC,CAACE,IAAI;AACZC,UAAAA,QAAQ,EAAEH,CAAC,CAACI,SAAS,IAAIJ,CAAC,CAACL,WAAW,EAAEC,KAAK,CAAC,CAAC,CAAC,CAAC;UACjDS,MAAM,EAAEL,CAAC,CAACK,MAAM;UAChBC,SAAS,EAAEN,CAAC,CAACO;SACd,CAAC,CAAC,IAAI;OACR;IACH,CAAC,CAAC,OAAOtH,CAAC,EAAE;MACV,OAAO;QAAEuH,KAAK,EAAEvH,CAAC,CAACsF,OAAO;AAAEa,QAAAA,UAAU,EAAE,IAAIC,IAAI,EAAE,CAACC,WAAW;OAAI;AACnE,IAAA;AACF,EAAA;;AAEA;AACF;AACA;AACEmB,EAAAA,iBAAiBA,GAAG;IAClB,OAAO;AACLC,MAAAA,GAAG,EAAE,wBAAwB;AAC7BC,MAAAA,YAAY,EAAE,YAAY;AAC1BC,MAAAA,eAAe,EAAE,KAAK;AACtBC,MAAAA,SAAS,EAAE,CACT;AAAEX,QAAAA,IAAI,EAAE,iBAAiB;AAAEjN,QAAAA,WAAW,EAAE,gCAAgC;AAAE6N,QAAAA,SAAS,EAAE,gBAAgB;AAAEC,QAAAA,SAAS,EAAE;AAAK,OAAC,EACxH;AAAEb,QAAAA,IAAI,EAAE,qBAAqB;AAAEjN,QAAAA,WAAW,EAAE,iBAAiB;AAAE6N,QAAAA,SAAS,EAAE;AAA8B,OAAC,EACzG;AAAEZ,QAAAA,IAAI,EAAE,iBAAiB;AAAEjN,QAAAA,WAAW,EAAE,+BAA+B;AAAE6N,QAAAA,SAAS,EAAE;AAAiB,OAAC,EACtG;AAAEZ,QAAAA,IAAI,EAAE,gBAAgB;AAAEjN,QAAAA,WAAW,EAAE,gCAAgC;AAAE6N,QAAAA,SAAS,EAAE;AAAS,OAAC,CAC/F;AACDE,MAAAA,UAAU,EAAE,CAAC,iBAAiB,EAAE,uBAAuB,EAAE,SAAS,CAAC;MACnEC,gBAAgB,EAAE,CAAC,QAAQ,CAAC;AAC5BzB,MAAAA,IAAI,EAAE;KACP;AACH,EAAA;AACF;;AAEA;MACa0B,UAAU,GAAG,IAAI5G,gBAAgB;;AC1a9C;AACA;AACA;AACA;AACA;AACA;;AAeA,MAAM;EAAE6G,IAAI;AAAEC,EAAAA;AAAM,CAAC,GAAGC,UAAU;AAElC,MAAMC,eAAe,GAAG,CACtB;AAAErB,EAAAA,EAAE,EAAE,QAAQ;AAAEsB,EAAAA,OAAO,EAAE,cAAc;AAAE/I,EAAAA,IAAI,eAAEjF,KAAA,CAAAC,aAAA,CAACgO,kBAAkB,EAAA;AAAC/N,IAAAA,KAAK,EAAE;AAAEW,MAAAA,KAAK,EAAE,SAAS;AAAEC,MAAAA,QAAQ,EAAE;AAAO;GAAI;AAAE,CAAC,EACtH;AAAE4L,EAAAA,EAAE,EAAE,QAAQ;AAAEsB,EAAAA,OAAO,EAAE,cAAc;AAAE/I,EAAAA,IAAI,eAAEjF,KAAA,CAAAC,aAAA,CAACiO,YAAY,EAAA;AAAChO,IAAAA,KAAK,EAAE;AAAEW,MAAAA,KAAK,EAAE,SAAS;AAAEC,MAAAA,QAAQ,EAAE;AAAO;GAAI;AAAE,CAAC,EAChH;AAAE4L,EAAAA,EAAE,EAAE,QAAQ;AAAEsB,EAAAA,OAAO,EAAE,cAAc;AAAE/I,EAAAA,IAAI,eAAEjF,KAAA,CAAAC,aAAA,CAACkO,kBAAkB,EAAA;AAACjO,IAAAA,KAAK,EAAE;AAAEW,MAAAA,KAAK,EAAE,SAAS;AAAEC,MAAAA,QAAQ,EAAE;AAAO;GAAI;AAAE,CAAC,CACvH;AAEM,MAAMsN,aAAa,GAAGA,CAAC;EAC5BC,OAAO;EACPC,QAAQ;EACRC,SAAS;EACTC,MAAM;AACNC,EAAAA,aAAa,GAAG,GAAG;AACnBlI,EAAAA,QAAQ,GAAG;AACb,CAAC,KAAK;EACJ,MAAM,CAACiE,MAAM,EAAEkE,SAAS,CAAC,GAAGC,QAAQ,CAACF,aAAa,CAAC;EACnD,MAAM,CAACG,MAAM,EAAEC,SAAS,CAAC,GAAGF,QAAQ,CAAC,QAAQ,CAAC;EAC9C,MAAM,CAAClI,OAAO,EAAEqI,UAAU,CAAC,GAAGH,QAAQ,CAAC,KAAK,CAAC;EAC7C,MAAM,CAACI,IAAI,EAAEC,OAAO,CAAC,GAAGL,QAAQ,CAAC,QAAQ,CAAC,CAAC;EAC3C,MAAM,CAACxG,WAAW,EAAE8G,cAAc,CAAC,GAAGN,QAAQ,CAAC,IAAI,CAAC;AAEpDO,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAIb,OAAO,EAAE;MACXW,OAAO,CAAC,QAAQ,CAAC;MACjBN,SAAS,CAACD,aAAa,CAAC;MACxBQ,cAAc,CAAC,IAAI,CAAC;AACtB,IAAA;AACF,EAAA,CAAC,EAAE,CAACZ,OAAO,EAAEI,aAAa,CAAC,CAAC;AAE5B,EAAA,MAAMU,cAAc,GAAG,YAAY;IACjC,IAAI3E,MAAM,IAAI,CAAC,EAAE;MACf,IAAI;QACF,MAAM;AAAEQ,UAAAA;AAAQ,SAAC,GAAG,MAAM,OAAO,MAAM,CAAC;AACxCA,QAAAA,OAAO,CAACoE,OAAO,CAACxL,CAAC,CAAC,kBAAkB,CAAC,CAAC;AACxC,MAAA,CAAC,CAAC,MAAM;AACNyL,QAAAA,KAAK,CAACzL,CAAC,CAAC,kBAAkB,CAAC,CAAC;AAC9B,MAAA;AACA,MAAA;AACF,IAAA;IAEAkL,UAAU,CAAC,IAAI,CAAC;IAChB,IAAI;AACF,MAAA,MAAMQ,GAAG,GAAG,MAAM3B,UAAU,CAAC7F,aAAa,CAAC;AACzCyH,QAAAA,OAAO,EAAEf,MAAM;QACfhE,MAAM;QACNjE,QAAQ;AACRgE,QAAAA,cAAc,EAAEqE,MAAM;AACtBY,QAAAA,UAAU,EAAE,UAAU;QACtB9P,WAAW,EAAE,GAAGkE,CAAC,CAAC,UAAU,CAAC,CAAA,CAAA,EAAI4G,MAAM,CAAA,CAAA,EAAIjE,QAAQ,CAAA;AACrD,OAAC,CAAC;MAEF,IAAI+I,GAAG,CAACG,IAAI,KAAK,CAAC,IAAIH,GAAG,CAACpF,OAAO,EAAE;AACjC+E,QAAAA,cAAc,CAACK,GAAG,CAACvH,IAAI,CAAC;QACxBiH,OAAO,CAAC,QAAQ,CAAC;AAEjB,QAAA,IAAIJ,MAAM,KAAK,MAAM,IAAIA,MAAM,KAAK,QAAQ,EAAE;AAC5Cc,UAAAA,aAAa,EAAE;AACjB,QAAA;AACF,MAAA,CAAC,MAAM;QACL,IAAI;UACF,MAAM;AAAE1E,YAAAA;AAAQ,WAAC,GAAG,MAAM,OAAO,MAAM,CAAC;AACxCA,UAAAA,OAAO,CAACiC,KAAK,CAACqC,GAAG,CAACvH,IAAI,EAAE4H,GAAG,IAAI/L,CAAC,CAAC,mBAAmB,CAAC,CAAC;AACxD,QAAA,CAAC,CAAC,MAAM;AACNyL,UAAAA,KAAK,CAACzL,CAAC,CAAC,mBAAmB,CAAC,CAAC;AAC/B,QAAA;AACF,MAAA;IACF,CAAC,CAAC,OAAOqJ,KAAK,EAAE;AACdpC,MAAAA,OAAO,CAACoC,KAAK,CAACA,KAAK,CAAC;MACpB,IAAI;QACF,MAAM;AAAEjC,UAAAA;AAAQ,SAAC,GAAG,MAAM,OAAO,MAAM,CAAC;AACxCA,QAAAA,OAAO,CAACiC,KAAK,CAACrJ,CAAC,CAAC,cAAc,CAAC,CAAC;AAClC,MAAA,CAAC,CAAC,MAAM;AACNyL,QAAAA,KAAK,CAACzL,CAAC,CAAC,cAAc,CAAC,CAAC;AAC1B,MAAA;AACF,IAAA,CAAC,SAAS;MACRkL,UAAU,CAAC,KAAK,CAAC;AACnB,IAAA;EACF,CAAC;EAED,MAAMY,aAAa,GAAGA,MAAM;IAC1BV,OAAO,CAAC,SAAS,CAAC;AAClB,IAAA,IAAIT,SAAS,EAAEA,SAAS,CAAC/D,MAAM,CAAC;AAEhCoF,IAAAA,UAAU,CAAC,MAAM;AACftB,MAAAA,QAAQ,EAAE;IACZ,CAAC,EAAE,IAAI,CAAC;EACV,CAAC;AAED,EAAA,MAAMuB,aAAa,GAAG,YAAY;IAChCf,UAAU,CAAC,IAAI,CAAC;IAChB,IAAI;MACF,MAAMnB,UAAU,CAACzF,cAAc,CAACC,WAAW,CAAC2H,UAAU,IAAI3H,WAAW,CAACuE,EAAE,EAAE;AAAEvC,QAAAA,MAAM,EAAE;AAAU,OAAC,CAAC;AAChGuF,MAAAA,aAAa,EAAE;IACjB,CAAC,CAAC,OAAOhK,CAAC,EAAE;MACV,IAAI;QACF,MAAM;AAAEsF,UAAAA;AAAQ,SAAC,GAAG,MAAM,OAAO,MAAM,CAAC;AACxCA,QAAAA,OAAO,CAACiC,KAAK,CAACrJ,CAAC,CAAC,sBAAsB,CAAC,CAAC;AAC1C,MAAA,CAAC,CAAC,MAAM;AACNyL,QAAAA,KAAK,CAACzL,CAAC,CAAC,sBAAsB,CAAC,CAAC;AAClC,MAAA;AACF,IAAA,CAAC,SAAS;MACRkL,UAAU,CAAC,KAAK,CAAC;AACnB,IAAA;EACF,CAAC;AAED,EAAA,MAAMiB,aAAa,GAAItD,CAAC,IAAK7I,CAAC,CAAC6I,CAAC,CAACuB,OAAO,CAAC,IAAIvB,CAAC,CAACC,EAAE;EAEjD,MAAMsD,aAAa,GAAGA,MAAM;AAC1B;IACA,IAAIjB,IAAI,KAAK,SAAS,EAAE;MACtB,oBACE/O,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,QAAAA,KAAK,EAAE;AAAEqF,UAAAA,SAAS,EAAE,QAAQ;AAAEpF,UAAAA,OAAO,EAAE,WAAW;AAAE8P,UAAAA,SAAS,EAAE;AAAc;AAAE,OAAA,eAClFjQ,KAAA,CAAAC,aAAA,CAACiQ,iBAAiB,EAAA;AAAChQ,QAAAA,KAAK,EAAE;AAAEY,UAAAA,QAAQ,EAAE,EAAE;AAAED,UAAAA,KAAK,EAAE,SAAS;AAAEI,UAAAA,YAAY,EAAE,MAAM;AAAEgP,UAAAA,SAAS,EAAE;AAAuD;AAAE,OAAE,CAAC,eACzJjQ,KAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;AAAIC,QAAAA,KAAK,EAAE;AAAEY,UAAAA,QAAQ,EAAE,MAAM;AAAEC,UAAAA,UAAU,EAAE,GAAG;AAAEF,UAAAA,KAAK,EAAE,SAAS;AAAEI,UAAAA,YAAY,EAAE;AAAM;OAAE,EAAE2C,CAAC,CAAC,oBAAoB,CAAM,CAAC,eACvH5D,KAAA,CAAAC,aAAA,CAAA,GAAA,EAAA;AAAGC,QAAAA,KAAK,EAAE;AAAEY,UAAAA,QAAQ,EAAE,MAAM;AAAED,UAAAA,KAAK,EAAE;AAAU;OAAE,EAAE+C,CAAC,CAAC,oBAAoB,EAAE;QAAE4G,MAAM;AAAEjE,QAAAA;OAAU,CAAK,CACjG,CAAC;AAEV,IAAA;;AAEA;IACA,IAAIwI,IAAI,KAAK,QAAQ,EAAE;MACrB,oBACE/O,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,QAAAA,KAAK,EAAE;AAAEC,UAAAA,OAAO,EAAE,MAAM;AAAEoF,UAAAA,SAAS,EAAE,QAAQ;AAAE0K,UAAAA,SAAS,EAAE;AAAc;OAAE,eAC7EjQ,KAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;AAAIC,QAAAA,KAAK,EAAE;AAAEY,UAAAA,QAAQ,EAAE,MAAM;AAAEC,UAAAA,UAAU,EAAE,GAAG;AAAEF,UAAAA,KAAK,EAAE,SAAS;AAAEI,UAAAA,YAAY,EAAE;AAAM;OAAE,EAAE2C,CAAC,CAAC,mBAAmB,CAAM,CAAC,eACtH5D,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,QAAAA,KAAK,EAAE;AAAEY,UAAAA,QAAQ,EAAE,MAAM;AAAED,UAAAA,KAAK,EAAE,SAAS;AAAEI,UAAAA,YAAY,EAAE;AAAO;AAAE,OAAA,EACtE2C,CAAC,CAAC,SAAS,CAAC,EAAC,IAAE,EAACuE,WAAW,EAAEgI,QAC3B,CAAC,eAENnQ,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,QAAAA,KAAK,EAAE;AACVI,UAAAA,UAAU,EAAE,0BAA0B;AAAED,UAAAA,MAAM,EAAE,oCAAoC;AACpFD,UAAAA,YAAY,EAAE,MAAM;AAAED,UAAAA,OAAO,EAAE,MAAM;AAAEc,UAAAA,YAAY,EAAE,MAAM;AAAEG,UAAAA,OAAO,EAAE,MAAM;AAAEC,UAAAA,aAAa,EAAE,QAAQ;AAAEM,UAAAA,UAAU,EAAE;AACrH;OAAE,eACA3B,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,QAAAA,KAAK,EAAE;AAAEY,UAAAA,QAAQ,EAAE,MAAM;AAAEC,UAAAA,UAAU,EAAE,GAAG;AAAEF,UAAAA,KAAK,EAAE,SAAS;AAAEuP,UAAAA,UAAU,EAAE,CAAC;AAAEnP,UAAAA,YAAY,EAAE;AAAO;AAAE,OAAA,EACtGuJ,MAAM,EAAC,GAAC,eAAAxK,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMC,QAAAA,KAAK,EAAE;AAAEY,UAAAA,QAAQ,EAAE,MAAM;AAAED,UAAAA,KAAK,EAAE;AAAU;AAAE,OAAA,EAAE0F,QAAe,CAC3E,CAAC,eACNvG,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,QAAAA,KAAK,EAAE;AAAEkB,UAAAA,OAAO,EAAE,MAAM;AAAEO,UAAAA,UAAU,EAAE,QAAQ;AAAEL,UAAAA,GAAG,EAAE,KAAK;AAAEhB,UAAAA,UAAU,EAAE,MAAM;AAAEH,UAAAA,OAAO,EAAE,UAAU;AAAEC,UAAAA,YAAY,EAAE,OAAO;AAAEI,UAAAA,SAAS,EAAE;AAA8B;AAAE,OAAA,EACzKuN,eAAe,CAACsC,IAAI,CAAC5D,CAAC,IAAIA,CAAC,CAACC,EAAE,KAAKkC,MAAM,CAAC,EAAE3J,IAAI,eACjDjF,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMC,QAAAA,KAAK,EAAE;AAAEY,UAAAA,QAAQ,EAAE,MAAM;AAAEC,UAAAA,UAAU,EAAE,GAAG;AAAEF,UAAAA,KAAK,EAAE;AAAU;OAAE,EAAEkP,aAAa,CAAChC,eAAe,CAACsC,IAAI,CAAC5D,CAAC,IAAIA,CAAC,CAACC,EAAE,KAAKkC,MAAM,CAAC,CAAQ,CACpI,CACF,CAAC,eAEN5O,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,QAAAA,KAAK,EAAE;AAAEkB,UAAAA,OAAO,EAAE,MAAM;AAAEC,UAAAA,aAAa,EAAE,QAAQ;AAAEC,UAAAA,GAAG,EAAE,MAAM;AAAEK,UAAAA,UAAU,EAAE;AAAS;AAAE,OAAA,eAC1F3B,KAAA,CAAAC,aAAA,CAACqQ,IAAI,EAAA;AAACC,QAAAA,GAAG,EAAE3M,CAAC,CAAC,mBAAmB,CAAE;AAAC4M,QAAAA,IAAI,EAAC;AAAO,OAAE,CAAC,eAClDxQ,KAAA,CAAAC,aAAA,CAAA,QAAA,EAAA;AACEqC,QAAAA,OAAO,EAAEuN,aAAc;AACvB3P,QAAAA,KAAK,EAAE;AACLI,UAAAA,UAAU,EAAE,aAAa;AAAED,UAAAA,MAAM,EAAE,MAAM;AAAEQ,UAAAA,KAAK,EAAE,SAAS;AAAEC,UAAAA,QAAQ,EAAE,MAAM;AAAEC,UAAAA,UAAU,EAAE,GAAG;AAC9FwB,UAAAA,MAAM,EAAE,SAAS;AAAEkO,UAAAA,cAAc,EAAE;AACrC;AAAE,OAAA,EAED7M,CAAC,CAAC,oBAAoB,CACjB,CACL,CACF,CAAC;AAEV,IAAA;;AAEA;IACA,oBACE5D,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,KAAK,EAAE;AAAEkB,QAAAA,OAAO,EAAE,MAAM;AAAEC,QAAAA,aAAa,EAAE,QAAQ;AAAEC,QAAAA,GAAG,EAAE,MAAM;AAAEnB,QAAAA,OAAO,EAAE;AAAS;AAAE,KAAA,eAEvFH,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA,IAAA,eACED,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,KAAK,EAAE;AAAEY,QAAAA,QAAQ,EAAE,MAAM;AAAEC,QAAAA,UAAU,EAAE,GAAG;AAAEF,QAAAA,KAAK,EAAE,SAAS;AAAEI,QAAAA,YAAY,EAAE;AAAO;AAAE,KAAA,EAAE2C,CAAC,CAAC,gBAAgB,CAAC,EAAC,IAAE,EAAC2C,QAAQ,EAAC,GAAM,CAAC,eACnIvG,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,KAAK,EAAE;AAAEkB,QAAAA,OAAO,EAAE,MAAM;AAAEuB,QAAAA,mBAAmB,EAAE,gBAAgB;AAAErB,QAAAA,GAAG,EAAE,MAAM;AAAEL,QAAAA,YAAY,EAAE;AAAO;AAAE,KAAA,EACvG,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAACM,GAAG,CAACmP,GAAG,iBAC7B1Q,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AACEyB,MAAAA,GAAG,EAAEgP,GAAI;AACTpO,MAAAA,OAAO,EAAEA,MAAMoM,SAAS,CAACgC,GAAG,CAAE;AAC9BxQ,MAAAA,KAAK,EAAE;AACLC,QAAAA,OAAO,EAAE,QAAQ;AAAEoF,QAAAA,SAAS,EAAE,QAAQ;AAAEnF,QAAAA,YAAY,EAAE,MAAM;AAAEmC,QAAAA,MAAM,EAAE,SAAS;AAAEzB,QAAAA,QAAQ,EAAE,MAAM;AAAEC,QAAAA,UAAU,EAAE,GAAG;AAClHN,QAAAA,UAAU,EAAE,kDAAkD;AAC9DJ,QAAAA,MAAM,EAAEmK,MAAM,KAAKkG,GAAG,GAAG,mCAAmC,GAAG,oCAAoC;AACnGpQ,QAAAA,UAAU,EAAEkK,MAAM,KAAKkG,GAAG,GAAG,0BAA0B,GAAG,0BAA0B;AACpFrL,QAAAA,cAAc,EAAE,YAAY;AAAEC,QAAAA,oBAAoB,EAAE,YAAY;AAChEzE,QAAAA,KAAK,EAAE2J,MAAM,KAAKkG,GAAG,GAAG,SAAS,GAAG,SAAS;AAC7ClQ,QAAAA,SAAS,EAAEgK,MAAM,KAAKkG,GAAG,GAAG,iFAAiF,GAAG;OAChH;MACFjL,YAAY,EAAEC,CAAC,IAAI;QAAE,IAAG8E,MAAM,KAAKkG,GAAG,EAAE;AAAEhL,UAAAA,CAAC,CAACC,aAAa,CAACzF,KAAK,CAACU,SAAS,GAAG,kBAAkB;AAAE8E,UAAAA,CAAC,CAACC,aAAa,CAACzF,KAAK,CAACI,UAAU,GAAG,0BAA0B;AAAE,QAAA;MAAE,CAAE;MACnKsF,YAAY,EAAEF,CAAC,IAAI;QAAE,IAAG8E,MAAM,KAAKkG,GAAG,EAAE;AAAEhL,UAAAA,CAAC,CAACC,aAAa,CAACzF,KAAK,CAACU,SAAS,GAAG,MAAM;AAAE8E,UAAAA,CAAC,CAACC,aAAa,CAACzF,KAAK,CAACI,UAAU,GAAG,0BAA0B;AAAE,QAAA;AAAE,MAAA;KAAE,EAEtJoQ,GACE,CACN,CACE,CAAC,eACN1Q,KAAA,CAAAC,aAAA,CAAC0Q,WAAW,EAAA;AACVzQ,MAAAA,KAAK,EAAE;AAAE0B,QAAAA,KAAK,EAAE,MAAM;AAAExB,QAAAA,YAAY,EAAE,MAAM;AAAEE,QAAAA,UAAU,EAAE;OAA6B;AACvFkQ,MAAAA,IAAI,EAAC,OAAO;AACZjM,MAAAA,KAAK,EAAEiG,MAAO;AACdhG,MAAAA,QAAQ,EAAEkK,SAAU;AACpBkC,MAAAA,MAAM,eAAE5Q,KAAA,CAAAC,aAAA,CAAC4Q,cAAc,EAAA;AAAC3Q,QAAAA,KAAK,EAAE;AAAEW,UAAAA,KAAK,EAAE;AAAU;AAAE,OAAE,CAAE;AACxDgC,MAAAA,GAAG,EAAE;KACN,CACE,CAAC,eAGN7C,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA,IAAA,eACED,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,KAAK,EAAE;AAAEY,QAAAA,QAAQ,EAAE,MAAM;AAAEC,QAAAA,UAAU,EAAE,GAAG;AAAEF,QAAAA,KAAK,EAAE,SAAS;AAAEI,QAAAA,YAAY,EAAE;AAAO;KAAE,EAAE2C,CAAC,CAAC,eAAe,CAAO,CAAC,eACrH5D,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,KAAK,EAAE;AAAEkB,QAAAA,OAAO,EAAE,MAAM;AAAEC,QAAAA,aAAa,EAAE,QAAQ;AAAEC,QAAAA,GAAG,EAAE;AAAO;KAAE,EACnEyM,eAAe,CAACxM,GAAG,CAACkL,CAAC,iBACpBzM,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;MACEyB,GAAG,EAAE+K,CAAC,CAACC,EAAG;MACVpK,OAAO,EAAEA,MAAMuM,SAAS,CAACpC,CAAC,CAACC,EAAE,CAAE;AAC/BxM,MAAAA,KAAK,EAAE;AACLkB,QAAAA,OAAO,EAAE,MAAM;AAAEO,QAAAA,UAAU,EAAE,QAAQ;AAAExB,QAAAA,OAAO,EAAE,MAAM;AAAEC,QAAAA,YAAY,EAAE,MAAM;AAAEmC,QAAAA,MAAM,EAAE,SAAS;QAC/FlC,MAAM,EAAEuO,MAAM,KAAKnC,CAAC,CAACC,EAAE,GAAG,mCAAmC,GAAG,oCAAoC;QACpGpM,UAAU,EAAEsO,MAAM,KAAKnC,CAAC,CAACC,EAAE,GAAG,2BAA2B,GAAG,0BAA0B;AACtFrH,QAAAA,cAAc,EAAE,YAAY;AAAEC,QAAAA,oBAAoB,EAAE,YAAY;AAChE7E,QAAAA,UAAU,EAAE,kDAAkD;QAC9DD,SAAS,EAAEoO,MAAM,KAAKnC,CAAC,CAACC,EAAE,GAAG,kFAAkF,GAAG;OAClH;MACFjH,YAAY,EAAEC,CAAC,IAAI;AAAE,QAAA,IAAGkJ,MAAM,KAAKnC,CAAC,CAACC,EAAE,EAAE;AAAEhH,UAAAA,CAAC,CAACC,aAAa,CAACzF,KAAK,CAACU,SAAS,GAAG,kBAAkB;AAAE8E,UAAAA,CAAC,CAACC,aAAa,CAACzF,KAAK,CAACI,UAAU,GAAG,0BAA0B;AAAE,QAAA;MAAE,CAAE;MACpKsF,YAAY,EAAEF,CAAC,IAAI;AAAE,QAAA,IAAGkJ,MAAM,KAAKnC,CAAC,CAACC,EAAE,EAAE;AAAEhH,UAAAA,CAAC,CAACC,aAAa,CAACzF,KAAK,CAACU,SAAS,GAAG,MAAM;AAAE8E,UAAAA,CAAC,CAACC,aAAa,CAACzF,KAAK,CAACI,UAAU,GAAG,0BAA0B;AAAE,QAAA;AAAE,MAAA;KAAE,eAExJN,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,KAAK,EAAE;AAAE0B,QAAAA,KAAK,EAAE,MAAM;AAAEC,QAAAA,MAAM,EAAE,MAAM;AAAEvB,QAAAA,UAAU,EAAE,uBAAuB;AAAEF,QAAAA,YAAY,EAAE,MAAM;AAAEgB,QAAAA,OAAO,EAAE,MAAM;AAAEO,QAAAA,UAAU,EAAE,QAAQ;AAAEkE,QAAAA,cAAc,EAAE,QAAQ;AAAErF,QAAAA,SAAS,EAAE;AAA6B;AAAE,KAAA,EAChNiM,CAAC,CAACxH,IACA,CAAC,eACNjF,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,KAAK,EAAE;AAAE8F,QAAAA,UAAU,EAAE,MAAM;AAAEF,QAAAA,IAAI,EAAE,CAAC;AAAEhF,QAAAA,QAAQ,EAAE,MAAM;AAAEC,QAAAA,UAAU,EAAE,GAAG;AAAEF,QAAAA,KAAK,EAAE;AAAU;KAAE,EAC9FkP,aAAa,CAACtD,CAAC,CACb,CAAC,eACNzM,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,KAAK,EAAE;AACV0B,QAAAA,KAAK,EAAE,MAAM;AAAEC,QAAAA,MAAM,EAAE,MAAM;AAAEzB,QAAAA,YAAY,EAAE,KAAK;QAAEC,MAAM,EAAEuO,MAAM,KAAKnC,CAAC,CAACC,EAAE,GAAG,mBAAmB,GAAG,oCAAoC;AACxIpM,QAAAA,UAAU,EAAE,MAAM;AAAEG,QAAAA,UAAU,EAAE,UAAU;QAAED,SAAS,EAAEoO,MAAM,KAAKnC,CAAC,CAACC,EAAE,GAAG,mCAAmC,GAAG;AACjH;KAAI,CACD,CACN,CACE,CACF,CAAC,eAGN1M,KAAA,CAAAC,aAAA,CAAA,QAAA,EAAA;AACEqC,MAAAA,OAAO,EAAE6M,cAAe;AACxBrI,MAAAA,QAAQ,EAAEL,OAAQ;AAClBvG,MAAAA,KAAK,EAAE;AACL0B,QAAAA,KAAK,EAAE,MAAM;AAAEzB,QAAAA,OAAO,EAAE,MAAM;AAAEC,QAAAA,YAAY,EAAE,MAAM;AAAEC,QAAAA,MAAM,EAAE,MAAM;AACpEC,QAAAA,UAAU,EAAE,mDAAmD;AAAEO,QAAAA,KAAK,EAAE,MAAM;AAC9EC,QAAAA,QAAQ,EAAE,MAAM;AAAEC,QAAAA,UAAU,EAAE,GAAG;AAAEwB,QAAAA,MAAM,EAAEkE,OAAO,GAAG,aAAa,GAAG,SAAS;AAAErE,QAAAA,OAAO,EAAEqE,OAAO,GAAG,GAAG,GAAG,CAAC;AAC1GrF,QAAAA,OAAO,EAAE,MAAM;AAAEO,QAAAA,UAAU,EAAE,QAAQ;AAAEkE,QAAAA,cAAc,EAAE,QAAQ;AAAEvE,QAAAA,GAAG,EAAE,KAAK;AAC3Ed,QAAAA,SAAS,EAAE,wCAAwC;AAAEC,QAAAA,UAAU,EAAE;OACjE;MACFgF,YAAY,EAAEC,CAAC,IAAI;QAAE,IAAG,CAACe,OAAO,EAAE;AAAEf,UAAAA,CAAC,CAACC,aAAa,CAACzF,KAAK,CAACU,SAAS,GAAG,kBAAkB;AAAE8E,UAAAA,CAAC,CAACC,aAAa,CAACzF,KAAK,CAACM,SAAS,GAAG,wCAAwC;AAAE,QAAA;MAAE,CAAE;MAC1KoF,YAAY,EAAEF,CAAC,IAAI;QAAE,IAAG,CAACe,OAAO,EAAE;AAAEf,UAAAA,CAAC,CAACC,aAAa,CAACzF,KAAK,CAACU,SAAS,GAAG,MAAM;AAAE8E,UAAAA,CAAC,CAACC,aAAa,CAACzF,KAAK,CAACM,SAAS,GAAG,wCAAwC;AAAE,QAAA;AAAE,MAAA;KAAE,eAE9JR,KAAA,CAAAC,aAAA,CAAC6Q,YAAY,EAAA,IAAE,CAAC,EACfrK,OAAO,GAAG7C,CAAC,CAAC,gBAAgB,CAAC,GAAGA,CAAC,CAAC,iBAAiB,CAC9C,CACL,CAAC;EAEV,CAAC;AAED,EAAA,oBACE5D,KAAA,CAAAC,aAAA,CAAC8Q,KAAK,EAAA;AACJC,IAAAA,IAAI,EAAE3C,OAAQ;AACdC,IAAAA,QAAQ,EAAEA,QAAS;AACnB2C,IAAAA,MAAM,EAAE,IAAK;AACbrP,IAAAA,KAAK,EAAE,GAAI;IACXsP,cAAc,EAAA,IAAA;AACdC,IAAAA,MAAM,EAAE;AACNC,MAAAA,OAAO,EAAE;AAAEjR,QAAAA,OAAO,EAAE,MAAM;AAAEC,QAAAA,YAAY,EAAE,MAAM;AAAEE,QAAAA,UAAU,EAAE,0BAA0B;AAAE+E,QAAAA,cAAc,EAAE,YAAY;AAAE7E,QAAAA,SAAS,EAAE;OAAyC;AAC5K6Q,MAAAA,MAAM,EAAE;AAAE/Q,QAAAA,UAAU,EAAE,aAAa;AAAEW,QAAAA,YAAY,EAAE;OAAQ;AAC3DqQ,MAAAA,IAAI,EAAE;AAAEjM,QAAAA,cAAc,EAAE,WAAW;AAAE/E,QAAAA,UAAU,EAAE;AAAwB;KACzE;IACFoK,KAAK,eAAE1K,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,KAAK,EAAE;AAAEY,QAAAA,QAAQ,EAAE,MAAM;AAAEC,QAAAA,UAAU,EAAE,GAAG;AAAEF,QAAAA,KAAK,EAAE;AAAU;KAAE,EAAE+C,CAAC,CAAC,gBAAgB,CAAO;GAAE,eAExG5D,KAAA,CAAAC,aAAA,CAAA,OAAA,EAAA,IAAA,EAAQ;AACd;AACA;AACA,MAAA,CAAe,CAAC,EACT+P,aAAa,EACT,CAAC;AAEZ;;;;"}
|
package/dist/styles.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["payment.css"],"names":[],"mappings":"AAAA,iBAA4C,+CAAA,CAA3B,0BAA2E,CAC5F,wBAAwB,UAAW,CAAC,2BAA2B,8BAA8B","file":"styles.css","sourcesContent":[".qpay-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,0.08)!important}\n.qpay-card button:hover{opacity:0.9}.qpay-methods button:hover{border-color:#3b82f6!important}\n"]}
|
package/package.json
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@quantabit/payment-sdk",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"description": "Payment UI: pricing table, checkout summary, payment method selector",
|
|
6
|
+
"main": "dist/index.cjs",
|
|
7
|
+
"module": "dist/index.esm.js",
|
|
8
|
+
"types": "types/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"types": "./types/index.d.ts",
|
|
12
|
+
"import": "./dist/index.esm.js",
|
|
13
|
+
"require": "./dist/index.cjs"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"sideEffects": [
|
|
17
|
+
"*.css"
|
|
18
|
+
],
|
|
19
|
+
"files": [
|
|
20
|
+
"dist",
|
|
21
|
+
"types",
|
|
22
|
+
"README.md",
|
|
23
|
+
"LICENSE"
|
|
24
|
+
],
|
|
25
|
+
"scripts": {
|
|
26
|
+
"build": "rollup -c",
|
|
27
|
+
"dev": "rollup -c -w",
|
|
28
|
+
"test": "jest --passWithNoTests",
|
|
29
|
+
"prepublishOnly": "npm run build"
|
|
30
|
+
},
|
|
31
|
+
"repository": {
|
|
32
|
+
"type": "git",
|
|
33
|
+
"url": "https://github.com/quantabit-chain/qbit-sdk.git",
|
|
34
|
+
"directory": "packages/payment-sdk"
|
|
35
|
+
},
|
|
36
|
+
"homepage": "https://github.com/quantabit-chain/qbit-sdk/tree/main/packages/payment-sdk",
|
|
37
|
+
"keywords": [
|
|
38
|
+
"payment",
|
|
39
|
+
"pricing",
|
|
40
|
+
"checkout",
|
|
41
|
+
"react"
|
|
42
|
+
],
|
|
43
|
+
"author": "QuantaBit Team",
|
|
44
|
+
"license": "MIT",
|
|
45
|
+
"engines": {
|
|
46
|
+
"node": ">=18.0.0"
|
|
47
|
+
},
|
|
48
|
+
"peerDependencies": {
|
|
49
|
+
"react": ">=17.0.0",
|
|
50
|
+
"react-dom": ">=17.0.0"
|
|
51
|
+
},
|
|
52
|
+
"dependencies": {
|
|
53
|
+
"@quantabit/sdk-config": "^1.0.6"
|
|
54
|
+
},
|
|
55
|
+
"publishConfig": {
|
|
56
|
+
"access": "public"
|
|
57
|
+
},
|
|
58
|
+
"qbit": {
|
|
59
|
+
"privacy": {
|
|
60
|
+
"level": "functional",
|
|
61
|
+
"dataCollection": "Feature-related data for personalization. Requires user consent.",
|
|
62
|
+
"gdprCompliant": true,
|
|
63
|
+
"ccpaCompliant": true
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
"bugs": {
|
|
67
|
+
"url": "https://github.com/quantabit-chain/qbit-sdk/issues"
|
|
68
|
+
}
|
|
69
|
+
}
|
package/types/index.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Type definitions for @quantabit/payment-sdk
|
|
2
|
+
export declare const CheckoutSummary: any;
|
|
3
|
+
export declare const PaymentMethodSelector: any;
|
|
4
|
+
export declare const PricingCard: any;
|
|
5
|
+
export declare const PricingTable: any;
|
|
6
|
+
export declare const SUPPORTED_LANGUAGES: any;
|
|
7
|
+
export declare const getLanguage: any;
|
|
8
|
+
export declare const messages: any;
|
|
9
|
+
export declare const setLanguage: any;
|
|
10
|
+
export declare const t: any;
|
|
11
|
+
export declare const paymentApi: any;
|
|
12
|
+
export declare const PaymentApiClient: any;
|
|
13
|
+
export declare const RechargeModal: any;
|
|
14
|
+
|