diff --git a/CHANGELOG.md b/CHANGELOG.md index b6275834c..088fb154f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,8 @@ All notable changes to Bambuddy will be documented in this file. - **Print Log page: per-row delete (#1687 part 1, reported by @IndividualGhost1905)** — Reporter noted that the existing "Also remove this print from Quick Stats" toggle on archive delete is one-shot: if you tick "keep stats" at delete time, there was no later way to drop the row from /stats; and rows that aren't tied to an archive (errors, aborts, manual entries) had no delete affordance at all. **Fix:** every row in the Archives → Print Log table now has a trash icon next to the filament cell, gated on `archives:delete_own` (own rows) or `archives:delete_all` (any row), matching the archive-delete permission shape. Click → confirm modal → row is gone, and because /archives/stats aggregates over `PrintLogEntry` the filament / time / cost contribution drops out of Quick Stats in the same response cycle. The matching archive (if any) is untouched — the log row is a sibling, not a child. **Backend:** new `DELETE /print-log/{entry_id}` mirrors `delete_archive`'s ownership flow via `require_ownership_permission(ARCHIVES_DELETE_ALL, ARCHIVES_DELETE_OWN)`; owners can drop their own rows, admins can drop any row, missing IDs return 404 rather than 200-silently. **Frontend:** new `deletePrintLogEntry` API helper, per-row mutation that invalidates both `print-log` and `archives-stats` query keys so the totals re-render without a manual refresh. **i18n:** 4 new keys (`deleteEntryTitle`, `deleteEntryConfirm`, `entryDeleted`, `entryDeleteFailed`) translated across all 11 locales (de / en / es / fr / it / ja / ko / pt-BR / tr / zh-CN / zh-TW). **Tests:** 3 backend integration cases — delete drops the row from /stats while keeping the linked archive listed, missing ID returns 404, delete-one does not touch siblings (regression guard against an accidental `delete(PrintLogEntry)` without a `where`). Frontend ArchivesPage / PrintLogModal vitests stay green (31 / 31). i18n parity green (5099 leaves × 11 locales). Issue #1687 also asks for per-row tagging (already covered by `EditArchiveModal`'s tags field) and per-row filament-usage-history edits (deferred — see the issue thread for the reasoning). ### Fixed +- **AMS slots with a spool loaded but no material configured now show "?" instead of "Empty" (#1694, reported by @kleinwareio)** — On a 3-AMS P1S the reporter's screenshot showed AMS-C slots labelled "Empty" even though spools were physically loaded; OrcaSlicer's Device view showed the same slots as loaded. **Root cause:** the compact label below the AMS slot circle in PrintersPage rendered `tray.tray_type || t('ams.slotEmpty')`, falling back to "Empty" whenever the printer firmware hadn't been told which material is in the slot. The codebase already had a `getEmptySlotKind` helper that distinguishes `'physical'` (firmware confirmed empty via state 9/10) from `'reset'` (tray_type absent but firmware hasn't confirmed empty — i.e. spool loaded, just unassigned). The hover-card / circle border already used that distinction (line 814+ comment); the compact label did not. **Fix:** label now branches on `emptyKind` — `'physical'` keeps "Empty" (the firmware-confirmed empty case), `'reset'` shows "?" (matching the slicer's own convention for "loaded but unknown material"). External / VT tray label is unchanged (external trays have no "configured/unconfigured" distinction — they're either loaded or not). The SpoolBuddy kiosk's `AmsUnitCard` was carrying the same bug and got the same fix (mirror of `getEmptySlotKind`, "?" vs "Empty" label, tooltip "Spool loaded — slot not configured"). **i18n:** new `ams.slotUnconfigured: '?'` key added to all 11 locales (de / en / es / fr / it / ja / ko / pt-BR / tr / zh-CN / zh-TW) — value is universal so it's identical in every locale. The existing `ams.emptySlotReset = 'No filament assigned'` tooltip surface in FilamentHoverCard already covers the "what does this mean" question on hover, so no new tooltip key needed for the main card. **Tests:** AmsUnitCard vitest gains `shows "?" for loaded-but-unconfigured slot (#1694)` pinning both branches in one render (one slot with `state: 9` → "Empty", one with no state → "?"). Existing AMS tests stay green (9/9 SpoolBuddy AmsUnitCard; AMS load/unload page tests untouched and green); i18n parity green (5100 leaves × 11 locales); frontend build clean; ESLint clean. + - **Virtual Printer MQTT no longer disconnects idle OrcaSlicer at keepalive×1.5 (#1548 round 2, reported by @hollajandro)** — Round 1 (commits b6636053 + 4ffefa60) shipped the keepalive parser + 1.5× idle disconnect per MQTT spec §4.4 and a per-minute status-push diagnostic. Reporter's follow-up pcap proved the round-1 logic was correct as designed, but exposed the actual root cause: the same OrcaSlicer install which stays connected to a real Bambu P1S indefinitely sends zero MQTT packets after the initial CONNECT / SUBSCRIBE / pushall / get_version burst — no PINGREQ at all — so any §4.4-compliant server disconnects it at `keep_alive × 1.5`. **Real Bambu firmware does not enforce §4.4** (verified: the reporter's identical Orca install holds an idle session against real hardware on the same network), so spec compliance is itself the regression. **Fix:** after CONNECT/auth, drop the application-level read timeout entirely (`read_timeout = None`) and set `SO_KEEPALIVE` on the underlying socket so the OS TCP stack detects truly dead connections within a few minutes. The 60 s pre-CONNECT timeout is preserved — a client that opens TCP but never sends CONNECT still gets reaped to prevent half-open resource leaks. Negotiated keepalive is still parsed and now logged at INFO ("MQTT client … authenticated (negotiated keepalive=Xs, idle disconnect disabled)") for support-bundle visibility. **Tests:** TestHandleClientIdleConnection adds `test_idle_client_stays_open_past_one_and_a_half_times_keepalive` (negotiates keep_alive=2, sits idle for 4 s, asserts handler still running and writer not closed — direct round-1 inversion), `test_so_keepalive_set_on_socket_after_connect` pins `setsockopt(SOL_SOCKET, SO_KEEPALIVE, 1)` runs on the wrapped socket the moment auth succeeds. PINGREQ test docstring updated since there's no longer a timeout for it to "reset". All 33 VP MQTT server tests green; ruff clean. After this ships, OrcaSlicer should stay connected to the VP indefinitely while idle and reconnect cleanly on real network drops. - **System page now reports the container's uptime / boot time, not the host's (#1690, reported by @IndividualGhost1905)** — Reporter on Proxmox LXC observed that System → Uptime / Boot Time matched the Proxmox host's values, not the container's. **Root cause:** `psutil.boot_time()` reads `/proc/stat:btime`, which on shared-kernel containers (Docker, LXC) is the host kernel's boot time — leaking the host's lifecycle into Bambuddy's UI. **Fix:** read PID 1's create_time instead — `psutil.Process(1).create_time()` returns the POSIX timestamp of the init/entrypoint process, which in a container is the container's start time, and on bare metal / VMs is the host init (effectively identical to `psutil.boot_time()` within a sub-second). Defensive `psutil.Error` / `OSError` fallback to the old `psutil.boot_time()` for the rare case where /proc/1/stat is unreadable (locked-down container, custom seccomp policy). No frontend / i18n change — the field shape is unchanged, only the value is now correct on container installs. **Tests:** 2 new integration cases — one pins that the route reads `Process(1).create_time` and that the response uses that timestamp (not `boot_time`), the other pins the fallback path via a real `psutil.NoSuchProcess(1)` so the endpoint still returns 200 with the best-available answer. All 8 pre-existing system-info tests updated to also mock the new code path; full system API suite 20/20 green; ruff clean. diff --git a/frontend/src/__tests__/components/spoolbuddy/AmsUnitCard.test.tsx b/frontend/src/__tests__/components/spoolbuddy/AmsUnitCard.test.tsx index 007e9a468..161fae297 100644 --- a/frontend/src/__tests__/components/spoolbuddy/AmsUnitCard.test.tsx +++ b/frontend/src/__tests__/components/spoolbuddy/AmsUnitCard.test.tsx @@ -50,7 +50,9 @@ function makeUnit(overrides: Partial = {}): AMSUnit { makeTray({ id: 0, tray_color: 'FF0000FF', tray_type: 'PLA', remain: 80 }), makeTray({ id: 1, tray_color: '00FF00FF', tray_type: 'PETG', remain: 50 }), makeTray({ id: 2, tray_color: '0000FFFF', tray_type: 'ABS', remain: 10 }), - makeTray({ id: 3, tray_color: null, tray_type: '', remain: -1 }), + // state=9 = firmware-confirmed empty (#1694: vs state=null which would + // be "spool loaded but unconfigured", labelled "?" in the UI). + makeTray({ id: 3, tray_color: null, tray_type: '', remain: -1, state: 9 } as Partial & { state: number }), ], serial_number: 'AMS001', sw_ver: '1.0.0', @@ -88,11 +90,30 @@ describe('AmsUnitCard', () => { expect(screen.getByText('ABS')).toBeDefined(); }); - it('shows "Empty" for empty slot', () => { + it('shows "Empty" for firmware-confirmed empty slot (state 9/10)', () => { render(); expect(screen.getByText('Empty')).toBeDefined(); }); + it('shows "?" for loaded-but-unconfigured slot (#1694)', () => { + // No state reported by firmware + empty tray_type = spool loaded into the + // slot but no material assigned. Reporter on a 3-AMS P1S saw these slots + // mislabelled as "Empty" because the prior logic only checked tray_type. + const unit = makeUnit({ + tray: [ + makeTray({ id: 0, tray_type: 'PLA', remain: 80 }), + makeTray({ id: 1, tray_color: null, tray_type: '', remain: -1 } as Partial & { state?: number }), + makeTray({ id: 2, tray_type: 'ABS', remain: 10 }), + makeTray({ id: 3, tray_color: null, tray_type: '', remain: -1, state: 9 } as Partial & { state: number }), + ], + }); + render(); + expect(screen.getByText('?')).toBeDefined(); + // The firmware-empty slot still reads "Empty" — the two states are visually + // distinct, not collapsed. + expect(screen.getByText('Empty')).toBeDefined(); + }); + it('renders fill level bars for slots with filament', () => { const { container } = render( diff --git a/frontend/src/components/spoolbuddy/AmsUnitCard.tsx b/frontend/src/components/spoolbuddy/AmsUnitCard.tsx index 448dbdcbc..fa0e1fba2 100644 --- a/frontend/src/components/spoolbuddy/AmsUnitCard.tsx +++ b/frontend/src/components/spoolbuddy/AmsUnitCard.tsx @@ -10,6 +10,15 @@ function isTrayEmpty(tray: AMSTray): boolean { return !tray.tray_type || tray.tray_type === ''; } +// Mirror of PrintersPage.getEmptySlotKind (#1694): 'physical' when firmware +// confirms no spool (state 9/10), 'reset' when tray_type is absent but the +// firmware hasn't confirmed empty (= spool loaded, slot just unconfigured). +function getEmptySlotKind(tray: AMSTray): 'physical' | 'reset' | null { + if (tray.tray_type) return null; + const state = (tray as { state?: number | null }).state ?? null; + return state === 9 || state === 10 ? 'physical' : 'reset'; +} + function getAmsName(id: number): string { if (id <= 3) return `AMS ${String.fromCharCode(65 + id)}`; if (id >= 128 && id <= 135) return `AMS HT ${String.fromCharCode(65 + id - 128)}`; @@ -147,6 +156,7 @@ interface SpoolSlotProps { function SpoolSlot({ tray, slotIndex, isActive, fillOverride, spoolmanFill, onClick }: SpoolSlotProps) { const isEmpty = isTrayEmpty(tray); + const emptyKind = getEmptySlotKind(tray); const color = trayColorToCSS(tray.tray_color); const amsFill = tray.remain !== null && tray.remain !== undefined && tray.remain >= 0 ? tray.remain : null; // If inventory says 0% but AMS reports positive remain, prefer AMS (#676) @@ -181,8 +191,11 @@ function SpoolSlot({ tray, slotIndex, isActive, fillOverride, spoolmanFill, onCl {/* Material type */} - - {isEmpty ? 'Empty' : tray.tray_type || 'Unknown'} + + {isEmpty ? (emptyKind === 'reset' ? '?' : 'Empty') : tray.tray_type || 'Unknown'} {/* Fill level bar */} diff --git a/frontend/src/i18n/locales/de.ts b/frontend/src/i18n/locales/de.ts index cb6def2e7..27f158ef5 100644 --- a/frontend/src/i18n/locales/de.ts +++ b/frontend/src/i18n/locales/de.ts @@ -3972,6 +3972,7 @@ export default { empty: 'Leer', emptySlot: 'Leerer Slot', slotEmpty: 'Leer', + slotUnconfigured: '?', emptySlotReset: 'Keine Spule zugewiesen', unknown: 'Unbekannt', humidity: 'Luftfeuchtigkeit', diff --git a/frontend/src/i18n/locales/en.ts b/frontend/src/i18n/locales/en.ts index e4584cd4b..51c5c3e6d 100644 --- a/frontend/src/i18n/locales/en.ts +++ b/frontend/src/i18n/locales/en.ts @@ -3984,6 +3984,7 @@ export default { empty: 'Empty', emptySlot: 'Empty slot', slotEmpty: 'Empty', + slotUnconfigured: '?', emptySlotReset: 'No filament assigned', unknown: 'Unknown', humidity: 'Humidity', diff --git a/frontend/src/i18n/locales/es.ts b/frontend/src/i18n/locales/es.ts index 4b10f90f3..274b49a61 100644 --- a/frontend/src/i18n/locales/es.ts +++ b/frontend/src/i18n/locales/es.ts @@ -3980,6 +3980,7 @@ export default { empty: 'Vacía', emptySlot: 'Ranura vacía', slotEmpty: 'Vacía', + slotUnconfigured: '?', emptySlotReset: 'No hay filamento asignado', unknown: 'Desconocido', humidity: 'Humedad', diff --git a/frontend/src/i18n/locales/fr.ts b/frontend/src/i18n/locales/fr.ts index c40ccd140..e171759c4 100644 --- a/frontend/src/i18n/locales/fr.ts +++ b/frontend/src/i18n/locales/fr.ts @@ -3961,6 +3961,7 @@ export default { empty: 'Vide', emptySlot: 'Slot vide', slotEmpty: 'Vide', + slotUnconfigured: '?', emptySlotReset: 'Aucune bobine assignée', unknown: 'Inconnu', humidity: 'Humidité', diff --git a/frontend/src/i18n/locales/it.ts b/frontend/src/i18n/locales/it.ts index 31e6d8497..10fede42e 100644 --- a/frontend/src/i18n/locales/it.ts +++ b/frontend/src/i18n/locales/it.ts @@ -3960,6 +3960,7 @@ export default { empty: 'Vuoto', emptySlot: 'Slot vuoto', slotEmpty: 'Vuoto', + slotUnconfigured: '?', emptySlotReset: 'Nessuna bobina assegnata', unknown: 'Sconosciuto', humidity: 'Umidità', diff --git a/frontend/src/i18n/locales/ja.ts b/frontend/src/i18n/locales/ja.ts index 77fa85f34..98add058d 100644 --- a/frontend/src/i18n/locales/ja.ts +++ b/frontend/src/i18n/locales/ja.ts @@ -3972,6 +3972,7 @@ export default { empty: '<空>', emptySlot: '空のスロット', slotEmpty: '空', + slotUnconfigured: '?', emptySlotReset: 'スプール未割当', unknown: '不明', humidity: '湿度', diff --git a/frontend/src/i18n/locales/ko.ts b/frontend/src/i18n/locales/ko.ts index 44c893338..7499bb05f 100644 --- a/frontend/src/i18n/locales/ko.ts +++ b/frontend/src/i18n/locales/ko.ts @@ -3764,6 +3764,7 @@ export default { used: '사용됨', remainingUnit: '남음', slotEmpty: '비어 있음', + slotUnconfigured: '?', emptySlotReset: '필라멘트가 할당되지 않음' }, printModal: { diff --git a/frontend/src/i18n/locales/pt-BR.ts b/frontend/src/i18n/locales/pt-BR.ts index d832617ae..5b5f66ee3 100644 --- a/frontend/src/i18n/locales/pt-BR.ts +++ b/frontend/src/i18n/locales/pt-BR.ts @@ -3960,6 +3960,7 @@ export default { empty: 'Vazio', emptySlot: 'Slot vazio', slotEmpty: 'Vazio', + slotUnconfigured: '?', emptySlotReset: 'Nenhum carretel atribuído', unknown: 'Desconhecido', humidity: 'Umidade', diff --git a/frontend/src/i18n/locales/tr.ts b/frontend/src/i18n/locales/tr.ts index 74b9b2df4..e780517cb 100644 --- a/frontend/src/i18n/locales/tr.ts +++ b/frontend/src/i18n/locales/tr.ts @@ -3949,6 +3949,7 @@ export default { empty: 'Boş', emptySlot: 'Boş yuva', slotEmpty: 'Boş', + slotUnconfigured: '?', emptySlotReset: 'Atanmış filament yok', unknown: 'Bilinmiyor', humidity: 'Nem', diff --git a/frontend/src/i18n/locales/zh-CN.ts b/frontend/src/i18n/locales/zh-CN.ts index f87b3279f..d0d98adb7 100644 --- a/frontend/src/i18n/locales/zh-CN.ts +++ b/frontend/src/i18n/locales/zh-CN.ts @@ -3960,6 +3960,7 @@ export default { empty: '空', emptySlot: '空槽位', slotEmpty: '空', + slotUnconfigured: '?', emptySlotReset: '未分配料盘', unknown: '未知', humidity: '湿度', diff --git a/frontend/src/i18n/locales/zh-TW.ts b/frontend/src/i18n/locales/zh-TW.ts index 1464f9c9c..ee87e5b1e 100644 --- a/frontend/src/i18n/locales/zh-TW.ts +++ b/frontend/src/i18n/locales/zh-TW.ts @@ -3960,6 +3960,7 @@ export default { empty: '空', emptySlot: '空槽位', slotEmpty: '空', + slotUnconfigured: '?', emptySlotReset: '未指派線材', unknown: '未知', humidity: '濕度', diff --git a/frontend/src/pages/PrintersPage.tsx b/frontend/src/pages/PrintersPage.tsx index 284e0c5dc..b8c3c573f 100644 --- a/frontend/src/pages/PrintersPage.tsx +++ b/frontend/src/pages/PrintersPage.tsx @@ -3649,7 +3649,7 @@ function PrinterCard({ slotNumber={slotIdx + 1} />
- {tray?.tray_type || t('ams.slotEmpty')} + {tray?.tray_type || t(emptyKind === 'reset' ? 'ams.slotUnconfigured' : 'ams.slotEmpty')}
{/* Fill bar */}
@@ -3977,7 +3977,7 @@ function PrinterCard({ slotNumber={1} />
- {tray?.tray_type || t('ams.slotEmpty')} + {tray?.tray_type || t(emptyKind === 'reset' ? 'ams.slotUnconfigured' : 'ams.slotEmpty')}
{/* Fill bar */}
diff --git a/static/assets/index-Ba6CVgCu.js b/static/assets/index-BBXh9elm.js similarity index 92% rename from static/assets/index-Ba6CVgCu.js rename to static/assets/index-BBXh9elm.js index f3286e932..4840e971a 100644 --- a/static/assets/index-Ba6CVgCu.js +++ b/static/assets/index-BBXh9elm.js @@ -5,47 +5,47 @@ function ume(t,e){for(var a=0;aW||mt[M]!==Et[W]){var Ut=` `+mt[M].replace(" at new "," at ");return h.displayName&&Ut.includes("")&&(Ut=Ut.replace("",h.displayName)),Ut}while(1<=M&&0<=W);break}}}finally{q=!1,Error.prepareStackTrace=_}return(_=h?h.displayName||h.name:"")?B(_):""}function ee(h,w){switch(h.tag){case 26:case 27:case 5:return B(h.type);case 16:return B("Lazy");case 13:return h.child!==w&&w!==null?B("Suspense Fallback"):B("Suspense");case 19:return B("SuspenseList");case 0:case 15:return J(h.type,!1);case 11:return J(h.type.render,!1);case 1:return J(h.type,!0);case 31:return B("Activity");default:return""}}function ae(h){try{var w="",_=null;do w+=ee(h,_),_=h,h=h.return;while(h);return w}catch(M){return` Error generating stack: `+M.message+` -`+M.stack}}var se=Object.prototype.hasOwnProperty,he=t.unstable_scheduleCallback,ue=t.unstable_cancelCallback,fe=t.unstable_shouldYield,G=t.unstable_requestPaint,L=t.unstable_now,re=t.unstable_getCurrentPriorityLevel,ge=t.unstable_ImmediatePriority,be=t.unstable_UserBlockingPriority,ve=t.unstable_NormalPriority,De=t.unstable_LowPriority,Me=t.unstable_IdlePriority,Te=t.log,Ue=t.unstable_setDisableYieldValue,Ne=null,Ie=null;function Re(h){if(typeof Te=="function"&&Ue(h),Ie&&typeof Ie.setStrictMode=="function")try{Ie.setStrictMode(Ne,h)}catch{}}var He=Math.clz32?Math.clz32:Oe,ze=Math.log,nt=Math.LN2;function Oe(h){return h>>>=0,h===0?32:31-(ze(h)/nt|0)|0}var tt=256,Ee=262144,Xe=4194304;function Ve(h){var w=h&42;if(w!==0)return w;switch(h&-h){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:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return h&261888;case 262144:case 524288:case 1048576:case 2097152:return h&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return h&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return h}}function je(h,w,_){var M=h.pendingLanes;if(M===0)return 0;var W=0,te=h.suspendedLanes,Se=h.pingedLanes;h=h.warmLanes;var qe=M&134217727;return qe!==0?(M=qe&~te,M!==0?W=Ve(M):(Se&=qe,Se!==0?W=Ve(Se):_||(_=qe&~h,_!==0&&(W=Ve(_))))):(qe=M&~te,qe!==0?W=Ve(qe):Se!==0?W=Ve(Se):_||(_=M&~h,_!==0&&(W=Ve(_)))),W===0?0:w!==0&&w!==W&&(w&te)===0&&(te=W&-W,_=w&-w,te>=_||te===32&&(_&4194048)!==0)?w:W}function Be(h,w){return(h.pendingLanes&~(h.suspendedLanes&~h.pingedLanes)&w)===0}function Qe(h,w){switch(h){case 1:case 2:case 4:case 8:case 64:return w+250;case 16:case 32: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 w+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Ge(){var h=Xe;return Xe<<=1,(Xe&62914560)===0&&(Xe=4194304),h}function Fe(h){for(var w=[],_=0;31>_;_++)w.push(h);return w}function rt(h,w){h.pendingLanes|=w,w!==268435456&&(h.suspendedLanes=0,h.pingedLanes=0,h.warmLanes=0)}function Je(h,w,_,M,W,te){var Se=h.pendingLanes;h.pendingLanes=_,h.suspendedLanes=0,h.pingedLanes=0,h.warmLanes=0,h.expiredLanes&=_,h.entangledLanes&=_,h.errorRecoveryDisabledLanes&=_,h.shellSuspendCounter=0;var qe=h.entanglements,mt=h.expirationTimes,Et=h.hiddenUpdates;for(_=Se&~_;0<_;){var Ut=31-He(_),Kt=1<"u")return null;try{return h.activeElement||h.body}catch{return h.body}}var dr=/[\n"\\]/g;function Ta(h){return h.replace(dr,function(w){return"\\"+w.charCodeAt(0).toString(16)+" "})}function qa(h,w,_,M,W,te,Se,qe){h.name="",Se!=null&&typeof Se!="function"&&typeof Se!="symbol"&&typeof Se!="boolean"?h.type=Se:h.removeAttribute("type"),w!=null?Se==="number"?(w===0&&h.value===""||h.value!=w)&&(h.value=""+Ke(w)):h.value!==""+Ke(w)&&(h.value=""+Ke(w)):Se!=="submit"&&Se!=="reset"||h.removeAttribute("value"),w!=null?en(h,Se,Ke(w)):_!=null?en(h,Se,Ke(_)):M!=null&&h.removeAttribute("value"),W==null&&te!=null&&(h.defaultChecked=!!te),W!=null&&(h.checked=W&&typeof W!="function"&&typeof W!="symbol"),qe!=null&&typeof qe!="function"&&typeof qe!="symbol"&&typeof qe!="boolean"?h.name=""+Ke(qe):h.removeAttribute("name")}function za(h,w,_,M,W,te,Se,qe){if(te!=null&&typeof te!="function"&&typeof te!="symbol"&&typeof te!="boolean"&&(h.type=te),w!=null||_!=null){if(!(te!=="submit"&&te!=="reset"||w!=null)){Qt(h);return}_=_!=null?""+Ke(_):"",w=w!=null?""+Ke(w):_,qe||w===h.value||(h.value=w),h.defaultValue=w}M=M??W,M=typeof M!="function"&&typeof M!="symbol"&&!!M,h.checked=qe?h.checked:!!M,h.defaultChecked=!!M,Se!=null&&typeof Se!="function"&&typeof Se!="symbol"&&typeof Se!="boolean"&&(h.name=Se),Qt(h)}function en(h,w,_){w==="number"&&Oa(h.ownerDocument)===h||h.defaultValue===""+_||(h.defaultValue=""+_)}function Nr(h,w,_,M){if(h=h.options,w){w={};for(var W=0;W<_.length;W++)w["$"+_[W]]=!0;for(_=0;_"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),bp=!1;if(er)try{var Cd={};Object.defineProperty(Cd,"passive",{get:function(){bp=!0}}),window.addEventListener("test",Cd,Cd),window.removeEventListener("test",Cd,Cd)}catch{bp=!1}var ui=null,Du=null,Si=null;function Sf(){if(Si)return Si;var h,w=Du,_=w.length,M,W="value"in ui?ui.value:ui.textContent,te=W.length;for(h=0;h<_&&w[h]===W[h];h++);var Se=_-h;for(M=1;M<=Se&&w[_-M]===W[te-M];M++);return Si=W.slice(h,1=pi),Sp=" ",Nb=!1;function ye(h,w){switch(h){case"keyup":return Cv.indexOf(w.keyCode)!==-1;case"keydown":return w.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function zt(h){return h=h.detail,typeof h=="object"&&"data"in h?h.data:null}var ua=!1;function Aa(h,w){switch(h){case"compositionend":return zt(w);case"keypress":return w.which!==32?null:(Nb=!0,Sp);case"textInput":return h=w.data,h===Sp&&Nb?null:h;default:return null}}function Va(h,w){if(ua)return h==="compositionend"||!ol&&ye(h,w)?(h=Sf(),Si=Du=ui=null,ua=!1,h):null;switch(h){case"paste":return null;case"keypress":if(!(w.ctrlKey||w.altKey||w.metaKey)||w.ctrlKey&&w.altKey){if(w.char&&1=w)return{node:_,offset:w-h};h=M}e:{for(;_;){if(_.nextSibling){_=_.nextSibling;break e}_=_.parentNode}_=void 0}_=Eo(_)}}function Do(h,w){return h&&w?h===w?!0:h&&h.nodeType===3?!1:w&&w.nodeType===3?Do(h,w.parentNode):"contains"in h?h.contains(w):h.compareDocumentPosition?!!(h.compareDocumentPosition(w)&16):!1:!1}function uo(h){h=h!=null&&h.ownerDocument!=null&&h.ownerDocument.defaultView!=null?h.ownerDocument.defaultView:window;for(var w=Oa(h.document);w instanceof h.HTMLIFrameElement;){try{var _=typeof w.contentWindow.location.href=="string"}catch{_=!1}if(_)h=w.contentWindow;else break;w=Oa(h.document)}return w}function ki(h){var w=h&&h.nodeName&&h.nodeName.toLowerCase();return w&&(w==="input"&&(h.type==="text"||h.type==="search"||h.type==="tel"||h.type==="url"||h.type==="password")||w==="textarea"||h.contentEditable==="true")}var Md=er&&"documentMode"in document&&11>=document.documentMode,fi=null,br=null,Lr=null,Xn=!1;function kp(h,w,_){var M=_.window===_?_.document:_.nodeType===9?_:_.ownerDocument;Xn||fi==null||fi!==Oa(M)||(M=fi,"selectionStart"in M&&ki(M)?M={start:M.selectionStart,end:M.selectionEnd}:(M=(M.ownerDocument&&M.ownerDocument.defaultView||window).getSelection(),M={anchorNode:M.anchorNode,anchorOffset:M.anchorOffset,focusNode:M.focusNode,focusOffset:M.focusOffset}),Lr&&ws(Lr,M)||(Lr=M,M=b_(br,"onSelect"),0>=Se,W-=Se,Dd=1<<32-He(w)+W|_<ar?(Pr=Na,Na=null):Pr=Na.sibling;var zr=Dt(kt,Na,Mt[ar],Gt);if(zr===null){Na===null&&(Na=Pr);break}h&&Na&&zr.alternate===null&&w(kt,Na),gt=te(zr,gt,ar),Rr===null?Fa=zr:Rr.sibling=zr,Rr=zr,Na=Pr}if(ar===Mt.length)return _(kt,Na),Ar&&Uu(kt,ar),Fa;if(Na===null){for(;arar?(Pr=Na,Na=null):Pr=Na.sibling;var Gp=Dt(kt,Na,zr.value,Gt);if(Gp===null){Na===null&&(Na=Pr);break}h&&Na&&Gp.alternate===null&&w(kt,Na),gt=te(Gp,gt,ar),Rr===null?Fa=Gp:Rr.sibling=Gp,Rr=Gp,Na=Pr}if(zr.done)return _(kt,Na),Ar&&Uu(kt,ar),Fa;if(Na===null){for(;!zr.done;ar++,zr=Mt.next())zr=Kt(kt,zr.value,Gt),zr!==null&&(gt=te(zr,gt,ar),Rr===null?Fa=zr:Rr.sibling=zr,Rr=zr);return Ar&&Uu(kt,ar),Fa}for(Na=M(Na);!zr.done;ar++,zr=Mt.next())zr=It(Na,kt,ar,zr.value,Gt),zr!==null&&(h&&zr.alternate!==null&&Na.delete(zr.key===null?ar:zr.key),gt=te(zr,gt,ar),Rr===null?Fa=zr:Rr.sibling=zr,Rr=zr);return h&&Na.forEach(function(dme){return w(kt,dme)}),Ar&&Uu(kt,ar),Fa}function sn(kt,gt,Mt,Gt){if(typeof Mt=="object"&&Mt!==null&&Mt.type===v&&Mt.key===null&&(Mt=Mt.props.children),typeof Mt=="object"&&Mt!==null){switch(Mt.$$typeof){case f:e:{for(var Fa=Mt.key;gt!==null;){if(gt.key===Fa){if(Fa=Mt.type,Fa===v){if(gt.tag===7){_(kt,gt.sibling),Gt=W(gt,Mt.props.children),Gt.return=kt,kt=Gt;break e}}else if(gt.elementType===Fa||typeof Fa=="object"&&Fa!==null&&Fa.$$typeof===D&&Ef(Fa)===gt.type){_(kt,gt.sibling),Gt=W(gt,Mt.props),Ev(Gt,Mt),Gt.return=kt,kt=Gt;break e}_(kt,gt);break}else w(kt,gt);gt=gt.sibling}Mt.type===v?(Gt=Nf(Mt.props.children,kt.mode,Gt,Mt.key),Gt.return=kt,kt=Gt):(Gt=Fk(Mt.type,Mt.key,Mt.props,null,kt.mode,Gt),Ev(Gt,Mt),Gt.return=kt,kt=Gt)}return Se(kt);case g:e:{for(Fa=Mt.key;gt!==null;){if(gt.key===Fa)if(gt.tag===4&>.stateNode.containerInfo===Mt.containerInfo&>.stateNode.implementation===Mt.implementation){_(kt,gt.sibling),Gt=W(gt,Mt.children||[]),Gt.return=kt,kt=Gt;break e}else{_(kt,gt);break}else w(kt,gt);gt=gt.sibling}Gt=_j(Mt,kt.mode,Gt),Gt.return=kt,kt=Gt}return Se(kt);case D:return Mt=Ef(Mt),sn(kt,gt,Mt,Gt)}if(K(Mt))return ka(kt,gt,Mt,Gt);if(I(Mt)){if(Fa=I(Mt),typeof Fa!="function")throw Error(n(150));return Mt=Fa.call(Mt),Ba(kt,gt,Mt,Gt)}if(typeof Mt.then=="function")return sn(kt,gt,Uk(Mt),Gt);if(Mt.$$typeof===k)return sn(kt,gt,zk(kt,Mt),Gt);Hk(kt,Mt)}return typeof Mt=="string"&&Mt!==""||typeof Mt=="number"||typeof Mt=="bigint"?(Mt=""+Mt,gt!==null&>.tag===6?(_(kt,gt.sibling),Gt=W(gt,Mt),Gt.return=kt,kt=Gt):(_(kt,gt),Gt=kj(Mt,kt.mode,Gt),Gt.return=kt,kt=Gt),Se(kt)):_(kt,gt)}return function(kt,gt,Mt,Gt){try{Mv=0;var Fa=sn(kt,gt,Mt,Gt);return zb=null,Fa}catch(Na){if(Na===Rb||Na===Ok)throw Na;var Rr=ll(29,Na,null,kt.mode);return Rr.lanes=Gt,Rr.return=kt,Rr}}}var Ff=W5(!0),K5=W5(!1),Tp=!1;function Rj(h){h.updateQueue={baseState:h.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function zj(h,w){h=h.updateQueue,w.updateQueue===h&&(w.updateQueue={baseState:h.baseState,firstBaseUpdate:h.firstBaseUpdate,lastBaseUpdate:h.lastBaseUpdate,shared:h.shared,callbacks:null})}function Ap(h){return{lane:h,tag:0,payload:null,callback:null,next:null}}function jp(h,w,_){var M=h.updateQueue;if(M===null)return null;if(M=M.shared,(Hr&2)!==0){var W=M.pending;return W===null?w.next=w:(w.next=W.next,W.next=w),M.pending=w,w=Dk(h),M5(h,null,_),w}return Ek(h,M,w,_),Dk(h)}function Dv(h,w,_){if(w=w.updateQueue,w!==null&&(w=w.shared,(_&4194048)!==0)){var M=w.lanes;M&=h.pendingLanes,_|=M,w.lanes=_,$t(h,_)}}function Ij(h,w){var _=h.updateQueue,M=h.alternate;if(M!==null&&(M=M.updateQueue,_===M)){var W=null,te=null;if(_=_.firstBaseUpdate,_!==null){do{var Se={lane:_.lane,tag:_.tag,payload:_.payload,callback:null,next:null};te===null?W=te=Se:te=te.next=Se,_=_.next}while(_!==null);te===null?W=te=w:te=te.next=w}else W=te=w;_={baseState:M.baseState,firstBaseUpdate:W,lastBaseUpdate:te,shared:M.shared,callbacks:M.callbacks},h.updateQueue=_;return}h=_.lastBaseUpdate,h===null?_.firstBaseUpdate=w:h.next=w,_.lastBaseUpdate=w}var Oj=!1;function Fv(){if(Oj){var h=Lb;if(h!==null)throw h}}function Lv(h,w,_,M){Oj=!1;var W=h.updateQueue;Tp=!1;var te=W.firstBaseUpdate,Se=W.lastBaseUpdate,qe=W.shared.pending;if(qe!==null){W.shared.pending=null;var mt=qe,Et=mt.next;mt.next=null,Se===null?te=Et:Se.next=Et,Se=mt;var Ut=h.alternate;Ut!==null&&(Ut=Ut.updateQueue,qe=Ut.lastBaseUpdate,qe!==Se&&(qe===null?Ut.firstBaseUpdate=Et:qe.next=Et,Ut.lastBaseUpdate=mt))}if(te!==null){var Kt=W.baseState;Se=0,Ut=Et=mt=null,qe=te;do{var Dt=qe.lane&-536870913,It=Dt!==qe.lane;if(It?(_r&Dt)===Dt:(M&Dt)===Dt){Dt!==0&&Dt===Fb&&(Oj=!0),Ut!==null&&(Ut=Ut.next={lane:0,tag:qe.tag,payload:qe.payload,callback:null,next:null});e:{var ka=h,Ba=qe;Dt=w;var sn=_;switch(Ba.tag){case 1:if(ka=Ba.payload,typeof ka=="function"){Kt=ka.call(sn,Kt,Dt);break e}Kt=ka;break e;case 3:ka.flags=ka.flags&-65537|128;case 0:if(ka=Ba.payload,Dt=typeof ka=="function"?ka.call(sn,Kt,Dt):ka,Dt==null)break e;Kt=m({},Kt,Dt);break e;case 2:Tp=!0}}Dt=qe.callback,Dt!==null&&(h.flags|=64,It&&(h.flags|=8192),It=W.callbacks,It===null?W.callbacks=[Dt]:It.push(Dt))}else It={lane:Dt,tag:qe.tag,payload:qe.payload,callback:qe.callback,next:null},Ut===null?(Et=Ut=It,mt=Kt):Ut=Ut.next=It,Se|=Dt;if(qe=qe.next,qe===null){if(qe=W.shared.pending,qe===null)break;It=qe,qe=It.next,It.next=null,W.lastBaseUpdate=It,W.shared.pending=null}}while(!0);Ut===null&&(mt=Kt),W.baseState=mt,W.firstBaseUpdate=Et,W.lastBaseUpdate=Ut,te===null&&(W.shared.lanes=0),Lp|=Se,h.lanes=Se,h.memoizedState=Kt}}function Y5(h,w){if(typeof h!="function")throw Error(n(191,h));h.call(w)}function Q5(h,w){var _=h.callbacks;if(_!==null)for(h.callbacks=null,h=0;h<_.length;h++)Y5(_[h],w)}var Ib=Y(null),qk=Y(0);function X5(h,w){h=Zu,me(qk,h),me(Ib,w),Zu=h|w.baseLanes}function Bj(){me(qk,Zu),me(Ib,Ib.current)}function Uj(){Zu=qk.current,ne(Ib),ne(qk)}var cl=Y(null),Ql=null;function Mp(h){var w=h.alternate;me(gi,gi.current&1),me(cl,h),Ql===null&&(w===null||Ib.current!==null||w.memoizedState!==null)&&(Ql=h)}function Hj(h){me(gi,gi.current),me(cl,h),Ql===null&&(Ql=h)}function Z5(h){h.tag===22?(me(gi,gi.current),me(cl,h),Ql===null&&(Ql=h)):Ep()}function Ep(){me(gi,gi.current),me(cl,cl.current)}function dl(h){ne(cl),Ql===h&&(Ql=null),ne(gi)}var gi=Y(0);function Vk(h){for(var w=h;w!==null;){if(w.tag===13){var _=w.memoizedState;if(_!==null&&(_=_.dehydrated,_===null||KM(_)||YM(_)))return w}else if(w.tag===19&&(w.memoizedProps.revealOrder==="forwards"||w.memoizedProps.revealOrder==="backwards"||w.memoizedProps.revealOrder==="unstable_legacy-backwards"||w.memoizedProps.revealOrder==="together")){if((w.flags&128)!==0)return w}else if(w.child!==null){w.child.return=w,w=w.child;continue}if(w===h)break;for(;w.sibling===null;){if(w.return===null||w.return===h)return null;w=w.return}w.sibling.return=w.return,w=w.sibling}return null}var Vu=0,tr=null,rn=null,Pi=null,Gk=!1,Ob=!1,Lf=!1,$k=0,Rv=0,Bb=null,eue=0;function Zn(){throw Error(n(321))}function qj(h,w){if(w===null)return!1;for(var _=0;_te?te:8;var Se=Z.T,qe={};Z.T=qe,nM(h,!1,w,_);try{var mt=W(),Et=Z.S;if(Et!==null&&Et(qe,mt),mt!==null&&typeof mt=="object"&&typeof mt.then=="function"){var Ut=Jde(mt,M);Iv(h,w,Ut,pl(h))}else Iv(h,w,M,pl(h))}catch(Kt){Iv(h,w,{then:function(){},status:"rejected",reason:Kt},pl())}finally{X.p=te,Se!==null&&qe.types!==null&&(Se.types=qe.types),Z.T=Se}}function iue(){}function aM(h,w,_,M){if(h.tag!==5)throw Error(n(476));var W=TU(h).queue;NU(h,W,w,ce,_===null?iue:function(){return AU(h),_(M)})}function TU(h){var w=h.memoizedState;if(w!==null)return w;w={memoizedState:ce,baseState:ce,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Gu,lastRenderedState:ce},next:null};var _={};return w.next={memoizedState:_,baseState:_,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Gu,lastRenderedState:_},next:null},h.memoizedState=w,h=h.alternate,h!==null&&(h.memoizedState=w),w}function AU(h){var w=TU(h);w.next===null&&(w=h.alternate.memoizedState),Iv(h,w.next.queue,{},pl())}function rM(){return ks(t0)}function jU(){return bi().memoizedState}function MU(){return bi().memoizedState}function sue(h){for(var w=h.return;w!==null;){switch(w.tag){case 24:case 3:var _=pl();h=Ap(_);var M=jp(w,h,_);M!==null&&(Io(M,w,_),Dv(M,w,_)),w={cache:Ej()},h.payload=w;return}w=w.return}}function oue(h,w,_){var M=pl();_={lane:M,revertLane:0,gesture:null,action:_,hasEagerState:!1,eagerState:null,next:null},Zk(h)?DU(w,_):(_=wj(h,w,_,M),_!==null&&(Io(_,h,M),FU(_,w,M)))}function EU(h,w,_){var M=pl();Iv(h,w,_,M)}function Iv(h,w,_,M){var W={lane:M,revertLane:0,gesture:null,action:_,hasEagerState:!1,eagerState:null,next:null};if(Zk(h))DU(w,W);else{var te=h.alternate;if(h.lanes===0&&(te===null||te.lanes===0)&&(te=w.lastRenderedReducer,te!==null))try{var Se=w.lastRenderedState,qe=te(Se,_);if(W.hasEagerState=!0,W.eagerState=qe,Dn(qe,Se))return Ek(h,w,W,0),bn===null&&Mk(),!1}catch{}if(_=wj(h,w,W,M),_!==null)return Io(_,h,M),FU(_,w,M),!0}return!1}function nM(h,w,_,M){if(M={lane:2,revertLane:RM(),gesture:null,action:M,hasEagerState:!1,eagerState:null,next:null},Zk(h)){if(w)throw Error(n(479))}else w=wj(h,_,M,2),w!==null&&Io(w,h,2)}function Zk(h){var w=h.alternate;return h===tr||w!==null&&w===tr}function DU(h,w){Ob=Gk=!0;var _=h.pending;_===null?w.next=w:(w.next=_.next,_.next=w),h.pending=w}function FU(h,w,_){if((_&4194048)!==0){var M=w.lanes;M&=h.pendingLanes,_|=M,w.lanes=_,$t(h,_)}}var Ov={readContext:ks,use:Kk,useCallback:Zn,useContext:Zn,useEffect:Zn,useImperativeHandle:Zn,useLayoutEffect:Zn,useInsertionEffect:Zn,useMemo:Zn,useReducer:Zn,useRef:Zn,useState:Zn,useDebugValue:Zn,useDeferredValue:Zn,useTransition:Zn,useSyncExternalStore:Zn,useId:Zn,useHostTransitionStatus:Zn,useFormState:Zn,useActionState:Zn,useOptimistic:Zn,useMemoCache:Zn,useCacheRefresh:Zn};Ov.useEffectEvent=Zn;var LU={readContext:ks,use:Kk,useCallback:function(h,w){return mo().memoizedState=[h,w===void 0?null:w],h},useContext:ks,useEffect:xU,useImperativeHandle:function(h,w,_){_=_!=null?_.concat([h]):null,Qk(4194308,4,SU.bind(null,w,h),_)},useLayoutEffect:function(h,w){return Qk(4194308,4,h,w)},useInsertionEffect:function(h,w){Qk(4,2,h,w)},useMemo:function(h,w){var _=mo();w=w===void 0?null:w;var M=h();if(Lf){Re(!0);try{h()}finally{Re(!1)}}return _.memoizedState=[M,w],M},useReducer:function(h,w,_){var M=mo();if(_!==void 0){var W=_(w);if(Lf){Re(!0);try{_(w)}finally{Re(!1)}}}else W=w;return M.memoizedState=M.baseState=W,h={pending:null,lanes:0,dispatch:null,lastRenderedReducer:h,lastRenderedState:W},M.queue=h,h=h.dispatch=oue.bind(null,tr,h),[M.memoizedState,h]},useRef:function(h){var w=mo();return h={current:h},w.memoizedState=h},useState:function(h){h=Xj(h);var w=h.queue,_=EU.bind(null,tr,w);return w.dispatch=_,[h.memoizedState,_]},useDebugValue:eM,useDeferredValue:function(h,w){var _=mo();return tM(_,h,w)},useTransition:function(){var h=Xj(!1);return h=NU.bind(null,tr,h.queue,!0,!1),mo().memoizedState=h,[!1,h]},useSyncExternalStore:function(h,w,_){var M=tr,W=mo();if(Ar){if(_===void 0)throw Error(n(407));_=_()}else{if(_=w(),bn===null)throw Error(n(349));(_r&127)!==0||aU(M,w,_)}W.memoizedState=_;var te={value:_,getSnapshot:w};return W.queue=te,xU(nU.bind(null,M,te,h),[h]),M.flags|=2048,Ub(9,{destroy:void 0},rU.bind(null,M,te,_,w),null),_},useId:function(){var h=mo(),w=bn.identifierPrefix;if(Ar){var _=Fd,M=Dd;_=(M&~(1<<32-He(M)-1)).toString(32)+_,w="_"+w+"R_"+_,_=$k++,0<_&&(w+="H"+_.toString(32)),w+="_"}else _=eue++,w="_"+w+"r_"+_.toString(32)+"_";return h.memoizedState=w},useHostTransitionStatus:rM,useFormState:pU,useActionState:pU,useOptimistic:function(h){var w=mo();w.memoizedState=w.baseState=h;var _={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return w.queue=_,w=nM.bind(null,tr,!0,_),_.dispatch=w,[h,w]},useMemoCache:Kj,useCacheRefresh:function(){return mo().memoizedState=sue.bind(null,tr)},useEffectEvent:function(h){var w=mo(),_={impl:h};return w.memoizedState=_,function(){if((Hr&2)!==0)throw Error(n(440));return _.impl.apply(void 0,arguments)}}},iM={readContext:ks,use:Kk,useCallback:_U,useContext:ks,useEffect:Jj,useImperativeHandle:kU,useInsertionEffect:vU,useLayoutEffect:wU,useMemo:PU,useReducer:Yk,useRef:bU,useState:function(){return Yk(Gu)},useDebugValue:eM,useDeferredValue:function(h,w){var _=bi();return CU(_,rn.memoizedState,h,w)},useTransition:function(){var h=Yk(Gu)[0],w=bi().memoizedState;return[typeof h=="boolean"?h:zv(h),w]},useSyncExternalStore:tU,useId:jU,useHostTransitionStatus:rM,useFormState:hU,useActionState:hU,useOptimistic:function(h,w){var _=bi();return oU(_,rn,h,w)},useMemoCache:Kj,useCacheRefresh:MU};iM.useEffectEvent=yU;var RU={readContext:ks,use:Kk,useCallback:_U,useContext:ks,useEffect:Jj,useImperativeHandle:kU,useInsertionEffect:vU,useLayoutEffect:wU,useMemo:PU,useReducer:Qj,useRef:bU,useState:function(){return Qj(Gu)},useDebugValue:eM,useDeferredValue:function(h,w){var _=bi();return rn===null?tM(_,h,w):CU(_,rn.memoizedState,h,w)},useTransition:function(){var h=Qj(Gu)[0],w=bi().memoizedState;return[typeof h=="boolean"?h:zv(h),w]},useSyncExternalStore:tU,useId:jU,useHostTransitionStatus:rM,useFormState:gU,useActionState:gU,useOptimistic:function(h,w){var _=bi();return rn!==null?oU(_,rn,h,w):(_.baseState=h,[h,_.queue.dispatch])},useMemoCache:Kj,useCacheRefresh:MU};RU.useEffectEvent=yU;function sM(h,w,_,M){w=h.memoizedState,_=_(M,w),_=_==null?w:m({},w,_),h.memoizedState=_,h.lanes===0&&(h.updateQueue.baseState=_)}var oM={enqueueSetState:function(h,w,_){h=h._reactInternals;var M=pl(),W=Ap(M);W.payload=w,_!=null&&(W.callback=_),w=jp(h,W,M),w!==null&&(Io(w,h,M),Dv(w,h,M))},enqueueReplaceState:function(h,w,_){h=h._reactInternals;var M=pl(),W=Ap(M);W.tag=1,W.payload=w,_!=null&&(W.callback=_),w=jp(h,W,M),w!==null&&(Io(w,h,M),Dv(w,h,M))},enqueueForceUpdate:function(h,w){h=h._reactInternals;var _=pl(),M=Ap(_);M.tag=2,w!=null&&(M.callback=w),w=jp(h,M,_),w!==null&&(Io(w,h,_),Dv(w,h,_))}};function zU(h,w,_,M,W,te,Se){return h=h.stateNode,typeof h.shouldComponentUpdate=="function"?h.shouldComponentUpdate(M,te,Se):w.prototype&&w.prototype.isPureReactComponent?!ws(_,M)||!ws(W,te):!0}function IU(h,w,_,M){h=w.state,typeof w.componentWillReceiveProps=="function"&&w.componentWillReceiveProps(_,M),typeof w.UNSAFE_componentWillReceiveProps=="function"&&w.UNSAFE_componentWillReceiveProps(_,M),w.state!==h&&oM.enqueueReplaceState(w,w.state,null)}function Rf(h,w){var _=w;if("ref"in w){_={};for(var M in w)M!=="ref"&&(_[M]=w[M])}if(h=h.defaultProps){_===w&&(_=m({},_));for(var W in h)_[W]===void 0&&(_[W]=h[W])}return _}function OU(h){jk(h)}function BU(h){console.error(h)}function UU(h){jk(h)}function Jk(h,w){try{var _=h.onUncaughtError;_(w.value,{componentStack:w.stack})}catch(M){setTimeout(function(){throw M})}}function HU(h,w,_){try{var M=h.onCaughtError;M(_.value,{componentStack:_.stack,errorBoundary:w.tag===1?w.stateNode:null})}catch(W){setTimeout(function(){throw W})}}function lM(h,w,_){return _=Ap(_),_.tag=3,_.payload={element:null},_.callback=function(){Jk(h,w)},_}function qU(h){return h=Ap(h),h.tag=3,h}function VU(h,w,_,M){var W=_.type.getDerivedStateFromError;if(typeof W=="function"){var te=M.value;h.payload=function(){return W(te)},h.callback=function(){HU(w,_,M)}}var Se=_.stateNode;Se!==null&&typeof Se.componentDidCatch=="function"&&(h.callback=function(){HU(w,_,M),typeof W!="function"&&(Rp===null?Rp=new Set([this]):Rp.add(this));var qe=M.stack;this.componentDidCatch(M.value,{componentStack:qe!==null?qe:""})})}function lue(h,w,_,M,W){if(_.flags|=32768,M!==null&&typeof M=="object"&&typeof M.then=="function"){if(w=_.alternate,w!==null&&Db(w,_,W,!0),_=cl.current,_!==null){switch(_.tag){case 31:case 13:return Ql===null?u_():_.alternate===null&&Jn===0&&(Jn=3),_.flags&=-257,_.flags|=65536,_.lanes=W,M===Bk?_.flags|=16384:(w=_.updateQueue,w===null?_.updateQueue=new Set([M]):w.add(M),DM(h,M,W)),!1;case 22:return _.flags|=65536,M===Bk?_.flags|=16384:(w=_.updateQueue,w===null?(w={transitions:null,markerInstances:null,retryQueue:new Set([M])},_.updateQueue=w):(_=w.retryQueue,_===null?w.retryQueue=new Set([M]):_.add(M)),DM(h,M,W)),!1}throw Error(n(435,_.tag))}return DM(h,M,W),u_(),!1}if(Ar)return w=cl.current,w!==null?((w.flags&65536)===0&&(w.flags|=256),w.flags|=65536,w.lanes=W,M!==Nj&&(h=Error(n(422),{cause:M}),Tv($l(h,_)))):(M!==Nj&&(w=Error(n(423),{cause:M}),Tv($l(w,_))),h=h.current.alternate,h.flags|=65536,W&=-W,h.lanes|=W,M=$l(M,_),W=lM(h.stateNode,M,W),Ij(h,W),Jn!==4&&(Jn=2)),!1;var te=Error(n(520),{cause:M});if(te=$l(te,_),Wv===null?Wv=[te]:Wv.push(te),Jn!==4&&(Jn=2),w===null)return!0;M=$l(M,_),_=w;do{switch(_.tag){case 3:return _.flags|=65536,h=W&-W,_.lanes|=h,h=lM(_.stateNode,M,h),Ij(_,h),!1;case 1:if(w=_.type,te=_.stateNode,(_.flags&128)===0&&(typeof w.getDerivedStateFromError=="function"||te!==null&&typeof te.componentDidCatch=="function"&&(Rp===null||!Rp.has(te))))return _.flags|=65536,W&=-W,_.lanes|=W,W=qU(W),VU(W,h,_,M),Ij(_,W),!1}_=_.return}while(_!==null);return!1}var cM=Error(n(461)),Ci=!1;function _s(h,w,_,M){w.child=h===null?K5(w,null,_,M):Ff(w,h.child,_,M)}function GU(h,w,_,M,W){_=_.render;var te=w.ref;if("ref"in M){var Se={};for(var qe in M)qe!=="ref"&&(Se[qe]=M[qe])}else Se=M;return jf(w),M=Vj(h,w,_,Se,te,W),qe=Gj(),h!==null&&!Ci?($j(h,w,W),$u(h,w,W)):(Ar&&qe&&Pj(w),w.flags|=1,_s(h,w,M,W),w.child)}function $U(h,w,_,M,W){if(h===null){var te=_.type;return typeof te=="function"&&!Sj(te)&&te.defaultProps===void 0&&_.compare===null?(w.tag=15,w.type=te,WU(h,w,te,M,W)):(h=Fk(_.type,null,M,w,w.mode,W),h.ref=w.ref,h.return=w,w.child=h)}if(te=h.child,!bM(h,W)){var Se=te.memoizedProps;if(_=_.compare,_=_!==null?_:ws,_(Se,M)&&h.ref===w.ref)return $u(h,w,W)}return w.flags|=1,h=Bu(te,M),h.ref=w.ref,h.return=w,w.child=h}function WU(h,w,_,M,W){if(h!==null){var te=h.memoizedProps;if(ws(te,M)&&h.ref===w.ref)if(Ci=!1,w.pendingProps=M=te,bM(h,W))(h.flags&131072)!==0&&(Ci=!0);else return w.lanes=h.lanes,$u(h,w,W)}return dM(h,w,_,M,W)}function KU(h,w,_,M){var W=M.children,te=h!==null?h.memoizedState:null;if(h===null&&w.stateNode===null&&(w.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),M.mode==="hidden"){if((w.flags&128)!==0){if(te=te!==null?te.baseLanes|_:_,h!==null){for(M=w.child=h.child,W=0;M!==null;)W=W|M.lanes|M.childLanes,M=M.sibling;M=W&~te}else M=0,w.child=null;return YU(h,w,te,_,M)}if((_&536870912)!==0)w.memoizedState={baseLanes:0,cachePool:null},h!==null&&Ik(w,te!==null?te.cachePool:null),te!==null?X5(w,te):Bj(),Z5(w);else return M=w.lanes=536870912,YU(h,w,te!==null?te.baseLanes|_:_,_,M)}else te!==null?(Ik(w,te.cachePool),X5(w,te),Ep(),w.memoizedState=null):(h!==null&&Ik(w,null),Bj(),Ep());return _s(h,w,W,_),w.child}function Bv(h,w){return h!==null&&h.tag===22||w.stateNode!==null||(w.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),w.sibling}function YU(h,w,_,M,W){var te=Fj();return te=te===null?null:{parent:_i._currentValue,pool:te},w.memoizedState={baseLanes:_,cachePool:te},h!==null&&Ik(w,null),Bj(),Z5(w),h!==null&&Db(h,w,M,!0),w.childLanes=W,null}function e_(h,w){return w=a_({mode:w.mode,children:w.children},h.mode),w.ref=h.ref,h.child=w,w.return=h,w}function QU(h,w,_){return Ff(w,h.child,null,_),h=e_(w,w.pendingProps),h.flags|=2,dl(w),w.memoizedState=null,h}function cue(h,w,_){var M=w.pendingProps,W=(w.flags&128)!==0;if(w.flags&=-129,h===null){if(Ar){if(M.mode==="hidden")return h=e_(w,M),w.lanes=536870912,Bv(null,h);if(Hj(w),(h=Cn)?(h=lq(h,Yl),h=h!==null&&h.data==="&"?h:null,h!==null&&(w.memoizedState={dehydrated:h,treeContext:_p!==null?{id:Dd,overflow:Fd}:null,retryLane:536870912,hydrationErrors:null},_=D5(h),_.return=w,w.child=_,Ss=w,Cn=null)):h=null,h===null)throw Cp(w);return w.lanes=536870912,null}return e_(w,M)}var te=h.memoizedState;if(te!==null){var Se=te.dehydrated;if(Hj(w),W)if(w.flags&256)w.flags&=-257,w=QU(h,w,_);else if(w.memoizedState!==null)w.child=h.child,w.flags|=128,w=null;else throw Error(n(558));else if(Ci||Db(h,w,_,!1),W=(_&h.childLanes)!==0,Ci||W){if(M=bn,M!==null&&(Se=ht(M,_),Se!==0&&Se!==te.retryLane))throw te.retryLane=Se,Cf(h,Se),Io(M,h,Se),cM;u_(),w=QU(h,w,_)}else h=te.treeContext,Cn=Xl(Se.nextSibling),Ss=w,Ar=!0,Pp=null,Yl=!1,h!==null&&R5(w,h),w=e_(w,M),w.flags|=4096;return w}return h=Bu(h.child,{mode:M.mode,children:M.children}),h.ref=w.ref,w.child=h,h.return=w,h}function t_(h,w){var _=w.ref;if(_===null)h!==null&&h.ref!==null&&(w.flags|=4194816);else{if(typeof _!="function"&&typeof _!="object")throw Error(n(284));(h===null||h.ref!==_)&&(w.flags|=4194816)}}function dM(h,w,_,M,W){return jf(w),_=Vj(h,w,_,M,void 0,W),M=Gj(),h!==null&&!Ci?($j(h,w,W),$u(h,w,W)):(Ar&&M&&Pj(w),w.flags|=1,_s(h,w,_,W),w.child)}function XU(h,w,_,M,W,te){return jf(w),w.updateQueue=null,_=eU(w,M,_,W),J5(h),M=Gj(),h!==null&&!Ci?($j(h,w,te),$u(h,w,te)):(Ar&&M&&Pj(w),w.flags|=1,_s(h,w,_,te),w.child)}function ZU(h,w,_,M,W){if(jf(w),w.stateNode===null){var te=Ab,Se=_.contextType;typeof Se=="object"&&Se!==null&&(te=ks(Se)),te=new _(M,te),w.memoizedState=te.state!==null&&te.state!==void 0?te.state:null,te.updater=oM,w.stateNode=te,te._reactInternals=w,te=w.stateNode,te.props=M,te.state=w.memoizedState,te.refs={},Rj(w),Se=_.contextType,te.context=typeof Se=="object"&&Se!==null?ks(Se):Ab,te.state=w.memoizedState,Se=_.getDerivedStateFromProps,typeof Se=="function"&&(sM(w,_,Se,M),te.state=w.memoizedState),typeof _.getDerivedStateFromProps=="function"||typeof te.getSnapshotBeforeUpdate=="function"||typeof te.UNSAFE_componentWillMount!="function"&&typeof te.componentWillMount!="function"||(Se=te.state,typeof te.componentWillMount=="function"&&te.componentWillMount(),typeof te.UNSAFE_componentWillMount=="function"&&te.UNSAFE_componentWillMount(),Se!==te.state&&oM.enqueueReplaceState(te,te.state,null),Lv(w,M,te,W),Fv(),te.state=w.memoizedState),typeof te.componentDidMount=="function"&&(w.flags|=4194308),M=!0}else if(h===null){te=w.stateNode;var qe=w.memoizedProps,mt=Rf(_,qe);te.props=mt;var Et=te.context,Ut=_.contextType;Se=Ab,typeof Ut=="object"&&Ut!==null&&(Se=ks(Ut));var Kt=_.getDerivedStateFromProps;Ut=typeof Kt=="function"||typeof te.getSnapshotBeforeUpdate=="function",qe=w.pendingProps!==qe,Ut||typeof te.UNSAFE_componentWillReceiveProps!="function"&&typeof te.componentWillReceiveProps!="function"||(qe||Et!==Se)&&IU(w,te,M,Se),Tp=!1;var Dt=w.memoizedState;te.state=Dt,Lv(w,M,te,W),Fv(),Et=w.memoizedState,qe||Dt!==Et||Tp?(typeof Kt=="function"&&(sM(w,_,Kt,M),Et=w.memoizedState),(mt=Tp||zU(w,_,mt,M,Dt,Et,Se))?(Ut||typeof te.UNSAFE_componentWillMount!="function"&&typeof te.componentWillMount!="function"||(typeof te.componentWillMount=="function"&&te.componentWillMount(),typeof te.UNSAFE_componentWillMount=="function"&&te.UNSAFE_componentWillMount()),typeof te.componentDidMount=="function"&&(w.flags|=4194308)):(typeof te.componentDidMount=="function"&&(w.flags|=4194308),w.memoizedProps=M,w.memoizedState=Et),te.props=M,te.state=Et,te.context=Se,M=mt):(typeof te.componentDidMount=="function"&&(w.flags|=4194308),M=!1)}else{te=w.stateNode,zj(h,w),Se=w.memoizedProps,Ut=Rf(_,Se),te.props=Ut,Kt=w.pendingProps,Dt=te.context,Et=_.contextType,mt=Ab,typeof Et=="object"&&Et!==null&&(mt=ks(Et)),qe=_.getDerivedStateFromProps,(Et=typeof qe=="function"||typeof te.getSnapshotBeforeUpdate=="function")||typeof te.UNSAFE_componentWillReceiveProps!="function"&&typeof te.componentWillReceiveProps!="function"||(Se!==Kt||Dt!==mt)&&IU(w,te,M,mt),Tp=!1,Dt=w.memoizedState,te.state=Dt,Lv(w,M,te,W),Fv();var It=w.memoizedState;Se!==Kt||Dt!==It||Tp||h!==null&&h.dependencies!==null&&Rk(h.dependencies)?(typeof qe=="function"&&(sM(w,_,qe,M),It=w.memoizedState),(Ut=Tp||zU(w,_,Ut,M,Dt,It,mt)||h!==null&&h.dependencies!==null&&Rk(h.dependencies))?(Et||typeof te.UNSAFE_componentWillUpdate!="function"&&typeof te.componentWillUpdate!="function"||(typeof te.componentWillUpdate=="function"&&te.componentWillUpdate(M,It,mt),typeof te.UNSAFE_componentWillUpdate=="function"&&te.UNSAFE_componentWillUpdate(M,It,mt)),typeof te.componentDidUpdate=="function"&&(w.flags|=4),typeof te.getSnapshotBeforeUpdate=="function"&&(w.flags|=1024)):(typeof te.componentDidUpdate!="function"||Se===h.memoizedProps&&Dt===h.memoizedState||(w.flags|=4),typeof te.getSnapshotBeforeUpdate!="function"||Se===h.memoizedProps&&Dt===h.memoizedState||(w.flags|=1024),w.memoizedProps=M,w.memoizedState=It),te.props=M,te.state=It,te.context=mt,M=Ut):(typeof te.componentDidUpdate!="function"||Se===h.memoizedProps&&Dt===h.memoizedState||(w.flags|=4),typeof te.getSnapshotBeforeUpdate!="function"||Se===h.memoizedProps&&Dt===h.memoizedState||(w.flags|=1024),M=!1)}return te=M,t_(h,w),M=(w.flags&128)!==0,te||M?(te=w.stateNode,_=M&&typeof _.getDerivedStateFromError!="function"?null:te.render(),w.flags|=1,h!==null&&M?(w.child=Ff(w,h.child,null,W),w.child=Ff(w,null,_,W)):_s(h,w,_,W),w.memoizedState=te.state,h=w.child):h=$u(h,w,W),h}function JU(h,w,_,M){return Tf(),w.flags|=256,_s(h,w,_,M),w.child}var uM={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function mM(h){return{baseLanes:h,cachePool:H5()}}function pM(h,w,_){return h=h!==null?h.childLanes&~_:0,w&&(h|=ml),h}function eH(h,w,_){var M=w.pendingProps,W=!1,te=(w.flags&128)!==0,Se;if((Se=te)||(Se=h!==null&&h.memoizedState===null?!1:(gi.current&2)!==0),Se&&(W=!0,w.flags&=-129),Se=(w.flags&32)!==0,w.flags&=-33,h===null){if(Ar){if(W?Mp(w):Ep(),(h=Cn)?(h=lq(h,Yl),h=h!==null&&h.data!=="&"?h:null,h!==null&&(w.memoizedState={dehydrated:h,treeContext:_p!==null?{id:Dd,overflow:Fd}:null,retryLane:536870912,hydrationErrors:null},_=D5(h),_.return=w,w.child=_,Ss=w,Cn=null)):h=null,h===null)throw Cp(w);return YM(h)?w.lanes=32:w.lanes=536870912,null}var qe=M.children;return M=M.fallback,W?(Ep(),W=w.mode,qe=a_({mode:"hidden",children:qe},W),M=Nf(M,W,_,null),qe.return=w,M.return=w,qe.sibling=M,w.child=qe,M=w.child,M.memoizedState=mM(_),M.childLanes=pM(h,Se,_),w.memoizedState=uM,Bv(null,M)):(Mp(w),hM(w,qe))}var mt=h.memoizedState;if(mt!==null&&(qe=mt.dehydrated,qe!==null)){if(te)w.flags&256?(Mp(w),w.flags&=-257,w=fM(h,w,_)):w.memoizedState!==null?(Ep(),w.child=h.child,w.flags|=128,w=null):(Ep(),qe=M.fallback,W=w.mode,M=a_({mode:"visible",children:M.children},W),qe=Nf(qe,W,_,null),qe.flags|=2,M.return=w,qe.return=w,M.sibling=qe,w.child=M,Ff(w,h.child,null,_),M=w.child,M.memoizedState=mM(_),M.childLanes=pM(h,Se,_),w.memoizedState=uM,w=Bv(null,M));else if(Mp(w),YM(qe)){if(Se=qe.nextSibling&&qe.nextSibling.dataset,Se)var Et=Se.dgst;Se=Et,M=Error(n(419)),M.stack="",M.digest=Se,Tv({value:M,source:null,stack:null}),w=fM(h,w,_)}else if(Ci||Db(h,w,_,!1),Se=(_&h.childLanes)!==0,Ci||Se){if(Se=bn,Se!==null&&(M=ht(Se,_),M!==0&&M!==mt.retryLane))throw mt.retryLane=M,Cf(h,M),Io(Se,h,M),cM;KM(qe)||u_(),w=fM(h,w,_)}else KM(qe)?(w.flags|=192,w.child=h.child,w=null):(h=mt.treeContext,Cn=Xl(qe.nextSibling),Ss=w,Ar=!0,Pp=null,Yl=!1,h!==null&&R5(w,h),w=hM(w,M.children),w.flags|=4096);return w}return W?(Ep(),qe=M.fallback,W=w.mode,mt=h.child,Et=mt.sibling,M=Bu(mt,{mode:"hidden",children:M.children}),M.subtreeFlags=mt.subtreeFlags&65011712,Et!==null?qe=Bu(Et,qe):(qe=Nf(qe,W,_,null),qe.flags|=2),qe.return=w,M.return=w,M.sibling=qe,w.child=M,Bv(null,M),M=w.child,qe=h.child.memoizedState,qe===null?qe=mM(_):(W=qe.cachePool,W!==null?(mt=_i._currentValue,W=W.parent!==mt?{parent:mt,pool:mt}:W):W=H5(),qe={baseLanes:qe.baseLanes|_,cachePool:W}),M.memoizedState=qe,M.childLanes=pM(h,Se,_),w.memoizedState=uM,Bv(h.child,M)):(Mp(w),_=h.child,h=_.sibling,_=Bu(_,{mode:"visible",children:M.children}),_.return=w,_.sibling=null,h!==null&&(Se=w.deletions,Se===null?(w.deletions=[h],w.flags|=16):Se.push(h)),w.child=_,w.memoizedState=null,_)}function hM(h,w){return w=a_({mode:"visible",children:w},h.mode),w.return=h,h.child=w}function a_(h,w){return h=ll(22,h,null,w),h.lanes=0,h}function fM(h,w,_){return Ff(w,h.child,null,_),h=hM(w,w.pendingProps.children),h.flags|=2,w.memoizedState=null,h}function tH(h,w,_){h.lanes|=w;var M=h.alternate;M!==null&&(M.lanes|=w),jj(h.return,w,_)}function gM(h,w,_,M,W,te){var Se=h.memoizedState;Se===null?h.memoizedState={isBackwards:w,rendering:null,renderingStartTime:0,last:M,tail:_,tailMode:W,treeForkCount:te}:(Se.isBackwards=w,Se.rendering=null,Se.renderingStartTime=0,Se.last=M,Se.tail=_,Se.tailMode=W,Se.treeForkCount=te)}function aH(h,w,_){var M=w.pendingProps,W=M.revealOrder,te=M.tail;M=M.children;var Se=gi.current,qe=(Se&2)!==0;if(qe?(Se=Se&1|2,w.flags|=128):Se&=1,me(gi,Se),_s(h,w,M,_),M=Ar?Nv:0,!qe&&h!==null&&(h.flags&128)!==0)e:for(h=w.child;h!==null;){if(h.tag===13)h.memoizedState!==null&&tH(h,_,w);else if(h.tag===19)tH(h,_,w);else if(h.child!==null){h.child.return=h,h=h.child;continue}if(h===w)break e;for(;h.sibling===null;){if(h.return===null||h.return===w)break e;h=h.return}h.sibling.return=h.return,h=h.sibling}switch(W){case"forwards":for(_=w.child,W=null;_!==null;)h=_.alternate,h!==null&&Vk(h)===null&&(W=_),_=_.sibling;_=W,_===null?(W=w.child,w.child=null):(W=_.sibling,_.sibling=null),gM(w,!1,W,_,te,M);break;case"backwards":case"unstable_legacy-backwards":for(_=null,W=w.child,w.child=null;W!==null;){if(h=W.alternate,h!==null&&Vk(h)===null){w.child=W;break}h=W.sibling,W.sibling=_,_=W,W=h}gM(w,!0,_,null,te,M);break;case"together":gM(w,!1,null,null,void 0,M);break;default:w.memoizedState=null}return w.child}function $u(h,w,_){if(h!==null&&(w.dependencies=h.dependencies),Lp|=w.lanes,(_&w.childLanes)===0)if(h!==null){if(Db(h,w,_,!1),(_&w.childLanes)===0)return null}else return null;if(h!==null&&w.child!==h.child)throw Error(n(153));if(w.child!==null){for(h=w.child,_=Bu(h,h.pendingProps),w.child=_,_.return=w;h.sibling!==null;)h=h.sibling,_=_.sibling=Bu(h,h.pendingProps),_.return=w;_.sibling=null}return w.child}function bM(h,w){return(h.lanes&w)!==0?!0:(h=h.dependencies,!!(h!==null&&Rk(h)))}function due(h,w,_){switch(w.tag){case 3:A(w,w.stateNode.containerInfo),Np(w,_i,h.memoizedState.cache),Tf();break;case 27:case 5:U(w);break;case 4:A(w,w.stateNode.containerInfo);break;case 10:Np(w,w.type,w.memoizedProps.value);break;case 31:if(w.memoizedState!==null)return w.flags|=128,Hj(w),null;break;case 13:var M=w.memoizedState;if(M!==null)return M.dehydrated!==null?(Mp(w),w.flags|=128,null):(_&w.child.childLanes)!==0?eH(h,w,_):(Mp(w),h=$u(h,w,_),h!==null?h.sibling:null);Mp(w);break;case 19:var W=(h.flags&128)!==0;if(M=(_&w.childLanes)!==0,M||(Db(h,w,_,!1),M=(_&w.childLanes)!==0),W){if(M)return aH(h,w,_);w.flags|=128}if(W=w.memoizedState,W!==null&&(W.rendering=null,W.tail=null,W.lastEffect=null),me(gi,gi.current),M)break;return null;case 22:return w.lanes=0,KU(h,w,_,w.pendingProps);case 24:Np(w,_i,h.memoizedState.cache)}return $u(h,w,_)}function rH(h,w,_){if(h!==null)if(h.memoizedProps!==w.pendingProps)Ci=!0;else{if(!bM(h,_)&&(w.flags&128)===0)return Ci=!1,due(h,w,_);Ci=(h.flags&131072)!==0}else Ci=!1,Ar&&(w.flags&1048576)!==0&&L5(w,Nv,w.index);switch(w.lanes=0,w.tag){case 16:e:{var M=w.pendingProps;if(h=Ef(w.elementType),w.type=h,typeof h=="function")Sj(h)?(M=Rf(h,M),w.tag=1,w=ZU(null,w,h,M,_)):(w.tag=0,w=dM(null,w,h,M,_));else{if(h!=null){var W=h.$$typeof;if(W===C){w.tag=11,w=GU(null,w,h,M,_);break e}else if(W===j){w.tag=14,w=$U(null,w,h,M,_);break e}}throw w=R(h)||h,Error(n(306,w,""))}}return w;case 0:return dM(h,w,w.type,w.pendingProps,_);case 1:return M=w.type,W=Rf(M,w.pendingProps),ZU(h,w,M,W,_);case 3:e:{if(A(w,w.stateNode.containerInfo),h===null)throw Error(n(387));M=w.pendingProps;var te=w.memoizedState;W=te.element,zj(h,w),Lv(w,M,null,_);var Se=w.memoizedState;if(M=Se.cache,Np(w,_i,M),M!==te.cache&&Mj(w,[_i],_,!0),Fv(),M=Se.element,te.isDehydrated)if(te={element:M,isDehydrated:!1,cache:Se.cache},w.updateQueue.baseState=te,w.memoizedState=te,w.flags&256){w=JU(h,w,M,_);break e}else if(M!==W){W=$l(Error(n(424)),w),Tv(W),w=JU(h,w,M,_);break e}else for(h=w.stateNode.containerInfo,h.nodeType===9?h=h.body:h=h.nodeName==="HTML"?h.ownerDocument.body:h,Cn=Xl(h.firstChild),Ss=w,Ar=!0,Pp=null,Yl=!0,_=K5(w,null,M,_),w.child=_;_;)_.flags=_.flags&-3|4096,_=_.sibling;else{if(Tf(),M===W){w=$u(h,w,_);break e}_s(h,w,M,_)}w=w.child}return w;case 26:return t_(h,w),h===null?(_=hq(w.type,null,w.pendingProps,null))?w.memoizedState=_:Ar||(_=w.type,h=w.pendingProps,M=x_(V.current).createElement(_),M[vt]=w,M[Nt]=h,Ps(M,_,h),et(M),w.stateNode=M):w.memoizedState=hq(w.type,h.memoizedProps,w.pendingProps,h.memoizedState),null;case 27:return U(w),h===null&&Ar&&(M=w.stateNode=uq(w.type,w.pendingProps,V.current),Ss=w,Yl=!0,W=Cn,Bp(w.type)?(QM=W,Cn=Xl(M.firstChild)):Cn=W),_s(h,w,w.pendingProps.children,_),t_(h,w),h===null&&(w.flags|=4194304),w.child;case 5:return h===null&&Ar&&((W=M=Cn)&&(M=Bue(M,w.type,w.pendingProps,Yl),M!==null?(w.stateNode=M,Ss=w,Cn=Xl(M.firstChild),Yl=!1,W=!0):W=!1),W||Cp(w)),U(w),W=w.type,te=w.pendingProps,Se=h!==null?h.memoizedProps:null,M=te.children,GM(W,te)?M=null:Se!==null&&GM(W,Se)&&(w.flags|=32),w.memoizedState!==null&&(W=Vj(h,w,tue,null,null,_),t0._currentValue=W),t_(h,w),_s(h,w,M,_),w.child;case 6:return h===null&&Ar&&((h=_=Cn)&&(_=Uue(_,w.pendingProps,Yl),_!==null?(w.stateNode=_,Ss=w,Cn=null,h=!0):h=!1),h||Cp(w)),null;case 13:return eH(h,w,_);case 4:return A(w,w.stateNode.containerInfo),M=w.pendingProps,h===null?w.child=Ff(w,null,M,_):_s(h,w,M,_),w.child;case 11:return GU(h,w,w.type,w.pendingProps,_);case 7:return _s(h,w,w.pendingProps,_),w.child;case 8:return _s(h,w,w.pendingProps.children,_),w.child;case 12:return _s(h,w,w.pendingProps.children,_),w.child;case 10:return M=w.pendingProps,Np(w,w.type,M.value),_s(h,w,M.children,_),w.child;case 9:return W=w.type._context,M=w.pendingProps.children,jf(w),W=ks(W),M=M(W),w.flags|=1,_s(h,w,M,_),w.child;case 14:return $U(h,w,w.type,w.pendingProps,_);case 15:return WU(h,w,w.type,w.pendingProps,_);case 19:return aH(h,w,_);case 31:return cue(h,w,_);case 22:return KU(h,w,_,w.pendingProps);case 24:return jf(w),M=ks(_i),h===null?(W=Fj(),W===null&&(W=bn,te=Ej(),W.pooledCache=te,te.refCount++,te!==null&&(W.pooledCacheLanes|=_),W=te),w.memoizedState={parent:M,cache:W},Rj(w),Np(w,_i,W)):((h.lanes&_)!==0&&(zj(h,w),Lv(w,null,null,_),Fv()),W=h.memoizedState,te=w.memoizedState,W.parent!==M?(W={parent:M,cache:M},w.memoizedState=W,w.lanes===0&&(w.memoizedState=w.updateQueue.baseState=W),Np(w,_i,M)):(M=te.cache,Np(w,_i,M),M!==W.cache&&Mj(w,[_i],_,!0))),_s(h,w,w.pendingProps.children,_),w.child;case 29:throw w.pendingProps}throw Error(n(156,w.tag))}function Wu(h){h.flags|=4}function xM(h,w,_,M,W){if((w=(h.mode&32)!==0)&&(w=!1),w){if(h.flags|=16777216,(W&335544128)===W)if(h.stateNode.complete)h.flags|=8192;else if(jH())h.flags|=8192;else throw Df=Bk,Lj}else h.flags&=-16777217}function nH(h,w){if(w.type!=="stylesheet"||(w.state.loading&4)!==0)h.flags&=-16777217;else if(h.flags|=16777216,!yq(w))if(jH())h.flags|=8192;else throw Df=Bk,Lj}function r_(h,w){w!==null&&(h.flags|=4),h.flags&16384&&(w=h.tag!==22?Ge():536870912,h.lanes|=w,Gb|=w)}function Uv(h,w){if(!Ar)switch(h.tailMode){case"hidden":w=h.tail;for(var _=null;w!==null;)w.alternate!==null&&(_=w),w=w.sibling;_===null?h.tail=null:_.sibling=null;break;case"collapsed":_=h.tail;for(var M=null;_!==null;)_.alternate!==null&&(M=_),_=_.sibling;M===null?w||h.tail===null?h.tail=null:h.tail.sibling=null:M.sibling=null}}function Nn(h){var w=h.alternate!==null&&h.alternate.child===h.child,_=0,M=0;if(w)for(var W=h.child;W!==null;)_|=W.lanes|W.childLanes,M|=W.subtreeFlags&65011712,M|=W.flags&65011712,W.return=h,W=W.sibling;else for(W=h.child;W!==null;)_|=W.lanes|W.childLanes,M|=W.subtreeFlags,M|=W.flags,W.return=h,W=W.sibling;return h.subtreeFlags|=M,h.childLanes=_,w}function uue(h,w,_){var M=w.pendingProps;switch(Cj(w),w.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Nn(w),null;case 1:return Nn(w),null;case 3:return _=w.stateNode,M=null,h!==null&&(M=h.memoizedState.cache),w.memoizedState.cache!==M&&(w.flags|=2048),qu(_i),F(),_.pendingContext&&(_.context=_.pendingContext,_.pendingContext=null),(h===null||h.child===null)&&(Eb(w)?Wu(w):h===null||h.memoizedState.isDehydrated&&(w.flags&256)===0||(w.flags|=1024,Tj())),Nn(w),null;case 26:var W=w.type,te=w.memoizedState;return h===null?(Wu(w),te!==null?(Nn(w),nH(w,te)):(Nn(w),xM(w,W,null,M,_))):te?te!==h.memoizedState?(Wu(w),Nn(w),nH(w,te)):(Nn(w),w.flags&=-16777217):(h=h.memoizedProps,h!==M&&Wu(w),Nn(w),xM(w,W,h,M,_)),null;case 27:if($(w),_=V.current,W=w.type,h!==null&&w.stateNode!=null)h.memoizedProps!==M&&Wu(w);else{if(!M){if(w.stateNode===null)throw Error(n(166));return Nn(w),null}h=pe.current,Eb(w)?z5(w):(h=uq(W,M,_),w.stateNode=h,Wu(w))}return Nn(w),null;case 5:if($(w),W=w.type,h!==null&&w.stateNode!=null)h.memoizedProps!==M&&Wu(w);else{if(!M){if(w.stateNode===null)throw Error(n(166));return Nn(w),null}if(te=pe.current,Eb(w))z5(w);else{var Se=x_(V.current);switch(te){case 1:te=Se.createElementNS("http://www.w3.org/2000/svg",W);break;case 2:te=Se.createElementNS("http://www.w3.org/1998/Math/MathML",W);break;default:switch(W){case"svg":te=Se.createElementNS("http://www.w3.org/2000/svg",W);break;case"math":te=Se.createElementNS("http://www.w3.org/1998/Math/MathML",W);break;case"script":te=Se.createElement("div"),te.innerHTML=" +