diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..6dee394 --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,67 @@ +name: Deploy demos + +on: + push: + branches: [ main ] + workflow_dispatch: + +permissions: + contents: read + pages: write + id-token: write + +concurrency: + group: pages + cancel-in-progress: true + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: 22 + cache: npm + cache-dependency-path: reactViteThreeFilberDemos/webar-object-demos/package-lock.json + + - name: Install React demo dependencies + working-directory: reactViteThreeFilberDemos/webar-object-demos + run: npm ci + + - name: Build React demo bundle + working-directory: reactViteThreeFilberDemos/webar-object-demos + run: npm run build + + - name: Configure GitHub Pages + uses: actions/configure-pages@v5 + + - name: Prepare static payload + run: | + mkdir -p public/reactViteThreeFilberDemos/webar-object-demos + cp -R site public/site + cp -R demos public/demos + cp -R dist public/dist + cp -R helpers public/helpers + cp -R libs public/libs + cp -R neuralNets public/neuralNets + cp -R reactViteThreeFilberDemos/webar-object-demos/dist public/reactViteThreeFilberDemos/webar-object-demos/dist + + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + with: + path: public + + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + needs: build + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/docs/plans/2026-02-05-unified-demo-portal.md b/docs/plans/2026-02-05-unified-demo-portal.md new file mode 100644 index 0000000..87c5c48 --- /dev/null +++ b/docs/plans/2026-02-05-unified-demo-portal.md @@ -0,0 +1,234 @@ +# Unified Demo Portal Implementation Plan + +> **For Claude:** REQUIRED SUB-SKILL: Use superpowers:executing-plans to implement this plan task-by-task. + +**Goal:** Build and deploy a single landing page that lists every WebAR.rocks.object example and links to the working demos on a public host. + +**Architecture:** Serve the existing static demos directly from the repository tree, add a new `/site/index.html` portal with structured metadata, and surface the React/Vite demo via its production build. Deploy the whole tree to GitHub Pages using a workflow so updates auto-publish. + +**Tech Stack:** Plain HTML/CSS/JS, existing vanilla demos, Vite/React build output, GitHub Actions for deployment. + +--- + +### Task 1: Inventory all demo entry points + +**Files:** +- Modify: `README.md:93-124` (reference only) + +**Step 1: List static demo folders** + +Run: `ls demos` +Expected: directories like `appearance`, `cat`, `debugDetection`, `threejs`, `webxr`, `webxrCoffee`. + +**Step 2: List sub-demos needing deep links** + +Run: `find demos -name index.html` +Expected: relative paths to each playable example (e.g., `demos/threejs/ARCoffee/index.html`). Save this list for the portal JSON. + +**Step 3: List modern stack demos** + +Run: `ls reactViteThreeFilberDemos/webar-object-demos` +Expected: standard Vite project files (`package.json`, `src`, etc.). Note that this one needs a build step before deployment. + +**Step 4: Capture helper/demo descriptions** + +Skim each demo README (e.g., `demos/cat/README.md` if present) or infer from folder names to craft user-friendly labels/descriptions for the portal cards. + +### Task 2: Create the landing portal with metadata-driven cards + +**Files:** +- Create: `site/index.html` +- Create: `site/styles.css` +- Create: `site/demos.json` +- Create: `site/main.js` + +**Step 1: Scaffold `site/` folder** + +Run: `mkdir -p site` +Expected: `site` directory exists alongside `demos/`. + +**Step 2: Author `site/demos.json` metadata** + +Add JSON entries per demo, e.g.: +```json +[ + { + "id": "debug-detection", + "title": "Debug Detection", + "description": "Minimal camera feed detector for CUP/CHAIR/BICYCLE/LAPTOP", + "path": "demos/debugDetection/index.html", + "tags": ["vanilla", "camera"], + "status": "stable" + } +] +``` +Include every static demo and the React build (pointing to `reactViteThreeFilberDemos/webar-object-demos/dist/index.html`). + +**Step 3: Build `site/index.html` shell** + +Create semantic layout with hero, filter controls, and a container for cards rendered by JS. Example skeleton: +```html + + + + + WebAR.rocks.object Demos + + + +
+

WebAR.rocks.object Demo Hub

+

Select any card to launch the live example.

