diff --git a/.github/workflows/build-webui.yml b/.github/workflows/build-webui.yml deleted file mode 100644 index e9fdf45..0000000 --- a/.github/workflows/build-webui.yml +++ /dev/null @@ -1,76 +0,0 @@ -# 自动构建 WebUI 并提交构建产物 -# 触发条件:webui 目录下的文件变更 - -name: Build WebUI - -on: - push: - branches: - - main - paths: - - 'webui/**' - - '.github/workflows/build-webui.yml' - pull_request: - branches: - - main - paths: - - 'webui/**' - # 允许手动触发 - workflow_dispatch: - -jobs: - build: - runs-on: ubuntu-latest - - # 只在主仓库运行,避免 fork 仓库运行 - if: github.repository == 'CJackHwang/ds2api' - - permissions: - contents: write - - steps: - - name: Checkout repository - uses: actions/checkout@v4 - with: - token: ${{ secrets.GITHUB_TOKEN }} - - - name: Setup Node.js - uses: actions/setup-node@v4 - with: - node-version: '20' - cache: 'npm' - cache-dependency-path: webui/package-lock.json - - - name: Install dependencies - working-directory: webui - run: npm ci - - - name: Build WebUI - working-directory: webui - run: npm run build - - - name: Check for changes - id: check_changes - run: | - git add static/admin - if git diff --staged --quiet; then - echo "changed=false" >> $GITHUB_OUTPUT - else - echo "changed=true" >> $GITHUB_OUTPUT - fi - - - name: Commit and push changes - if: steps.check_changes.outputs.changed == 'true' && github.event_name == 'push' - run: | - git config --local user.email "github-actions[bot]@users.noreply.github.com" - git config --local user.name "github-actions[bot]" - git commit -m "chore: auto-build WebUI [skip ci]" - git push - - - name: Upload build artifacts (for PR review) - if: github.event_name == 'pull_request' - uses: actions/upload-artifact@v4 - with: - name: webui-build - path: static/admin - retention-days: 7 diff --git a/.gitignore b/.gitignore index 1c77a62..2342ad0 100644 --- a/.gitignore +++ b/.gitignore @@ -64,6 +64,8 @@ pnpm-lock.yaml *.tsbuildinfo .cache/ .parcel-cache/ +static/admin/* +!static/admin/.gitkeep # Environment .env.local diff --git a/DEPLOY.md b/DEPLOY.md index b1c47d9..ba31f2a 100644 --- a/DEPLOY.md +++ b/DEPLOY.md @@ -131,8 +131,9 @@ WebUI 开发服务器会启动在 `http://localhost:5173`,并自动代理 API WebUI 构建产物位于 `static/admin/` 目录。 **自动构建(推荐)**: -- 当 `webui/` 目录下的文件变更并推送到 `main` 分支时,GitHub Actions 会自动构建并提交产物 -- PR 合并时会自动触发构建 +- 当前由 Vercel 在部署时执行 WebUI 构建(见 `vercel.json` 的 `buildCommand`) +- GitHub Actions 的 WebUI 自动构建流程已关闭 +- `static/admin/` 构建产物不再提交到仓库 **手动构建**: ```bash @@ -145,7 +146,7 @@ npm install npm run build ``` -> **贡献者注意**:修改 WebUI 后无需手动构建,CI 会自动处理。 +> **贡献者注意**:修改 WebUI 后无需手动构建,Vercel 部署会自动构建。 --- diff --git a/routes/admin/accounts.py b/routes/admin/accounts.py index f53bb55..6603acd 100644 --- a/routes/admin/accounts.py +++ b/routes/admin/accounts.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -"""Admin 账号管理模块 - 账号验证和测试""" +"""Admin 账号管理模块 - 账号测试与导入""" import asyncio import json import base64 @@ -24,145 +24,6 @@ from .auth import verify_admin router = APIRouter() -# ---------------------------------------------------------------------- -# 账号验证 -# ---------------------------------------------------------------------- -async def validate_single_account(account: dict) -> dict: - """验证单个账号的有效性""" - acc_id = get_account_identifier(account) - result = { - "account": acc_id, - "valid": False, - "has_token": bool(account.get("token", "").strip()), - "message": "", - } - - def _is_token_invalid(status_code: int, data: dict) -> bool: - msg = (data.get("msg") or data.get("message") or "").lower() - code = data.get("code") - return status_code in {401, 403} or code in {40001, 40002, 40003} or "token" in msg or "unauthorized" in msg - - def _create_session(token: str) -> dict: - headers = {**BASE_HEADERS, "authorization": f"Bearer {token}"} - try: - session_resp = cffi_requests.post( - DEEPSEEK_CREATE_SESSION_URL, - headers=headers, - json={"agent": "chat"}, - impersonate="safari15_3", - timeout=15, - ) - except Exception as e: - return {"success": False, "message": f"请求异常: {e}", "status_code": 0, "data": {}} - - try: - data = session_resp.json() - except Exception: - data = {} - finally: - session_resp.close() - if session_resp.status_code == 200 and data.get("code") == 0: - return { - "success": True, - "session_id": data.get("data", {}).get("biz_data", {}).get("id"), - "status_code": session_resp.status_code, - "data": data, - } - return { - "success": False, - "message": data.get("msg") or f"HTTP {session_resp.status_code}", - "status_code": session_resp.status_code, - "data": data, - } - - try: - token = account.get("token", "").strip() - if token: - session_result = _create_session(token) - if session_result["success"]: - result["valid"] = True - result["message"] = "Token 有效" - return result - - if _is_token_invalid(session_result["status_code"], session_result["data"]): - token = "" - account["token"] = "" - - if not token: - try: - login_deepseek_via_account(account) - token = account.get("token", "").strip() - session_result = _create_session(token) - if session_result["success"]: - result["valid"] = True - result["has_token"] = True - result["message"] = "登录成功并验证通过" - else: - result["message"] = f"登录成功但验证失败: {session_result['message']}" - except Exception as e: - result["valid"] = False - result["message"] = f"登录失败: {str(e)}" - except Exception as e: - result["message"] = f"验证出错: {str(e)}" - - return result - - -@router.post("/accounts/validate") -async def validate_account(request: Request, _: bool = Depends(verify_admin)): - """验证单个账号""" - data = await request.json() - identifier = data.get("identifier", "").strip() - - if not identifier: - raise HTTPException(status_code=400, detail="需要账号标识(email 或 mobile)") - - account = None - for acc in CONFIG.get("accounts", []): - if acc.get("email") == identifier or acc.get("mobile") == identifier: - account = acc - break - - if not account: - raise HTTPException(status_code=404, detail="账号不存在") - - result = await validate_single_account(account) - - if result["valid"] and result["has_token"]: - save_config(CONFIG) - - return JSONResponse(content=result) - - -@router.post("/accounts/validate-all") -async def validate_all_accounts(_: bool = Depends(verify_admin)): - """批量验证所有账号""" - accounts = CONFIG.get("accounts", []) - if not accounts: - return JSONResponse(content={ - "total": 0, "valid": 0, "invalid": 0, "results": [], - }) - - results = [] - valid_count = 0 - - for acc in accounts: - result = await validate_single_account(acc) - results.append(result) - if result["valid"]: - valid_count += 1 - await asyncio.sleep(0.5) - - save_config(CONFIG) - - return JSONResponse(content={ - "total": len(accounts), - "valid": valid_count, - "invalid": len(accounts) - valid_count, - "results": results, - }) - - # ---------------------------------------------------------------------- # 账号 API 测试 # ---------------------------------------------------------------------- diff --git a/routes/home.py b/routes/home.py index dad0fb8..7199f33 100644 --- a/routes/home.py +++ b/routes/home.py @@ -290,14 +290,19 @@ async def webui(request: Request, path: str = ""): if path and "." in path: file_path = os.path.join(STATIC_ADMIN_DIR, path) if os.path.isfile(file_path): - return FileResponse(file_path) + cache_control = "public, max-age=31536000, immutable" + if path.startswith("assets/"): + headers = {"Cache-Control": cache_control} + else: + headers = {"Cache-Control": "no-store, must-revalidate"} + return FileResponse(file_path, headers=headers) return HTMLResponse(content="Not Found", status_code=404) # 否则返回 index.html(SPA 路由) index_path = os.path.join(STATIC_ADMIN_DIR, "index.html") if os.path.isfile(index_path): - return FileResponse(index_path) + headers = {"Cache-Control": "no-store, must-revalidate"} + return FileResponse(index_path, headers=headers) return HTMLResponse(content="index.html not found", status_code=404) - diff --git a/static/admin/.gitkeep b/static/admin/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/static/admin/.gitkeep @@ -0,0 +1 @@ + diff --git a/static/admin/assets/index-D9_KYhGM.css b/static/admin/assets/index-D9_KYhGM.css deleted file mode 100644 index ed24db7..0000000 --- a/static/admin/assets/index-D9_KYhGM.css +++ /dev/null @@ -1 +0,0 @@ -*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0;right:0;bottom:0;left:0}.inset-y-0{top:0;bottom:0}.bottom-2{bottom:.5rem}.bottom-\[-10\%\]{bottom:-10%}.left-0{left:0}.left-0\.5{left:.125rem}.left-\[-10\%\]{left:-10%}.right-0{right:0}.right-2{right:.5rem}.right-2\.5{right:.625rem}.right-3{right:.75rem}.right-4{right:1rem}.right-\[-10\%\]{right:-10%}.top-0{top:0}.top-2\.5{top:.625rem}.top-3{top:.75rem}.top-4{top:1rem}.top-\[-10\%\]{top:-10%}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-40{z-index:40}.z-50{z-index:50}.mx-auto{margin-left:auto;margin-right:auto}.-mr-2{margin-right:-.5rem}.mb-0\.5{margin-bottom:.125rem}.mb-1\.5{margin-bottom:.375rem}.mb-12{margin-bottom:3rem}.mb-16{margin-bottom:4rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-8{margin-bottom:2rem}.ml-0\.5{margin-left:.125rem}.ml-1{margin-left:.25rem}.ml-5{margin-left:1.25rem}.mr-2{margin-right:.5rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-20{margin-top:5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-\[50\%\]{height:50%}.h-\[calc\(100vh-140px\)\]{height:calc(100vh - 140px)}.h-auto{height:auto}.h-full{height:100%}.h-screen{height:100vh}.max-h-32{max-height:8rem}.max-h-60{max-height:15rem}.min-h-0{min-height:0px}.min-h-\[400px\]{min-height:400px}.min-h-screen{min-height:100vh}.w-1\.5{width:.375rem}.w-12{width:3rem}.w-16{width:4rem}.w-2{width:.5rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-8{width:2rem}.w-\[50\%\]{width:50%}.w-full{width:100%}.min-w-0{min-width:0px}.max-w-2xl{max-width:42rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-\[400px\]{max-width:400px}.max-w-\[85\%\]{max-width:85%}.max-w-md{max-width:28rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.-translate-x-full{--tw-translate-x: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.resize-none{resize:none}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-row-reverse{flex-direction:row-reverse}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-border>:not([hidden])~:not([hidden]){border-color:var(--color-border)}.self-start{align-self:flex-start}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.scroll-smooth{scroll-behavior:smooth}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:.75rem}.rounded-tr-sm{border-top-right-radius:calc(var(--radius) - 4px)}.border{border-width:1px}.border-2{border-width:2px}.border-4{border-width:4px}.border-b{border-bottom-width:1px}.border-l-2{border-left-width:2px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-border{border-color:var(--color-border)}.border-current{border-color:currentColor}.border-emerald-500{--tw-border-opacity: 1;border-color:rgb(16 185 129 / var(--tw-border-opacity, 1))}.border-emerald-500\/20{border-color:#10b98133}.border-primary{border-color:var(--color-primary)}.border-transparent{border-color:transparent}.border-t-primary-foreground{border-top-color:var(--color-primary-foreground)}.border-t-transparent{border-top-color:transparent}.bg-\[\#09090b\]{--tw-bg-opacity: 1;background-color:rgb(9 9 11 / var(--tw-bg-opacity, 1))}.bg-amber-500{--tw-bg-opacity: 1;background-color:rgb(245 158 11 / var(--tw-bg-opacity, 1))}.bg-background{background-color:var(--color-background)}.bg-black\/50{background-color:#00000080}.bg-card{background-color:var(--color-card)}.bg-current{background-color:currentColor}.bg-destructive{background-color:var(--color-destructive)}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-emerald-500\/10{background-color:#10b9811a}.bg-muted{background-color:var(--color-muted)}.bg-popover{background-color:var(--color-popover)}.bg-primary{background-color:var(--color-primary)}.bg-secondary{background-color:var(--color-secondary)}.bg-transparent{background-color:transparent}.to-transparent{--tw-gradient-to: transparent var(--tw-gradient-to-position)}.fill-current{fill:currentColor}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.pb-6{padding-bottom:1.5rem}.pl-10{padding-left:2.5rem}.pl-3{padding-left:.75rem}.pl-3\.5{padding-left:.875rem}.pl-4{padding-left:1rem}.pl-5{padding-left:1.25rem}.pr-10{padding-right:2.5rem}.pr-12{padding-right:3rem}.pr-4{padding-right:1rem}.pr-8{padding-right:2rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[9px\]{font-size:9px}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.leading-7{line-height:1.75rem}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.tracking-\[0\.1em\]{letter-spacing:.1em}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-amber-500{--tw-text-opacity: 1;color:rgb(245 158 11 / var(--tw-text-opacity, 1))}.text-amber-600{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.text-cyan-500{--tw-text-opacity: 1;color:rgb(6 182 212 / var(--tw-text-opacity, 1))}.text-cyan-600{--tw-text-opacity: 1;color:rgb(8 145 178 / var(--tw-text-opacity, 1))}.text-destructive{color:var(--color-destructive)}.text-emerald-500{--tw-text-opacity: 1;color:rgb(16 185 129 / var(--tw-text-opacity, 1))}.text-foreground{color:var(--color-foreground)}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-green-500{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity, 1))}.text-muted-foreground{color:var(--color-muted-foreground)}.text-popover-foreground{color:var(--color-popover-foreground)}.text-primary{color:var(--color-primary)}.text-primary-foreground{color:var(--color-primary-foreground)}.text-secondary-foreground{color:var(--color-secondary-foreground)}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.opacity-0{opacity:0}.opacity-40{opacity:.4}.opacity-5{opacity:.05}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_8px_rgba\(16\,185\,129\,0\.5\)\]{--tw-shadow: 0 0 8px rgba(16,185,129,.5);--tw-shadow-colored: 0 0 8px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-inner{--tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / .05);--tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-emerald-500\/30{--tw-shadow-color: rgb(16 185 129 / .3);--tw-shadow: var(--tw-shadow-colored)}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.blur-\[120px\]{--tw-blur: blur(120px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.delay-150{transition-delay:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.duration-700{transition-duration:.7s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}:root{--color-background: hsl(240 10% 3.9%);--color-foreground: hsl(0 0% 98%);--color-card: hsl(240 10% 6.5%);--color-card-foreground: hsl(0 0% 98%);--color-popover: hsl(240 10% 3.9%);--color-popover-foreground: hsl(0 0% 98%);--color-primary: hsl(45 93% 47%);--color-primary-foreground: hsl(240 10% 3.9%);--color-secondary: hsl(240 5.9% 10%);--color-secondary-foreground: hsl(0 0% 98%);--color-muted: hsl(240 3.7% 15.9%);--color-muted-foreground: hsl(240 5% 64.9%);--color-accent: hsl(240 3.7% 15.9%);--color-accent-foreground: hsl(0 0% 98%);--color-destructive: hsl(0 84.2% 60.2%);--color-destructive-foreground: hsl(0 0% 98%);--color-border: hsl(240 3.7% 15.9%);--color-input: hsl(240 3.7% 15.9%);--color-ring: hsl(45 93% 47%);--radius: .5rem}*{border-color:var(--color-border)}body{background-color:var(--color-background);color:var(--color-foreground);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"rlig" 1,"calt" 1}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#31415899;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#4a6182cc}.custom-scrollbar{scrollbar-width:thin;scrollbar-color:var(--color-muted) transparent}.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;transition:all .15s}.btn:focus{outline:none;box-shadow:0 0 0 2px #ffffff1a}.btn:disabled{opacity:.5;pointer-events:none}.btn-primary{background-color:var(--color-primary);color:var(--color-primary-foreground);box-shadow:0 1px 2px #0000000d}.btn-primary:hover{background-color:#f8fafce6}.btn-primary:active{transform:scale(.95)}.btn-secondary{background-color:var(--color-secondary);color:var(--color-secondary-foreground);border:1px solid var(--color-border)}.btn-secondary:hover{background-color:var(--color-accent);color:var(--color-accent-foreground)}.btn-danger{background-color:var(--color-destructive);color:var(--color-destructive-foreground);box-shadow:0 1px 2px #0000000d}.btn-danger:hover{background-color:#7f1d1de6}.btn-sm{padding:.375rem .75rem;font-size:.75rem}.input-field{display:flex;height:2.5rem;width:100%;border-radius:.5rem;border:1px solid var(--color-input);background-color:#09090b;color:hsl(var(--color-foreground));padding:.5rem .75rem;font-size:.875rem;transition:all .15s}.input-field::-moz-placeholder{color:var(--color-muted-foreground)}.input-field::placeholder{color:var(--color-muted-foreground)}.input-field:focus{outline:none;box-shadow:0 0 0 2px var(--color-ring)}.input-field:disabled{cursor:not-allowed;opacity:.5}.card{background-color:var(--color-card);color:var(--color-card-foreground);border:1px solid var(--color-border);border-radius:.75rem;box-shadow:0 1px 2px #0000000d;overflow:hidden}.hover\:bg-muted:hover{background-color:var(--color-muted)}.hover\:bg-secondary:hover{background-color:var(--color-secondary)}.hover\:text-destructive:hover{color:var(--color-destructive)}.hover\:text-foreground:hover{color:var(--color-foreground)}.hover\:text-primary:hover{color:var(--color-primary)}.hover\:underline:hover{text-decoration-line:underline}.hover\:shadow-md:hover{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.focus\:border-primary:focus{border-color:var(--color-primary)}.focus\:border-ring:focus{border-color:var(--color-ring)}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-1:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color: var(--color-ring)}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:shadow-none:disabled{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.group:focus-within .group-focus-within\:text-primary{color:var(--color-primary)}.group:hover .group-hover\:text-foreground{color:var(--color-foreground)}.group:hover .group-hover\:text-primary{color:var(--color-primary)}.group:hover .group-hover\:opacity-10{opacity:.1}.group:hover .group-hover\:opacity-100{opacity:1}.peer:checked~.peer-checked\:border-primary{border-color:var(--color-primary)}.peer:checked~.peer-checked\:bg-primary{background-color:var(--color-primary)}.peer:checked~.peer-checked\:opacity-100{opacity:1}@media (min-width: 640px){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width: 768px){.md\:col-span-1{grid-column:span 1 / span 1}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:items-center{align-items:center}}@media (min-width: 1024px){.lg\:static{position:static}.lg\:col-span-2{grid-column:span 2 / span 2}.lg\:col-span-3{grid-column:span 3 / span 3}.lg\:col-span-9{grid-column:span 9 / span 9}.lg\:ml-0{margin-left:0}.lg\:block{display:block}.lg\:grid{display:grid}.lg\:hidden{display:none}.lg\:h-\[calc\(100vh-140px\)\]{height:calc(100vh - 140px)}.lg\:h-full{height:100%}.lg\:w-4{width:1rem}.lg\:max-w-\[75\%\]{max-width:75%}.lg\:transform-none{transform:none}.lg\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.lg\:self-auto{align-self:auto}.lg\:p-1\.5{padding:.375rem}.lg\:p-10{padding:2.5rem}.lg\:p-6{padding:1.5rem}.lg\:px-3{padding-left:.75rem;padding-right:.75rem}.lg\:py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.lg\:text-xs{font-size:.75rem;line-height:1rem}.lg\:shadow-none{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}} diff --git a/static/admin/assets/index-cwfNH6yZ.js b/static/admin/assets/index-cwfNH6yZ.js deleted file mode 100644 index e915f3f..0000000 --- a/static/admin/assets/index-cwfNH6yZ.js +++ /dev/null @@ -1,272 +0,0 @@ -(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))r(l);new MutationObserver(l=>{for(const o of l)if(o.type==="childList")for(const s of o.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&r(s)}).observe(document,{childList:!0,subtree:!0});function n(l){const o={};return l.integrity&&(o.integrity=l.integrity),l.referrerPolicy&&(o.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?o.credentials="include":l.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(l){if(l.ep)return;l.ep=!0;const o=n(l);fetch(l.href,o)}})();function $d(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var eu={exports:{}},bl={},tu={exports:{}},D={};/** - * @license React - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var Nr=Symbol.for("react.element"),Fd=Symbol.for("react.portal"),Ad=Symbol.for("react.fragment"),Ud=Symbol.for("react.strict_mode"),Bd=Symbol.for("react.profiler"),Vd=Symbol.for("react.provider"),Hd=Symbol.for("react.context"),Wd=Symbol.for("react.forward_ref"),Qd=Symbol.for("react.suspense"),Kd=Symbol.for("react.memo"),Jd=Symbol.for("react.lazy"),Ti=Symbol.iterator;function Yd(e){return e===null||typeof e!="object"?null:(e=Ti&&e[Ti]||e["@@iterator"],typeof e=="function"?e:null)}var nu={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},ru=Object.assign,lu={};function Ln(e,t,n){this.props=e,this.context=t,this.refs=lu,this.updater=n||nu}Ln.prototype.isReactComponent={};Ln.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};Ln.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function ou(){}ou.prototype=Ln.prototype;function Rs(e,t,n){this.props=e,this.context=t,this.refs=lu,this.updater=n||nu}var Ls=Rs.prototype=new ou;Ls.constructor=Rs;ru(Ls,Ln.prototype);Ls.isPureReactComponent=!0;var zi=Array.isArray,su=Object.prototype.hasOwnProperty,Ts={current:null},iu={key:!0,ref:!0,__self:!0,__source:!0};function au(e,t,n){var r,l={},o=null,s=null;if(t!=null)for(r in t.ref!==void 0&&(s=t.ref),t.key!==void 0&&(o=""+t.key),t)su.call(t,r)&&!iu.hasOwnProperty(r)&&(l[r]=t[r]);var i=arguments.length-2;if(i===1)l.children=n;else if(1>>1,W=L[U];if(0>>1;Ul(vt,z))Cl(I,vt)?(L[U]=I,L[C]=z,U=C):(L[U]=vt,L[me]=z,U=me);else if(Cl(I,z))L[U]=I,L[C]=z,U=C;else break e}}return E}function l(L,E){var z=L.sortIndex-E.sortIndex;return z!==0?z:L.id-E.id}if(typeof performance=="object"&&typeof performance.now=="function"){var o=performance;e.unstable_now=function(){return o.now()}}else{var s=Date,i=s.now();e.unstable_now=function(){return s.now()-i}}var u=[],c=[],y=1,p=null,h=3,v=!1,x=!1,w=!1,N=typeof setTimeout=="function"?setTimeout:null,f=typeof clearTimeout=="function"?clearTimeout:null,d=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function m(L){for(var E=n(c);E!==null;){if(E.callback===null)r(c);else if(E.startTime<=L)r(c),E.sortIndex=E.expirationTime,t(u,E);else break;E=n(c)}}function k(L){if(w=!1,m(L),!x)if(n(u)!==null)x=!0,yt(S);else{var E=n(c);E!==null&>(k,E.startTime-L)}}function S(L,E){x=!1,w&&(w=!1,f(P),P=-1),v=!0;var z=h;try{for(m(E),p=n(u);p!==null&&(!(p.expirationTime>E)||L&&!pe());){var U=p.callback;if(typeof U=="function"){p.callback=null,h=p.priorityLevel;var W=U(p.expirationTime<=E);E=e.unstable_now(),typeof W=="function"?p.callback=W:p===n(u)&&r(u),m(E)}else r(u);p=n(u)}if(p!==null)var xe=!0;else{var me=n(c);me!==null&>(k,me.startTime-E),xe=!1}return xe}finally{p=null,h=z,v=!1}}var _=!1,R=null,P=-1,b=5,O=-1;function pe(){return!(e.unstable_now()-OL||125U?(L.sortIndex=z,t(c,L),n(u)===null&&L===n(c)&&(w?(f(P),P=-1):w=!0,gt(k,z-U))):(L.sortIndex=W,t(u,L),x||v||(x=!0,yt(S))),L},e.unstable_shouldYield=pe,e.unstable_wrapCallback=function(L){var E=h;return function(){var z=h;h=E;try{return L.apply(this,arguments)}finally{h=z}}}})(pu);fu.exports=pu;var af=fu.exports;/** - * @license React - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var uf=g,Pe=af;function j(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Oo=Object.prototype.hasOwnProperty,cf=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,Ii={},Di={};function df(e){return Oo.call(Di,e)?!0:Oo.call(Ii,e)?!1:cf.test(e)?Di[e]=!0:(Ii[e]=!0,!1)}function ff(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function pf(e,t,n,r){if(t===null||typeof t>"u"||ff(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function ve(e,t,n,r,l,o,s){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=l,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=s}var ae={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){ae[e]=new ve(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];ae[t]=new ve(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){ae[e]=new ve(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){ae[e]=new ve(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){ae[e]=new ve(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){ae[e]=new ve(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){ae[e]=new ve(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){ae[e]=new ve(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){ae[e]=new ve(e,5,!1,e.toLowerCase(),null,!1,!1)});var Os=/[\-:]([a-z])/g;function Is(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(Os,Is);ae[t]=new ve(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(Os,Is);ae[t]=new ve(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(Os,Is);ae[t]=new ve(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){ae[e]=new ve(e,1,!1,e.toLowerCase(),null,!1,!1)});ae.xlinkHref=new ve("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){ae[e]=new ve(e,1,!1,e.toLowerCase(),null,!0,!0)});function Ds(e,t,n,r){var l=ae.hasOwnProperty(t)?ae[t]:null;(l!==null?l.type!==0:r||!(2i||l[s]!==o[i]){var u=` -`+l[s].replace(" at new "," at ");return e.displayName&&u.includes("")&&(u=u.replace("",e.displayName)),u}while(1<=s&&0<=i);break}}}finally{ro=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?Wn(e):""}function mf(e){switch(e.tag){case 5:return Wn(e.type);case 16:return Wn("Lazy");case 13:return Wn("Suspense");case 19:return Wn("SuspenseList");case 0:case 2:case 15:return e=lo(e.type,!1),e;case 11:return e=lo(e.type.render,!1),e;case 1:return e=lo(e.type,!0),e;default:return""}}function Mo(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case on:return"Fragment";case ln:return"Portal";case Io:return"Profiler";case bs:return"StrictMode";case Do:return"Suspense";case bo:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case yu:return(e.displayName||"Context")+".Consumer";case hu:return(e._context.displayName||"Context")+".Provider";case Ms:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case $s:return t=e.displayName||null,t!==null?t:Mo(e.type)||"Memo";case kt:t=e._payload,e=e._init;try{return Mo(e(t))}catch{}}return null}function hf(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Mo(t);case 8:return t===bs?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function Dt(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function vu(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function yf(e){var t=vu(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var l=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return l.call(this)},set:function(s){r=""+s,o.call(this,s)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(s){r=""+s},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Or(e){e._valueTracker||(e._valueTracker=yf(e))}function xu(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=vu(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function ul(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function $o(e,t){var n=t.checked;return G({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function Mi(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=Dt(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function wu(e,t){t=t.checked,t!=null&&Ds(e,"checked",t,!1)}function Fo(e,t){wu(e,t);var n=Dt(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?Ao(e,t.type,n):t.hasOwnProperty("defaultValue")&&Ao(e,t.type,Dt(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function $i(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function Ao(e,t,n){(t!=="number"||ul(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var Qn=Array.isArray;function gn(e,t,n,r){if(e=e.options,t){t={};for(var l=0;l"+t.valueOf().toString()+"",t=Ir.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function or(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Yn={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},gf=["Webkit","ms","Moz","O"];Object.keys(Yn).forEach(function(e){gf.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Yn[t]=Yn[e]})});function ju(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||Yn.hasOwnProperty(e)&&Yn[e]?(""+t).trim():t+"px"}function Eu(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,l=ju(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,l):e[n]=l}}var vf=G({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Vo(e,t){if(t){if(vf[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(j(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(j(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(j(61))}if(t.style!=null&&typeof t.style!="object")throw Error(j(62))}}function Ho(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Wo=null;function Fs(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Qo=null,vn=null,xn=null;function Ui(e){if(e=Er(e)){if(typeof Qo!="function")throw Error(j(280));var t=e.stateNode;t&&(t=Ul(t),Qo(e.stateNode,e.type,t))}}function Cu(e){vn?xn?xn.push(e):xn=[e]:vn=e}function _u(){if(vn){var e=vn,t=xn;if(xn=vn=null,Ui(e),t)for(e=0;e>>=0,e===0?32:31-(Rf(e)/Lf|0)|0}var Dr=64,br=4194304;function Kn(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function pl(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,l=e.suspendedLanes,o=e.pingedLanes,s=n&268435455;if(s!==0){var i=s&~l;i!==0?r=Kn(i):(o&=s,o!==0&&(r=Kn(o)))}else s=n&~l,s!==0?r=Kn(s):o!==0&&(r=Kn(o));if(r===0)return 0;if(t!==0&&t!==r&&!(t&l)&&(l=r&-r,o=t&-t,l>=o||l===16&&(o&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function Sr(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-He(t),e[t]=n}function If(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=Xn),Gi=" ",Xi=!1;function Ku(e,t){switch(e){case"keyup":return ap.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Ju(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var sn=!1;function cp(e,t){switch(e){case"compositionend":return Ju(t);case"keypress":return t.which!==32?null:(Xi=!0,Gi);case"textInput":return e=t.data,e===Gi&&Xi?null:e;default:return null}}function dp(e,t){if(sn)return e==="compositionend"||!Ks&&Ku(e,t)?(e=Wu(),Zr=Hs=Et=null,sn=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=ta(n)}}function Zu(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Zu(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function qu(){for(var e=window,t=ul();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=ul(e.document)}return t}function Js(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function wp(e){var t=qu(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&Zu(n.ownerDocument.documentElement,n)){if(r!==null&&Js(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var l=n.textContent.length,o=Math.min(r.start,l);r=r.end===void 0?o:Math.min(r.end,l),!e.extend&&o>r&&(l=r,r=o,o=l),l=na(n,o);var s=na(n,r);l&&s&&(e.rangeCount!==1||e.anchorNode!==l.node||e.anchorOffset!==l.offset||e.focusNode!==s.node||e.focusOffset!==s.offset)&&(t=t.createRange(),t.setStart(l.node,l.offset),e.removeAllRanges(),o>r?(e.addRange(t),e.extend(s.node,s.offset)):(t.setEnd(s.node,s.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,an=null,Zo=null,qn=null,qo=!1;function ra(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;qo||an==null||an!==ul(r)||(r=an,"selectionStart"in r&&Js(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),qn&&dr(qn,r)||(qn=r,r=yl(Zo,"onSelect"),0dn||(e.current=os[dn],os[dn]=null,dn--)}function B(e,t){dn++,os[dn]=e.current,e.current=t}var bt={},fe=$t(bt),Ne=$t(!1),Jt=bt;function jn(e,t){var n=e.type.contextTypes;if(!n)return bt;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var l={},o;for(o in n)l[o]=t[o];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=l),l}function Se(e){return e=e.childContextTypes,e!=null}function vl(){H(Ne),H(fe)}function ca(e,t,n){if(fe.current!==bt)throw Error(j(168));B(fe,t),B(Ne,n)}function ac(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var l in r)if(!(l in t))throw Error(j(108,hf(e)||"Unknown",l));return G({},n,r)}function xl(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||bt,Jt=fe.current,B(fe,e),B(Ne,Ne.current),!0}function da(e,t,n){var r=e.stateNode;if(!r)throw Error(j(169));n?(e=ac(e,t,Jt),r.__reactInternalMemoizedMergedChildContext=e,H(Ne),H(fe),B(fe,e)):H(Ne),B(Ne,n)}var lt=null,Bl=!1,xo=!1;function uc(e){lt===null?lt=[e]:lt.push(e)}function zp(e){Bl=!0,uc(e)}function Ft(){if(!xo&<!==null){xo=!0;var e=0,t=A;try{var n=lt;for(A=1;e>=s,l-=s,ot=1<<32-He(t)+l|n<P?(b=R,R=null):b=R.sibling;var O=h(f,R,m[P],k);if(O===null){R===null&&(R=b);break}e&&R&&O.alternate===null&&t(f,R),d=o(O,d,P),_===null?S=O:_.sibling=O,_=O,R=b}if(P===m.length)return n(f,R),Q&&Ut(f,P),S;if(R===null){for(;PP?(b=R,R=null):b=R.sibling;var pe=h(f,R,O.value,k);if(pe===null){R===null&&(R=b);break}e&&R&&pe.alternate===null&&t(f,R),d=o(pe,d,P),_===null?S=pe:_.sibling=pe,_=pe,R=b}if(O.done)return n(f,R),Q&&Ut(f,P),S;if(R===null){for(;!O.done;P++,O=m.next())O=p(f,O.value,k),O!==null&&(d=o(O,d,P),_===null?S=O:_.sibling=O,_=O);return Q&&Ut(f,P),S}for(R=r(f,R);!O.done;P++,O=m.next())O=v(R,f,P,O.value,k),O!==null&&(e&&O.alternate!==null&&R.delete(O.key===null?P:O.key),d=o(O,d,P),_===null?S=O:_.sibling=O,_=O);return e&&R.forEach(function(oe){return t(f,oe)}),Q&&Ut(f,P),S}function N(f,d,m,k){if(typeof m=="object"&&m!==null&&m.type===on&&m.key===null&&(m=m.props.children),typeof m=="object"&&m!==null){switch(m.$$typeof){case zr:e:{for(var S=m.key,_=d;_!==null;){if(_.key===S){if(S=m.type,S===on){if(_.tag===7){n(f,_.sibling),d=l(_,m.props.children),d.return=f,f=d;break e}}else if(_.elementType===S||typeof S=="object"&&S!==null&&S.$$typeof===kt&&ma(S)===_.type){n(f,_.sibling),d=l(_,m.props),d.ref=Un(f,_,m),d.return=f,f=d;break e}n(f,_);break}else t(f,_);_=_.sibling}m.type===on?(d=Kt(m.props.children,f.mode,k,m.key),d.return=f,f=d):(k=sl(m.type,m.key,m.props,null,f.mode,k),k.ref=Un(f,d,m),k.return=f,f=k)}return s(f);case ln:e:{for(_=m.key;d!==null;){if(d.key===_)if(d.tag===4&&d.stateNode.containerInfo===m.containerInfo&&d.stateNode.implementation===m.implementation){n(f,d.sibling),d=l(d,m.children||[]),d.return=f,f=d;break e}else{n(f,d);break}else t(f,d);d=d.sibling}d=_o(m,f.mode,k),d.return=f,f=d}return s(f);case kt:return _=m._init,N(f,d,_(m._payload),k)}if(Qn(m))return x(f,d,m,k);if(bn(m))return w(f,d,m,k);Vr(f,m)}return typeof m=="string"&&m!==""||typeof m=="number"?(m=""+m,d!==null&&d.tag===6?(n(f,d.sibling),d=l(d,m),d.return=f,f=d):(n(f,d),d=Co(m,f.mode,k),d.return=f,f=d),s(f)):n(f,d)}return N}var Cn=pc(!0),mc=pc(!1),Nl=$t(null),Sl=null,mn=null,Zs=null;function qs(){Zs=mn=Sl=null}function ei(e){var t=Nl.current;H(Nl),e._currentValue=t}function as(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function kn(e,t){Sl=e,Zs=mn=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(ke=!0),e.firstContext=null)}function Me(e){var t=e._currentValue;if(Zs!==e)if(e={context:e,memoizedValue:t,next:null},mn===null){if(Sl===null)throw Error(j(308));mn=e,Sl.dependencies={lanes:0,firstContext:e}}else mn=mn.next=e;return t}var Ht=null;function ti(e){Ht===null?Ht=[e]:Ht.push(e)}function hc(e,t,n,r){var l=t.interleaved;return l===null?(n.next=n,ti(t)):(n.next=l.next,l.next=n),t.interleaved=n,dt(e,r)}function dt(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var Nt=!1;function ni(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function yc(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function it(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Tt(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,$&2){var l=r.pending;return l===null?t.next=t:(t.next=l.next,l.next=t),r.pending=t,dt(e,n)}return l=r.interleaved,l===null?(t.next=t,ti(r)):(t.next=l.next,l.next=t),r.interleaved=t,dt(e,n)}function el(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Us(e,n)}}function ha(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var l=null,o=null;if(n=n.firstBaseUpdate,n!==null){do{var s={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};o===null?l=o=s:o=o.next=s,n=n.next}while(n!==null);o===null?l=o=t:o=o.next=t}else l=o=t;n={baseState:r.baseState,firstBaseUpdate:l,lastBaseUpdate:o,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function jl(e,t,n,r){var l=e.updateQueue;Nt=!1;var o=l.firstBaseUpdate,s=l.lastBaseUpdate,i=l.shared.pending;if(i!==null){l.shared.pending=null;var u=i,c=u.next;u.next=null,s===null?o=c:s.next=c,s=u;var y=e.alternate;y!==null&&(y=y.updateQueue,i=y.lastBaseUpdate,i!==s&&(i===null?y.firstBaseUpdate=c:i.next=c,y.lastBaseUpdate=u))}if(o!==null){var p=l.baseState;s=0,y=c=u=null,i=o;do{var h=i.lane,v=i.eventTime;if((r&h)===h){y!==null&&(y=y.next={eventTime:v,lane:0,tag:i.tag,payload:i.payload,callback:i.callback,next:null});e:{var x=e,w=i;switch(h=t,v=n,w.tag){case 1:if(x=w.payload,typeof x=="function"){p=x.call(v,p,h);break e}p=x;break e;case 3:x.flags=x.flags&-65537|128;case 0:if(x=w.payload,h=typeof x=="function"?x.call(v,p,h):x,h==null)break e;p=G({},p,h);break e;case 2:Nt=!0}}i.callback!==null&&i.lane!==0&&(e.flags|=64,h=l.effects,h===null?l.effects=[i]:h.push(i))}else v={eventTime:v,lane:h,tag:i.tag,payload:i.payload,callback:i.callback,next:null},y===null?(c=y=v,u=p):y=y.next=v,s|=h;if(i=i.next,i===null){if(i=l.shared.pending,i===null)break;h=i,i=h.next,h.next=null,l.lastBaseUpdate=h,l.shared.pending=null}}while(!0);if(y===null&&(u=p),l.baseState=u,l.firstBaseUpdate=c,l.lastBaseUpdate=y,t=l.shared.interleaved,t!==null){l=t;do s|=l.lane,l=l.next;while(l!==t)}else o===null&&(l.shared.lanes=0);Xt|=s,e.lanes=s,e.memoizedState=p}}function ya(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=ko.transition;ko.transition={};try{e(!1),t()}finally{A=n,ko.transition=r}}function Oc(){return $e().memoizedState}function bp(e,t,n){var r=Ot(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},Ic(e))Dc(t,n);else if(n=hc(e,t,n,r),n!==null){var l=ye();We(n,e,r,l),bc(n,t,r)}}function Mp(e,t,n){var r=Ot(e),l={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(Ic(e))Dc(t,l);else{var o=e.alternate;if(e.lanes===0&&(o===null||o.lanes===0)&&(o=t.lastRenderedReducer,o!==null))try{var s=t.lastRenderedState,i=o(s,n);if(l.hasEagerState=!0,l.eagerState=i,Qe(i,s)){var u=t.interleaved;u===null?(l.next=l,ti(t)):(l.next=u.next,u.next=l),t.interleaved=l;return}}catch{}finally{}n=hc(e,t,l,r),n!==null&&(l=ye(),We(n,e,r,l),bc(n,t,r))}}function Ic(e){var t=e.alternate;return e===Y||t!==null&&t===Y}function Dc(e,t){er=Cl=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function bc(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Us(e,n)}}var _l={readContext:Me,useCallback:ue,useContext:ue,useEffect:ue,useImperativeHandle:ue,useInsertionEffect:ue,useLayoutEffect:ue,useMemo:ue,useReducer:ue,useRef:ue,useState:ue,useDebugValue:ue,useDeferredValue:ue,useTransition:ue,useMutableSource:ue,useSyncExternalStore:ue,useId:ue,unstable_isNewReconciler:!1},$p={readContext:Me,useCallback:function(e,t){return Ge().memoizedState=[e,t===void 0?null:t],e},useContext:Me,useEffect:va,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,nl(4194308,4,Pc.bind(null,t,e),n)},useLayoutEffect:function(e,t){return nl(4194308,4,e,t)},useInsertionEffect:function(e,t){return nl(4,2,e,t)},useMemo:function(e,t){var n=Ge();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Ge();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=bp.bind(null,Y,e),[r.memoizedState,e]},useRef:function(e){var t=Ge();return e={current:e},t.memoizedState=e},useState:ga,useDebugValue:ci,useDeferredValue:function(e){return Ge().memoizedState=e},useTransition:function(){var e=ga(!1),t=e[0];return e=Dp.bind(null,e[1]),Ge().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=Y,l=Ge();if(Q){if(n===void 0)throw Error(j(407));n=n()}else{if(n=t(),le===null)throw Error(j(349));Gt&30||wc(r,t,n)}l.memoizedState=n;var o={value:n,getSnapshot:t};return l.queue=o,va(Nc.bind(null,r,o,e),[e]),r.flags|=2048,xr(9,kc.bind(null,r,o,n,t),void 0,null),n},useId:function(){var e=Ge(),t=le.identifierPrefix;if(Q){var n=st,r=ot;n=(r&~(1<<32-He(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=gr++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=s.createElement(n,{is:r.is}):(e=s.createElement(n),n==="select"&&(s=e,r.multiple?s.multiple=!0:r.size&&(s.size=r.size))):e=s.createElementNS(e,n),e[Xe]=t,e[mr]=r,Qc(e,t,!1,!1),t.stateNode=e;e:{switch(s=Ho(n,r),n){case"dialog":V("cancel",e),V("close",e),l=r;break;case"iframe":case"object":case"embed":V("load",e),l=r;break;case"video":case"audio":for(l=0;lRn&&(t.flags|=128,r=!0,Bn(o,!1),t.lanes=4194304)}else{if(!r)if(e=El(s),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),Bn(o,!0),o.tail===null&&o.tailMode==="hidden"&&!s.alternate&&!Q)return ce(t),null}else 2*Z()-o.renderingStartTime>Rn&&n!==1073741824&&(t.flags|=128,r=!0,Bn(o,!1),t.lanes=4194304);o.isBackwards?(s.sibling=t.child,t.child=s):(n=o.last,n!==null?n.sibling=s:t.child=s,o.last=s)}return o.tail!==null?(t=o.tail,o.rendering=t,o.tail=t.sibling,o.renderingStartTime=Z(),t.sibling=null,n=J.current,B(J,r?n&1|2:n&1),t):(ce(t),null);case 22:case 23:return yi(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?Ee&1073741824&&(ce(t),t.subtreeFlags&6&&(t.flags|=8192)):ce(t),null;case 24:return null;case 25:return null}throw Error(j(156,t.tag))}function Qp(e,t){switch(Gs(t),t.tag){case 1:return Se(t.type)&&vl(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return _n(),H(Ne),H(fe),oi(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return li(t),null;case 13:if(H(J),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(j(340));En()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return H(J),null;case 4:return _n(),null;case 10:return ei(t.type._context),null;case 22:case 23:return yi(),null;case 24:return null;default:return null}}var Wr=!1,de=!1,Kp=typeof WeakSet=="function"?WeakSet:Set,T=null;function hn(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){X(e,t,r)}else n.current=null}function gs(e,t,n){try{n()}catch(r){X(e,t,r)}}var Ra=!1;function Jp(e,t){if(es=ml,e=qu(),Js(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var l=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break e}var s=0,i=-1,u=-1,c=0,y=0,p=e,h=null;t:for(;;){for(var v;p!==n||l!==0&&p.nodeType!==3||(i=s+l),p!==o||r!==0&&p.nodeType!==3||(u=s+r),p.nodeType===3&&(s+=p.nodeValue.length),(v=p.firstChild)!==null;)h=p,p=v;for(;;){if(p===e)break t;if(h===n&&++c===l&&(i=s),h===o&&++y===r&&(u=s),(v=p.nextSibling)!==null)break;p=h,h=p.parentNode}p=v}n=i===-1||u===-1?null:{start:i,end:u}}else n=null}n=n||{start:0,end:0}}else n=null;for(ts={focusedElem:e,selectionRange:n},ml=!1,T=t;T!==null;)if(t=T,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,T=e;else for(;T!==null;){t=T;try{var x=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(x!==null){var w=x.memoizedProps,N=x.memoizedState,f=t.stateNode,d=f.getSnapshotBeforeUpdate(t.elementType===t.type?w:Ue(t.type,w),N);f.__reactInternalSnapshotBeforeUpdate=d}break;case 3:var m=t.stateNode.containerInfo;m.nodeType===1?m.textContent="":m.nodeType===9&&m.documentElement&&m.removeChild(m.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(j(163))}}catch(k){X(t,t.return,k)}if(e=t.sibling,e!==null){e.return=t.return,T=e;break}T=t.return}return x=Ra,Ra=!1,x}function tr(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var l=r=r.next;do{if((l.tag&e)===e){var o=l.destroy;l.destroy=void 0,o!==void 0&&gs(t,n,o)}l=l.next}while(l!==r)}}function Wl(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function vs(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function Yc(e){var t=e.alternate;t!==null&&(e.alternate=null,Yc(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Xe],delete t[mr],delete t[ls],delete t[Lp],delete t[Tp])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function Gc(e){return e.tag===5||e.tag===3||e.tag===4}function La(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Gc(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function xs(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=gl));else if(r!==4&&(e=e.child,e!==null))for(xs(e,t,n),e=e.sibling;e!==null;)xs(e,t,n),e=e.sibling}function ws(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(ws(e,t,n),e=e.sibling;e!==null;)ws(e,t,n),e=e.sibling}var se=null,Be=!1;function wt(e,t,n){for(n=n.child;n!==null;)Xc(e,t,n),n=n.sibling}function Xc(e,t,n){if(Ze&&typeof Ze.onCommitFiberUnmount=="function")try{Ze.onCommitFiberUnmount(Ml,n)}catch{}switch(n.tag){case 5:de||hn(n,t);case 6:var r=se,l=Be;se=null,wt(e,t,n),se=r,Be=l,se!==null&&(Be?(e=se,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):se.removeChild(n.stateNode));break;case 18:se!==null&&(Be?(e=se,n=n.stateNode,e.nodeType===8?vo(e.parentNode,n):e.nodeType===1&&vo(e,n),ur(e)):vo(se,n.stateNode));break;case 4:r=se,l=Be,se=n.stateNode.containerInfo,Be=!0,wt(e,t,n),se=r,Be=l;break;case 0:case 11:case 14:case 15:if(!de&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){l=r=r.next;do{var o=l,s=o.destroy;o=o.tag,s!==void 0&&(o&2||o&4)&&gs(n,t,s),l=l.next}while(l!==r)}wt(e,t,n);break;case 1:if(!de&&(hn(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(i){X(n,t,i)}wt(e,t,n);break;case 21:wt(e,t,n);break;case 22:n.mode&1?(de=(r=de)||n.memoizedState!==null,wt(e,t,n),de=r):wt(e,t,n);break;default:wt(e,t,n)}}function Ta(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new Kp),t.forEach(function(r){var l=rm.bind(null,e,r);n.has(r)||(n.add(r),r.then(l,l))})}}function Ae(e,t){var n=t.deletions;if(n!==null)for(var r=0;rl&&(l=s),r&=~o}if(r=l,r=Z()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*Gp(r/1960))-r,10e?16:e,Ct===null)var r=!1;else{if(e=Ct,Ct=null,Ll=0,$&6)throw Error(j(331));var l=$;for($|=4,T=e.current;T!==null;){var o=T,s=o.child;if(T.flags&16){var i=o.deletions;if(i!==null){for(var u=0;uZ()-mi?Qt(e,0):pi|=n),je(e,t)}function od(e,t){t===0&&(e.mode&1?(t=br,br<<=1,!(br&130023424)&&(br=4194304)):t=1);var n=ye();e=dt(e,t),e!==null&&(Sr(e,t,n),je(e,n))}function nm(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),od(e,n)}function rm(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,l=e.memoizedState;l!==null&&(n=l.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(j(314))}r!==null&&r.delete(t),od(e,n)}var sd;sd=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||Ne.current)ke=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return ke=!1,Hp(e,t,n);ke=!!(e.flags&131072)}else ke=!1,Q&&t.flags&1048576&&cc(t,kl,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;rl(e,t),e=t.pendingProps;var l=jn(t,fe.current);kn(t,n),l=ii(null,t,r,e,l,n);var o=ai();return t.flags|=1,typeof l=="object"&&l!==null&&typeof l.render=="function"&&l.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Se(r)?(o=!0,xl(t)):o=!1,t.memoizedState=l.state!==null&&l.state!==void 0?l.state:null,ni(t),l.updater=Hl,t.stateNode=l,l._reactInternals=t,cs(t,r,e,n),t=ps(null,t,r,!0,o,n)):(t.tag=0,Q&&o&&Ys(t),he(null,t,l,n),t=t.child),t;case 16:r=t.elementType;e:{switch(rl(e,t),e=t.pendingProps,l=r._init,r=l(r._payload),t.type=r,l=t.tag=om(r),e=Ue(r,e),l){case 0:t=fs(null,t,r,e,n);break e;case 1:t=Ca(null,t,r,e,n);break e;case 11:t=ja(null,t,r,e,n);break e;case 14:t=Ea(null,t,r,Ue(r.type,e),n);break e}throw Error(j(306,r,""))}return t;case 0:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Ue(r,l),fs(e,t,r,l,n);case 1:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Ue(r,l),Ca(e,t,r,l,n);case 3:e:{if(Vc(t),e===null)throw Error(j(387));r=t.pendingProps,o=t.memoizedState,l=o.element,yc(e,t),jl(t,r,null,n);var s=t.memoizedState;if(r=s.element,o.isDehydrated)if(o={element:r,isDehydrated:!1,cache:s.cache,pendingSuspenseBoundaries:s.pendingSuspenseBoundaries,transitions:s.transitions},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){l=Pn(Error(j(423)),t),t=_a(e,t,r,n,l);break e}else if(r!==l){l=Pn(Error(j(424)),t),t=_a(e,t,r,n,l);break e}else for(Ce=Lt(t.stateNode.containerInfo.firstChild),_e=t,Q=!0,Ve=null,n=mc(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(En(),r===l){t=ft(e,t,n);break e}he(e,t,r,n)}t=t.child}return t;case 5:return gc(t),e===null&&is(t),r=t.type,l=t.pendingProps,o=e!==null?e.memoizedProps:null,s=l.children,ns(r,l)?s=null:o!==null&&ns(r,o)&&(t.flags|=32),Bc(e,t),he(e,t,s,n),t.child;case 6:return e===null&&is(t),null;case 13:return Hc(e,t,n);case 4:return ri(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Cn(t,null,r,n):he(e,t,r,n),t.child;case 11:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Ue(r,l),ja(e,t,r,l,n);case 7:return he(e,t,t.pendingProps,n),t.child;case 8:return he(e,t,t.pendingProps.children,n),t.child;case 12:return he(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,l=t.pendingProps,o=t.memoizedProps,s=l.value,B(Nl,r._currentValue),r._currentValue=s,o!==null)if(Qe(o.value,s)){if(o.children===l.children&&!Ne.current){t=ft(e,t,n);break e}}else for(o=t.child,o!==null&&(o.return=t);o!==null;){var i=o.dependencies;if(i!==null){s=o.child;for(var u=i.firstContext;u!==null;){if(u.context===r){if(o.tag===1){u=it(-1,n&-n),u.tag=2;var c=o.updateQueue;if(c!==null){c=c.shared;var y=c.pending;y===null?u.next=u:(u.next=y.next,y.next=u),c.pending=u}}o.lanes|=n,u=o.alternate,u!==null&&(u.lanes|=n),as(o.return,n,t),i.lanes|=n;break}u=u.next}}else if(o.tag===10)s=o.type===t.type?null:o.child;else if(o.tag===18){if(s=o.return,s===null)throw Error(j(341));s.lanes|=n,i=s.alternate,i!==null&&(i.lanes|=n),as(s,n,t),s=o.sibling}else s=o.child;if(s!==null)s.return=o;else for(s=o;s!==null;){if(s===t){s=null;break}if(o=s.sibling,o!==null){o.return=s.return,s=o;break}s=s.return}o=s}he(e,t,l.children,n),t=t.child}return t;case 9:return l=t.type,r=t.pendingProps.children,kn(t,n),l=Me(l),r=r(l),t.flags|=1,he(e,t,r,n),t.child;case 14:return r=t.type,l=Ue(r,t.pendingProps),l=Ue(r.type,l),Ea(e,t,r,l,n);case 15:return Ac(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:Ue(r,l),rl(e,t),t.tag=1,Se(r)?(e=!0,xl(t)):e=!1,kn(t,n),Mc(t,r,l),cs(t,r,l,n),ps(null,t,r,!0,e,n);case 19:return Wc(e,t,n);case 22:return Uc(e,t,n)}throw Error(j(156,t.tag))};function id(e,t){return Iu(e,t)}function lm(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function De(e,t,n,r){return new lm(e,t,n,r)}function vi(e){return e=e.prototype,!(!e||!e.isReactComponent)}function om(e){if(typeof e=="function")return vi(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Ms)return 11;if(e===$s)return 14}return 2}function It(e,t){var n=e.alternate;return n===null?(n=De(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function sl(e,t,n,r,l,o){var s=2;if(r=e,typeof e=="function")vi(e)&&(s=1);else if(typeof e=="string")s=5;else e:switch(e){case on:return Kt(n.children,l,o,t);case bs:s=8,l|=8;break;case Io:return e=De(12,n,t,l|2),e.elementType=Io,e.lanes=o,e;case Do:return e=De(13,n,t,l),e.elementType=Do,e.lanes=o,e;case bo:return e=De(19,n,t,l),e.elementType=bo,e.lanes=o,e;case gu:return Kl(n,l,o,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case hu:s=10;break e;case yu:s=9;break e;case Ms:s=11;break e;case $s:s=14;break e;case kt:s=16,r=null;break e}throw Error(j(130,e==null?e:typeof e,""))}return t=De(s,n,t,l),t.elementType=e,t.type=r,t.lanes=o,t}function Kt(e,t,n,r){return e=De(7,e,r,t),e.lanes=n,e}function Kl(e,t,n,r){return e=De(22,e,r,t),e.elementType=gu,e.lanes=n,e.stateNode={isHidden:!1},e}function Co(e,t,n){return e=De(6,e,null,t),e.lanes=n,e}function _o(e,t,n){return t=De(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function sm(e,t,n,r,l){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=so(0),this.expirationTimes=so(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=so(0),this.identifierPrefix=r,this.onRecoverableError=l,this.mutableSourceEagerHydrationData=null}function xi(e,t,n,r,l,o,s,i,u){return e=new sm(e,t,n,i,u),t===1?(t=1,o===!0&&(t|=8)):t=0,o=De(3,null,null,t),e.current=o,o.stateNode=e,o.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},ni(o),e}function im(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(dd)}catch(e){console.error(e)}}dd(),du.exports=Re;var fm=du.exports,Fa=fm;zo.createRoot=Fa.createRoot,zo.hydrateRoot=Fa.hydrateRoot;/** - * react-router v7.13.0 - * - * Copyright (c) Remix Software Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE.md file in the root directory of this source tree. - * - * @license MIT - */var Aa="popstate";function pm(e={}){function t(r,l){let{pathname:o,search:s,hash:i}=r.location;return Es("",{pathname:o,search:s,hash:i},l.state&&l.state.usr||null,l.state&&l.state.key||"default")}function n(r,l){return typeof l=="string"?l:kr(l)}return hm(t,n,null,e)}function K(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function Ke(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function mm(){return Math.random().toString(36).substring(2,10)}function Ua(e,t){return{usr:e.state,key:e.key,idx:t}}function Es(e,t,n=null,r){return{pathname:typeof e=="string"?e:e.pathname,search:"",hash:"",...typeof t=="string"?On(t):t,state:n,key:t&&t.key||r||mm()}}function kr({pathname:e="/",search:t="",hash:n=""}){return t&&t!=="?"&&(e+=t.charAt(0)==="?"?t:"?"+t),n&&n!=="#"&&(e+=n.charAt(0)==="#"?n:"#"+n),e}function On(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substring(n),e=e.substring(0,n));let r=e.indexOf("?");r>=0&&(t.search=e.substring(r),e=e.substring(0,r)),e&&(t.pathname=e)}return t}function hm(e,t,n,r={}){let{window:l=document.defaultView,v5Compat:o=!1}=r,s=l.history,i="POP",u=null,c=y();c==null&&(c=0,s.replaceState({...s.state,idx:c},""));function y(){return(s.state||{idx:null}).idx}function p(){i="POP";let N=y(),f=N==null?null:N-c;c=N,u&&u({action:i,location:w.location,delta:f})}function h(N,f){i="PUSH";let d=Es(w.location,N,f);c=y()+1;let m=Ua(d,c),k=w.createHref(d);try{s.pushState(m,"",k)}catch(S){if(S instanceof DOMException&&S.name==="DataCloneError")throw S;l.location.assign(k)}o&&u&&u({action:i,location:w.location,delta:1})}function v(N,f){i="REPLACE";let d=Es(w.location,N,f);c=y();let m=Ua(d,c),k=w.createHref(d);s.replaceState(m,"",k),o&&u&&u({action:i,location:w.location,delta:0})}function x(N){return ym(N)}let w={get action(){return i},get location(){return e(l,s)},listen(N){if(u)throw new Error("A history only accepts one active listener");return l.addEventListener(Aa,p),u=N,()=>{l.removeEventListener(Aa,p),u=null}},createHref(N){return t(l,N)},createURL:x,encodeLocation(N){let f=x(N);return{pathname:f.pathname,search:f.search,hash:f.hash}},push:h,replace:v,go(N){return s.go(N)}};return w}function ym(e,t=!1){let n="http://localhost";typeof window<"u"&&(n=window.location.origin!=="null"?window.location.origin:window.location.href),K(n,"No window.location.(origin|href) available to create URL");let r=typeof e=="string"?e:kr(e);return r=r.replace(/ $/,"%20"),!t&&r.startsWith("//")&&(r=n+r),new URL(r,n)}function fd(e,t,n="/"){return gm(e,t,n,!1)}function gm(e,t,n,r){let l=typeof t=="string"?On(t):t,o=pt(l.pathname||"/",n);if(o==null)return null;let s=pd(e);vm(s);let i=null;for(let u=0;i==null&&u{let y={relativePath:c===void 0?s.path||"":c,caseSensitive:s.caseSensitive===!0,childrenIndex:i,route:s};if(y.relativePath.startsWith("/")){if(!y.relativePath.startsWith(r)&&u)return;K(y.relativePath.startsWith(r),`Absolute route path "${y.relativePath}" nested under path "${r}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),y.relativePath=y.relativePath.slice(r.length)}let p=at([r,y.relativePath]),h=n.concat(y);s.children&&s.children.length>0&&(K(s.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${p}".`),pd(s.children,t,h,p,u)),!(s.path==null&&!s.index)&&t.push({path:p,score:Em(p,s.index),routesMeta:h})};return e.forEach((s,i)=>{var u;if(s.path===""||!((u=s.path)!=null&&u.includes("?")))o(s,i);else for(let c of md(s.path))o(s,i,!0,c)}),t}function md(e){let t=e.split("/");if(t.length===0)return[];let[n,...r]=t,l=n.endsWith("?"),o=n.replace(/\?$/,"");if(r.length===0)return l?[o,""]:[o];let s=md(r.join("/")),i=[];return i.push(...s.map(u=>u===""?o:[o,u].join("/"))),l&&i.push(...s),i.map(u=>e.startsWith("/")&&u===""?"/":u)}function vm(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:Cm(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}var xm=/^:[\w-]+$/,wm=3,km=2,Nm=1,Sm=10,jm=-2,Ba=e=>e==="*";function Em(e,t){let n=e.split("/"),r=n.length;return n.some(Ba)&&(r+=jm),t&&(r+=km),n.filter(l=>!Ba(l)).reduce((l,o)=>l+(xm.test(o)?wm:o===""?Nm:Sm),r)}function Cm(e,t){return e.length===t.length&&e.slice(0,-1).every((r,l)=>r===t[l])?e[e.length-1]-t[t.length-1]:0}function _m(e,t,n=!1){let{routesMeta:r}=e,l={},o="/",s=[];for(let i=0;i{if(y==="*"){let x=i[h]||"";s=o.slice(0,o.length-x.length).replace(/(.)\/+$/,"$1")}const v=i[h];return p&&!v?c[y]=void 0:c[y]=(v||"").replace(/%2F/g,"/"),c},{}),pathname:o,pathnameBase:s,pattern:e}}function Pm(e,t=!1,n=!0){Ke(e==="*"||!e.endsWith("*")||e.endsWith("/*"),`Route path "${e}" will be treated as if it were "${e.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${e.replace(/\*$/,"/*")}".`);let r=[],l="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(s,i,u)=>(r.push({paramName:i,isOptional:u!=null}),u?"/?([^\\/]+)?":"/([^\\/]+)")).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return e.endsWith("*")?(r.push({paramName:"*"}),l+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?l+="\\/*$":e!==""&&e!=="/"&&(l+="(?:(?=\\/|$))"),[new RegExp(l,t?void 0:"i"),r]}function Rm(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return Ke(!1,`The URL path "${e}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${t}).`),e}}function pt(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,r=e.charAt(n);return r&&r!=="/"?null:e.slice(n)||"/"}var Lm=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i;function Tm(e,t="/"){let{pathname:n,search:r="",hash:l=""}=typeof e=="string"?On(e):e,o;return n?(n=n.replace(/\/\/+/g,"/"),n.startsWith("/")?o=Va(n.substring(1),"/"):o=Va(n,t)):o=t,{pathname:o,search:Im(r),hash:Dm(l)}}function Va(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(l=>{l===".."?n.length>1&&n.pop():l!=="."&&n.push(l)}),n.length>1?n.join("/"):"/"}function Po(e,t,n,r){return`Cannot include a '${e}' character in a manually specified \`to.${t}\` field [${JSON.stringify(r)}]. Please separate it out to the \`to.${n}\` field. Alternatively you may provide the full path as a string in and the router will parse it for you.`}function zm(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function Si(e){let t=zm(e);return t.map((n,r)=>r===t.length-1?n.pathname:n.pathnameBase)}function ji(e,t,n,r=!1){let l;typeof e=="string"?l=On(e):(l={...e},K(!l.pathname||!l.pathname.includes("?"),Po("?","pathname","search",l)),K(!l.pathname||!l.pathname.includes("#"),Po("#","pathname","hash",l)),K(!l.search||!l.search.includes("#"),Po("#","search","hash",l)));let o=e===""||l.pathname==="",s=o?"/":l.pathname,i;if(s==null)i=n;else{let p=t.length-1;if(!r&&s.startsWith("..")){let h=s.split("/");for(;h[0]==="..";)h.shift(),p-=1;l.pathname=h.join("/")}i=p>=0?t[p]:"/"}let u=Tm(l,i),c=s&&s!=="/"&&s.endsWith("/"),y=(o||s===".")&&n.endsWith("/");return!u.pathname.endsWith("/")&&(c||y)&&(u.pathname+="/"),u}var at=e=>e.join("/").replace(/\/\/+/g,"/"),Om=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),Im=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,Dm=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e,bm=class{constructor(e,t,n,r=!1){this.status=e,this.statusText=t||"",this.internal=r,n instanceof Error?(this.data=n.toString(),this.error=n):this.data=n}};function Mm(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}function $m(e){return e.map(t=>t.route.path).filter(Boolean).join("/").replace(/\/\/*/g,"/")||"/"}var hd=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function yd(e,t){let n=e;if(typeof n!="string"||!Lm.test(n))return{absoluteURL:void 0,isExternal:!1,to:n};let r=n,l=!1;if(hd)try{let o=new URL(window.location.href),s=n.startsWith("//")?new URL(o.protocol+n):new URL(n),i=pt(s.pathname,t);s.origin===o.origin&&i!=null?n=i+s.search+s.hash:l=!0}catch{Ke(!1,` contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}return{absoluteURL:r,isExternal:l,to:n}}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var gd=["POST","PUT","PATCH","DELETE"];new Set(gd);var Fm=["GET",...gd];new Set(Fm);var In=g.createContext(null);In.displayName="DataRouter";var Zl=g.createContext(null);Zl.displayName="DataRouterState";var Am=g.createContext(!1),vd=g.createContext({isTransitioning:!1});vd.displayName="ViewTransition";var Um=g.createContext(new Map);Um.displayName="Fetchers";var Bm=g.createContext(null);Bm.displayName="Await";var Te=g.createContext(null);Te.displayName="Navigation";var _r=g.createContext(null);_r.displayName="Location";var et=g.createContext({outlet:null,matches:[],isDataRoute:!1});et.displayName="Route";var Ei=g.createContext(null);Ei.displayName="RouteError";var xd="REACT_ROUTER_ERROR",Vm="REDIRECT",Hm="ROUTE_ERROR_RESPONSE";function Wm(e){if(e.startsWith(`${xd}:${Vm}:{`))try{let t=JSON.parse(e.slice(28));if(typeof t=="object"&&t&&typeof t.status=="number"&&typeof t.statusText=="string"&&typeof t.location=="string"&&typeof t.reloadDocument=="boolean"&&typeof t.replace=="boolean")return t}catch{}}function Qm(e){if(e.startsWith(`${xd}:${Hm}:{`))try{let t=JSON.parse(e.slice(40));if(typeof t=="object"&&t&&typeof t.status=="number"&&typeof t.statusText=="string")return new bm(t.status,t.statusText,t.data)}catch{}}function Km(e,{relative:t}={}){K(Dn(),"useHref() may be used only in the context of a component.");let{basename:n,navigator:r}=g.useContext(Te),{hash:l,pathname:o,search:s}=Pr(e,{relative:t}),i=o;return n!=="/"&&(i=o==="/"?n:at([n,o])),r.createHref({pathname:i,search:s,hash:l})}function Dn(){return g.useContext(_r)!=null}function ht(){return K(Dn(),"useLocation() may be used only in the context of a component."),g.useContext(_r).location}var wd="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function kd(e){g.useContext(Te).static||g.useLayoutEffect(e)}function Ci(){let{isDataRoute:e}=g.useContext(et);return e?sh():Jm()}function Jm(){K(Dn(),"useNavigate() may be used only in the context of a component.");let e=g.useContext(In),{basename:t,navigator:n}=g.useContext(Te),{matches:r}=g.useContext(et),{pathname:l}=ht(),o=JSON.stringify(Si(r)),s=g.useRef(!1);return kd(()=>{s.current=!0}),g.useCallback((u,c={})=>{if(Ke(s.current,wd),!s.current)return;if(typeof u=="number"){n.go(u);return}let y=ji(u,JSON.parse(o),l,c.relative==="path");e==null&&t!=="/"&&(y.pathname=y.pathname==="/"?t:at([t,y.pathname])),(c.replace?n.replace:n.push)(y,c.state,c)},[t,n,o,l,e])}g.createContext(null);function Pr(e,{relative:t}={}){let{matches:n}=g.useContext(et),{pathname:r}=ht(),l=JSON.stringify(Si(n));return g.useMemo(()=>ji(e,JSON.parse(l),r,t==="path"),[e,l,r,t])}function Ym(e,t){return Nd(e,t)}function Nd(e,t,n,r,l){var d;K(Dn(),"useRoutes() may be used only in the context of a component.");let{navigator:o}=g.useContext(Te),{matches:s}=g.useContext(et),i=s[s.length-1],u=i?i.params:{},c=i?i.pathname:"/",y=i?i.pathnameBase:"/",p=i&&i.route;{let m=p&&p.path||"";jd(c,!p||m.endsWith("*")||m.endsWith("*?"),`You rendered descendant (or called \`useRoutes()\`) at "${c}" (under ) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render. - -Please change the parent to .`)}let h=ht(),v;if(t){let m=typeof t=="string"?On(t):t;K(y==="/"||((d=m.pathname)==null?void 0:d.startsWith(y)),`When overriding the location using \`\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${y}" but pathname "${m.pathname}" was given in the \`location\` prop.`),v=m}else v=h;let x=v.pathname||"/",w=x;if(y!=="/"){let m=y.replace(/^\//,"").split("/");w="/"+x.replace(/^\//,"").split("/").slice(m.length).join("/")}let N=fd(e,{pathname:w});Ke(p||N!=null,`No routes matched location "${v.pathname}${v.search}${v.hash}" `),Ke(N==null||N[N.length-1].route.element!==void 0||N[N.length-1].route.Component!==void 0||N[N.length-1].route.lazy!==void 0,`Matched leaf route at location "${v.pathname}${v.search}${v.hash}" does not have an element or Component. This means it will render an with a null value by default resulting in an "empty" page.`);let f=eh(N&&N.map(m=>Object.assign({},m,{params:Object.assign({},u,m.params),pathname:at([y,o.encodeLocation?o.encodeLocation(m.pathname.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:m.pathname]),pathnameBase:m.pathnameBase==="/"?y:at([y,o.encodeLocation?o.encodeLocation(m.pathnameBase.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:m.pathnameBase])})),s,n,r,l);return t&&f?g.createElement(_r.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",...v},navigationType:"POP"}},f):f}function Gm(){let e=oh(),t=Mm(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,r="rgba(200,200,200, 0.5)",l={padding:"0.5rem",backgroundColor:r},o={padding:"2px 4px",backgroundColor:r},s=null;return console.error("Error handled by React Router default ErrorBoundary:",e),s=g.createElement(g.Fragment,null,g.createElement("p",null,"💿 Hey developer 👋"),g.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",g.createElement("code",{style:o},"ErrorBoundary")," or"," ",g.createElement("code",{style:o},"errorElement")," prop on your route.")),g.createElement(g.Fragment,null,g.createElement("h2",null,"Unexpected Application Error!"),g.createElement("h3",{style:{fontStyle:"italic"}},t),n?g.createElement("pre",{style:l},n):null,s)}var Xm=g.createElement(Gm,null),Sd=class extends g.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||t.revalidation!=="idle"&&e.revalidation==="idle"?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error!==void 0?e.error:t.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){this.props.onError?this.props.onError(e,t):console.error("React Router caught the following error during render",e)}render(){let e=this.state.error;if(this.context&&typeof e=="object"&&e&&"digest"in e&&typeof e.digest=="string"){const n=Qm(e.digest);n&&(e=n)}let t=e!==void 0?g.createElement(et.Provider,{value:this.props.routeContext},g.createElement(Ei.Provider,{value:e,children:this.props.component})):this.props.children;return this.context?g.createElement(Zm,{error:e},t):t}};Sd.contextType=Am;var Ro=new WeakMap;function Zm({children:e,error:t}){let{basename:n}=g.useContext(Te);if(typeof t=="object"&&t&&"digest"in t&&typeof t.digest=="string"){let r=Wm(t.digest);if(r){let l=Ro.get(t);if(l)throw l;let o=yd(r.location,n);if(hd&&!Ro.get(t))if(o.isExternal||r.reloadDocument)window.location.href=o.absoluteURL||o.to;else{const s=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(o.to,{replace:r.replace}));throw Ro.set(t,s),s}return g.createElement("meta",{httpEquiv:"refresh",content:`0;url=${o.absoluteURL||o.to}`})}}return e}function qm({routeContext:e,match:t,children:n}){let r=g.useContext(In);return r&&r.static&&r.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(r.staticContext._deepestRenderedBoundaryId=t.route.id),g.createElement(et.Provider,{value:e},n)}function eh(e,t=[],n=null,r=null,l=null){if(e==null){if(!n)return null;if(n.errors)e=n.matches;else if(t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let o=e,s=n==null?void 0:n.errors;if(s!=null){let y=o.findIndex(p=>p.route.id&&(s==null?void 0:s[p.route.id])!==void 0);K(y>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(s).join(",")}`),o=o.slice(0,Math.min(o.length,y+1))}let i=!1,u=-1;if(n)for(let y=0;y=0?o=o.slice(0,u+1):o=[o[0]];break}}}let c=n&&r?(y,p)=>{var h,v;r(y,{location:n.location,params:((v=(h=n.matches)==null?void 0:h[0])==null?void 0:v.params)??{},unstable_pattern:$m(n.matches),errorInfo:p})}:void 0;return o.reduceRight((y,p,h)=>{let v,x=!1,w=null,N=null;n&&(v=s&&p.route.id?s[p.route.id]:void 0,w=p.route.errorElement||Xm,i&&(u<0&&h===0?(jd("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),x=!0,N=null):u===h&&(x=!0,N=p.route.hydrateFallbackElement||null)));let f=t.concat(o.slice(0,h+1)),d=()=>{let m;return v?m=w:x?m=N:p.route.Component?m=g.createElement(p.route.Component,null):p.route.element?m=p.route.element:m=y,g.createElement(qm,{match:p,routeContext:{outlet:y,matches:f,isDataRoute:n!=null},children:m})};return n&&(p.route.ErrorBoundary||p.route.errorElement||h===0)?g.createElement(Sd,{location:n.location,revalidation:n.revalidation,component:w,error:v,children:d(),routeContext:{outlet:null,matches:f,isDataRoute:!0},onError:c}):d()},null)}function _i(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function th(e){let t=g.useContext(In);return K(t,_i(e)),t}function nh(e){let t=g.useContext(Zl);return K(t,_i(e)),t}function rh(e){let t=g.useContext(et);return K(t,_i(e)),t}function Pi(e){let t=rh(e),n=t.matches[t.matches.length-1];return K(n.route.id,`${e} can only be used on routes that contain a unique "id"`),n.route.id}function lh(){return Pi("useRouteId")}function oh(){var r;let e=g.useContext(Ei),t=nh("useRouteError"),n=Pi("useRouteError");return e!==void 0?e:(r=t.errors)==null?void 0:r[n]}function sh(){let{router:e}=th("useNavigate"),t=Pi("useNavigate"),n=g.useRef(!1);return kd(()=>{n.current=!0}),g.useCallback(async(l,o={})=>{Ke(n.current,wd),n.current&&(typeof l=="number"?await e.navigate(l):await e.navigate(l,{fromRouteId:t,...o}))},[e,t])}var Ha={};function jd(e,t,n){!t&&!Ha[e]&&(Ha[e]=!0,Ke(!1,n))}g.memo(ih);function ih({routes:e,future:t,state:n,onError:r}){return Nd(e,void 0,n,r,t)}function ah({to:e,replace:t,state:n,relative:r}){K(Dn()," may be used only in the context of a component.");let{static:l}=g.useContext(Te);Ke(!l," must not be used on the initial render in a . This is a no-op, but you should modify your code so the is only ever rendered in response to some user interaction or state change.");let{matches:o}=g.useContext(et),{pathname:s}=ht(),i=Ci(),u=ji(e,Si(o),s,r==="path"),c=JSON.stringify(u);return g.useEffect(()=>{i(JSON.parse(c),{replace:t,state:n,relative:r})},[i,c,r,t,n]),null}function Cs(e){K(!1,"A is only ever to be used as the child of element, never rendered directly. Please wrap your in a .")}function uh({basename:e="/",children:t=null,location:n,navigationType:r="POP",navigator:l,static:o=!1,unstable_useTransitions:s}){K(!Dn(),"You cannot render a inside another . You should never have more than one in your app.");let i=e.replace(/^\/*/,"/"),u=g.useMemo(()=>({basename:i,navigator:l,static:o,unstable_useTransitions:s,future:{}}),[i,l,o,s]);typeof n=="string"&&(n=On(n));let{pathname:c="/",search:y="",hash:p="",state:h=null,key:v="default"}=n,x=g.useMemo(()=>{let w=pt(c,i);return w==null?null:{location:{pathname:w,search:y,hash:p,state:h,key:v},navigationType:r}},[i,c,y,p,h,v,r]);return Ke(x!=null,` is not able to match the URL "${c}${y}${p}" because it does not start with the basename, so the won't render anything.`),x==null?null:g.createElement(Te.Provider,{value:u},g.createElement(_r.Provider,{children:t,value:x}))}function ch({children:e,location:t}){return Ym(_s(e),t)}function _s(e,t=[]){let n=[];return g.Children.forEach(e,(r,l)=>{if(!g.isValidElement(r))return;let o=[...t,l];if(r.type===g.Fragment){n.push.apply(n,_s(r.props.children,o));return}K(r.type===Cs,`[${typeof r.type=="string"?r.type:r.type.name}] is not a component. All component children of must be a or `),K(!r.props.index||!r.props.children,"An index route cannot have child routes.");let s={id:r.props.id||o.join("-"),caseSensitive:r.props.caseSensitive,element:r.props.element,Component:r.props.Component,index:r.props.index,path:r.props.path,middleware:r.props.middleware,loader:r.props.loader,action:r.props.action,hydrateFallbackElement:r.props.hydrateFallbackElement,HydrateFallback:r.props.HydrateFallback,errorElement:r.props.errorElement,ErrorBoundary:r.props.ErrorBoundary,hasErrorBoundary:r.props.hasErrorBoundary===!0||r.props.ErrorBoundary!=null||r.props.errorElement!=null,shouldRevalidate:r.props.shouldRevalidate,handle:r.props.handle,lazy:r.props.lazy};r.props.children&&(s.children=_s(r.props.children,o)),n.push(s)}),n}var il="get",al="application/x-www-form-urlencoded";function ql(e){return typeof HTMLElement<"u"&&e instanceof HTMLElement}function dh(e){return ql(e)&&e.tagName.toLowerCase()==="button"}function fh(e){return ql(e)&&e.tagName.toLowerCase()==="form"}function ph(e){return ql(e)&&e.tagName.toLowerCase()==="input"}function mh(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function hh(e,t){return e.button===0&&(!t||t==="_self")&&!mh(e)}var Jr=null;function yh(){if(Jr===null)try{new FormData(document.createElement("form"),0),Jr=!1}catch{Jr=!0}return Jr}var gh=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function Lo(e){return e!=null&&!gh.has(e)?(Ke(!1,`"${e}" is not a valid \`encType\` for \`
\`/\`\` and will default to "${al}"`),null):e}function vh(e,t){let n,r,l,o,s;if(fh(e)){let i=e.getAttribute("action");r=i?pt(i,t):null,n=e.getAttribute("method")||il,l=Lo(e.getAttribute("enctype"))||al,o=new FormData(e)}else if(dh(e)||ph(e)&&(e.type==="submit"||e.type==="image")){let i=e.form;if(i==null)throw new Error('Cannot submit a - -