+ +
+
+ + + +``` + +**Step 4: Style cards in `site/styles.css`** + +Implement responsive grid + basic dark theme: +```css +body { font-family: system-ui; background:#050505; color:#f8f8f2; margin:0; } +.grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:1.5rem; padding:2rem; } +.card { background:#111; border:1px solid #2c2c2c; border-radius:16px; padding:1.5rem; box-shadow:0 10px 30px rgba(0,0,0,.35); } +.card a { display:inline-flex; margin-top:1rem; color:#7ee787; text-decoration:none; } +``` + +**Step 5: Implement `site/main.js`** + +Fetch JSON, render cards, wire search/filter: +```js +async function init(){ + const demos = await fetch('demos.json').then(r=>r.json()); + const grid = document.getElementById('demoGrid'); + const search = document.getElementById('search'); + const render = (term='')=>{ + const frag = document.createDocumentFragment(); + demos + .filter(d=>d.title.toLowerCase().includes(term) || d.tags.some(t=>t.includes(term))) + .forEach(d=>{ + const card = document.createElement('article'); + card.className='card'; + card.innerHTML = `

${d.title}

${d.description}

`+ + `Open Demo →`; + frag.appendChild(card); + }); + grid.replaceChildren(frag); + }; + render(); + search.addEventListener('input', e=>render(e.target.value.toLowerCase())); +} +init(); +``` +Confirm paths are relative so hosting at repo root works. + +### Task 3: Produce production assets for the React/Vite demo + +**Files:** +- Modify: `reactViteThreeFilberDemos/webar-object-demos/package-lock.json` +- Modify: `reactViteThreeFilberDemos/webar-object-demos/dist/**` + +**Step 1: Install dependencies** + +Run: `cd reactViteThreeFilberDemos/webar-object-demos && npm install` +Expected: `node_modules/` populated; no audit errors blocking install. + +**Step 2: Build production bundle** + +Run: `npm run build` +Expected: Vite outputs `dist/` with static assets (HTML/CSS/JS). Inspect `dist/index.html` to ensure asset paths are relative. + +**Step 3: Ensure build is committed** + +Since GitHub Pages will serve static assets, track `dist/` (if ignored remove from `.gitignore` or relocate to `site/react`). Update `site/demos.json` entry to point at `reactViteThreeFilberDemos/webar-object-demos/dist/index.html`. + +### Task 4: Configure GitHub Pages deployment + +**Files:** +- Create: `.github/workflows/deploy.yml` + +**Step 1: Create workflow file** + +Contents: +```yaml +name: Deploy demos +on: + push: + branches: [ main ] +permissions: + contents: read + pages: write + id-token: write +concurrency: + group: 'pages' + cancel-in-progress: true +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: 22 + - name: Install React demo deps + working-directory: reactViteThreeFilberDemos/webar-object-demos + run: npm ci && npm run build + - name: Upload static site + uses: actions/upload-pages-artifact@v3 + with: + path: '.' + deploy: + needs: build + runs-on: ubuntu-latest + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + steps: + - id: deployment + uses: actions/deploy-pages@v4 +``` +This publishes the repo root (including `site/`). + +**Step 2: Enable Pages** + +In GitHub UI (Settings → Pages), set source to "GitHub Actions" (one-time manual step). Document this requirement in PR description. + +### Task 5: Verify everything end-to-end + +**Files:** +- Test: `site/index.html` + +**Step 1: Serve locally** + +Run: `npx http-server -c-1 .` +Expected: `http://127.0.0.1:8080/site/index.html` loads the card grid and all links open demos in new tabs. + +**Step 2: Smoke test each demo** + +Click every card and confirm assets load (camera prompts will appear where applicable). For the React build, ensure Vite assets load correctly without dev server warnings. + +**Step 3: Validate Pages deployment** + +After pushing to `main`, open the GitHub Pages URL from the workflow summary. Confirm `/site/index.html` renders, search filters work, and each link hits the hosted demos (camera access requires HTTPS, which Pages provides). + +**Step 4: Commit and push** + +Run: +```bash +git add site reactViteThreeFilberDemos/webar-object-demos/dist .github/workflows/deploy.yml docs/plans/2026-02-05-unified-demo-portal.md +git commit -m "feat: add unified demo portal and deploy via Pages" +git push origin main +``` +Expected: CI workflow triggers and publishes the site. + +--- +Plan complete and saved to `docs/plans/2026-02-05-unified-demo-portal.md`. Two execution options: + +1. Subagent-Driven (this session) – I’ll dispatch a fresh subagent per task, reviewing between tasks for fast iteration. +2. Parallel Session – Open a new session with executing-plans for batch execution and checkpoints. + +Which approach? diff --git a/netlify-build.sh b/netlify-build.sh new file mode 100755 index 0000000..c385af1 --- /dev/null +++ b/netlify-build.sh @@ -0,0 +1,30 @@ +#!/usr/bin/env bash +set -euo pipefail + +ROOT_DIR="$(cd "$(dirname "$0")" && pwd)" +REACT_DEMO_DIR="$ROOT_DIR/reactViteThreeFilberDemos/webar-object-demos" +PUBLIC_DIR="$ROOT_DIR/public" + +# Ensure clean output directory +echo "Cleaning public directory..." +rm -rf "$PUBLIC_DIR" +mkdir -p "$PUBLIC_DIR/reactViteThreeFilberDemos/webar-object-demos" + +# Install dependencies and build React/Vite bundle +echo "Installing React demo dependencies..." +npm --prefix "$REACT_DEMO_DIR" install + +echo "Building React demo..." +npm --prefix "$REACT_DEMO_DIR" run build + +# Copy static assets +echo "Copying assets to public/" +cp -R "$ROOT_DIR/site" "$PUBLIC_DIR/site" +cp -R "$ROOT_DIR/demos" "$PUBLIC_DIR/demos" +cp -R "$ROOT_DIR/dist" "$PUBLIC_DIR/dist" +cp -R "$ROOT_DIR/helpers" "$PUBLIC_DIR/helpers" +cp -R "$ROOT_DIR/libs" "$PUBLIC_DIR/libs" +cp -R "$ROOT_DIR/neuralNets" "$PUBLIC_DIR/neuralNets" +cp -R "$REACT_DEMO_DIR/dist" "$PUBLIC_DIR/reactViteThreeFilberDemos/webar-object-demos/dist" + +echo "Netlify payload ready in $PUBLIC_DIR" diff --git a/reactViteThreeFilberDemos/webar-object-demos/dist/assets/index-CGQuqAv-.css b/reactViteThreeFilberDemos/webar-object-demos/dist/assets/index-CGQuqAv-.css new file mode 100644 index 0000000..61fb2a7 --- /dev/null +++ b/reactViteThreeFilberDemos/webar-object-demos/dist/assets/index-CGQuqAv-.css @@ -0,0 +1 @@ +@font-face{font-family:Roboto;src:url(assets/fonts/Roboto-Regular.ttf)}html{font-size:1rem;font-family:Roboto,sans-serif;margin:0;overflow:hidden;background-color:#000;color:#fff}body{margin:0;width:100vw}.demoMenusContent{margin-left:auto;margin-right:auto;max-width:800px;border-left:1px solid #ccc;padding-left:2em}.demoMenusContent>p{font-size:12pt;margin-top:2em}.demoMenusContent>h1{margin-top:2em;margin-bottom:2em}li{margin-top:1em}a{color:#ccc;text-decoration:none}a:hover{color:#fff}.mirrorX{transform:rotateY(180deg)}.BackButton{position:fixed;top:12px;right:12px;padding:16px;z-index:10;border:1px solid white;font-weight:700;background-color:#00000080}.FlipCamButton{position:fixed;bottom:0;width:100vw;background-color:#00000080;z-index:12;text-align:center;padding-top:16px;padding-bottom:16px}.VTOButtons{display:flex;position:fixed;z-index:10;width:100vw;bottom:0;left:0;flex-direction:row;flex-wrap:wrap} diff --git a/reactViteThreeFilberDemos/webar-object-demos/dist/assets/index-CsQwNcNY.js b/reactViteThreeFilberDemos/webar-object-demos/dist/assets/index-CsQwNcNY.js new file mode 100644 index 0000000..e1f7442 --- /dev/null +++ b/reactViteThreeFilberDemos/webar-object-demos/dist/assets/index-CsQwNcNY.js @@ -0,0 +1,3918 @@ +(function(){const A=document.createElement("link").relList;if(A&&A.supports&&A.supports("modulepreload"))return;for(const m of document.querySelectorAll('link[rel="modulepreload"]'))i(m);new MutationObserver(m=>{for(const E of m)if(E.type==="childList")for(const G of E.addedNodes)G.tagName==="LINK"&&G.rel==="modulepreload"&&i(G)}).observe(document,{childList:!0,subtree:!0});function n(m){const E={};return m.integrity&&(E.integrity=m.integrity),m.referrerPolicy&&(E.referrerPolicy=m.referrerPolicy),m.crossOrigin==="use-credentials"?E.credentials="include":m.crossOrigin==="anonymous"?E.credentials="omit":E.credentials="same-origin",E}function i(m){if(m.ep)return;m.ep=!0;const E=n(m);fetch(m.href,E)}})();function ta(o){return o&&o.__esModule&&Object.prototype.hasOwnProperty.call(o,"default")?o.default:o}var Nr={exports:{}},ut={},Tr={exports:{}},Ki={};/** + * @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 Up;function tJ(){if(Up)return Ki;Up=1;var o=Symbol.for("react.element"),A=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),i=Symbol.for("react.strict_mode"),m=Symbol.for("react.profiler"),E=Symbol.for("react.provider"),G=Symbol.for("react.context"),C=Symbol.for("react.forward_ref"),t=Symbol.for("react.suspense"),I=Symbol.for("react.memo"),j=Symbol.for("react.lazy"),H=Symbol.iterator;function h(X){return X===null||typeof X!="object"?null:(X=H&&X[H]||X["@@iterator"],typeof X=="function"?X:null)}var p={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},B=Object.assign,J={};function u(X,IA,QA){this.props=X,this.context=IA,this.refs=J,this.updater=QA||p}u.prototype.isReactComponent={},u.prototype.setState=function(X,IA){if(typeof X!="object"&&typeof X!="function"&&X!=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,X,IA,"setState")},u.prototype.forceUpdate=function(X){this.updater.enqueueForceUpdate(this,X,"forceUpdate")};function s(){}s.prototype=u.prototype;function K(X,IA,QA){this.props=X,this.context=IA,this.refs=J,this.updater=QA||p}var d=K.prototype=new s;d.constructor=K,B(d,u.prototype),d.isPureReactComponent=!0;var v=Array.isArray,O=Object.prototype.hasOwnProperty,x={current:null},b={key:!0,ref:!0,__self:!0,__source:!0};function Q(X,IA,QA){var eA,yA={},bA=null,YA=null;if(IA!=null)for(eA in IA.ref!==void 0&&(YA=IA.ref),IA.key!==void 0&&(bA=""+IA.key),IA)O.call(IA,eA)&&!b.hasOwnProperty(eA)&&(yA[eA]=IA[eA]);var pn=arguments.length-2;if(pn===1)yA.children=QA;else if(1>>1,IA=Y[X];if(0>>1;Xm(yA,GA))bAm(YA,yA)?(Y[X]=YA,Y[bA]=GA,X=bA):(Y[X]=yA,Y[eA]=GA,X=eA);else if(bAm(YA,GA))Y[X]=YA,Y[bA]=GA,X=bA;else break A}}return FA}function m(Y,FA){var GA=Y.sortIndex-FA.sortIndex;return GA!==0?GA:Y.id-FA.id}if(typeof performance=="object"&&typeof performance.now=="function"){var E=performance;o.unstable_now=function(){return E.now()}}else{var G=Date,C=G.now();o.unstable_now=function(){return G.now()-C}}var t=[],I=[],j=1,H=null,h=3,p=!1,B=!1,J=!1,u=typeof setTimeout=="function"?setTimeout:null,s=typeof clearTimeout=="function"?clearTimeout:null,K=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function d(Y){for(var FA=n(I);FA!==null;){if(FA.callback===null)i(I);else if(FA.startTime<=Y)i(I),FA.sortIndex=FA.expirationTime,A(t,FA);else break;FA=n(I)}}function v(Y){if(J=!1,d(Y),!B)if(n(t)!==null)B=!0,iA(O);else{var FA=n(I);FA!==null&&M(v,FA.startTime-Y)}}function O(Y,FA){B=!1,J&&(J=!1,s(Q),Q=-1),p=!0;var GA=h;try{for(d(FA),H=n(t);H!==null&&(!(H.expirationTime>FA)||Y&&!W());){var X=H.callback;if(typeof X=="function"){H.callback=null,h=H.priorityLevel;var IA=X(H.expirationTime<=FA);FA=o.unstable_now(),typeof IA=="function"?H.callback=IA:H===n(t)&&i(t),d(FA)}else i(t);H=n(t)}if(H!==null)var QA=!0;else{var eA=n(I);eA!==null&&M(v,eA.startTime-FA),QA=!1}return QA}finally{H=null,h=GA,p=!1}}var x=!1,b=null,Q=-1,P=5,T=-1;function W(){return!(o.unstable_now()-TY||125X?(Y.sortIndex=GA,A(I,Y),n(t)===null&&Y===n(I)&&(J?(s(Q),Q=-1):J=!0,M(v,GA-X))):(Y.sortIndex=IA,A(t,Y),B||p||(B=!0,iA(O))),Y},o.unstable_shouldYield=W,o.unstable_wrapCallback=function(Y){var FA=h;return function(){var GA=h;h=FA;try{return Y.apply(this,arguments)}finally{h=GA}}}}(yr)),yr}var Xp;function HJ(){return Xp||(Xp=1,Rr.exports=jJ()),Rr.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 Yp;function rJ(){if(Yp)return jl;Yp=1;var o=pH(),A=HJ();function n(l){for(var k="https://reactjs.org/docs/error-decoder.html?invariant="+l,D=1;D"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),t=Object.prototype.hasOwnProperty,I=/^[: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]*$/,j={},H={};function h(l){return t.call(H,l)?!0:t.call(j,l)?!1:I.test(l)?H[l]=!0:(j[l]=!0,!1)}function p(l,k,D,g){if(D!==null&&D.type===0)return!1;switch(typeof k){case"function":case"symbol":return!0;case"boolean":return g?!1:D!==null?!D.acceptsBooleans:(l=l.toLowerCase().slice(0,5),l!=="data-"&&l!=="aria-");default:return!1}}function B(l,k,D,g){if(k===null||typeof k>"u"||p(l,k,D,g))return!0;if(g)return!1;if(D!==null)switch(D.type){case 3:return!k;case 4:return k===!1;case 5:return isNaN(k);case 6:return isNaN(k)||1>k}return!1}function J(l,k,D,g,c,f,y){this.acceptsBooleans=k===2||k===3||k===4,this.attributeName=g,this.attributeNamespace=c,this.mustUseProperty=D,this.propertyName=l,this.type=k,this.sanitizeURL=f,this.removeEmptyString=y}var u={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(l){u[l]=new J(l,0,!1,l,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(l){var k=l[0];u[k]=new J(k,1,!1,l[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(l){u[l]=new J(l,2,!1,l.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(l){u[l]=new J(l,2,!1,l,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(l){u[l]=new J(l,3,!1,l.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(l){u[l]=new J(l,3,!0,l,null,!1,!1)}),["capture","download"].forEach(function(l){u[l]=new J(l,4,!1,l,null,!1,!1)}),["cols","rows","size","span"].forEach(function(l){u[l]=new J(l,6,!1,l,null,!1,!1)}),["rowSpan","start"].forEach(function(l){u[l]=new J(l,5,!1,l.toLowerCase(),null,!1,!1)});var s=/[\-:]([a-z])/g;function K(l){return l[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(l){var k=l.replace(s,K);u[k]=new J(k,1,!1,l,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(l){var k=l.replace(s,K);u[k]=new J(k,1,!1,l,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(l){var k=l.replace(s,K);u[k]=new J(k,1,!1,l,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(l){u[l]=new J(l,1,!1,l.toLowerCase(),null,!1,!1)}),u.xlinkHref=new J("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(l){u[l]=new J(l,1,!1,l.toLowerCase(),null,!0,!0)});function d(l,k,D,g){var c=u.hasOwnProperty(k)?u[k]:null;(c!==null?c.type!==0:g||!(2EA||c[y]!==f[EA]){var CA=` +`+c[y].replace(" at new "," at ");return l.displayName&&CA.includes("")&&(CA=CA.replace("",l.displayName)),CA}while(1<=y&&0<=EA);break}}}finally{QA=!1,Error.prepareStackTrace=D}return(l=l?l.displayName||l.name:"")?IA(l):""}function yA(l){switch(l.tag){case 5:return IA(l.type);case 16:return IA("Lazy");case 13:return IA("Suspense");case 19:return IA("SuspenseList");case 0:case 2:case 15:return l=eA(l.type,!1),l;case 11:return l=eA(l.type.render,!1),l;case 1:return l=eA(l.type,!0),l;default:return""}}function bA(l){if(l==null)return null;if(typeof l=="function")return l.displayName||l.name||null;if(typeof l=="string")return l;switch(l){case b:return"Fragment";case x:return"Portal";case P:return"Profiler";case Q:return"StrictMode";case pA:return"Suspense";case LA:return"SuspenseList"}if(typeof l=="object")switch(l.$$typeof){case W:return(l.displayName||"Context")+".Consumer";case T:return(l._context.displayName||"Context")+".Provider";case sA:var k=l.render;return l=l.displayName,l||(l=k.displayName||k.name||"",l=l!==""?"ForwardRef("+l+")":"ForwardRef"),l;case fA:return k=l.displayName||null,k!==null?k:bA(l.type)||"Memo";case iA:k=l._payload,l=l._init;try{return bA(l(k))}catch{}}return null}function YA(l){var k=l.type;switch(l.tag){case 24:return"Cache";case 9:return(k.displayName||"Context")+".Consumer";case 10:return(k._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return l=k.render,l=l.displayName||l.name||"",k.displayName||(l!==""?"ForwardRef("+l+")":"ForwardRef");case 7:return"Fragment";case 5:return k;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return bA(k);case 8:return k===Q?"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 k=="function")return k.displayName||k.name||null;if(typeof k=="string")return k}return null}function pn(l){switch(typeof l){case"boolean":case"number":case"string":case"undefined":return l;case"object":return l;default:return""}}function Kn(l){var k=l.type;return(l=l.nodeName)&&l.toLowerCase()==="input"&&(k==="checkbox"||k==="radio")}function On(l){var k=Kn(l)?"checked":"value",D=Object.getOwnPropertyDescriptor(l.constructor.prototype,k),g=""+l[k];if(!l.hasOwnProperty(k)&&typeof D<"u"&&typeof D.get=="function"&&typeof D.set=="function"){var c=D.get,f=D.set;return Object.defineProperty(l,k,{configurable:!0,get:function(){return c.call(this)},set:function(y){g=""+y,f.call(this,y)}}),Object.defineProperty(l,k,{enumerable:D.enumerable}),{getValue:function(){return g},setValue:function(y){g=""+y},stopTracking:function(){l._valueTracker=null,delete l[k]}}}}function mi(l){l._valueTracker||(l._valueTracker=On(l))}function nn(l){if(!l)return!1;var k=l._valueTracker;if(!k)return!0;var D=k.getValue(),g="";return l&&(g=Kn(l)?l.checked?"true":"false":l.value),l=g,l!==D?(k.setValue(l),!0):!1}function on(l){if(l=l||(typeof document<"u"?document:void 0),typeof l>"u")return null;try{return l.activeElement||l.body}catch{return l.body}}function AA(l,k){var D=k.checked;return GA({},k,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:D??l._wrapperState.initialChecked})}function wn(l,k){var D=k.defaultValue==null?"":k.defaultValue,g=k.checked!=null?k.checked:k.defaultChecked;D=pn(k.value!=null?k.value:D),l._wrapperState={initialChecked:g,initialValue:D,controlled:k.type==="checkbox"||k.type==="radio"?k.checked!=null:k.value!=null}}function tn(l,k){k=k.checked,k!=null&&d(l,"checked",k,!1)}function Sn(l,k){tn(l,k);var D=pn(k.value),g=k.type;if(D!=null)g==="number"?(D===0&&l.value===""||l.value!=D)&&(l.value=""+D):l.value!==""+D&&(l.value=""+D);else if(g==="submit"||g==="reset"){l.removeAttribute("value");return}k.hasOwnProperty("value")?Qn(l,k.type,D):k.hasOwnProperty("defaultValue")&&Qn(l,k.type,pn(k.defaultValue)),k.checked==null&&k.defaultChecked!=null&&(l.defaultChecked=!!k.defaultChecked)}function rn(l,k,D){if(k.hasOwnProperty("value")||k.hasOwnProperty("defaultValue")){var g=k.type;if(!(g!=="submit"&&g!=="reset"||k.value!==void 0&&k.value!==null))return;k=""+l._wrapperState.initialValue,D||k===l.value||(l.value=k),l.defaultValue=k}D=l.name,D!==""&&(l.name=""),l.defaultChecked=!!l._wrapperState.initialChecked,D!==""&&(l.name=D)}function Qn(l,k,D){(k!=="number"||on(l.ownerDocument)!==l)&&(D==null?l.defaultValue=""+l._wrapperState.initialValue:l.defaultValue!==""+D&&(l.defaultValue=""+D))}var Gn=Array.isArray;function U(l,k,D,g){if(l=l.options,k){k={};for(var c=0;c"+k.valueOf().toString()+"",k=hn.firstChild;l.firstChild;)l.removeChild(l.firstChild);for(;k.firstChild;)l.appendChild(k.firstChild)}});function ni(l,k){if(k){var D=l.firstChild;if(D&&D===l.lastChild&&D.nodeType===3){D.nodeValue=k;return}}l.textContent=k}var en={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},Rn=["Webkit","ms","Moz","O"];Object.keys(en).forEach(function(l){Rn.forEach(function(k){k=k+l.charAt(0).toUpperCase()+l.substring(1),en[k]=en[l]})});function Wn(l,k,D){return k==null||typeof k=="boolean"||k===""?"":D||typeof k!="number"||k===0||en.hasOwnProperty(l)&&en[l]?(""+k).trim():k+"px"}function ii(l,k){l=l.style;for(var D in k)if(k.hasOwnProperty(D)){var g=D.indexOf("--")===0,c=Wn(D,k[D],g);D==="float"&&(D="cssFloat"),g?l.setProperty(D,c):l[D]=c}}var XA=GA({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 Bi(l,k){if(k){if(XA[l]&&(k.children!=null||k.dangerouslySetInnerHTML!=null))throw Error(n(137,l));if(k.dangerouslySetInnerHTML!=null){if(k.children!=null)throw Error(n(60));if(typeof k.dangerouslySetInnerHTML!="object"||!("__html"in k.dangerouslySetInnerHTML))throw Error(n(61))}if(k.style!=null&&typeof k.style!="object")throw Error(n(62))}}function Jn(l,k){if(l.indexOf("-")===-1)return typeof k.is=="string";switch(l){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 oi=null;function tA(l){return l=l.target||l.srcElement||window,l.correspondingUseElement&&(l=l.correspondingUseElement),l.nodeType===3?l.parentNode:l}var an=null,OA=null,An=null;function Nn(l){if(l=AE(l)){if(typeof an!="function")throw Error(n(280));var k=l.stateNode;k&&(k=cC(k),an(l.stateNode,l.type,k))}}function qn(l){OA?An?An.push(l):An=[l]:OA=l}function dn(){if(OA){var l=OA,k=An;if(An=OA=null,Nn(l),k)for(l=0;l>>=0,l===0?32:31-(mn(l)/Bn|0)|0}var Cn=64,jA=4194304;function BA(l){switch(l&-l){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 l&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return l&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return l}}function KA(l,k){var D=l.pendingLanes;if(D===0)return 0;var g=0,c=l.suspendedLanes,f=l.pingedLanes,y=D&268435455;if(y!==0){var EA=y&~c;EA!==0?g=BA(EA):(f&=y,f!==0&&(g=BA(f)))}else y=D&~c,y!==0?g=BA(y):f!==0&&(g=BA(f));if(g===0)return 0;if(k!==0&&k!==g&&!(k&c)&&(c=g&-g,f=k&-k,c>=f||c===16&&(f&4194240)!==0))return k;if(g&4&&(g|=D&16),k=l.entangledLanes,k!==0)for(l=l.entanglements,k&=g;0D;D++)k.push(l);return k}function $A(l,k,D){l.pendingLanes|=k,k!==536870912&&(l.suspendedLanes=0,l.pingedLanes=0),l=l.eventTimes,k=31-UA(k),l[k]=D}function Em(l,k){var D=l.pendingLanes&~k;l.pendingLanes=k,l.suspendedLanes=0,l.pingedLanes=0,l.expiredLanes&=k,l.mutableReadLanes&=k,l.entangledLanes&=k,k=l.entanglements;var g=l.eventTimes;for(l=l.expirationTimes;0=wm),el=" ",yF=!1;function OF(l,k){switch(l){case"keyup":return RF.indexOf(k.keyCode)!==-1;case"keydown":return k.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function GC(l){return l=l.detail,typeof l=="object"&&"data"in l?l.data:null}var KE=!1;function xD(l,k){switch(l){case"compositionend":return GC(k);case"keypress":return k.which!==32?null:(yF=!0,el);case"textInput":return l=k.data,l===el&&yF?null:l;default:return null}}function xG(l,k){if(KE)return l==="compositionend"||!jo&&OF(l,k)?(l=yG(),Do=Bl=Ci=null,KE=!1,l):null;switch(l){case"paste":return null;case"keypress":if(!(k.ctrlKey||k.altKey||k.metaKey)||k.ctrlKey&&k.altKey){if(k.char&&1=k)return{node:D,offset:k-l};l=g}A:{for(;D;){if(D.nextSibling){D=D.nextSibling;break A}D=D.parentNode}D=void 0}D=bG(D)}}function lk(l,k){return l&&k?l===k?!0:l&&l.nodeType===3?!1:k&&k.nodeType===3?lk(l,k.parentNode):"contains"in l?l.contains(k):l.compareDocumentPosition?!!(l.compareDocumentPosition(k)&16):!1:!1}function Gm(){for(var l=window,k=on();k instanceof l.HTMLIFrameElement;){try{var D=typeof k.contentWindow.location.href=="string"}catch{D=!1}if(D)l=k.contentWindow;else break;k=on(l.document)}return k}function Sm(l){var k=l&&l.nodeName&&l.nodeName.toLowerCase();return k&&(k==="input"&&(l.type==="text"||l.type==="search"||l.type==="tel"||l.type==="url"||l.type==="password")||k==="textarea"||l.contentEditable==="true")}function Nm(l){var k=Gm(),D=l.focusedElem,g=l.selectionRange;if(k!==D&&D&&D.ownerDocument&&lk(D.ownerDocument.documentElement,D)){if(g!==null&&Sm(D)){if(k=g.start,l=g.end,l===void 0&&(l=k),"selectionStart"in D)D.selectionStart=k,D.selectionEnd=Math.min(l,D.value.length);else if(l=(k=D.ownerDocument||document)&&k.defaultView||window,l.getSelection){l=l.getSelection();var c=D.textContent.length,f=Math.min(g.start,c);g=g.end===void 0?f:Math.min(g.end,c),!l.extend&&f>g&&(c=g,g=f,f=c),c=bo(D,f);var y=bo(D,g);c&&y&&(l.rangeCount!==1||l.anchorNode!==c.node||l.anchorOffset!==c.offset||l.focusNode!==y.node||l.focusOffset!==y.offset)&&(k=k.createRange(),k.setStart(c.node,c.offset),l.removeAllRanges(),f>g?(l.addRange(k),l.extend(y.node,y.offset)):(k.setEnd(y.node,y.offset),l.addRange(k)))}}for(k=[],l=D;l=l.parentNode;)l.nodeType===1&&k.push({element:l,left:l.scrollLeft,top:l.scrollTop});for(typeof D.focus=="function"&&D.focus(),D=0;D=document.documentMode,Tl=null,Ek=null,UG=null,Tm=!1;function DC(l,k,D){var g=D.window===D?D.document:D.nodeType===9?D:D.ownerDocument;Tm||Tl==null||Tl!==on(g)||(g=Tl,"selectionStart"in g&&Sm(g)?g={start:g.selectionStart,end:g.selectionEnd}:(g=(g.ownerDocument&&g.ownerDocument.defaultView||window).getSelection(),g={anchorNode:g.anchorNode,anchorOffset:g.anchorOffset,focusNode:g.focusNode,focusOffset:g.focusOffset}),UG&&ok(UG,g)||(UG=g,g=pC(Ek,"onSelect"),0Pm||(l.current=_F[Pm],_F[Pm]=null,Pm--)}function Zi(l,k){Pm++,_F[Pm]=l.current,l.current=k}var nE={},Vm=Fm(nE),Ho=Fm(!1),iE=nE;function Ck(l,k){var D=l.type.contextTypes;if(!D)return nE;var g=l.stateNode;if(g&&g.__reactInternalMemoizedUnmaskedChildContext===k)return g.__reactInternalMemoizedMaskedChildContext;var c={},f;for(f in D)c[f]=k[f];return g&&(l=l.stateNode,l.__reactInternalMemoizedUnmaskedChildContext=k,l.__reactInternalMemoizedMaskedChildContext=c),c}function oo(l){return l=l.childContextTypes,l!=null}function zG(){$i(Ho),$i(Vm)}function $F(l,k,D){if(Vm.current!==nE)throw Error(n(168));Zi(Vm,k),Zi(Ho,D)}function _G(l,k,D){var g=l.stateNode;if(k=k.childContextTypes,typeof g.getChildContext!="function")return D;g=g.getChildContext();for(var c in g)if(!(c in k))throw Error(n(108,YA(l)||"Unknown",c));return GA({},D,g)}function Fk(l){return l=(l=l.stateNode)&&l.__reactInternalMemoizedMergedChildContext||nE,iE=Vm.current,Zi(Vm,l),Zi(Ho,Ho.current),!0}function At(l,k,D){var g=l.stateNode;if(!g)throw Error(n(169));D?(l=_G(l,k,iE),g.__reactInternalMemoizedMergedChildContext=l,$i(Ho),$i(Vm),Zi(Vm,l)):$i(Ho),Zi(Ho,D)}var Jl=null,$G=!1,JC=!1;function Ae(l){Jl===null?Jl=[l]:Jl.push(l)}function YD(l){$G=!0,Ae(l)}function Rl(){if(!JC&&Jl!==null){JC=!0;var l=0,k=Ji;try{var D=Jl;for(Ji=1;l>=y,c-=y,un=1<<32-UA(k)+c|D<Di?(Go=ei,ei=null):Go=ei.sibling;var xi=Dn(dA,ei,vA[Di],sn);if(xi===null){ei===null&&(ei=Go);break}l&&ei&&xi.alternate===null&&k(dA,ei),HA=f(xi,HA,Di),Gi===null?Ai=xi:Gi.sibling=xi,Gi=xi,ei=Go}if(Di===vA.length)return D(dA,ei),im&&mE(dA,Di),Ai;if(ei===null){for(;DiDi?(Go=ei,ei=null):Go=ei.sibling;var pG=Dn(dA,ei,xi.value,sn);if(pG===null){ei===null&&(ei=Go);break}l&&ei&&pG.alternate===null&&k(dA,ei),HA=f(pG,HA,Di),Gi===null?Ai=pG:Gi.sibling=pG,Gi=pG,ei=Go}if(xi.done)return D(dA,ei),im&&mE(dA,Di),Ai;if(ei===null){for(;!xi.done;Di++,xi=vA.next())xi=Hn(dA,xi.value,sn),xi!==null&&(HA=f(xi,HA,Di),Gi===null?Ai=xi:Gi.sibling=xi,Gi=xi);return im&&mE(dA,Di),Ai}for(ei=g(dA,ei);!xi.done;Di++,xi=vA.next())xi=xn(ei,dA,Di,xi.value,sn),xi!==null&&(l&&xi.alternate!==null&&ei.delete(xi.key===null?Di:xi.key),HA=f(xi,HA,Di),Gi===null?Ai=xi:Gi.sibling=xi,Gi=xi);return l&&ei.forEach(function(FJ){return k(dA,FJ)}),im&&mE(dA,Di),Ai}function dm(dA,HA,vA,sn){if(typeof vA=="object"&&vA!==null&&vA.type===b&&vA.key===null&&(vA=vA.props.children),typeof vA=="object"&&vA!==null){switch(vA.$$typeof){case O:A:{for(var Ai=vA.key,Gi=HA;Gi!==null;){if(Gi.key===Ai){if(Ai=vA.type,Ai===b){if(Gi.tag===7){D(dA,Gi.sibling),HA=c(Gi,vA.props.children),HA.return=dA,dA=HA;break A}}else if(Gi.elementType===Ai||typeof Ai=="object"&&Ai!==null&&Ai.$$typeof===iA&&Et(Ai)===Gi.type){D(dA,Gi.sibling),HA=c(Gi,vA.props),HA.ref=ne(dA,Gi,vA),HA.return=dA,dA=HA;break A}D(dA,Gi);break}else k(dA,Gi);Gi=Gi.sibling}vA.type===b?(HA=ge(vA.props.children,dA.mode,sn,vA.key),HA.return=dA,dA=HA):(sn=hI(vA.type,vA.key,vA.props,null,dA.mode,sn),sn.ref=ne(dA,HA,vA),sn.return=dA,dA=sn)}return y(dA);case x:A:{for(Gi=vA.key;HA!==null;){if(HA.key===Gi)if(HA.tag===4&&HA.stateNode.containerInfo===vA.containerInfo&&HA.stateNode.implementation===vA.implementation){D(dA,HA.sibling),HA=c(HA,vA.children||[]),HA.return=dA,dA=HA;break A}else{D(dA,HA);break}else k(dA,HA);HA=HA.sibling}HA=dr(vA,dA.mode,sn),HA.return=dA,dA=HA}return y(dA);case iA:return Gi=vA._init,dm(dA,HA,Gi(vA._payload),sn)}if(Gn(vA))return Xn(dA,HA,vA,sn);if(FA(vA))return Zn(dA,HA,vA,sn);ie(dA,vA)}return typeof vA=="string"&&vA!==""||typeof vA=="number"?(vA=""+vA,HA!==null&&HA.tag===6?(D(dA,HA.sibling),HA=c(HA,vA),HA.return=dA,dA=HA):(D(dA,HA),HA=Kr(vA,dA.mode,sn),HA.return=dA,dA=HA),y(dA)):D(dA,HA)}return dm}var Ik=kt(!0),me=kt(!1),jk=Fm(null),Hk=null,lE=null,eG=null;function rk(){eG=lE=Hk=null}function oe(l){var k=jk.current;$i(jk),l._currentValue=k}function le(l,k,D){for(;l!==null;){var g=l.alternate;if((l.childLanes&k)!==k?(l.childLanes|=k,g!==null&&(g.childLanes|=k)):g!==null&&(g.childLanes&k)!==k&&(g.childLanes|=k),l===D)break;l=l.return}}function NE(l,k){Hk=l,eG=lE=null,l=l.dependencies,l!==null&&l.firstContext!==null&&(l.lanes&k&&(ai=!0),l.firstContext=null)}function wo(l){var k=l._currentValue;if(eG!==l)if(l={context:l,memoizedValue:k,next:null},lE===null){if(Hk===null)throw Error(n(308));lE=l,Hk.dependencies={lanes:0,firstContext:l}}else lE=lE.next=l;return k}var EE=null;function Gt(l){EE===null?EE=[l]:EE.push(l)}function Ee(l,k,D,g){var c=k.interleaved;return c===null?(D.next=D,Gt(k)):(D.next=c.next,c.next=D),k.interleaved=D,ql(l,g)}function ql(l,k){l.lanes|=k;var D=l.alternate;for(D!==null&&(D.lanes|=k),D=l,l=l.return;l!==null;)l.childLanes|=k,D=l.alternate,D!==null&&(D.childLanes|=k),D=l,l=l.return;return D.tag===3?D.stateNode:null}var Xi=!1;function pi(l){l.updateQueue={baseState:l.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Hm(l,k){l=l.updateQueue,k.updateQueue===l&&(k.updateQueue={baseState:l.baseState,firstBaseUpdate:l.firstBaseUpdate,lastBaseUpdate:l.lastBaseUpdate,shared:l.shared,effects:l.effects})}function Yi(l,k){return{eventTime:l,lane:k,tag:0,payload:null,callback:null,next:null}}function lm(l,k,D){var g=l.updateQueue;if(g===null)return null;if(g=g.shared,Ri&2){var c=g.pending;return c===null?k.next=k:(k.next=c.next,c.next=k),g.pending=k,ql(l,D)}return c=g.interleaved,c===null?(k.next=k,Gt(g)):(k.next=c.next,c.next=k),g.interleaved=k,ql(l,D)}function lo(l,k,D){if(k=k.updateQueue,k!==null&&(k=k.shared,(D&4194240)!==0)){var g=k.lanes;g&=l.pendingLanes,D|=g,k.lanes=D,nm(l,D)}}function hk(l,k){var D=l.updateQueue,g=l.alternate;if(g!==null&&(g=g.updateQueue,D===g)){var c=null,f=null;if(D=D.firstBaseUpdate,D!==null){do{var y={eventTime:D.eventTime,lane:D.lane,tag:D.tag,payload:D.payload,callback:D.callback,next:null};f===null?c=f=y:f=f.next=y,D=D.next}while(D!==null);f===null?c=f=k:f=f.next=k}else c=f=k;D={baseState:g.baseState,firstBaseUpdate:c,lastBaseUpdate:f,shared:g.shared,effects:g.effects},l.updateQueue=D;return}l=D.lastBaseUpdate,l===null?D.firstBaseUpdate=k:l.next=k,D.lastBaseUpdate=k}function tm(l,k,D,g){var c=l.updateQueue;Xi=!1;var f=c.firstBaseUpdate,y=c.lastBaseUpdate,EA=c.shared.pending;if(EA!==null){c.shared.pending=null;var CA=EA,RA=CA.next;CA.next=null,y===null?f=RA:y.next=RA,y=CA;var jn=l.alternate;jn!==null&&(jn=jn.updateQueue,EA=jn.lastBaseUpdate,EA!==y&&(EA===null?jn.firstBaseUpdate=RA:EA.next=RA,jn.lastBaseUpdate=CA))}if(f!==null){var Hn=c.baseState;y=0,jn=RA=CA=null,EA=f;do{var Dn=EA.lane,xn=EA.eventTime;if((g&Dn)===Dn){jn!==null&&(jn=jn.next={eventTime:xn,lane:0,tag:EA.tag,payload:EA.payload,callback:EA.callback,next:null});A:{var Xn=l,Zn=EA;switch(Dn=k,xn=D,Zn.tag){case 1:if(Xn=Zn.payload,typeof Xn=="function"){Hn=Xn.call(xn,Hn,Dn);break A}Hn=Xn;break A;case 3:Xn.flags=Xn.flags&-65537|128;case 0:if(Xn=Zn.payload,Dn=typeof Xn=="function"?Xn.call(xn,Hn,Dn):Xn,Dn==null)break A;Hn=GA({},Hn,Dn);break A;case 2:Xi=!0}}EA.callback!==null&&EA.lane!==0&&(l.flags|=64,Dn=c.effects,Dn===null?c.effects=[EA]:Dn.push(EA))}else xn={eventTime:xn,lane:Dn,tag:EA.tag,payload:EA.payload,callback:EA.callback,next:null},jn===null?(RA=jn=xn,CA=Hn):jn=jn.next=xn,y|=Dn;if(EA=EA.next,EA===null){if(EA=c.shared.pending,EA===null)break;Dn=EA,EA=Dn.next,Dn.next=null,c.lastBaseUpdate=Dn,c.shared.pending=null}}while(!0);if(jn===null&&(CA=Hn),c.baseState=CA,c.firstBaseUpdate=RA,c.lastBaseUpdate=jn,k=c.shared.interleaved,k!==null){c=k;do y|=c.lane,c=c.next;while(c!==k)}else f===null&&(c.shared.lanes=0);je|=y,l.lanes=y,l.memoizedState=Hn}}function CG(l,k,D){if(l=k.effects,k.effects=null,l!==null)for(k=0;kD?D:4,l(!0);var g=Bk.transition;Bk.transition={};try{l(!1),k()}finally{Ji=D,Bk.transition=g}}function CE(){return Qo().memoizedState}function NC(l,k,D){var g=rG(l);if(D={lane:g,action:D,hasEagerState:!1,eagerState:null,next:null},De(l))TC(k,D);else if(D=Ee(l,k,D,g),D!==null){var c=Yo();IE(D,l,g,c),PC(D,k,g)}}function ak(l,k,D){var g=rG(l),c={lane:g,action:D,hasEagerState:!1,eagerState:null,next:null};if(De(l))TC(k,c);else{var f=l.alternate;if(l.lanes===0&&(f===null||f.lanes===0)&&(f=k.lastRenderedReducer,f!==null))try{var y=k.lastRenderedState,EA=f(y,D);if(c.hasEagerState=!0,c.eagerState=EA,xo(EA,y)){var CA=k.interleaved;CA===null?(c.next=c,Gt(k)):(c.next=CA.next,CA.next=c),k.interleaved=c;return}}catch{}finally{}D=Ee(l,k,c,g),D!==null&&(c=Yo(),IE(D,l,g,c),PC(D,k,g))}}function De(l){var k=l.alternate;return l===Am||k!==null&&k===Am}function TC(l,k){Eo=Kl=!0;var D=l.pending;D===null?k.next=k:(k.next=D.next,D.next=k),l.pending=k}function PC(l,k,D){if(D&4194240){var g=k.lanes;g&=l.pendingLanes,D|=g,k.lanes=D,nm(l,D)}}var RC={readContext:wo,useCallback:Wm,useContext:Wm,useEffect:Wm,useImperativeHandle:Wm,useInsertionEffect:Wm,useLayoutEffect:Wm,useMemo:Wm,useReducer:Wm,useRef:Wm,useState:Wm,useDebugValue:Wm,useDeferredValue:Wm,useTransition:Wm,useMutableSource:Wm,useSyncExternalStore:Wm,useId:Wm,unstable_isNewReconciler:!1},iI={readContext:wo,useCallback:function(l,k){return Xm().memoizedState=[l,k===void 0?null:k],l},useContext:wo,useEffect:go,useImperativeHandle:function(l,k,D){return D=D!=null?D.concat([l]):null,xl(4194308,4,AI.bind(null,k,l),D)},useLayoutEffect:function(l,k){return xl(4194308,4,l,k)},useInsertionEffect:function(l,k){return xl(4,2,l,k)},useMemo:function(l,k){var D=Xm();return k=k===void 0?null:k,l=l(),D.memoizedState=[l,k],l},useReducer:function(l,k,D){var g=Xm();return k=D!==void 0?D(k):k,g.memoizedState=g.baseState=k,l={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:l,lastRenderedState:k},g.queue=l,l=l.dispatch=NC.bind(null,Am,l),[g.memoizedState,l]},useRef:function(l){var k=Xm();return l={current:l},k.memoizedState=l},useState:Dt,useDebugValue:vC,useDeferredValue:function(l){return Xm().memoizedState=l},useTransition:function(){var l=Dt(!1),k=l[0];return l=Fr.bind(null,l[1]),Xm().memoizedState=l,[k,l]},useMutableSource:function(){},useSyncExternalStore:function(l,k,D){var g=Am,c=Xm();if(im){if(D===void 0)throw Error(n(407));D=D()}else{if(D=k(),ko===null)throw Error(n(349));GE&30||LC(g,k,D)}c.memoizedState=D;var f={value:D,getSnapshot:k};return c.queue=f,go(ZD.bind(null,g,f,l),[l]),g.flags|=2048,dl(9,Fe.bind(null,g,f,D,k),void 0,null),D},useId:function(){var l=Xm(),k=ko.identifierPrefix;if(im){var D=Cl,g=un;D=(g&~(1<<32-UA(g)-1)).toString(32)+D,k=":"+k+"R"+D,D=PE++,0<\/script>",l=l.removeChild(l.firstChild)):typeof g.is=="string"?l=y.createElement(D,{is:g.is}):(l=y.createElement(D),D==="select"&&(y=l,g.multiple?y.multiple=!0:g.size&&(y.size=g.size))):l=y.createElementNS(l,D),l[Km]=k,l[EG]=g,Ip(l,k,!1,!1),k.stateNode=l;A:{switch(y=Jn(D,g),D){case"dialog":_i("cancel",l),_i("close",l),c=g;break;case"iframe":case"object":case"embed":_i("load",l),c=g;break;case"video":case"audio":for(c=0;cbC&&(k.flags|=128,g=!0,ht(f,!1),k.lanes=4194304)}else{if(!g)if(l=fl(y),l!==null){if(k.flags|=128,g=!0,D=l.updateQueue,D!==null&&(k.updateQueue=D,k.flags|=4),ht(f,!0),f.tail===null&&f.tailMode==="hidden"&&!y.alternate&&!im)return fo(k),null}else 2*Z()-f.renderingStartTime>bC&&D!==1073741824&&(k.flags|=128,g=!0,ht(f,!1),k.lanes=4194304);f.isBackwards?(y.sibling=k.child,k.child=y):(D=f.last,D!==null?D.sibling=y:k.child=y,f.last=y)}return f.tail!==null?(k=f.tail,f.rendering=k,f.tail=k.sibling,f.renderingStartTime=Z(),k.sibling=null,D=mm.current,Zi(mm,g?D&1|2:D&1),k):(fo(k),null);case 22:case 23:return Jr(),g=k.memoizedState!==null,l!==null&&l.memoizedState!==null!==g&&(k.flags|=8192),g&&k.mode&1?Ml&1073741824&&(fo(k),k.subtreeFlags&6&&(k.flags|=8192)):fo(k),null;case 24:return null;case 25:return null}throw Error(n(156,k.tag))}function Qc(l,k){switch(oE(k),k.tag){case 1:return oo(k.type)&&zG(),l=k.flags,l&65536?(k.flags=l&-65537|128,k):null;case 3:return TE(),$i(Ho),$i(Vm),Ol(),l=k.flags,l&65536&&!(l&128)?(k.flags=l&-65537|128,k):null;case 5:return FG(k),null;case 13:if($i(mm),l=k.memoizedState,l!==null&&l.dehydrated!==null){if(k.alternate===null)throw Error(n(340));SE()}return l=k.flags,l&65536?(k.flags=l&-65537|128,k):null;case 19:return $i(mm),null;case 4:return TE(),null;case 10:return oe(k.type._context),null;case 22:case 23:return Jr(),null;case 24:return null;default:return null}}var GI=!1,Ko=!1,Wc=typeof WeakSet=="function"?WeakSet:Set,Vn=null;function OC(l,k){var D=l.ref;if(D!==null)if(typeof D=="function")try{D(null)}catch(g){am(l,k,g)}else D.current=null}function Ir(l,k,D){try{D()}catch(g){am(l,k,g)}}var rp=!1;function Xc(l,k){if(lG=mo,l=Gm(),Sm(l)){if("selectionStart"in l)var D={start:l.selectionStart,end:l.selectionEnd};else A:{D=(D=l.ownerDocument)&&D.defaultView||window;var g=D.getSelection&&D.getSelection();if(g&&g.rangeCount!==0){D=g.anchorNode;var c=g.anchorOffset,f=g.focusNode;g=g.focusOffset;try{D.nodeType,f.nodeType}catch{D=null;break A}var y=0,EA=-1,CA=-1,RA=0,jn=0,Hn=l,Dn=null;n:for(;;){for(var xn;Hn!==D||c!==0&&Hn.nodeType!==3||(EA=y+c),Hn!==f||g!==0&&Hn.nodeType!==3||(CA=y+g),Hn.nodeType===3&&(y+=Hn.nodeValue.length),(xn=Hn.firstChild)!==null;)Dn=Hn,Hn=xn;for(;;){if(Hn===l)break n;if(Dn===D&&++RA===c&&(EA=y),Dn===f&&++jn===g&&(CA=y),(xn=Hn.nextSibling)!==null)break;Hn=Dn,Dn=Hn.parentNode}Hn=xn}D=EA===-1||CA===-1?null:{start:EA,end:CA}}else D=null}D=D||{start:0,end:0}}else D=null;for(WF={focusedElem:l,selectionRange:D},mo=!1,Vn=k;Vn!==null;)if(k=Vn,l=k.child,(k.subtreeFlags&1028)!==0&&l!==null)l.return=k,Vn=l;else for(;Vn!==null;){k=Vn;try{var Xn=k.alternate;if(k.flags&1024)switch(k.tag){case 0:case 11:case 15:break;case 1:if(Xn!==null){var Zn=Xn.memoizedProps,dm=Xn.memoizedState,dA=k.stateNode,HA=dA.getSnapshotBeforeUpdate(k.elementType===k.type?Zn:tl(k.type,Zn),dm);dA.__reactInternalSnapshotBeforeUpdate=HA}break;case 3:var vA=k.stateNode.containerInfo;vA.nodeType===1?vA.textContent="":vA.nodeType===9&&vA.documentElement&&vA.removeChild(vA.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(n(163))}}catch(sn){am(k,k.return,sn)}if(l=k.sibling,l!==null){l.return=k.return,Vn=l;break}Vn=k.return}return Xn=rp,rp=!1,Xn}function gt(l,k,D){var g=k.updateQueue;if(g=g!==null?g.lastEffect:null,g!==null){var c=g=g.next;do{if((c.tag&l)===l){var f=c.destroy;c.destroy=void 0,f!==void 0&&Ir(k,D,f)}c=c.next}while(c!==g)}}function eI(l,k){if(k=k.updateQueue,k=k!==null?k.lastEffect:null,k!==null){var D=k=k.next;do{if((D.tag&l)===l){var g=D.create;D.destroy=g()}D=D.next}while(D!==k)}}function jr(l){var k=l.ref;if(k!==null){var D=l.stateNode;switch(l.tag){case 5:l=D;break;default:l=D}typeof k=="function"?k(l):k.current=l}}function hp(l){var k=l.alternate;k!==null&&(l.alternate=null,hp(k)),l.child=null,l.deletions=null,l.sibling=null,l.tag===5&&(k=l.stateNode,k!==null&&(delete k[Km],delete k[EG],delete k[ek],delete k[aC],delete k[uC])),l.stateNode=null,l.return=null,l.dependencies=null,l.memoizedProps=null,l.memoizedState=null,l.pendingProps=null,l.stateNode=null,l.updateQueue=null}function gp(l){return l.tag===5||l.tag===3||l.tag===4}function pp(l){A:for(;;){for(;l.sibling===null;){if(l.return===null||gp(l.return))return null;l=l.return}for(l.sibling.return=l.return,l=l.sibling;l.tag!==5&&l.tag!==6&&l.tag!==18;){if(l.flags&2||l.child===null||l.tag===4)continue A;l.child.return=l,l=l.child}if(!(l.flags&2))return l.stateNode}}function Hr(l,k,D){var g=l.tag;if(g===5||g===6)l=l.stateNode,k?D.nodeType===8?D.parentNode.insertBefore(l,k):D.insertBefore(l,k):(D.nodeType===8?(k=D.parentNode,k.insertBefore(l,D)):(k=D,k.appendChild(l)),D=D._reactRootContainer,D!=null||k.onclick!==null||(k.onclick=ZG));else if(g!==4&&(l=l.child,l!==null))for(Hr(l,k,D),l=l.sibling;l!==null;)Hr(l,k,D),l=l.sibling}function rr(l,k,D){var g=l.tag;if(g===5||g===6)l=l.stateNode,k?D.insertBefore(l,k):D.appendChild(l);else if(g!==4&&(l=l.child,l!==null))for(rr(l,k,D),l=l.sibling;l!==null;)rr(l,k,D),l=l.sibling}var po=null,tE=!1;function IG(l,k,D){for(D=D.child;D!==null;)sp(l,k,D),D=D.sibling}function sp(l,k,D){if(z&&typeof z.onCommitFiberUnmount=="function")try{z.onCommitFiberUnmount(VA,D)}catch{}switch(D.tag){case 5:Ko||OC(D,k);case 6:var g=po,c=tE;po=null,IG(l,k,D),po=g,tE=c,po!==null&&(tE?(l=po,D=D.stateNode,l.nodeType===8?l.parentNode.removeChild(D):l.removeChild(D)):po.removeChild(D.stateNode));break;case 18:po!==null&&(tE?(l=po,D=D.stateNode,l.nodeType===8?BC(l.parentNode,D):l.nodeType===1&&BC(l,D),JE(l)):BC(po,D.stateNode));break;case 4:g=po,c=tE,po=D.stateNode.containerInfo,tE=!0,IG(l,k,D),po=g,tE=c;break;case 0:case 11:case 14:case 15:if(!Ko&&(g=D.updateQueue,g!==null&&(g=g.lastEffect,g!==null))){c=g=g.next;do{var f=c,y=f.destroy;f=f.tag,y!==void 0&&(f&2||f&4)&&Ir(D,k,y),c=c.next}while(c!==g)}IG(l,k,D);break;case 1:if(!Ko&&(OC(D,k),g=D.stateNode,typeof g.componentWillUnmount=="function"))try{g.props=D.memoizedProps,g.state=D.memoizedState,g.componentWillUnmount()}catch(EA){am(D,k,EA)}IG(l,k,D);break;case 21:IG(l,k,D);break;case 22:D.mode&1?(Ko=(g=Ko)||D.memoizedState!==null,IG(l,k,D),Ko=g):IG(l,k,D);break;default:IG(l,k,D)}}function Bp(l){var k=l.updateQueue;if(k!==null){l.updateQueue=null;var D=l.stateNode;D===null&&(D=l.stateNode=new Wc),k.forEach(function(g){var c=mJ.bind(null,l,g);D.has(g)||(D.add(g),g.then(c,c))})}}function DE(l,k){var D=k.deletions;if(D!==null)for(var g=0;gc&&(c=y),g&=~f}if(g=c,g=Z()-g,g=(120>g?120:480>g?480:1080>g?1080:1920>g?1920:3e3>g?3e3:4320>g?4320:1960*Zc(g/1960))-g,10l?16:l,HG===null)var g=!1;else{if(l=HG,HG=null,II=0,Ri&6)throw Error(n(331));var c=Ri;for(Ri|=4,Vn=l.current;Vn!==null;){var f=Vn,y=f.child;if(Vn.flags&16){var EA=f.deletions;if(EA!==null){for(var CA=0;CAZ()-pr?re(l,0):gr|=D),Il(l,k)}function Np(l,k){k===0&&(l.mode&1?(k=jA,jA<<=1,!(jA&130023424)&&(jA=4194304)):k=1);var D=Yo();l=ql(l,k),l!==null&&($A(l,k,D),Il(l,D))}function iJ(l){var k=l.memoizedState,D=0;k!==null&&(D=k.retryLane),Np(l,D)}function mJ(l,k){var D=0;switch(l.tag){case 13:var g=l.stateNode,c=l.memoizedState;c!==null&&(D=c.retryLane);break;case 19:g=l.stateNode;break;default:throw Error(n(314))}g!==null&&g.delete(k),Np(l,D)}var Tp;Tp=function(l,k,D){if(l!==null)if(l.memoizedProps!==k.pendingProps||Ho.current)ai=!0;else{if(!(l.lanes&D)&&!(k.flags&128))return ai=!1,wc(l,k,D);ai=!!(l.flags&131072)}else ai=!1,im&&k.flags&1048576&&nt(k,fC,k.index);switch(k.lanes=0,k.tag){case 2:var g=k.type;kI(l,k),l=k.pendingProps;var c=Ck(k,Vm.current);NE(k,D),c=ee(null,k,g,l,c,D);var f=et();return k.flags|=1,typeof c=="object"&&c!==null&&typeof c.render=="function"&&c.$$typeof===void 0?(k.tag=1,k.memoizedState=null,k.updateQueue=null,oo(g)?(f=!0,Fk(k)):f=!1,k.memoizedState=c.state!==null&&c.state!==void 0?c.state:null,pi(k),c.updater=yC,k.stateNode=c,c._reactInternals=k,r(k,g,l,D),k=hi(null,k,g,!0,f,D)):(k.tag=0,im&&f&&it(k),yn(null,k,c,D),k=k.child),k;case 16:g=k.elementType;A:{switch(kI(l,k),l=k.pendingProps,c=g._init,g=c(g._payload),k.type=g,c=k.tag=lJ(g),l=tl(g,l),c){case 0:k=Tn(null,k,g,l,D);break A;case 1:k=zn(null,k,g,l,D);break A;case 11:k=Ym(null,k,g,l,D);break A;case 14:k=Xo(null,k,g,tl(g.type,l),D);break A}throw Error(n(306,g,""))}return k;case 0:return g=k.type,c=k.pendingProps,c=k.elementType===g?c:tl(g,c),Tn(l,k,g,c,D);case 1:return g=k.type,c=k.pendingProps,c=k.elementType===g?c:tl(g,c),zn(l,k,g,c,D);case 3:A:{if(ji(k),l===null)throw Error(n(387));g=k.pendingProps,f=k.memoizedState,c=f.element,Hm(l,k),tm(k,g,null,D);var y=k.memoizedState;if(g=y.element,f.isDehydrated)if(f={element:g,isDehydrated:!1,cache:y.cache,pendingSuspenseBoundaries:y.pendingSuspenseBoundaries,transitions:y.transitions},k.updateQueue.baseState=f,k.memoizedState=f,k.flags&256){c=a(Error(n(423)),k),k=vi(l,k,g,D,c);break A}else if(g!==c){c=a(Error(n(424)),k),k=vi(l,k,g,D,c);break A}else for(ho=$l(k.stateNode.containerInfo.firstChild),Qm=k,im=!0,Fl=null,D=me(k,null,g,D),k.child=D;D;)D.flags=D.flags&-3|4096,D=D.sibling;else{if(SE(),g===c){k=uk(l,k,D);break A}yn(l,k,g,D)}k=k.child}return k;case 5:return pk(k),l===null&&dC(k),g=k.type,c=k.pendingProps,f=l!==null?l.memoizedProps:null,y=c.children,XF(g,c)?y=null:f!==null&&XF(g,f)&&(k.flags|=32),xA(l,k),yn(l,k,y,D),k.child;case 6:return l===null&&dC(k),null;case 13:return FE(l,k,D);case 4:return ke(k,k.stateNode.containerInfo),g=k.pendingProps,l===null?k.child=Ik(k,null,g,D):yn(l,k,g,D),k.child;case 11:return g=k.type,c=k.pendingProps,c=k.elementType===g?c:tl(g,c),Ym(l,k,g,c,D);case 7:return yn(l,k,k.pendingProps,D),k.child;case 8:return yn(l,k,k.pendingProps.children,D),k.child;case 12:return yn(l,k,k.pendingProps.children,D),k.child;case 10:A:{if(g=k.type._context,c=k.pendingProps,f=k.memoizedProps,y=c.value,Zi(jk,g._currentValue),g._currentValue=y,f!==null)if(xo(f.value,y)){if(f.children===c.children&&!Ho.current){k=uk(l,k,D);break A}}else for(f=k.child,f!==null&&(f.return=k);f!==null;){var EA=f.dependencies;if(EA!==null){y=f.child;for(var CA=EA.firstContext;CA!==null;){if(CA.context===g){if(f.tag===1){CA=Yi(-1,D&-D),CA.tag=2;var RA=f.updateQueue;if(RA!==null){RA=RA.shared;var jn=RA.pending;jn===null?CA.next=CA:(CA.next=jn.next,jn.next=CA),RA.pending=CA}}f.lanes|=D,CA=f.alternate,CA!==null&&(CA.lanes|=D),le(f.return,D,k),EA.lanes|=D;break}CA=CA.next}}else if(f.tag===10)y=f.type===k.type?null:f.child;else if(f.tag===18){if(y=f.return,y===null)throw Error(n(341));y.lanes|=D,EA=y.alternate,EA!==null&&(EA.lanes|=D),le(y,D,k),y=f.sibling}else y=f.child;if(y!==null)y.return=f;else for(y=f;y!==null;){if(y===k){y=null;break}if(f=y.sibling,f!==null){f.return=y.return,y=f;break}y=y.return}f=y}yn(l,k,c.children,D),k=k.child}return k;case 9:return c=k.type,g=k.pendingProps.children,NE(k,D),c=wo(c),g=g(c),k.flags|=1,yn(l,k,g,D),k.child;case 14:return g=k.type,c=tl(g,k.pendingProps),c=tl(g.type,c),Xo(l,k,g,c,D);case 15:return NA(l,k,k.type,k.pendingProps,D);case 17:return g=k.type,c=k.pendingProps,c=k.elementType===g?c:tl(g,c),kI(l,k),k.tag=1,oo(g)?(l=!0,Fk(k)):l=!1,NE(k,D),e(k,g,c),r(k,g,c,D),hi(null,k,g,!0,l,D);case 19:return Dp(l,k,D);case 22:return uA(l,k,D)}throw Error(n(156,k.tag))};function Pp(l,k){return aA(l,k)}function oJ(l,k,D,g){this.tag=l,this.key=D,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=k,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=g,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Ul(l,k,D,g){return new oJ(l,k,D,g)}function fr(l){return l=l.prototype,!(!l||!l.isReactComponent)}function lJ(l){if(typeof l=="function")return fr(l)?1:0;if(l!=null){if(l=l.$$typeof,l===sA)return 11;if(l===fA)return 14}return 2}function gG(l,k){var D=l.alternate;return D===null?(D=Ul(l.tag,k,l.key,l.mode),D.elementType=l.elementType,D.type=l.type,D.stateNode=l.stateNode,D.alternate=l,l.alternate=D):(D.pendingProps=k,D.type=l.type,D.flags=0,D.subtreeFlags=0,D.deletions=null),D.flags=l.flags&14680064,D.childLanes=l.childLanes,D.lanes=l.lanes,D.child=l.child,D.memoizedProps=l.memoizedProps,D.memoizedState=l.memoizedState,D.updateQueue=l.updateQueue,k=l.dependencies,D.dependencies=k===null?null:{lanes:k.lanes,firstContext:k.firstContext},D.sibling=l.sibling,D.index=l.index,D.ref=l.ref,D}function hI(l,k,D,g,c,f){var y=2;if(g=l,typeof l=="function")fr(l)&&(y=1);else if(typeof l=="string")y=5;else A:switch(l){case b:return ge(D.children,c,f,k);case Q:y=8,c|=8;break;case P:return l=Ul(12,D,k,c|2),l.elementType=P,l.lanes=f,l;case pA:return l=Ul(13,D,k,c),l.elementType=pA,l.lanes=f,l;case LA:return l=Ul(19,D,k,c),l.elementType=LA,l.lanes=f,l;case M:return gI(D,c,f,k);default:if(typeof l=="object"&&l!==null)switch(l.$$typeof){case T:y=10;break A;case W:y=9;break A;case sA:y=11;break A;case fA:y=14;break A;case iA:y=16,g=null;break A}throw Error(n(130,l==null?l:typeof l,""))}return k=Ul(y,D,k,c),k.elementType=l,k.type=g,k.lanes=f,k}function ge(l,k,D,g){return l=Ul(7,l,g,k),l.lanes=D,l}function gI(l,k,D,g){return l=Ul(22,l,g,k),l.elementType=M,l.lanes=D,l.stateNode={isHidden:!1},l}function Kr(l,k,D){return l=Ul(6,l,null,k),l.lanes=D,l}function dr(l,k,D){return k=Ul(4,l.children!==null?l.children:[],l.key,k),k.lanes=D,k.stateNode={containerInfo:l.containerInfo,pendingChildren:null,implementation:l.implementation},k}function EJ(l,k,D,g,c){this.tag=k,this.containerInfo=l,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Wi(0),this.expirationTimes=Wi(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Wi(0),this.identifierPrefix=g,this.onRecoverableError=c,this.mutableSourceEagerHydrationData=null}function Mr(l,k,D,g,c,f,y,EA,CA){return l=new EJ(l,k,D,EA,CA),k===1?(k=1,f===!0&&(k|=8)):k=0,f=Ul(3,null,null,k),l.current=f,f.stateNode=l,f.memoizedState={element:g,isDehydrated:D,cache:null,transitions:null,pendingSuspenseBoundaries:null},pi(f),l}function kJ(l,k,D){var g=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(o)}catch(A){console.error(A)}}return o(),Pr.exports=rJ(),Pr.exports}var zp;function hJ(){if(zp)return JI;zp=1;var o=Da();return JI.createRoot=o.createRoot,JI.hydrateRoot=o.hydrateRoot,JI}var gJ=hJ();Da();var rA=pH(),ct={},_p;function pJ(){if(_p)return ct;_p=1,Object.defineProperty(ct,"__esModule",{value:!0}),ct.parse=G,ct.serialize=I;const o=/^[\u0021-\u003A\u003C\u003E-\u007E]+$/,A=/^[\u0021-\u003A\u003C-\u007E]*$/,n=/^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i,i=/^[\u0020-\u003A\u003D-\u007E]*$/,m=Object.prototype.toString,E=(()=>{const h=function(){};return h.prototype=Object.create(null),h})();function G(h,p){const B=new E,J=h.length;if(J<2)return B;const u=(p==null?void 0:p.decode)||j;let s=0;do{const K=h.indexOf("=",s);if(K===-1)break;const d=h.indexOf(";",s),v=d===-1?J:d;if(K>v){s=h.lastIndexOf(";",K-1)+1;continue}const O=C(h,s,K),x=t(h,K,O),b=h.slice(O,x);if(B[b]===void 0){let Q=C(h,K+1,v),P=t(h,v,Q);const T=u(h.slice(Q,P));B[b]=T}s=v+1}while(sB;){const J=h.charCodeAt(--p);if(J!==32&&J!==9)return p+1}return B}function I(h,p,B){const J=(B==null?void 0:B.encode)||encodeURIComponent;if(!o.test(h))throw new TypeError(`argument name is invalid: ${h}`);const u=J(p);if(!A.test(u))throw new TypeError(`argument val is invalid: ${p}`);let s=h+"="+u;if(!B)return s;if(B.maxAge!==void 0){if(!Number.isInteger(B.maxAge))throw new TypeError(`option maxAge is invalid: ${B.maxAge}`);s+="; Max-Age="+B.maxAge}if(B.domain){if(!n.test(B.domain))throw new TypeError(`option domain is invalid: ${B.domain}`);s+="; Domain="+B.domain}if(B.path){if(!i.test(B.path))throw new TypeError(`option path is invalid: ${B.path}`);s+="; Path="+B.path}if(B.expires){if(!H(B.expires)||!Number.isFinite(B.expires.valueOf()))throw new TypeError(`option expires is invalid: ${B.expires}`);s+="; Expires="+B.expires.toUTCString()}if(B.httpOnly&&(s+="; HttpOnly"),B.secure&&(s+="; Secure"),B.partitioned&&(s+="; Partitioned"),B.priority)switch(typeof B.priority=="string"?B.priority.toLowerCase():void 0){case"low":s+="; Priority=Low";break;case"medium":s+="; Priority=Medium";break;case"high":s+="; Priority=High";break;default:throw new TypeError(`option priority is invalid: ${B.priority}`)}if(B.sameSite)switch(typeof B.sameSite=="string"?B.sameSite.toLowerCase():B.sameSite){case!0:case"strict":s+="; SameSite=Strict";break;case"lax":s+="; SameSite=Lax";break;case"none":s+="; SameSite=None";break;default:throw new TypeError(`option sameSite is invalid: ${B.sameSite}`)}return s}function j(h){if(h.indexOf("%")===-1)return h;try{return decodeURIComponent(h)}catch{return h}}function H(h){return m.call(h)==="[object Date]"}return ct}pJ();/** + * react-router v7.1.3 + * + * 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 $p="popstate";function sJ(o={}){function A(i,m){let{pathname:E,search:G,hash:C}=i.location;return Qh("",{pathname:E,search:G,hash:C},m.state&&m.state.usr||null,m.state&&m.state.key||"default")}function n(i,m){return typeof m=="string"?m:AD(m)}return aJ(A,n,null,o)}function hm(o,A){if(o===!1||o===null||typeof o>"u")throw new Error(A)}function UE(o,A){if(!o){typeof console<"u"&&console.warn(A);try{throw new Error(A)}catch{}}}function BJ(){return Math.random().toString(36).substring(2,10)}function As(o,A){return{usr:o.state,key:o.key,idx:A}}function Qh(o,A,n=null,i){return{pathname:typeof o=="string"?o:o.pathname,search:"",hash:"",...typeof A=="string"?cF(A):A,state:n,key:A&&A.key||i||BJ()}}function AD({pathname:o="/",search:A="",hash:n=""}){return A&&A!=="?"&&(o+=A.charAt(0)==="?"?A:"?"+A),n&&n!=="#"&&(o+=n.charAt(0)==="#"?n:"#"+n),o}function cF(o){let A={};if(o){let n=o.indexOf("#");n>=0&&(A.hash=o.substring(n),o=o.substring(0,n));let i=o.indexOf("?");i>=0&&(A.search=o.substring(i),o=o.substring(0,i)),o&&(A.pathname=o)}return A}function aJ(o,A,n,i={}){let{window:m=document.defaultView,v5Compat:E=!1}=i,G=m.history,C="POP",t=null,I=j();I==null&&(I=0,G.replaceState({...G.state,idx:I},""));function j(){return(G.state||{idx:null}).idx}function H(){C="POP";let u=j(),s=u==null?null:u-I;I=u,t&&t({action:C,location:J.location,delta:s})}function h(u,s){C="PUSH";let K=Qh(J.location,u,s);I=j()+1;let d=As(K,I),v=J.createHref(K);try{G.pushState(d,"",v)}catch(O){if(O instanceof DOMException&&O.name==="DataCloneError")throw O;m.location.assign(v)}E&&t&&t({action:C,location:J.location,delta:1})}function p(u,s){C="REPLACE";let K=Qh(J.location,u,s);I=j();let d=As(K,I),v=J.createHref(K);G.replaceState(d,"",v),E&&t&&t({action:C,location:J.location,delta:0})}function B(u){let s=m.location.origin!=="null"?m.location.origin:m.location.href,K=typeof u=="string"?u:AD(u);return K=K.replace(/ $/,"%20"),hm(s,`No window.location.(origin|href) available to create URL for href: ${K}`),new URL(K,s)}let J={get action(){return C},get location(){return o(m,G)},listen(u){if(t)throw new Error("A history only accepts one active listener");return m.addEventListener($p,H),t=u,()=>{m.removeEventListener($p,H),t=null}},createHref(u){return A(m,u)},createURL:B,encodeLocation(u){let s=B(u);return{pathname:s.pathname,search:s.search,hash:s.hash}},push:h,replace:p,go(u){return G.go(u)}};return J}function Ia(o,A,n="/"){return uJ(o,A,n,!1)}function uJ(o,A,n,i){let m=typeof A=="string"?cF(A):A,E=LG(m.pathname||"/",n);if(E==null)return null;let G=ja(o);cJ(G);let C=null;for(let t=0;C==null&&t{let t={relativePath:C===void 0?E.path||"":C,caseSensitive:E.caseSensitive===!0,childrenIndex:G,route:E};t.relativePath.startsWith("/")&&(hm(t.relativePath.startsWith(i),`Absolute route path "${t.relativePath}" nested under path "${i}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),t.relativePath=t.relativePath.slice(i.length));let I=Tk([i,t.relativePath]),j=n.concat(t);E.children&&E.children.length>0&&(hm(E.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${I}".`),ja(E.children,A,j,I)),!(E.path==null&&!E.index)&&A.push({path:I,score:LJ(I,E.index),routesMeta:j})};return o.forEach((E,G)=>{var C;if(E.path===""||!((C=E.path)!=null&&C.includes("?")))m(E,G);else for(let t of Ha(E.path))m(E,G,t)}),A}function Ha(o){let A=o.split("/");if(A.length===0)return[];let[n,...i]=A,m=n.endsWith("?"),E=n.replace(/\?$/,"");if(i.length===0)return m?[E,""]:[E];let G=Ha(i.join("/")),C=[];return C.push(...G.map(t=>t===""?E:[E,t].join("/"))),m&&C.push(...G),C.map(t=>o.startsWith("/")&&t===""?"/":t)}function cJ(o){o.sort((A,n)=>A.score!==n.score?n.score-A.score:vJ(A.routesMeta.map(i=>i.childrenIndex),n.routesMeta.map(i=>i.childrenIndex)))}var JJ=/^:[\w-]+$/,qJ=3,fJ=2,KJ=1,dJ=10,MJ=-2,ns=o=>o==="*";function LJ(o,A){let n=o.split("/"),i=n.length;return n.some(ns)&&(i+=MJ),A&&(i+=fJ),n.filter(m=>!ns(m)).reduce((m,E)=>m+(JJ.test(E)?qJ:E===""?KJ:dJ),i)}function vJ(o,A){return o.length===A.length&&o.slice(0,-1).every((i,m)=>i===A[m])?o[o.length-1]-A[A.length-1]:0}function SJ(o,A,n=!1){let{routesMeta:i}=o,m={},E="/",G=[];for(let C=0;C{if(j==="*"){let B=C[h]||"";G=E.slice(0,E.length-B.length).replace(/(.)\/+$/,"$1")}const p=C[h];return H&&!p?I[j]=void 0:I[j]=(p||"").replace(/%2F/g,"/"),I},{}),pathname:E,pathnameBase:G,pattern:o}}function NJ(o,A=!1,n=!0){UE(o==="*"||!o.endsWith("*")||o.endsWith("/*"),`Route path "${o}" will be treated as if it were "${o.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${o.replace(/\*$/,"/*")}".`);let i=[],m="^"+o.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(G,C,t)=>(i.push({paramName:C,isOptional:t!=null}),t?"/?([^\\/]+)?":"/([^\\/]+)"));return o.endsWith("*")?(i.push({paramName:"*"}),m+=o==="*"||o==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?m+="\\/*$":o!==""&&o!=="/"&&(m+="(?:(?=\\/|$))"),[new RegExp(m,A?void 0:"i"),i]}function TJ(o){try{return o.split("/").map(A=>decodeURIComponent(A).replace(/\//g,"%2F")).join("/")}catch(A){return UE(!1,`The URL path "${o}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${A}).`),o}}function LG(o,A){if(A==="/")return o;if(!o.toLowerCase().startsWith(A.toLowerCase()))return null;let n=A.endsWith("/")?A.length-1:A.length,i=o.charAt(n);return i&&i!=="/"?null:o.slice(n)||"/"}function PJ(o,A="/"){let{pathname:n,search:i="",hash:m=""}=typeof o=="string"?cF(o):o;return{pathname:n?n.startsWith("/")?n:RJ(n,A):A,search:xJ(i),hash:bJ(m)}}function RJ(o,A){let n=A.replace(/\/+$/,"").split("/");return o.split("/").forEach(m=>{m===".."?n.length>1&&n.pop():m!=="."&&n.push(m)}),n.length>1?n.join("/"):"/"}function Or(o,A,n,i){return`Cannot include a '${o}' character in a manually specified \`to.${A}\` field [${JSON.stringify(i)}]. 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 yJ(o){return o.filter((A,n)=>n===0||A.route.path&&A.route.path.length>0)}function ra(o){let A=yJ(o);return A.map((n,i)=>i===A.length-1?n.pathname:n.pathnameBase)}function ha(o,A,n,i=!1){let m;typeof o=="string"?m=cF(o):(m={...o},hm(!m.pathname||!m.pathname.includes("?"),Or("?","pathname","search",m)),hm(!m.pathname||!m.pathname.includes("#"),Or("#","pathname","hash",m)),hm(!m.search||!m.search.includes("#"),Or("#","search","hash",m)));let E=o===""||m.pathname==="",G=E?"/":m.pathname,C;if(G==null)C=n;else{let H=A.length-1;if(!i&&G.startsWith("..")){let h=G.split("/");for(;h[0]==="..";)h.shift(),H-=1;m.pathname=h.join("/")}C=H>=0?A[H]:"/"}let t=PJ(m,C),I=G&&G!=="/"&&G.endsWith("/"),j=(E||G===".")&&n.endsWith("/");return!t.pathname.endsWith("/")&&(I||j)&&(t.pathname+="/"),t}var Tk=o=>o.join("/").replace(/\/\/+/g,"/"),OJ=o=>o.replace(/\/+$/,"").replace(/^\/*/,"/"),xJ=o=>!o||o==="?"?"":o.startsWith("?")?o:"?"+o,bJ=o=>!o||o==="#"?"":o.startsWith("#")?o:"#"+o;function UJ(o){return o!=null&&typeof o.status=="number"&&typeof o.statusText=="string"&&typeof o.internal=="boolean"&&"data"in o}var ga=["POST","PUT","PATCH","DELETE"];new Set(ga);var wJ=["GET",...ga];new Set(wJ);var JF=rA.createContext(null);JF.displayName="DataRouter";var sH=rA.createContext(null);sH.displayName="DataRouterState";var pa=rA.createContext({isTransitioning:!1});pa.displayName="ViewTransition";var VJ=rA.createContext(new Map);VJ.displayName="Fetchers";var QJ=rA.createContext(null);QJ.displayName="Await";var VE=rA.createContext(null);VE.displayName="Navigation";var pD=rA.createContext(null);pD.displayName="Location";var Uk=rA.createContext({outlet:null,matches:[],isDataRoute:!1});Uk.displayName="Route";var Dg=rA.createContext(null);Dg.displayName="RouteError";function WJ(o,{relative:A}={}){hm(sD(),"useHref() may be used only in the context of a component.");let{basename:n,navigator:i}=rA.useContext(VE),{hash:m,pathname:E,search:G}=BD(o,{relative:A}),C=E;return n!=="/"&&(C=E==="/"?n:Tk([n,E])),i.createHref({pathname:C,search:G,hash:m})}function sD(){return rA.useContext(pD)!=null}function ze(){return hm(sD(),"useLocation() may be used only in the context of a component."),rA.useContext(pD).location}var sa="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function Ba(o){rA.useContext(VE).static||rA.useLayoutEffect(o)}function XJ(){let{isDataRoute:o}=rA.useContext(Uk);return o?kq():YJ()}function YJ(){hm(sD(),"useNavigate() may be used only in the context of a component.");let o=rA.useContext(JF),{basename:A,navigator:n}=rA.useContext(VE),{matches:i}=rA.useContext(Uk),{pathname:m}=ze(),E=JSON.stringify(ra(i)),G=rA.useRef(!1);return Ba(()=>{G.current=!0}),rA.useCallback((t,I={})=>{if(UE(G.current,sa),!G.current)return;if(typeof t=="number"){n.go(t);return}let j=ha(t,JSON.parse(E),m,I.relative==="path");o==null&&A!=="/"&&(j.pathname=j.pathname==="/"?A:Tk([A,j.pathname])),(I.replace?n.replace:n.push)(j,I.state,I)},[A,n,E,m,o])}rA.createContext(null);function BD(o,{relative:A}={}){let{matches:n}=rA.useContext(Uk),{pathname:i}=ze(),m=JSON.stringify(ra(n));return rA.useMemo(()=>ha(o,JSON.parse(m),i,A==="path"),[o,m,i,A])}function ZJ(o,A){return aa(o,A)}function aa(o,A,n,i){var s;hm(sD(),"useRoutes() may be used only in the context of a component.");let{navigator:m}=rA.useContext(VE),{matches:E}=rA.useContext(Uk),G=E[E.length-1],C=G?G.params:{},t=G?G.pathname:"/",I=G?G.pathnameBase:"/",j=G&&G.route;{let K=j&&j.path||"";ua(t,!j||K.endsWith("*")||K.endsWith("*?"),`You rendered descendant (or called \`useRoutes()\`) at "${t}" (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=ze(),h;if(A){let K=typeof A=="string"?cF(A):A;hm(I==="/"||((s=K.pathname)==null?void 0:s.startsWith(I)),`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 "${I}" but pathname "${K.pathname}" was given in the \`location\` prop.`),h=K}else h=H;let p=h.pathname||"/",B=p;if(I!=="/"){let K=I.replace(/^\//,"").split("/");B="/"+p.replace(/^\//,"").split("/").slice(K.length).join("/")}let J=Ia(o,{pathname:B});UE(j||J!=null,`No routes matched location "${h.pathname}${h.search}${h.hash}" `),UE(J==null||J[J.length-1].route.element!==void 0||J[J.length-1].route.Component!==void 0||J[J.length-1].route.lazy!==void 0,`Matched leaf route at location "${h.pathname}${h.search}${h.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 u=nq(J&&J.map(K=>Object.assign({},K,{params:Object.assign({},C,K.params),pathname:Tk([I,m.encodeLocation?m.encodeLocation(K.pathname).pathname:K.pathname]),pathnameBase:K.pathnameBase==="/"?I:Tk([I,m.encodeLocation?m.encodeLocation(K.pathnameBase).pathname:K.pathnameBase])})),E,n,i);return A&&u?rA.createElement(pD.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",...h},navigationType:"POP"}},u):u}function zJ(){let o=Eq(),A=UJ(o)?`${o.status} ${o.statusText}`:o instanceof Error?o.message:JSON.stringify(o),n=o instanceof Error?o.stack:null,i="rgba(200,200,200, 0.5)",m={padding:"0.5rem",backgroundColor:i},E={padding:"2px 4px",backgroundColor:i},G=null;return console.error("Error handled by React Router default ErrorBoundary:",o),G=rA.createElement(rA.Fragment,null,rA.createElement("p",null,"💿 Hey developer 👋"),rA.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",rA.createElement("code",{style:E},"ErrorBoundary")," or"," ",rA.createElement("code",{style:E},"errorElement")," prop on your route.")),rA.createElement(rA.Fragment,null,rA.createElement("h2",null,"Unexpected Application Error!"),rA.createElement("h3",{style:{fontStyle:"italic"}},A),n?rA.createElement("pre",{style:m},n):null,G)}var _J=rA.createElement(zJ,null),$J=class extends rA.Component{constructor(o){super(o),this.state={location:o.location,revalidation:o.revalidation,error:o.error}}static getDerivedStateFromError(o){return{error:o}}static getDerivedStateFromProps(o,A){return A.location!==o.location||A.revalidation!=="idle"&&o.revalidation==="idle"?{error:o.error,location:o.location,revalidation:o.revalidation}:{error:o.error!==void 0?o.error:A.error,location:A.location,revalidation:o.revalidation||A.revalidation}}componentDidCatch(o,A){console.error("React Router caught the following error during render",o,A)}render(){return this.state.error!==void 0?rA.createElement(Uk.Provider,{value:this.props.routeContext},rA.createElement(Dg.Provider,{value:this.state.error,children:this.props.component})):this.props.children}};function Aq({routeContext:o,match:A,children:n}){let i=rA.useContext(JF);return i&&i.static&&i.staticContext&&(A.route.errorElement||A.route.ErrorBoundary)&&(i.staticContext._deepestRenderedBoundaryId=A.route.id),rA.createElement(Uk.Provider,{value:o},n)}function nq(o,A=[],n=null,i=null){if(o==null){if(!n)return null;if(n.errors)o=n.matches;else if(A.length===0&&!n.initialized&&n.matches.length>0)o=n.matches;else return null}let m=o,E=n==null?void 0:n.errors;if(E!=null){let t=m.findIndex(I=>I.route.id&&(E==null?void 0:E[I.route.id])!==void 0);hm(t>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(E).join(",")}`),m=m.slice(0,Math.min(m.length,t+1))}let G=!1,C=-1;if(n)for(let t=0;t=0?m=m.slice(0,C+1):m=[m[0]];break}}}return m.reduceRight((t,I,j)=>{let H,h=!1,p=null,B=null;n&&(H=E&&I.route.id?E[I.route.id]:void 0,p=I.route.errorElement||_J,G&&(C<0&&j===0?(ua("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),h=!0,B=null):C===j&&(h=!0,B=I.route.hydrateFallbackElement||null)));let J=A.concat(m.slice(0,j+1)),u=()=>{let s;return H?s=p:h?s=B:I.route.Component?s=rA.createElement(I.route.Component,null):I.route.element?s=I.route.element:s=t,rA.createElement(Aq,{match:I,routeContext:{outlet:t,matches:J,isDataRoute:n!=null},children:s})};return n&&(I.route.ErrorBoundary||I.route.errorElement||j===0)?rA.createElement($J,{location:n.location,revalidation:n.revalidation,component:p,error:H,children:u(),routeContext:{outlet:null,matches:J,isDataRoute:!0}}):u()},null)}function Ig(o){return`${o} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function iq(o){let A=rA.useContext(JF);return hm(A,Ig(o)),A}function mq(o){let A=rA.useContext(sH);return hm(A,Ig(o)),A}function oq(o){let A=rA.useContext(Uk);return hm(A,Ig(o)),A}function jg(o){let A=oq(o),n=A.matches[A.matches.length-1];return hm(n.route.id,`${o} can only be used on routes that contain a unique "id"`),n.route.id}function lq(){return jg("useRouteId")}function Eq(){var i;let o=rA.useContext(Dg),A=mq("useRouteError"),n=jg("useRouteError");return o!==void 0?o:(i=A.errors)==null?void 0:i[n]}function kq(){let{router:o}=iq("useNavigate"),A=jg("useNavigate"),n=rA.useRef(!1);return Ba(()=>{n.current=!0}),rA.useCallback(async(m,E={})=>{UE(n.current,sa),n.current&&(typeof m=="number"?o.navigate(m):await o.navigate(m,{fromRouteId:A,...E}))},[o,A])}var is={};function ua(o,A,n){!A&&!is[o]&&(is[o]=!0,UE(!1,n))}rA.memo(Gq);function Gq({routes:o,future:A,state:n}){return aa(o,void 0,n,A)}function CF(o){hm(!1,"A is only ever to be used as the child of element, never rendered directly. Please wrap your in a .")}function eq({basename:o="/",children:A=null,location:n,navigationType:i="POP",navigator:m,static:E=!1}){hm(!sD(),"You cannot render a inside another . You should never have more than one in your app.");let G=o.replace(/^\/*/,"/"),C=rA.useMemo(()=>({basename:G,navigator:m,static:E,future:{}}),[G,m,E]);typeof n=="string"&&(n=cF(n));let{pathname:t="/",search:I="",hash:j="",state:H=null,key:h="default"}=n,p=rA.useMemo(()=>{let B=LG(t,G);return B==null?null:{location:{pathname:B,search:I,hash:j,state:H,key:h},navigationType:i}},[G,t,I,j,H,h,i]);return UE(p!=null,` is not able to match the URL "${t}${I}${j}" because it does not start with the basename, so the won't render anything.`),p==null?null:rA.createElement(VE.Provider,{value:C},rA.createElement(pD.Provider,{children:A,value:p}))}function Cq({children:o,location:A}){return ZJ(Wh(o),A)}function Wh(o,A=[]){let n=[];return rA.Children.forEach(o,(i,m)=>{if(!rA.isValidElement(i))return;let E=[...A,m];if(i.type===rA.Fragment){n.push.apply(n,Wh(i.props.children,E));return}hm(i.type===CF,`[${typeof i.type=="string"?i.type:i.type.name}] is not a component. All component children of must be a or `),hm(!i.props.index||!i.props.children,"An index route cannot have child routes.");let G={id:i.props.id||E.join("-"),caseSensitive:i.props.caseSensitive,element:i.props.element,Component:i.props.Component,index:i.props.index,path:i.props.path,loader:i.props.loader,action:i.props.action,hydrateFallbackElement:i.props.hydrateFallbackElement,HydrateFallback:i.props.HydrateFallback,errorElement:i.props.errorElement,ErrorBoundary:i.props.ErrorBoundary,hasErrorBoundary:i.props.hasErrorBoundary===!0||i.props.ErrorBoundary!=null||i.props.errorElement!=null,shouldRevalidate:i.props.shouldRevalidate,handle:i.props.handle,lazy:i.props.lazy};i.props.children&&(G.children=Wh(i.props.children,E)),n.push(G)}),n}var Bj="get",aj="application/x-www-form-urlencoded";function BH(o){return o!=null&&typeof o.tagName=="string"}function Fq(o){return BH(o)&&o.tagName.toLowerCase()==="button"}function tq(o){return BH(o)&&o.tagName.toLowerCase()==="form"}function Dq(o){return BH(o)&&o.tagName.toLowerCase()==="input"}function Iq(o){return!!(o.metaKey||o.altKey||o.ctrlKey||o.shiftKey)}function jq(o,A){return o.button===0&&(!A||A==="_self")&&!Iq(o)}var qI=null;function Hq(){if(qI===null)try{new FormData(document.createElement("form"),0),qI=!1}catch{qI=!0}return qI}var rq=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function xr(o){return o!=null&&!rq.has(o)?(UE(!1,`"${o}" is not a valid \`encType\` for \`
\`/\`\` and will default to "${aj}"`),null):o}function hq(o,A){let n,i,m,E,G;if(tq(o)){let C=o.getAttribute("action");i=C?LG(C,A):null,n=o.getAttribute("method")||Bj,m=xr(o.getAttribute("enctype"))||aj,E=new FormData(o)}else if(Fq(o)||Dq(o)&&(o.type==="submit"||o.type==="image")){let C=o.form;if(C==null)throw new Error('Cannot submit a