From 8426755db3f99107da7cd887bcf8e3e59742f50e Mon Sep 17 00:00:00 2001 From: Giovanni-Josserand Date: Tue, 9 Dec 2025 12:28:02 +0100 Subject: [PATCH] add user search in SearchController, add start and end datetime in events table --- app/Http/Controllers/EventsController.php | 6 ++ app/Http/Controllers/SearchController.php | 74 +++++++++++++++++- app/Models/Events.php | 2 + .../2025_10_27_211752_create_events_table.php | 2 + public/assets/index-2TOp4kWm.js | 76 +++++++++++++++++++ public/assets/index-6M3Y5nkP.js | 76 +++++++++++++++++++ public/assets/index-B3dCebGH.js | 76 +++++++++++++++++++ public/assets/index-B4rvWBwS.css | 1 + public/assets/index-B5DnEe0d.js | 76 +++++++++++++++++++ public/assets/index-B66BuXas.js | 76 +++++++++++++++++++ public/assets/index-BJkX9rSc.js | 76 +++++++++++++++++++ public/assets/index-BJwsSbH7.js | 76 +++++++++++++++++++ public/assets/index-BLddflSd.js | 76 +++++++++++++++++++ public/assets/index-BMtYBaQz.css | 1 + public/assets/index-BQNqXcS_.css | 1 + public/assets/index-BQYKakzO.js | 76 +++++++++++++++++++ public/assets/index-BQlsf5oA.css | 1 + public/assets/index-BSf7xV6j.js | 76 +++++++++++++++++++ public/assets/index-BgMrkmww.css | 1 + public/assets/index-BvRP-kgt.js | 76 +++++++++++++++++++ public/assets/index-BzdKBygo.js | 76 +++++++++++++++++++ public/assets/index-C4dsdFKD.js | 76 +++++++++++++++++++ public/assets/index-CATBc-cQ.js | 76 +++++++++++++++++++ public/assets/index-CDjhjlfD.js | 76 +++++++++++++++++++ public/assets/index-CFXQbFDr.js | 76 +++++++++++++++++++ public/assets/index-CIjI-TNx.js | 76 +++++++++++++++++++ public/assets/index-CKdvSQ9U.js | 76 +++++++++++++++++++ public/assets/index-CL56Lhut.css | 1 + public/assets/index-CLiyH9yH.css | 1 + public/assets/index-CMEg7UKd.js | 76 +++++++++++++++++++ public/assets/index-CNwnVkws.js | 76 +++++++++++++++++++ public/assets/index-CPRDcUp9.js | 76 +++++++++++++++++++ public/assets/index-CRrNVUJ9.js | 76 +++++++++++++++++++ public/assets/index-CWaKn317.js | 76 +++++++++++++++++++ public/assets/index-CWk17JCk.js | 76 +++++++++++++++++++ public/assets/index-CZ0yZL7w.js | 76 +++++++++++++++++++ public/assets/index-C_mG1ZTJ.js | 76 +++++++++++++++++++ public/assets/index-Ca2hRpqL.js | 76 +++++++++++++++++++ public/assets/index-CgZwBQ0p.js | 76 +++++++++++++++++++ public/assets/index-Cs6psoQN.js | 76 +++++++++++++++++++ public/assets/index-CtdWuJCB.js | 76 +++++++++++++++++++ public/assets/index-CuzfGhJL.css | 1 + public/assets/index-D-FiBItI.js | 76 +++++++++++++++++++ public/assets/index-D3Yn4LIw.css | 1 + public/assets/index-D5hccwDI.js | 76 +++++++++++++++++++ public/assets/index-D5o_BUYw.js | 76 +++++++++++++++++++ public/assets/index-DBM3_c2_.js | 76 +++++++++++++++++++ public/assets/index-DCsEUhmA.css | 1 + public/assets/index-DF2S30zy.js | 76 +++++++++++++++++++ public/assets/index-DGJVfaBG.js | 76 +++++++++++++++++++ public/assets/index-DMJNEaWY.js | 76 +++++++++++++++++++ public/assets/index-DN3ApxPq.css | 1 + public/assets/index-DQpAG6Cr.js | 76 +++++++++++++++++++ public/assets/index-DTRyE-FJ.js | 76 +++++++++++++++++++ public/assets/index-DXteuq7O.js | 76 +++++++++++++++++++ public/assets/index-DdRcXUns.js | 76 +++++++++++++++++++ public/assets/index-DiA6kHh4.js | 76 +++++++++++++++++++ public/assets/index-DkC5cLYs.js | 76 +++++++++++++++++++ public/assets/index-DnPLUDGI.css | 1 + public/assets/index-Ds7V0ATz.css | 1 + public/assets/index-DsAzPXkR.js | 76 +++++++++++++++++++ public/assets/index-DsqSAIP_.css | 1 + public/assets/index-Dy636JGR.js | 76 +++++++++++++++++++ public/assets/index-Dz-l0zVM.js | 76 +++++++++++++++++++ public/assets/index-GnYt9-Uz.js | 76 +++++++++++++++++++ public/assets/index-GwhAcOZv.js | 76 +++++++++++++++++++ public/assets/index-Mvp4y-4K.css | 1 + public/assets/index-MvwSI0qd.js | 76 +++++++++++++++++++ public/assets/index-PWe1iwJh.js | 76 +++++++++++++++++++ public/assets/index-TqintTrS.js | 76 +++++++++++++++++++ public/assets/index-V3isPvNQ.js | 76 +++++++++++++++++++ public/assets/index-XhozbIEn.js | 76 +++++++++++++++++++ public/assets/index-_QRXthoT.css | 1 + public/assets/index-aEAkCgtk.js | 76 +++++++++++++++++++ public/assets/index-bJSjdvPU.js | 76 +++++++++++++++++++ public/assets/index-d_Ujps9N.js | 76 +++++++++++++++++++ public/assets/index-kuwnq1ZQ.js | 76 +++++++++++++++++++ public/assets/index-mG6LtLIg.js | 76 +++++++++++++++++++ public/assets/index-nxm61PZa.js | 76 +++++++++++++++++++ public/assets/index-rqyCEOxE.js | 76 +++++++++++++++++++ public/assets/index-ss8VR2no.css | 1 + public/assets/index-vTWTNLiV.css | 1 + public/icons/pen.svg | 4 + public/index.html | 4 +- public/search.svg | 1 + routes/users.php | 4 + tests/Events/Create event.bru | 10 ++- tests/Users/Create user.bru | 8 +- tests/collection.bru | 2 +- 89 files changed, 4684 insertions(+), 11 deletions(-) create mode 100644 public/assets/index-2TOp4kWm.js create mode 100644 public/assets/index-6M3Y5nkP.js create mode 100644 public/assets/index-B3dCebGH.js create mode 100644 public/assets/index-B4rvWBwS.css create mode 100644 public/assets/index-B5DnEe0d.js create mode 100644 public/assets/index-B66BuXas.js create mode 100644 public/assets/index-BJkX9rSc.js create mode 100644 public/assets/index-BJwsSbH7.js create mode 100644 public/assets/index-BLddflSd.js create mode 100644 public/assets/index-BMtYBaQz.css create mode 100644 public/assets/index-BQNqXcS_.css create mode 100644 public/assets/index-BQYKakzO.js create mode 100644 public/assets/index-BQlsf5oA.css create mode 100644 public/assets/index-BSf7xV6j.js create mode 100644 public/assets/index-BgMrkmww.css create mode 100644 public/assets/index-BvRP-kgt.js create mode 100644 public/assets/index-BzdKBygo.js create mode 100644 public/assets/index-C4dsdFKD.js create mode 100644 public/assets/index-CATBc-cQ.js create mode 100644 public/assets/index-CDjhjlfD.js create mode 100644 public/assets/index-CFXQbFDr.js create mode 100644 public/assets/index-CIjI-TNx.js create mode 100644 public/assets/index-CKdvSQ9U.js create mode 100644 public/assets/index-CL56Lhut.css create mode 100644 public/assets/index-CLiyH9yH.css create mode 100644 public/assets/index-CMEg7UKd.js create mode 100644 public/assets/index-CNwnVkws.js create mode 100644 public/assets/index-CPRDcUp9.js create mode 100644 public/assets/index-CRrNVUJ9.js create mode 100644 public/assets/index-CWaKn317.js create mode 100644 public/assets/index-CWk17JCk.js create mode 100644 public/assets/index-CZ0yZL7w.js create mode 100644 public/assets/index-C_mG1ZTJ.js create mode 100644 public/assets/index-Ca2hRpqL.js create mode 100644 public/assets/index-CgZwBQ0p.js create mode 100644 public/assets/index-Cs6psoQN.js create mode 100644 public/assets/index-CtdWuJCB.js create mode 100644 public/assets/index-CuzfGhJL.css create mode 100644 public/assets/index-D-FiBItI.js create mode 100644 public/assets/index-D3Yn4LIw.css create mode 100644 public/assets/index-D5hccwDI.js create mode 100644 public/assets/index-D5o_BUYw.js create mode 100644 public/assets/index-DBM3_c2_.js create mode 100644 public/assets/index-DCsEUhmA.css create mode 100644 public/assets/index-DF2S30zy.js create mode 100644 public/assets/index-DGJVfaBG.js create mode 100644 public/assets/index-DMJNEaWY.js create mode 100644 public/assets/index-DN3ApxPq.css create mode 100644 public/assets/index-DQpAG6Cr.js create mode 100644 public/assets/index-DTRyE-FJ.js create mode 100644 public/assets/index-DXteuq7O.js create mode 100644 public/assets/index-DdRcXUns.js create mode 100644 public/assets/index-DiA6kHh4.js create mode 100644 public/assets/index-DkC5cLYs.js create mode 100644 public/assets/index-DnPLUDGI.css create mode 100644 public/assets/index-Ds7V0ATz.css create mode 100644 public/assets/index-DsAzPXkR.js create mode 100644 public/assets/index-DsqSAIP_.css create mode 100644 public/assets/index-Dy636JGR.js create mode 100644 public/assets/index-Dz-l0zVM.js create mode 100644 public/assets/index-GnYt9-Uz.js create mode 100644 public/assets/index-GwhAcOZv.js create mode 100644 public/assets/index-Mvp4y-4K.css create mode 100644 public/assets/index-MvwSI0qd.js create mode 100644 public/assets/index-PWe1iwJh.js create mode 100644 public/assets/index-TqintTrS.js create mode 100644 public/assets/index-V3isPvNQ.js create mode 100644 public/assets/index-XhozbIEn.js create mode 100644 public/assets/index-_QRXthoT.css create mode 100644 public/assets/index-aEAkCgtk.js create mode 100644 public/assets/index-bJSjdvPU.js create mode 100644 public/assets/index-d_Ujps9N.js create mode 100644 public/assets/index-kuwnq1ZQ.js create mode 100644 public/assets/index-mG6LtLIg.js create mode 100644 public/assets/index-nxm61PZa.js create mode 100644 public/assets/index-rqyCEOxE.js create mode 100644 public/assets/index-ss8VR2no.css create mode 100644 public/assets/index-vTWTNLiV.css create mode 100644 public/icons/pen.svg create mode 100644 public/search.svg diff --git a/app/Http/Controllers/EventsController.php b/app/Http/Controllers/EventsController.php index bbed0a8..27176e1 100644 --- a/app/Http/Controllers/EventsController.php +++ b/app/Http/Controllers/EventsController.php @@ -22,6 +22,8 @@ class EventsController extends Controller Events::create([ "name" => $request['name'], "description" => $request['description'], + "start" => $request['start'], + "end" => $request['end'], ]); return response()->json(['message' => 'Event created']); @@ -45,6 +47,8 @@ class EventsController extends Controller $event->name = $request['name']; $event->description = $request['description']; + $event->start = $request['start']; + $event->end = $request['end']; $event->save(); return response()->json(["message" => "Event updated"]); @@ -96,6 +100,8 @@ class EventsController extends Controller "id" => $event->id, "name" => $event->name, "description" => $event->description, + "start" => $event->start, + "end" => $event->end, "created_at" => $event->created_at, "updated_at" => $event->updated_at, "tasks" => $event->tasks, diff --git a/app/Http/Controllers/SearchController.php b/app/Http/Controllers/SearchController.php index 0b3b464..75cdf38 100644 --- a/app/Http/Controllers/SearchController.php +++ b/app/Http/Controllers/SearchController.php @@ -2,6 +2,7 @@ namespace App\Http\Controllers; +use App\Models\User; use Illuminate\Http\Request; use Typesense\Client; use Exception; @@ -14,7 +15,7 @@ class SearchController extends Controller public function __construct() { $this->client = new Client([ - 'api_key' => '', + 'api_key' => 'xyz', 'nodes' => [ [ 'host' => env('TYPESENSE_CONNECTION'), @@ -80,4 +81,75 @@ class SearchController extends Controller return response()->json(['error' => $e->getMessage()], 500); } } + + + + + + + + + + + + + + + + private function createUsersCollection() + { + try { + $collections = $this->client->collections->retrieve(); + + if (!in_array('users', array_column($collections, 'name'))) { + $this->client->collections->create([ + 'name' => 'users', + 'fields' => [ + ['name' => 'name', 'type' => 'string'], + ['name' => 'lastname', 'type' => 'string'], + ], + ]); + } + } catch (Exception $e) { + throw new Exception("Error while creating the users collection : " . $e->getMessage()); + } + } + + private function indexUsers() + { + try { + $users = User::all(); + + foreach ($users as $user) { + + $this->client->collections['users']->documents->upsert([ + 'id' => (string) $user->id, + 'name' => $user->name, + 'lastname' => $user->lastname, + ]); + } + } catch (Exception $e) { + throw new Exception("Error while indexing users : " . $e->getMessage()); + } + } + + + + public function searchUsers(Request $request) + { + try { + $this->createUsersCollection(); + $this->indexUsers(); + $query = $request->input('query', ''); + + $searchResults = $this->client->collections['users']->documents->search([ + 'q' => $query, + 'query_by' => 'name,lastname', + ]); + + return response()->json($searchResults); + } catch (Exception $e) { + return response()->json(['error' => $e->getMessage()], 500); + } + } } diff --git a/app/Models/Events.php b/app/Models/Events.php index ba500fe..94ce833 100644 --- a/app/Models/Events.php +++ b/app/Models/Events.php @@ -11,6 +11,8 @@ class Events extends Model protected $fillable = [ "name", "description", + 'start', + 'end', ]; public function tasks() { diff --git a/database/migrations/2025_10_27_211752_create_events_table.php b/database/migrations/2025_10_27_211752_create_events_table.php index c365c15..e786243 100644 --- a/database/migrations/2025_10_27_211752_create_events_table.php +++ b/database/migrations/2025_10_27_211752_create_events_table.php @@ -15,6 +15,8 @@ return new class extends Migration $table->id(); $table->string('name'); $table->string('description'); + $table->dateTime('start')->nullable(); + $table->dateTime('end')->nullable(); $table->timestamps(); }); } diff --git a/public/assets/index-2TOp4kWm.js b/public/assets/index-2TOp4kWm.js new file mode 100644 index 0000000..bf7fbf2 --- /dev/null +++ b/public/assets/index-2TOp4kWm.js @@ -0,0 +1,76 @@ +function a_(a,n){for(var l=0;ls[o]})}}}return Object.freeze(Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}))}(function(){const n=document.createElement("link").relList;if(n&&n.supports&&n.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))s(o);new MutationObserver(o=>{for(const u of o)if(u.type==="childList")for(const c of u.addedNodes)c.tagName==="LINK"&&c.rel==="modulepreload"&&s(c)}).observe(document,{childList:!0,subtree:!0});function l(o){const u={};return o.integrity&&(u.integrity=o.integrity),o.referrerPolicy&&(u.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?u.credentials="include":o.crossOrigin==="anonymous"?u.credentials="omit":u.credentials="same-origin",u}function s(o){if(o.ep)return;o.ep=!0;const u=l(o);fetch(o.href,u)}})();function i_(a){return a&&a.__esModule&&Object.prototype.hasOwnProperty.call(a,"default")?a.default:a}var Ef={exports:{}},Es={};/** + * @license React + * react-jsx-runtime.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var sp;function l_(){if(sp)return Es;sp=1;var a=Symbol.for("react.transitional.element"),n=Symbol.for("react.fragment");function l(s,o,u){var c=null;if(u!==void 0&&(c=""+u),o.key!==void 0&&(c=""+o.key),"key"in o){u={};for(var h in o)h!=="key"&&(u[h]=o[h])}else u=o;return o=u.ref,{$$typeof:a,type:s,key:c,ref:o!==void 0?o:null,props:u}}return Es.Fragment=n,Es.jsx=l,Es.jsxs=l,Es}var rp;function s_(){return rp||(rp=1,Ef.exports=l_()),Ef.exports}var S=s_(),Mf={exports:{}},Ct={};/** + * @license React + * react.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var op;function r_(){if(op)return Ct;op=1;var a=Symbol.for("react.transitional.element"),n=Symbol.for("react.portal"),l=Symbol.for("react.fragment"),s=Symbol.for("react.strict_mode"),o=Symbol.for("react.profiler"),u=Symbol.for("react.consumer"),c=Symbol.for("react.context"),h=Symbol.for("react.forward_ref"),m=Symbol.for("react.suspense"),g=Symbol.for("react.memo"),v=Symbol.for("react.lazy"),y=Symbol.for("react.activity"),_=Symbol.iterator;function x(C){return C===null||typeof C!="object"?null:(C=_&&C[_]||C["@@iterator"],typeof C=="function"?C:null)}var O={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},B=Object.assign,k={};function q(C,V,F){this.props=C,this.context=V,this.refs=k,this.updater=F||O}q.prototype.isReactComponent={},q.prototype.setState=function(C,V){if(typeof C!="object"&&typeof C!="function"&&C!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,C,V,"setState")},q.prototype.forceUpdate=function(C){this.updater.enqueueForceUpdate(this,C,"forceUpdate")};function Y(){}Y.prototype=q.prototype;function $(C,V,F){this.props=C,this.context=V,this.refs=k,this.updater=F||O}var nt=$.prototype=new Y;nt.constructor=$,B(nt,q.prototype),nt.isPureReactComponent=!0;var I=Array.isArray;function gt(){}var T={H:null,A:null,T:null,S:null},ut=Object.prototype.hasOwnProperty;function lt(C,V,F){var tt=F.ref;return{$$typeof:a,type:C,key:V,ref:tt!==void 0?tt:null,props:F}}function pt(C,V){return lt(C.type,V,C.props)}function ct(C){return typeof C=="object"&&C!==null&&C.$$typeof===a}function xt(C){var V={"=":"=0",":":"=2"};return"$"+C.replace(/[=:]/g,function(F){return V[F]})}var Mt=/\/+/g;function St(C,V){return typeof C=="object"&&C!==null&&C.key!=null?xt(""+C.key):V.toString(36)}function st(C){switch(C.status){case"fulfilled":return C.value;case"rejected":throw C.reason;default:switch(typeof C.status=="string"?C.then(gt,gt):(C.status="pending",C.then(function(V){C.status==="pending"&&(C.status="fulfilled",C.value=V)},function(V){C.status==="pending"&&(C.status="rejected",C.reason=V)})),C.status){case"fulfilled":return C.value;case"rejected":throw C.reason}}throw C}function A(C,V,F,tt,dt){var bt=typeof C;(bt==="undefined"||bt==="boolean")&&(C=null);var Lt=!1;if(C===null)Lt=!0;else switch(bt){case"bigint":case"string":case"number":Lt=!0;break;case"object":switch(C.$$typeof){case a:case n:Lt=!0;break;case v:return Lt=C._init,A(Lt(C._payload),V,F,tt,dt)}}if(Lt)return dt=dt(C),Lt=tt===""?"."+St(C,0):tt,I(dt)?(F="",Lt!=null&&(F=Lt.replace(Mt,"$&/")+"/"),A(dt,V,F,"",function(ai){return ai})):dt!=null&&(ct(dt)&&(dt=pt(dt,F+(dt.key==null||C&&C.key===dt.key?"":(""+dt.key).replace(Mt,"$&/")+"/")+Lt)),V.push(dt)),1;Lt=0;var ce=tt===""?".":tt+":";if(I(C))for(var ae=0;ae>>1,Et=A[ft];if(0>>1;fto(F,J))tto(dt,F)?(A[ft]=dt,A[tt]=J,ft=tt):(A[ft]=F,A[V]=J,ft=V);else if(tto(dt,J))A[ft]=dt,A[tt]=J,ft=tt;else break t}}return Q}function o(A,Q){var J=A.sortIndex-Q.sortIndex;return J!==0?J:A.id-Q.id}if(a.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var u=performance;a.unstable_now=function(){return u.now()}}else{var c=Date,h=c.now();a.unstable_now=function(){return c.now()-h}}var m=[],g=[],v=1,y=null,_=3,x=!1,O=!1,B=!1,k=!1,q=typeof setTimeout=="function"?setTimeout:null,Y=typeof clearTimeout=="function"?clearTimeout:null,$=typeof setImmediate<"u"?setImmediate:null;function nt(A){for(var Q=l(g);Q!==null;){if(Q.callback===null)s(g);else if(Q.startTime<=A)s(g),Q.sortIndex=Q.expirationTime,n(m,Q);else break;Q=l(g)}}function I(A){if(B=!1,nt(A),!O)if(l(m)!==null)O=!0,gt||(gt=!0,xt());else{var Q=l(g);Q!==null&&st(I,Q.startTime-A)}}var gt=!1,T=-1,ut=5,lt=-1;function pt(){return k?!0:!(a.unstable_now()-ltA&&pt());){var ft=y.callback;if(typeof ft=="function"){y.callback=null,_=y.priorityLevel;var Et=ft(y.expirationTime<=A);if(A=a.unstable_now(),typeof Et=="function"){y.callback=Et,nt(A),Q=!0;break e}y===l(m)&&s(m),nt(A)}else s(m);y=l(m)}if(y!==null)Q=!0;else{var C=l(g);C!==null&&st(I,C.startTime-A),Q=!1}}break t}finally{y=null,_=J,x=!1}Q=void 0}}finally{Q?xt():gt=!1}}}var xt;if(typeof $=="function")xt=function(){$(ct)};else if(typeof MessageChannel<"u"){var Mt=new MessageChannel,St=Mt.port2;Mt.port1.onmessage=ct,xt=function(){St.postMessage(null)}}else xt=function(){q(ct,0)};function st(A,Q){T=q(function(){A(a.unstable_now())},Q)}a.unstable_IdlePriority=5,a.unstable_ImmediatePriority=1,a.unstable_LowPriority=4,a.unstable_NormalPriority=3,a.unstable_Profiling=null,a.unstable_UserBlockingPriority=2,a.unstable_cancelCallback=function(A){A.callback=null},a.unstable_forceFrameRate=function(A){0>A||125ft?(A.sortIndex=J,n(g,A),l(m)===null&&A===l(g)&&(B?(Y(T),T=-1):B=!0,st(I,J-ft))):(A.sortIndex=Et,n(m,A),O||x||(O=!0,gt||(gt=!0,xt()))),A},a.unstable_shouldYield=pt,a.unstable_wrapCallback=function(A){var Q=_;return function(){var J=_;_=Q;try{return A.apply(this,arguments)}finally{_=J}}}})(wf)),wf}var fp;function f_(){return fp||(fp=1,Tf.exports=c_()),Tf.exports}var Of={exports:{}},Ae={};/** + * @license React + * react-dom.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var dp;function d_(){if(dp)return Ae;dp=1;var a=If();function n(m){var g="https://react.dev/errors/"+m;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(a)}catch(n){console.error(n)}}return a(),Of.exports=d_(),Of.exports}/** + * @license React + * react-dom-client.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var mp;function m_(){if(mp)return Ms;mp=1;var a=f_(),n=If(),l=h_();function s(t){var e="https://react.dev/errors/"+t;if(1Et||(t.current=ft[Et],ft[Et]=null,Et--)}function F(t,e){Et++,ft[Et]=t.current,t.current=e}var tt=C(null),dt=C(null),bt=C(null),Lt=C(null);function ce(t,e){switch(F(bt,e),F(dt,t),F(tt,null),e.nodeType){case 9:case 11:t=(t=e.documentElement)&&(t=t.namespaceURI)?Dg(t):0;break;default:if(t=e.tagName,e=e.namespaceURI)e=Dg(e),t=zg(e,t);else switch(t){case"svg":t=1;break;case"math":t=2;break;default:t=0}}V(tt),F(tt,t)}function ae(){V(tt),V(dt),V(bt)}function ai(t){t.memoizedState!==null&&F(Lt,t);var e=tt.current,i=zg(e,t.type);e!==i&&(F(dt,t),F(tt,i))}function Ui(t){dt.current===t&&(V(tt),V(dt)),Lt.current===t&&(V(Lt),bs._currentValue=J)}var ge,Kn;function Bn(t){if(ge===void 0)try{throw Error()}catch(i){var e=i.stack.trim().match(/\n( *(at )?)/);ge=e&&e[1]||"",Kn=-1)":-1f||E[r]!==N[f]){var X=` +`+E[r].replace(" at new "," at ");return t.displayName&&X.includes("")&&(X=X.replace("",t.displayName)),X}while(1<=r&&0<=f);break}}}finally{Dl=!1,Error.prepareStackTrace=i}return(i=t?t.displayName||t.name:"")?Bn(i):""}function ou(t,e){switch(t.tag){case 26:case 27:case 5:return Bn(t.type);case 16:return Bn("Lazy");case 13:return t.child!==e&&e!==null?Bn("Suspense Fallback"):Bn("Suspense");case 19:return Bn("SuspenseList");case 0:case 15:return wn(t.type,!1);case 11:return wn(t.type.render,!1);case 1:return wn(t.type,!0);case 31:return Bn("Activity");default:return""}}function er(t){try{var e="",i=null;do e+=ou(t,i),i=t,t=t.return;while(t);return e}catch(r){return` +Error generating stack: `+r.message+` +`+r.stack}}var ki=Object.prototype.hasOwnProperty,zl=a.unstable_scheduleCallback,Rl=a.unstable_cancelCallback,uu=a.unstable_shouldYield,cu=a.unstable_requestPaint,fe=a.unstable_now,ii=a.unstable_getCurrentPriorityLevel,Al=a.unstable_ImmediatePriority,qi=a.unstable_UserBlockingPriority,Ue=a.unstable_NormalPriority,On=a.unstable_LowPriority,jl=a.unstable_IdlePriority,fu=a.log,Nl=a.unstable_setDisableYieldValue,li=null,ie=null;function Dn(t){if(typeof fu=="function"&&Nl(t),ie&&typeof ie.setStrictMode=="function")try{ie.setStrictMode(li,t)}catch{}}var Re=Math.clz32?Math.clz32:ar,nr=Math.log,du=Math.LN2;function ar(t){return t>>>=0,t===0?32:31-(nr(t)/du|0)|0}var Fn=256,si=262144,xa=4194304;function Jn(t){var e=t&42;if(e!==0)return e;switch(t&-t){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 t&261888;case 262144:case 524288:case 1048576:case 2097152:return t&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return t&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return t}}function ri(t,e,i){var r=t.pendingLanes;if(r===0)return 0;var f=0,d=t.suspendedLanes,p=t.pingedLanes;t=t.warmLanes;var b=r&134217727;return b!==0?(r=b&~d,r!==0?f=Jn(r):(p&=b,p!==0?f=Jn(p):i||(i=b&~t,i!==0&&(f=Jn(i))))):(b=r&~d,b!==0?f=Jn(b):p!==0?f=Jn(p):i||(i=r&~t,i!==0&&(f=Jn(i)))),f===0?0:e!==0&&e!==f&&(e&d)===0&&(d=f&-f,i=e&-e,d>=i||d===32&&(i&4194048)!==0)?e:f}function oi(t,e){return(t.pendingLanes&~(t.suspendedLanes&~t.pingedLanes)&e)===0}function ir(t,e){switch(t){case 1:case 2:case 4:case 8:case 64:return e+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 e+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 ui(){var t=xa;return xa<<=1,(xa&62914560)===0&&(xa=4194304),t}function Sa(t){for(var e=[],i=0;31>i;i++)e.push(t);return e}function Ea(t,e){t.pendingLanes|=e,e!==268435456&&(t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0)}function hu(t,e,i,r,f,d){var p=t.pendingLanes;t.pendingLanes=i,t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0,t.expiredLanes&=i,t.entangledLanes&=i,t.errorRecoveryDisabledLanes&=i,t.shellSuspendCounter=0;var b=t.entanglements,E=t.expirationTimes,N=t.hiddenUpdates;for(i=p&~i;0"u")return null;try{return t.activeElement||t.body}catch{return t.body}}var Wv=/[\n"\\]/g;function fn(t){return t.replace(Wv,function(e){return"\\"+e.charCodeAt(0).toString(16)+" "})}function pu(t,e,i,r,f,d,p,b){t.name="",p!=null&&typeof p!="function"&&typeof p!="symbol"&&typeof p!="boolean"?t.type=p:t.removeAttribute("type"),e!=null?p==="number"?(e===0&&t.value===""||t.value!=e)&&(t.value=""+Ce(e)):t.value!==""+Ce(e)&&(t.value=""+Ce(e)):p!=="submit"&&p!=="reset"||t.removeAttribute("value"),e!=null?vu(t,p,Ce(e)):i!=null?vu(t,p,Ce(i)):r!=null&&t.removeAttribute("value"),f==null&&d!=null&&(t.defaultChecked=!!d),f!=null&&(t.checked=f&&typeof f!="function"&&typeof f!="symbol"),b!=null&&typeof b!="function"&&typeof b!="symbol"&&typeof b!="boolean"?t.name=""+Ce(b):t.removeAttribute("name")}function Ed(t,e,i,r,f,d,p,b){if(d!=null&&typeof d!="function"&&typeof d!="symbol"&&typeof d!="boolean"&&(t.type=d),e!=null||i!=null){if(!(d!=="submit"&&d!=="reset"||e!=null)){gu(t);return}i=i!=null?""+Ce(i):"",e=e!=null?""+Ce(e):i,b||e===t.value||(t.value=e),t.defaultValue=e}r=r??f,r=typeof r!="function"&&typeof r!="symbol"&&!!r,t.checked=b?t.checked:!!r,t.defaultChecked=!!r,p!=null&&typeof p!="function"&&typeof p!="symbol"&&typeof p!="boolean"&&(t.name=p),gu(t)}function vu(t,e,i){e==="number"&&sr(t.ownerDocument)===t||t.defaultValue===""+i||(t.defaultValue=""+i)}function Xi(t,e,i,r){if(t=t.options,e){e={};for(var f=0;f"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Su=!1;if(Pn)try{var Hl={};Object.defineProperty(Hl,"passive",{get:function(){Su=!0}}),window.addEventListener("test",Hl,Hl),window.removeEventListener("test",Hl,Hl)}catch{Su=!1}var Ma=null,Eu=null,or=null;function zd(){if(or)return or;var t,e=Eu,i=e.length,r,f="value"in Ma?Ma.value:Ma.textContent,d=f.length;for(t=0;t=ql),Bd=" ",Hd=!1;function Ud(t,e){switch(t){case"keyup":return Cy.indexOf(e.keyCode)!==-1;case"keydown":return e.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function kd(t){return t=t.detail,typeof t=="object"&&"data"in t?t.data:null}var $i=!1;function wy(t,e){switch(t){case"compositionend":return kd(e);case"keypress":return e.which!==32?null:(Hd=!0,Bd);case"textInput":return t=e.data,t===Bd&&Hd?null:t;default:return null}}function Oy(t,e){if($i)return t==="compositionend"||!Ou&&Ud(t,e)?(t=zd(),or=Eu=Ma=null,$i=!1,t):null;switch(t){case"paste":return null;case"keypress":if(!(e.ctrlKey||e.altKey||e.metaKey)||e.ctrlKey&&e.altKey){if(e.char&&1=e)return{node:i,offset:e-t};t=r}t:{for(;i;){if(i.nextSibling){i=i.nextSibling;break t}i=i.parentNode}i=void 0}i=$d(i)}}function Fd(t,e){return t&&e?t===e?!0:t&&t.nodeType===3?!1:e&&e.nodeType===3?Fd(t,e.parentNode):"contains"in t?t.contains(e):t.compareDocumentPosition?!!(t.compareDocumentPosition(e)&16):!1:!1}function Jd(t){t=t!=null&&t.ownerDocument!=null&&t.ownerDocument.defaultView!=null?t.ownerDocument.defaultView:window;for(var e=sr(t.document);e instanceof t.HTMLIFrameElement;){try{var i=typeof e.contentWindow.location.href=="string"}catch{i=!1}if(i)t=e.contentWindow;else break;e=sr(t.document)}return e}function Ru(t){var e=t&&t.nodeName&&t.nodeName.toLowerCase();return e&&(e==="input"&&(t.type==="text"||t.type==="search"||t.type==="tel"||t.type==="url"||t.type==="password")||e==="textarea"||t.contentEditable==="true")}var By=Pn&&"documentMode"in document&&11>=document.documentMode,Ki=null,Au=null,Gl=null,ju=!1;function Wd(t,e,i){var r=i.window===i?i.document:i.nodeType===9?i:i.ownerDocument;ju||Ki==null||Ki!==sr(r)||(r=Ki,"selectionStart"in r&&Ru(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Gl&&Xl(Gl,r)||(Gl=r,r=eo(Au,"onSelect"),0>=p,f-=p,Hn=1<<32-Re(e)+f|i<wt?(Nt=rt,rt=null):Nt=rt.sibling;var Vt=L(z,rt,j[wt],G);if(Vt===null){rt===null&&(rt=Nt);break}t&&rt&&Vt.alternate===null&&e(z,rt),w=d(Vt,w,wt),Yt===null?yt=Vt:Yt.sibling=Vt,Yt=Vt,rt=Nt}if(wt===j.length)return i(z,rt),Ht&&ta(z,wt),yt;if(rt===null){for(;wtwt?(Nt=rt,rt=null):Nt=rt.sibling;var Qa=L(z,rt,Vt.value,G);if(Qa===null){rt===null&&(rt=Nt);break}t&&rt&&Qa.alternate===null&&e(z,rt),w=d(Qa,w,wt),Yt===null?yt=Qa:Yt.sibling=Qa,Yt=Qa,rt=Nt}if(Vt.done)return i(z,rt),Ht&&ta(z,wt),yt;if(rt===null){for(;!Vt.done;wt++,Vt=j.next())Vt=Z(z,Vt.value,G),Vt!==null&&(w=d(Vt,w,wt),Yt===null?yt=Vt:Yt.sibling=Vt,Yt=Vt);return Ht&&ta(z,wt),yt}for(rt=r(rt);!Vt.done;wt++,Vt=j.next())Vt=U(rt,z,wt,Vt.value,G),Vt!==null&&(t&&Vt.alternate!==null&&rt.delete(Vt.key===null?wt:Vt.key),w=d(Vt,w,wt),Yt===null?yt=Vt:Yt.sibling=Vt,Yt=Vt);return t&&rt.forEach(function(n_){return e(z,n_)}),Ht&&ta(z,wt),yt}function Jt(z,w,j,G){if(typeof j=="object"&&j!==null&&j.type===B&&j.key===null&&(j=j.props.children),typeof j=="object"&&j!==null){switch(j.$$typeof){case x:t:{for(var yt=j.key;w!==null;){if(w.key===yt){if(yt=j.type,yt===B){if(w.tag===7){i(z,w.sibling),G=f(w,j.props.children),G.return=z,z=G;break t}}else if(w.elementType===yt||typeof yt=="object"&&yt!==null&&yt.$$typeof===ut&&_i(yt)===w.type){i(z,w.sibling),G=f(w,j.props),Jl(G,j),G.return=z,z=G;break t}i(z,w);break}else e(z,w);w=w.sibling}j.type===B?(G=gi(j.props.children,z.mode,G,j.key),G.return=z,z=G):(G=yr(j.type,j.key,j.props,null,z.mode,G),Jl(G,j),G.return=z,z=G)}return p(z);case O:t:{for(yt=j.key;w!==null;){if(w.key===yt)if(w.tag===4&&w.stateNode.containerInfo===j.containerInfo&&w.stateNode.implementation===j.implementation){i(z,w.sibling),G=f(w,j.children||[]),G.return=z,z=G;break t}else{i(z,w);break}else e(z,w);w=w.sibling}G=qu(j,z.mode,G),G.return=z,z=G}return p(z);case ut:return j=_i(j),Jt(z,w,j,G)}if(st(j))return it(z,w,j,G);if(xt(j)){if(yt=xt(j),typeof yt!="function")throw Error(s(150));return j=yt.call(j),_t(z,w,j,G)}if(typeof j.then=="function")return Jt(z,w,Cr(j),G);if(j.$$typeof===$)return Jt(z,w,xr(z,j),G);Tr(z,j)}return typeof j=="string"&&j!==""||typeof j=="number"||typeof j=="bigint"?(j=""+j,w!==null&&w.tag===6?(i(z,w.sibling),G=f(w,j),G.return=z,z=G):(i(z,w),G=ku(j,z.mode,G),G.return=z,z=G),p(z)):i(z,w)}return function(z,w,j,G){try{Fl=0;var yt=Jt(z,w,j,G);return ll=null,yt}catch(rt){if(rt===il||rt===Er)throw rt;var Yt=Ie(29,rt,null,z.mode);return Yt.lanes=G,Yt.return=z,Yt}finally{}}}var Si=_h(!0),xh=_h(!1),Da=!1;function Pu(t){t.updateQueue={baseState:t.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Iu(t,e){t=t.updateQueue,e.updateQueue===t&&(e.updateQueue={baseState:t.baseState,firstBaseUpdate:t.firstBaseUpdate,lastBaseUpdate:t.lastBaseUpdate,shared:t.shared,callbacks:null})}function za(t){return{lane:t,tag:0,payload:null,callback:null,next:null}}function Ra(t,e,i){var r=t.updateQueue;if(r===null)return null;if(r=r.shared,(Xt&2)!==0){var f=r.pending;return f===null?e.next=e:(e.next=f.next,f.next=e),r.pending=e,e=vr(t),ih(t,null,i),e}return pr(t,r,e,i),vr(t)}function Wl(t,e,i){if(e=e.updateQueue,e!==null&&(e=e.shared,(i&4194048)!==0)){var r=e.lanes;r&=t.pendingLanes,i|=r,e.lanes=i,M(t,i)}}function tc(t,e){var i=t.updateQueue,r=t.alternate;if(r!==null&&(r=r.updateQueue,i===r)){var f=null,d=null;if(i=i.firstBaseUpdate,i!==null){do{var p={lane:i.lane,tag:i.tag,payload:i.payload,callback:null,next:null};d===null?f=d=p:d=d.next=p,i=i.next}while(i!==null);d===null?f=d=e:d=d.next=e}else f=d=e;i={baseState:r.baseState,firstBaseUpdate:f,lastBaseUpdate:d,shared:r.shared,callbacks:r.callbacks},t.updateQueue=i;return}t=i.lastBaseUpdate,t===null?i.firstBaseUpdate=e:t.next=e,i.lastBaseUpdate=e}var ec=!1;function Pl(){if(ec){var t=al;if(t!==null)throw t}}function Il(t,e,i,r){ec=!1;var f=t.updateQueue;Da=!1;var d=f.firstBaseUpdate,p=f.lastBaseUpdate,b=f.shared.pending;if(b!==null){f.shared.pending=null;var E=b,N=E.next;E.next=null,p===null?d=N:p.next=N,p=E;var X=t.alternate;X!==null&&(X=X.updateQueue,b=X.lastBaseUpdate,b!==p&&(b===null?X.firstBaseUpdate=N:b.next=N,X.lastBaseUpdate=E))}if(d!==null){var Z=f.baseState;p=0,X=N=E=null,b=d;do{var L=b.lane&-536870913,U=L!==b.lane;if(U?(jt&L)===L:(r&L)===L){L!==0&&L===nl&&(ec=!0),X!==null&&(X=X.next={lane:0,tag:b.tag,payload:b.payload,callback:null,next:null});t:{var it=t,_t=b;L=e;var Jt=i;switch(_t.tag){case 1:if(it=_t.payload,typeof it=="function"){Z=it.call(Jt,Z,L);break t}Z=it;break t;case 3:it.flags=it.flags&-65537|128;case 0:if(it=_t.payload,L=typeof it=="function"?it.call(Jt,Z,L):it,L==null)break t;Z=y({},Z,L);break t;case 2:Da=!0}}L=b.callback,L!==null&&(t.flags|=64,U&&(t.flags|=8192),U=f.callbacks,U===null?f.callbacks=[L]:U.push(L))}else U={lane:L,tag:b.tag,payload:b.payload,callback:b.callback,next:null},X===null?(N=X=U,E=Z):X=X.next=U,p|=L;if(b=b.next,b===null){if(b=f.shared.pending,b===null)break;U=b,b=U.next,U.next=null,f.lastBaseUpdate=U,f.shared.pending=null}}while(!0);X===null&&(E=Z),f.baseState=E,f.firstBaseUpdate=N,f.lastBaseUpdate=X,d===null&&(f.shared.lanes=0),Ba|=p,t.lanes=p,t.memoizedState=Z}}function Sh(t,e){if(typeof t!="function")throw Error(s(191,t));t.call(e)}function Eh(t,e){var i=t.callbacks;if(i!==null)for(t.callbacks=null,t=0;td?d:8;var p=A.T,b={};A.T=b,_c(t,!1,e,i);try{var E=f(),N=A.S;if(N!==null&&N(b,E),E!==null&&typeof E=="object"&&typeof E.then=="function"){var X=Zy(E,r);ns(t,e,X,ln(t))}else ns(t,e,r,ln(t))}catch(Z){ns(t,e,{then:function(){},status:"rejected",reason:Z},ln())}finally{Q.p=d,p!==null&&b.types!==null&&(p.types=b.types),A.T=p}}function Wy(){}function yc(t,e,i,r){if(t.tag!==5)throw Error(s(476));var f=em(t).queue;tm(t,f,e,J,i===null?Wy:function(){return nm(t),i(r)})}function em(t){var e=t.memoizedState;if(e!==null)return e;e={memoizedState:J,baseState:J,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ia,lastRenderedState:J},next:null};var i={};return e.next={memoizedState:i,baseState:i,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ia,lastRenderedState:i},next:null},t.memoizedState=e,t=t.alternate,t!==null&&(t.memoizedState=e),e}function nm(t){var e=em(t);e.next===null&&(e=t.alternate.memoizedState),ns(t,e.next.queue,{},ln())}function bc(){return we(bs)}function am(){return he().memoizedState}function im(){return he().memoizedState}function Py(t){for(var e=t.return;e!==null;){switch(e.tag){case 24:case 3:var i=ln();t=za(i);var r=Ra(e,t,i);r!==null&&(Ze(r,e,i),Wl(r,e,i)),e={cache:Ku()},t.payload=e;return}e=e.return}}function Iy(t,e,i){var r=ln();i={lane:r,revertLane:0,gesture:null,action:i,hasEagerState:!1,eagerState:null,next:null},Br(t)?sm(e,i):(i=Hu(t,e,i,r),i!==null&&(Ze(i,t,r),rm(i,e,r)))}function lm(t,e,i){var r=ln();ns(t,e,i,r)}function ns(t,e,i,r){var f={lane:r,revertLane:0,gesture:null,action:i,hasEagerState:!1,eagerState:null,next:null};if(Br(t))sm(e,f);else{var d=t.alternate;if(t.lanes===0&&(d===null||d.lanes===0)&&(d=e.lastRenderedReducer,d!==null))try{var p=e.lastRenderedState,b=d(p,i);if(f.hasEagerState=!0,f.eagerState=b,Pe(b,p))return pr(t,e,f,0),Pt===null&&gr(),!1}catch{}finally{}if(i=Hu(t,e,f,r),i!==null)return Ze(i,t,r),rm(i,e,r),!0}return!1}function _c(t,e,i,r){if(r={lane:2,revertLane:Pc(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},Br(t)){if(e)throw Error(s(479))}else e=Hu(t,i,r,2),e!==null&&Ze(e,t,2)}function Br(t){var e=t.alternate;return t===Tt||e!==null&&e===Tt}function sm(t,e){rl=Dr=!0;var i=t.pending;i===null?e.next=e:(e.next=i.next,i.next=e),t.pending=e}function rm(t,e,i){if((i&4194048)!==0){var r=e.lanes;r&=t.pendingLanes,i|=r,e.lanes=i,M(t,i)}}var as={readContext:we,use:Ar,useCallback:se,useContext:se,useEffect:se,useImperativeHandle:se,useLayoutEffect:se,useInsertionEffect:se,useMemo:se,useReducer:se,useRef:se,useState:se,useDebugValue:se,useDeferredValue:se,useTransition:se,useSyncExternalStore:se,useId:se,useHostTransitionStatus:se,useFormState:se,useActionState:se,useOptimistic:se,useMemoCache:se,useCacheRefresh:se};as.useEffectEvent=se;var om={readContext:we,use:Ar,useCallback:function(t,e){return Le().memoizedState=[t,e===void 0?null:e],t},useContext:we,useEffect:Zh,useImperativeHandle:function(t,e,i){i=i!=null?i.concat([t]):null,Nr(4194308,4,Fh.bind(null,e,t),i)},useLayoutEffect:function(t,e){return Nr(4194308,4,t,e)},useInsertionEffect:function(t,e){Nr(4,2,t,e)},useMemo:function(t,e){var i=Le();e=e===void 0?null:e;var r=t();if(Ei){Dn(!0);try{t()}finally{Dn(!1)}}return i.memoizedState=[r,e],r},useReducer:function(t,e,i){var r=Le();if(i!==void 0){var f=i(e);if(Ei){Dn(!0);try{i(e)}finally{Dn(!1)}}}else f=e;return r.memoizedState=r.baseState=f,t={pending:null,lanes:0,dispatch:null,lastRenderedReducer:t,lastRenderedState:f},r.queue=t,t=t.dispatch=Iy.bind(null,Tt,t),[r.memoizedState,t]},useRef:function(t){var e=Le();return t={current:t},e.memoizedState=t},useState:function(t){t=hc(t);var e=t.queue,i=lm.bind(null,Tt,e);return e.dispatch=i,[t.memoizedState,i]},useDebugValue:pc,useDeferredValue:function(t,e){var i=Le();return vc(i,t,e)},useTransition:function(){var t=hc(!1);return t=tm.bind(null,Tt,t.queue,!0,!1),Le().memoizedState=t,[!1,t]},useSyncExternalStore:function(t,e,i){var r=Tt,f=Le();if(Ht){if(i===void 0)throw Error(s(407));i=i()}else{if(i=e(),Pt===null)throw Error(s(349));(jt&127)!==0||Dh(r,e,i)}f.memoizedState=i;var d={value:i,getSnapshot:e};return f.queue=d,Zh(Rh.bind(null,r,d,t),[t]),r.flags|=2048,ul(9,{destroy:void 0},zh.bind(null,r,d,i,e),null),i},useId:function(){var t=Le(),e=Pt.identifierPrefix;if(Ht){var i=Un,r=Hn;i=(r&~(1<<32-Re(r)-1)).toString(32)+i,e="_"+e+"R_"+i,i=zr++,0<\/script>",d=d.removeChild(d.firstChild);break;case"select":d=typeof r.is=="string"?p.createElement("select",{is:r.is}):p.createElement("select"),r.multiple?d.multiple=!0:r.size&&(d.size=r.size);break;default:d=typeof r.is=="string"?p.createElement(f,{is:r.is}):p.createElement(f)}}d[P]=e,d[et]=r;t:for(p=e.child;p!==null;){if(p.tag===5||p.tag===6)d.appendChild(p.stateNode);else if(p.tag!==4&&p.tag!==27&&p.child!==null){p.child.return=p,p=p.child;continue}if(p===e)break t;for(;p.sibling===null;){if(p.return===null||p.return===e)break t;p=p.return}p.sibling.return=p.return,p=p.sibling}e.stateNode=d;t:switch(De(d,f,r),f){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break t;case"img":r=!0;break t;default:r=!1}r&&sa(e)}}return ee(e),Nc(e,e.type,t===null?null:t.memoizedProps,e.pendingProps,i),null;case 6:if(t&&e.stateNode!=null)t.memoizedProps!==r&&sa(e);else{if(typeof r!="string"&&e.stateNode===null)throw Error(s(166));if(t=bt.current,tl(e)){if(t=e.stateNode,i=e.memoizedProps,r=null,f=Te,f!==null)switch(f.tag){case 27:case 5:r=f.memoizedProps}t[P]=e,t=!!(t.nodeValue===i||r!==null&&r.suppressHydrationWarning===!0||wg(t.nodeValue,i)),t||wa(e,!0)}else t=no(t).createTextNode(r),t[P]=e,e.stateNode=t}return ee(e),null;case 31:if(i=e.memoizedState,t===null||t.memoizedState!==null){if(r=tl(e),i!==null){if(t===null){if(!r)throw Error(s(318));if(t=e.memoizedState,t=t!==null?t.dehydrated:null,!t)throw Error(s(557));t[P]=e}else pi(),(e.flags&128)===0&&(e.memoizedState=null),e.flags|=4;ee(e),t=!1}else i=Gu(),t!==null&&t.memoizedState!==null&&(t.memoizedState.hydrationErrors=i),t=!0;if(!t)return e.flags&256?(en(e),e):(en(e),null);if((e.flags&128)!==0)throw Error(s(558))}return ee(e),null;case 13:if(r=e.memoizedState,t===null||t.memoizedState!==null&&t.memoizedState.dehydrated!==null){if(f=tl(e),r!==null&&r.dehydrated!==null){if(t===null){if(!f)throw Error(s(318));if(f=e.memoizedState,f=f!==null?f.dehydrated:null,!f)throw Error(s(317));f[P]=e}else pi(),(e.flags&128)===0&&(e.memoizedState=null),e.flags|=4;ee(e),f=!1}else f=Gu(),t!==null&&t.memoizedState!==null&&(t.memoizedState.hydrationErrors=f),f=!0;if(!f)return e.flags&256?(en(e),e):(en(e),null)}return en(e),(e.flags&128)!==0?(e.lanes=i,e):(i=r!==null,t=t!==null&&t.memoizedState!==null,i&&(r=e.child,f=null,r.alternate!==null&&r.alternate.memoizedState!==null&&r.alternate.memoizedState.cachePool!==null&&(f=r.alternate.memoizedState.cachePool.pool),d=null,r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(d=r.memoizedState.cachePool.pool),d!==f&&(r.flags|=2048)),i!==t&&i&&(e.child.flags|=8192),Yr(e,e.updateQueue),ee(e),null);case 4:return ae(),t===null&&nf(e.stateNode.containerInfo),ee(e),null;case 10:return na(e.type),ee(e),null;case 19:if(V(de),r=e.memoizedState,r===null)return ee(e),null;if(f=(e.flags&128)!==0,d=r.rendering,d===null)if(f)ls(r,!1);else{if(re!==0||t!==null&&(t.flags&128)!==0)for(t=e.child;t!==null;){if(d=Or(t),d!==null){for(e.flags|=128,ls(r,!1),t=d.updateQueue,e.updateQueue=t,Yr(e,t),e.subtreeFlags=0,t=i,i=e.child;i!==null;)lh(i,t),i=i.sibling;return F(de,de.current&1|2),Ht&&ta(e,r.treeForkCount),e.child}t=t.sibling}r.tail!==null&&fe()>Qr&&(e.flags|=128,f=!0,ls(r,!1),e.lanes=4194304)}else{if(!f)if(t=Or(d),t!==null){if(e.flags|=128,f=!0,t=t.updateQueue,e.updateQueue=t,Yr(e,t),ls(r,!0),r.tail===null&&r.tailMode==="hidden"&&!d.alternate&&!Ht)return ee(e),null}else 2*fe()-r.renderingStartTime>Qr&&i!==536870912&&(e.flags|=128,f=!0,ls(r,!1),e.lanes=4194304);r.isBackwards?(d.sibling=e.child,e.child=d):(t=r.last,t!==null?t.sibling=d:e.child=d,r.last=d)}return r.tail!==null?(t=r.tail,r.rendering=t,r.tail=t.sibling,r.renderingStartTime=fe(),t.sibling=null,i=de.current,F(de,f?i&1|2:i&1),Ht&&ta(e,r.treeForkCount),t):(ee(e),null);case 22:case 23:return en(e),ac(),r=e.memoizedState!==null,t!==null?t.memoizedState!==null!==r&&(e.flags|=8192):r&&(e.flags|=8192),r?(i&536870912)!==0&&(e.flags&128)===0&&(ee(e),e.subtreeFlags&6&&(e.flags|=8192)):ee(e),i=e.updateQueue,i!==null&&Yr(e,i.retryQueue),i=null,t!==null&&t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(i=t.memoizedState.cachePool.pool),r=null,e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(r=e.memoizedState.cachePool.pool),r!==i&&(e.flags|=2048),t!==null&&V(bi),null;case 24:return i=null,t!==null&&(i=t.memoizedState.cache),e.memoizedState.cache!==i&&(e.flags|=2048),na(pe),ee(e),null;case 25:return null;case 30:return null}throw Error(s(156,e.tag))}function ib(t,e){switch(Vu(e),e.tag){case 1:return t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 3:return na(pe),ae(),t=e.flags,(t&65536)!==0&&(t&128)===0?(e.flags=t&-65537|128,e):null;case 26:case 27:case 5:return Ui(e),null;case 31:if(e.memoizedState!==null){if(en(e),e.alternate===null)throw Error(s(340));pi()}return t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 13:if(en(e),t=e.memoizedState,t!==null&&t.dehydrated!==null){if(e.alternate===null)throw Error(s(340));pi()}return t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 19:return V(de),null;case 4:return ae(),null;case 10:return na(e.type),null;case 22:case 23:return en(e),ac(),t!==null&&V(bi),t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 24:return na(pe),null;case 25:return null;default:return null}}function Am(t,e){switch(Vu(e),e.tag){case 3:na(pe),ae();break;case 26:case 27:case 5:Ui(e);break;case 4:ae();break;case 31:e.memoizedState!==null&&en(e);break;case 13:en(e);break;case 19:V(de);break;case 10:na(e.type);break;case 22:case 23:en(e),ac(),t!==null&&V(bi);break;case 24:na(pe)}}function ss(t,e){try{var i=e.updateQueue,r=i!==null?i.lastEffect:null;if(r!==null){var f=r.next;i=f;do{if((i.tag&t)===t){r=void 0;var d=i.create,p=i.inst;r=d(),p.destroy=r}i=i.next}while(i!==f)}}catch(b){$t(e,e.return,b)}}function Na(t,e,i){try{var r=e.updateQueue,f=r!==null?r.lastEffect:null;if(f!==null){var d=f.next;r=d;do{if((r.tag&t)===t){var p=r.inst,b=p.destroy;if(b!==void 0){p.destroy=void 0,f=e;var E=i,N=b;try{N()}catch(X){$t(f,E,X)}}}r=r.next}while(r!==d)}}catch(X){$t(e,e.return,X)}}function jm(t){var e=t.updateQueue;if(e!==null){var i=t.stateNode;try{Eh(e,i)}catch(r){$t(t,t.return,r)}}}function Nm(t,e,i){i.props=Mi(t.type,t.memoizedProps),i.state=t.memoizedState;try{i.componentWillUnmount()}catch(r){$t(t,e,r)}}function rs(t,e){try{var i=t.ref;if(i!==null){switch(t.tag){case 26:case 27:case 5:var r=t.stateNode;break;case 30:r=t.stateNode;break;default:r=t.stateNode}typeof i=="function"?t.refCleanup=i(r):i.current=r}}catch(f){$t(t,e,f)}}function kn(t,e){var i=t.ref,r=t.refCleanup;if(i!==null)if(typeof r=="function")try{r()}catch(f){$t(t,e,f)}finally{t.refCleanup=null,t=t.alternate,t!=null&&(t.refCleanup=null)}else if(typeof i=="function")try{i(null)}catch(f){$t(t,e,f)}else i.current=null}function Lm(t){var e=t.type,i=t.memoizedProps,r=t.stateNode;try{t:switch(e){case"button":case"input":case"select":case"textarea":i.autoFocus&&r.focus();break t;case"img":i.src?r.src=i.src:i.srcSet&&(r.srcset=i.srcSet)}}catch(f){$t(t,t.return,f)}}function Lc(t,e,i){try{var r=t.stateNode;Tb(r,t.type,i,e),r[et]=e}catch(f){$t(t,t.return,f)}}function Bm(t){return t.tag===5||t.tag===3||t.tag===26||t.tag===27&&Ya(t.type)||t.tag===4}function Bc(t){t:for(;;){for(;t.sibling===null;){if(t.return===null||Bm(t.return))return null;t=t.return}for(t.sibling.return=t.return,t=t.sibling;t.tag!==5&&t.tag!==6&&t.tag!==18;){if(t.tag===27&&Ya(t.type)||t.flags&2||t.child===null||t.tag===4)continue t;t.child.return=t,t=t.child}if(!(t.flags&2))return t.stateNode}}function Hc(t,e,i){var r=t.tag;if(r===5||r===6)t=t.stateNode,e?(i.nodeType===9?i.body:i.nodeName==="HTML"?i.ownerDocument.body:i).insertBefore(t,e):(e=i.nodeType===9?i.body:i.nodeName==="HTML"?i.ownerDocument.body:i,e.appendChild(t),i=i._reactRootContainer,i!=null||e.onclick!==null||(e.onclick=Wn));else if(r!==4&&(r===27&&Ya(t.type)&&(i=t.stateNode,e=null),t=t.child,t!==null))for(Hc(t,e,i),t=t.sibling;t!==null;)Hc(t,e,i),t=t.sibling}function Vr(t,e,i){var r=t.tag;if(r===5||r===6)t=t.stateNode,e?i.insertBefore(t,e):i.appendChild(t);else if(r!==4&&(r===27&&Ya(t.type)&&(i=t.stateNode),t=t.child,t!==null))for(Vr(t,e,i),t=t.sibling;t!==null;)Vr(t,e,i),t=t.sibling}function Hm(t){var e=t.stateNode,i=t.memoizedProps;try{for(var r=t.type,f=e.attributes;f.length;)e.removeAttributeNode(f[0]);De(e,r,i),e[P]=t,e[et]=i}catch(d){$t(t,t.return,d)}}var ra=!1,be=!1,Uc=!1,Um=typeof WeakSet=="function"?WeakSet:Set,Ee=null;function lb(t,e){if(t=t.containerInfo,sf=uo,t=Jd(t),Ru(t)){if("selectionStart"in t)var i={start:t.selectionStart,end:t.selectionEnd};else t:{i=(i=t.ownerDocument)&&i.defaultView||window;var r=i.getSelection&&i.getSelection();if(r&&r.rangeCount!==0){i=r.anchorNode;var f=r.anchorOffset,d=r.focusNode;r=r.focusOffset;try{i.nodeType,d.nodeType}catch{i=null;break t}var p=0,b=-1,E=-1,N=0,X=0,Z=t,L=null;e:for(;;){for(var U;Z!==i||f!==0&&Z.nodeType!==3||(b=p+f),Z!==d||r!==0&&Z.nodeType!==3||(E=p+r),Z.nodeType===3&&(p+=Z.nodeValue.length),(U=Z.firstChild)!==null;)L=Z,Z=U;for(;;){if(Z===t)break e;if(L===i&&++N===f&&(b=p),L===d&&++X===r&&(E=p),(U=Z.nextSibling)!==null)break;Z=L,L=Z.parentNode}Z=U}i=b===-1||E===-1?null:{start:b,end:E}}else i=null}i=i||{start:0,end:0}}else i=null;for(rf={focusedElem:t,selectionRange:i},uo=!1,Ee=e;Ee!==null;)if(e=Ee,t=e.child,(e.subtreeFlags&1028)!==0&&t!==null)t.return=e,Ee=t;else for(;Ee!==null;){switch(e=Ee,d=e.alternate,t=e.flags,e.tag){case 0:if((t&4)!==0&&(t=e.updateQueue,t=t!==null?t.events:null,t!==null))for(i=0;i title"))),De(d,r,i),d[P]=t,Wt(d),r=d;break t;case"link":var p=Gg("link","href",f).get(r+(i.href||""));if(p){for(var b=0;bJt&&(p=Jt,Jt=_t,_t=p);var z=Kd(b,_t),w=Kd(b,Jt);if(z&&w&&(U.rangeCount!==1||U.anchorNode!==z.node||U.anchorOffset!==z.offset||U.focusNode!==w.node||U.focusOffset!==w.offset)){var j=Z.createRange();j.setStart(z.node,z.offset),U.removeAllRanges(),_t>Jt?(U.addRange(j),U.extend(w.node,w.offset)):(j.setEnd(w.node,w.offset),U.addRange(j))}}}}for(Z=[],U=b;U=U.parentNode;)U.nodeType===1&&Z.push({element:U,left:U.scrollLeft,top:U.scrollTop});for(typeof b.focus=="function"&&b.focus(),b=0;bi?32:i,A.T=null,i=Zc,Zc=null;var d=Ua,p=da;if(xe=0,ml=Ua=null,da=0,(Xt&6)!==0)throw Error(s(331));var b=Xt;if(Xt|=4,Fm(d.current),Qm(d,d.current,p,i),Xt=b,hs(0,!1),ie&&typeof ie.onPostCommitFiberRoot=="function")try{ie.onPostCommitFiberRoot(li,d)}catch{}return!0}finally{Q.p=f,A.T=r,hg(t,e)}}function gg(t,e,i){e=hn(i,e),e=Mc(t.stateNode,e,2),t=Ra(t,e,2),t!==null&&(Ea(t,2),qn(t))}function $t(t,e,i){if(t.tag===3)gg(t,t,i);else for(;e!==null;){if(e.tag===3){gg(e,t,i);break}else if(e.tag===1){var r=e.stateNode;if(typeof e.type.getDerivedStateFromError=="function"||typeof r.componentDidCatch=="function"&&(Ha===null||!Ha.has(r))){t=hn(i,t),i=pm(2),r=Ra(e,i,2),r!==null&&(vm(i,r,e,t),Ea(r,2),qn(r));break}}e=e.return}}function Fc(t,e,i){var r=t.pingCache;if(r===null){r=t.pingCache=new ob;var f=new Set;r.set(e,f)}else f=r.get(e),f===void 0&&(f=new Set,r.set(e,f));f.has(i)||(Yc=!0,f.add(i),t=hb.bind(null,t,e,i),e.then(t,t))}function hb(t,e,i){var r=t.pingCache;r!==null&&r.delete(e),t.pingedLanes|=t.suspendedLanes&i,t.warmLanes&=~i,Pt===t&&(jt&i)===i&&(re===4||re===3&&(jt&62914560)===jt&&300>fe()-Zr?(Xt&2)===0&&gl(t,0):Vc|=i,hl===jt&&(hl=0)),qn(t)}function pg(t,e){e===0&&(e=ui()),t=mi(t,e),t!==null&&(Ea(t,e),qn(t))}function mb(t){var e=t.memoizedState,i=0;e!==null&&(i=e.retryLane),pg(t,i)}function gb(t,e){var i=0;switch(t.tag){case 31:case 13:var r=t.stateNode,f=t.memoizedState;f!==null&&(i=f.retryLane);break;case 19:r=t.stateNode;break;case 22:r=t.stateNode._retryCache;break;default:throw Error(s(314))}r!==null&&r.delete(e),pg(t,i)}function pb(t,e){return zl(t,e)}var Pr=null,vl=null,Jc=!1,Ir=!1,Wc=!1,qa=0;function qn(t){t!==vl&&t.next===null&&(vl===null?Pr=vl=t:vl=vl.next=t),Ir=!0,Jc||(Jc=!0,yb())}function hs(t,e){if(!Wc&&Ir){Wc=!0;do for(var i=!1,r=Pr;r!==null;){if(t!==0){var f=r.pendingLanes;if(f===0)var d=0;else{var p=r.suspendedLanes,b=r.pingedLanes;d=(1<<31-Re(42|t)+1)-1,d&=f&~(p&~b),d=d&201326741?d&201326741|1:d?d|2:0}d!==0&&(i=!0,_g(r,d))}else d=jt,d=ri(r,r===Pt?d:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),(d&3)===0||oi(r,d)||(i=!0,_g(r,d));r=r.next}while(i);Wc=!1}}function vb(){vg()}function vg(){Ir=Jc=!1;var t=0;qa!==0&&Ob()&&(t=qa);for(var e=fe(),i=null,r=Pr;r!==null;){var f=r.next,d=yg(r,e);d===0?(r.next=null,i===null?Pr=f:i.next=f,f===null&&(vl=i)):(i=r,(t!==0||(d&3)!==0)&&(Ir=!0)),r=f}xe!==0&&xe!==5||hs(t),qa!==0&&(qa=0)}function yg(t,e){for(var i=t.suspendedLanes,r=t.pingedLanes,f=t.expirationTimes,d=t.pendingLanes&-62914561;0b)break;var X=E.transferSize,Z=E.initiatorType;X&&Og(Z)&&(E=E.responseEnd,p+=X*(E"u"?null:document;function qg(t,e,i){var r=yl;if(r&&typeof e=="string"&&e){var f=fn(e);f='link[rel="'+t+'"][href="'+f+'"]',typeof i=="string"&&(f+='[crossorigin="'+i+'"]'),kg.has(f)||(kg.add(f),t={rel:t,crossOrigin:i,href:e},r.querySelector(f)===null&&(e=r.createElement("link"),De(e,"link",t),Wt(e),r.head.appendChild(e)))}}function Hb(t){ha.D(t),qg("dns-prefetch",t,null)}function Ub(t,e){ha.C(t,e),qg("preconnect",t,e)}function kb(t,e,i){ha.L(t,e,i);var r=yl;if(r&&t&&e){var f='link[rel="preload"][as="'+fn(e)+'"]';e==="image"&&i&&i.imageSrcSet?(f+='[imagesrcset="'+fn(i.imageSrcSet)+'"]',typeof i.imageSizes=="string"&&(f+='[imagesizes="'+fn(i.imageSizes)+'"]')):f+='[href="'+fn(t)+'"]';var d=f;switch(e){case"style":d=bl(t);break;case"script":d=_l(t)}bn.has(d)||(t=y({rel:"preload",href:e==="image"&&i&&i.imageSrcSet?void 0:t,as:e},i),bn.set(d,t),r.querySelector(f)!==null||e==="style"&&r.querySelector(vs(d))||e==="script"&&r.querySelector(ys(d))||(e=r.createElement("link"),De(e,"link",t),Wt(e),r.head.appendChild(e)))}}function qb(t,e){ha.m(t,e);var i=yl;if(i&&t){var r=e&&typeof e.as=="string"?e.as:"script",f='link[rel="modulepreload"][as="'+fn(r)+'"][href="'+fn(t)+'"]',d=f;switch(r){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":d=_l(t)}if(!bn.has(d)&&(t=y({rel:"modulepreload",href:t},e),bn.set(d,t),i.querySelector(f)===null)){switch(r){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(i.querySelector(ys(d)))return}r=i.createElement("link"),De(r,"link",t),Wt(r),i.head.appendChild(r)}}}function Yb(t,e,i){ha.S(t,e,i);var r=yl;if(r&&t){var f=un(r).hoistableStyles,d=bl(t);e=e||"default";var p=f.get(d);if(!p){var b={loading:0,preload:null};if(p=r.querySelector(vs(d)))b.loading=5;else{t=y({rel:"stylesheet",href:t,"data-precedence":e},i),(i=bn.get(d))&&mf(t,i);var E=p=r.createElement("link");Wt(E),De(E,"link",t),E._p=new Promise(function(N,X){E.onload=N,E.onerror=X}),E.addEventListener("load",function(){b.loading|=1}),E.addEventListener("error",function(){b.loading|=2}),b.loading|=4,io(p,e,r)}p={type:"stylesheet",instance:p,count:1,state:b},f.set(d,p)}}}function Vb(t,e){ha.X(t,e);var i=yl;if(i&&t){var r=un(i).hoistableScripts,f=_l(t),d=r.get(f);d||(d=i.querySelector(ys(f)),d||(t=y({src:t,async:!0},e),(e=bn.get(f))&&gf(t,e),d=i.createElement("script"),Wt(d),De(d,"link",t),i.head.appendChild(d)),d={type:"script",instance:d,count:1,state:null},r.set(f,d))}}function Xb(t,e){ha.M(t,e);var i=yl;if(i&&t){var r=un(i).hoistableScripts,f=_l(t),d=r.get(f);d||(d=i.querySelector(ys(f)),d||(t=y({src:t,async:!0,type:"module"},e),(e=bn.get(f))&&gf(t,e),d=i.createElement("script"),Wt(d),De(d,"link",t),i.head.appendChild(d)),d={type:"script",instance:d,count:1,state:null},r.set(f,d))}}function Yg(t,e,i,r){var f=(f=bt.current)?ao(f):null;if(!f)throw Error(s(446));switch(t){case"meta":case"title":return null;case"style":return typeof i.precedence=="string"&&typeof i.href=="string"?(e=bl(i.href),i=un(f).hoistableStyles,r=i.get(e),r||(r={type:"style",instance:null,count:0,state:null},i.set(e,r)),r):{type:"void",instance:null,count:0,state:null};case"link":if(i.rel==="stylesheet"&&typeof i.href=="string"&&typeof i.precedence=="string"){t=bl(i.href);var d=un(f).hoistableStyles,p=d.get(t);if(p||(f=f.ownerDocument||f,p={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},d.set(t,p),(d=f.querySelector(vs(t)))&&!d._p&&(p.instance=d,p.state.loading=5),bn.has(t)||(i={rel:"preload",as:"style",href:i.href,crossOrigin:i.crossOrigin,integrity:i.integrity,media:i.media,hrefLang:i.hrefLang,referrerPolicy:i.referrerPolicy},bn.set(t,i),d||Gb(f,t,i,p.state))),e&&r===null)throw Error(s(528,""));return p}if(e&&r!==null)throw Error(s(529,""));return null;case"script":return e=i.async,i=i.src,typeof i=="string"&&e&&typeof e!="function"&&typeof e!="symbol"?(e=_l(i),i=un(f).hoistableScripts,r=i.get(e),r||(r={type:"script",instance:null,count:0,state:null},i.set(e,r)),r):{type:"void",instance:null,count:0,state:null};default:throw Error(s(444,t))}}function bl(t){return'href="'+fn(t)+'"'}function vs(t){return'link[rel="stylesheet"]['+t+"]"}function Vg(t){return y({},t,{"data-precedence":t.precedence,precedence:null})}function Gb(t,e,i,r){t.querySelector('link[rel="preload"][as="style"]['+e+"]")?r.loading=1:(e=t.createElement("link"),r.preload=e,e.addEventListener("load",function(){return r.loading|=1}),e.addEventListener("error",function(){return r.loading|=2}),De(e,"link",i),Wt(e),t.head.appendChild(e))}function _l(t){return'[src="'+fn(t)+'"]'}function ys(t){return"script[async]"+t}function Xg(t,e,i){if(e.count++,e.instance===null)switch(e.type){case"style":var r=t.querySelector('style[data-href~="'+fn(i.href)+'"]');if(r)return e.instance=r,Wt(r),r;var f=y({},i,{"data-href":i.href,"data-precedence":i.precedence,href:null,precedence:null});return r=(t.ownerDocument||t).createElement("style"),Wt(r),De(r,"style",f),io(r,i.precedence,t),e.instance=r;case"stylesheet":f=bl(i.href);var d=t.querySelector(vs(f));if(d)return e.state.loading|=4,e.instance=d,Wt(d),d;r=Vg(i),(f=bn.get(f))&&mf(r,f),d=(t.ownerDocument||t).createElement("link"),Wt(d);var p=d;return p._p=new Promise(function(b,E){p.onload=b,p.onerror=E}),De(d,"link",r),e.state.loading|=4,io(d,i.precedence,t),e.instance=d;case"script":return d=_l(i.src),(f=t.querySelector(ys(d)))?(e.instance=f,Wt(f),f):(r=i,(f=bn.get(d))&&(r=y({},i),gf(r,f)),t=t.ownerDocument||t,f=t.createElement("script"),Wt(f),De(f,"link",r),t.head.appendChild(f),e.instance=f);case"void":return null;default:throw Error(s(443,e.type))}else e.type==="stylesheet"&&(e.state.loading&4)===0&&(r=e.instance,e.state.loading|=4,io(r,i.precedence,t));return e.instance}function io(t,e,i){for(var r=i.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),f=r.length?r[r.length-1]:null,d=f,p=0;p title"):null)}function Zb(t,e,i){if(i===1||e.itemProp!=null)return!1;switch(t){case"meta":case"title":return!0;case"style":if(typeof e.precedence!="string"||typeof e.href!="string"||e.href==="")break;return!0;case"link":if(typeof e.rel!="string"||typeof e.href!="string"||e.href===""||e.onLoad||e.onError)break;switch(e.rel){case"stylesheet":return t=e.disabled,typeof e.precedence=="string"&&t==null;default:return!0}case"script":if(e.async&&typeof e.async!="function"&&typeof e.async!="symbol"&&!e.onLoad&&!e.onError&&e.src&&typeof e.src=="string")return!0}return!1}function Qg(t){return!(t.type==="stylesheet"&&(t.state.loading&3)===0)}function Qb(t,e,i,r){if(i.type==="stylesheet"&&(typeof r.media!="string"||matchMedia(r.media).matches!==!1)&&(i.state.loading&4)===0){if(i.instance===null){var f=bl(r.href),d=e.querySelector(vs(f));if(d){e=d._p,e!==null&&typeof e=="object"&&typeof e.then=="function"&&(t.count++,t=so.bind(t),e.then(t,t)),i.state.loading|=4,i.instance=d,Wt(d);return}d=e.ownerDocument||e,r=Vg(r),(f=bn.get(f))&&mf(r,f),d=d.createElement("link"),Wt(d);var p=d;p._p=new Promise(function(b,E){p.onload=b,p.onerror=E}),De(d,"link",r),i.instance=d}t.stylesheets===null&&(t.stylesheets=new Map),t.stylesheets.set(i,e),(e=i.state.preload)&&(i.state.loading&3)===0&&(t.count++,i=so.bind(t),e.addEventListener("load",i),e.addEventListener("error",i))}}var pf=0;function $b(t,e){return t.stylesheets&&t.count===0&&oo(t,t.stylesheets),0pf?50:800)+e);return t.unsuspend=i,function(){t.unsuspend=null,clearTimeout(r),clearTimeout(f)}}:null}function so(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)oo(this,this.stylesheets);else if(this.unsuspend){var t=this.unsuspend;this.unsuspend=null,t()}}}var ro=null;function oo(t,e){t.stylesheets=null,t.unsuspend!==null&&(t.count++,ro=new Map,e.forEach(Kb,t),ro=null,so.call(t))}function Kb(t,e){if(!(e.state.loading&4)){var i=ro.get(t);if(i)var r=i.get(null);else{i=new Map,ro.set(t,i);for(var f=t.querySelectorAll("link[data-precedence],style[data-precedence]"),d=0;d"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(a)}catch(n){console.error(n)}}return a(),Cf.exports=m_(),Cf.exports}var p_=g_();/** + * react-router v7.10.1 + * + * 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 Q0=a=>{throw TypeError(a)},v_=(a,n,l)=>n.has(a)||Q0("Cannot "+l),Df=(a,n,l)=>(v_(a,n,"read from private field"),l?l.call(a):n.get(a)),y_=(a,n,l)=>n.has(a)?Q0("Cannot add the same private member more than once"):n instanceof WeakSet?n.add(a):n.set(a,l),pp="popstate";function b_(a={}){function n(s,o){let{pathname:u,search:c,hash:h}=s.location;return Vs("",{pathname:u,search:c,hash:h},o.state&&o.state.usr||null,o.state&&o.state.key||"default")}function l(s,o){return typeof o=="string"?o:$n(o)}return x_(n,l,null,a)}function Ot(a,n){if(a===!1||a===null||typeof a>"u")throw new Error(n)}function ue(a,n){if(!a){typeof console<"u"&&console.warn(n);try{throw new Error(n)}catch{}}}function __(){return Math.random().toString(36).substring(2,10)}function vp(a,n){return{usr:a.state,key:a.key,idx:n}}function Vs(a,n,l=null,s){return{pathname:typeof a=="string"?a:a.pathname,search:"",hash:"",...typeof n=="string"?ni(n):n,state:l,key:n&&n.key||s||__()}}function $n({pathname:a="/",search:n="",hash:l=""}){return n&&n!=="?"&&(a+=n.charAt(0)==="?"?n:"?"+n),l&&l!=="#"&&(a+=l.charAt(0)==="#"?l:"#"+l),a}function ni(a){let n={};if(a){let l=a.indexOf("#");l>=0&&(n.hash=a.substring(l),a=a.substring(0,l));let s=a.indexOf("?");s>=0&&(n.search=a.substring(s),a=a.substring(0,s)),a&&(n.pathname=a)}return n}function x_(a,n,l,s={}){let{window:o=document.defaultView,v5Compat:u=!1}=s,c=o.history,h="POP",m=null,g=v();g==null&&(g=0,c.replaceState({...c.state,idx:g},""));function v(){return(c.state||{idx:null}).idx}function y(){h="POP";let k=v(),q=k==null?null:k-g;g=k,m&&m({action:h,location:B.location,delta:q})}function _(k,q){h="PUSH";let Y=Vs(B.location,k,q);g=v()+1;let $=vp(Y,g),nt=B.createHref(Y);try{c.pushState($,"",nt)}catch(I){if(I instanceof DOMException&&I.name==="DataCloneError")throw I;o.location.assign(nt)}u&&m&&m({action:h,location:B.location,delta:1})}function x(k,q){h="REPLACE";let Y=Vs(B.location,k,q);g=v();let $=vp(Y,g),nt=B.createHref(Y);c.replaceState($,"",nt),u&&m&&m({action:h,location:B.location,delta:0})}function O(k){return $0(k)}let B={get action(){return h},get location(){return a(o,c)},listen(k){if(m)throw new Error("A history only accepts one active listener");return o.addEventListener(pp,y),m=k,()=>{o.removeEventListener(pp,y),m=null}},createHref(k){return n(o,k)},createURL:O,encodeLocation(k){let q=O(k);return{pathname:q.pathname,search:q.search,hash:q.hash}},push:_,replace:x,go(k){return c.go(k)}};return B}function $0(a,n=!1){let l="http://localhost";typeof window<"u"&&(l=window.location.origin!=="null"?window.location.origin:window.location.href),Ot(l,"No window.location.(origin|href) available to create URL");let s=typeof a=="string"?a:$n(a);return s=s.replace(/ $/,"%20"),!n&&s.startsWith("//")&&(s=l+s),new URL(s,l)}var Ls,yp=class{constructor(a){if(y_(this,Ls,new Map),a)for(let[n,l]of a)this.set(n,l)}get(a){if(Df(this,Ls).has(a))return Df(this,Ls).get(a);if(a.defaultValue!==void 0)return a.defaultValue;throw new Error("No value found for context")}set(a,n){Df(this,Ls).set(a,n)}};Ls=new WeakMap;var S_=new Set(["lazy","caseSensitive","path","id","index","children"]);function E_(a){return S_.has(a)}var M_=new Set(["lazy","caseSensitive","path","id","index","middleware","children"]);function C_(a){return M_.has(a)}function T_(a){return a.index===!0}function Xs(a,n,l=[],s={},o=!1){return a.map((u,c)=>{let h=[...l,String(c)],m=typeof u.id=="string"?u.id:h.join("-");if(Ot(u.index!==!0||!u.children,"Cannot specify children on an index route"),Ot(o||!s[m],`Found a route id collision on id "${m}". Route id's must be globally unique within Data Router usages`),T_(u)){let g={...u,id:m};return s[m]=bp(g,n(g)),g}else{let g={...u,id:m,children:void 0};return s[m]=bp(g,n(g)),u.children&&(g.children=Xs(u.children,n,h,s,o)),g}})}function bp(a,n){return Object.assign(a,{...n,...typeof n.lazy=="object"&&n.lazy!=null?{lazy:{...a.lazy,...n.lazy}}:{}})}function Fa(a,n,l="/"){return Bs(a,n,l,!1)}function Bs(a,n,l,s){let o=typeof n=="string"?ni(n):n,u=Cn(o.pathname||"/",l);if(u==null)return null;let c=K0(a);O_(c);let h=null;for(let m=0;h==null&&m{let v={relativePath:g===void 0?c.path||"":g,caseSensitive:c.caseSensitive===!0,childrenIndex:h,route:c};if(v.relativePath.startsWith("/")){if(!v.relativePath.startsWith(s)&&m)return;Ot(v.relativePath.startsWith(s),`Absolute route path "${v.relativePath}" nested under path "${s}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),v.relativePath=v.relativePath.slice(s.length)}let y=Qn([s,v.relativePath]),_=l.concat(v);c.children&&c.children.length>0&&(Ot(c.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${y}".`),K0(c.children,n,_,y,m)),!(c.path==null&&!c.index)&&n.push({path:y,score:L_(y,c.index),routesMeta:_})};return a.forEach((c,h)=>{if(c.path===""||!c.path?.includes("?"))u(c,h);else for(let m of F0(c.path))u(c,h,!0,m)}),n}function F0(a){let n=a.split("/");if(n.length===0)return[];let[l,...s]=n,o=l.endsWith("?"),u=l.replace(/\?$/,"");if(s.length===0)return o?[u,""]:[u];let c=F0(s.join("/")),h=[];return h.push(...c.map(m=>m===""?u:[u,m].join("/"))),o&&h.push(...c),h.map(m=>a.startsWith("/")&&m===""?"/":m)}function O_(a){a.sort((n,l)=>n.score!==l.score?l.score-n.score:B_(n.routesMeta.map(s=>s.childrenIndex),l.routesMeta.map(s=>s.childrenIndex)))}var D_=/^:[\w-]+$/,z_=3,R_=2,A_=1,j_=10,N_=-2,_p=a=>a==="*";function L_(a,n){let l=a.split("/"),s=l.length;return l.some(_p)&&(s+=N_),n&&(s+=R_),l.filter(o=>!_p(o)).reduce((o,u)=>o+(D_.test(u)?z_:u===""?A_:j_),s)}function B_(a,n){return a.length===n.length&&a.slice(0,-1).every((s,o)=>s===n[o])?a[a.length-1]-n[n.length-1]:0}function H_(a,n,l=!1){let{routesMeta:s}=a,o={},u="/",c=[];for(let h=0;h{if(v==="*"){let O=h[_]||"";c=u.slice(0,u.length-O.length).replace(/(.)\/+$/,"$1")}const x=h[_];return y&&!x?g[v]=void 0:g[v]=(x||"").replace(/%2F/g,"/"),g},{}),pathname:u,pathnameBase:c,pattern:a}}function U_(a,n=!1,l=!0){ue(a==="*"||!a.endsWith("*")||a.endsWith("/*"),`Route path "${a}" will be treated as if it were "${a.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${a.replace(/\*$/,"/*")}".`);let s=[],o="^"+a.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(c,h,m)=>(s.push({paramName:h,isOptional:m!=null}),m?"/?([^\\/]+)?":"/([^\\/]+)")).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return a.endsWith("*")?(s.push({paramName:"*"}),o+=a==="*"||a==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):l?o+="\\/*$":a!==""&&a!=="/"&&(o+="(?:(?=\\/|$))"),[new RegExp(o,n?void 0:"i"),s]}function k_(a){try{return a.split("/").map(n=>decodeURIComponent(n).replace(/\//g,"%2F")).join("/")}catch(n){return ue(!1,`The URL path "${a}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${n}).`),a}}function Cn(a,n){if(n==="/")return a;if(!a.toLowerCase().startsWith(n.toLowerCase()))return null;let l=n.endsWith("/")?n.length-1:n.length,s=a.charAt(l);return s&&s!=="/"?null:a.slice(l)||"/"}function q_({basename:a,pathname:n}){return n==="/"?a:Qn([a,n])}var Y_=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Jo=a=>Y_.test(a);function V_(a,n="/"){let{pathname:l,search:s="",hash:o=""}=typeof a=="string"?ni(a):a,u;if(l)if(Jo(l))u=l;else{if(l.includes("//")){let c=l;l=l.replace(/\/\/+/g,"/"),ue(!1,`Pathnames cannot have embedded double slashes - normalizing ${c} -> ${l}`)}l.startsWith("/")?u=xp(l.substring(1),"/"):u=xp(l,n)}else u=n;return{pathname:u,search:G_(s),hash:Z_(o)}}function xp(a,n){let l=n.replace(/\/+$/,"").split("/");return a.split("/").forEach(o=>{o===".."?l.length>1&&l.pop():o!=="."&&l.push(o)}),l.length>1?l.join("/"):"/"}function zf(a,n,l,s){return`Cannot include a '${a}' character in a manually specified \`to.${n}\` field [${JSON.stringify(s)}]. Please separate it out to the \`to.${l}\` field. Alternatively you may provide the full path as a string in and the router will parse it for you.`}function J0(a){return a.filter((n,l)=>l===0||n.route.path&&n.route.path.length>0)}function Wo(a){let n=J0(a);return n.map((l,s)=>s===n.length-1?l.pathname:l.pathnameBase)}function Po(a,n,l,s=!1){let o;typeof a=="string"?o=ni(a):(o={...a},Ot(!o.pathname||!o.pathname.includes("?"),zf("?","pathname","search",o)),Ot(!o.pathname||!o.pathname.includes("#"),zf("#","pathname","hash",o)),Ot(!o.search||!o.search.includes("#"),zf("#","search","hash",o)));let u=a===""||o.pathname==="",c=u?"/":o.pathname,h;if(c==null)h=l;else{let y=n.length-1;if(!s&&c.startsWith("..")){let _=c.split("/");for(;_[0]==="..";)_.shift(),y-=1;o.pathname=_.join("/")}h=y>=0?n[y]:"/"}let m=V_(o,h),g=c&&c!=="/"&&c.endsWith("/"),v=(u||c===".")&&l.endsWith("/");return!m.pathname.endsWith("/")&&(g||v)&&(m.pathname+="/"),m}var Qn=a=>a.join("/").replace(/\/\/+/g,"/"),X_=a=>a.replace(/\/+$/,"").replace(/^\/*/,"/"),G_=a=>!a||a==="?"?"":a.startsWith("?")?a:"?"+a,Z_=a=>!a||a==="#"?"":a.startsWith("#")?a:"#"+a,Io=class{constructor(a,n,l,s=!1){this.status=a,this.statusText=n||"",this.internal=s,l instanceof Error?(this.data=l.toString(),this.error=l):this.data=l}};function Gs(a){return a!=null&&typeof a.status=="number"&&typeof a.statusText=="string"&&typeof a.internal=="boolean"&&"data"in a}function Js(a){return a.map(n=>n.route.path).filter(Boolean).join("/").replace(/\/\/*/g,"/")||"/"}var Wa=Symbol("Uninstrumented");function Q_(a,n){let l={lazy:[],"lazy.loader":[],"lazy.action":[],"lazy.middleware":[],middleware:[],loader:[],action:[]};a.forEach(o=>o({id:n.id,index:n.index,path:n.path,instrument(u){let c=Object.keys(l);for(let h of c)u[h]&&l[h].push(u[h])}}));let s={};if(typeof n.lazy=="function"&&l.lazy.length>0){let o=Cl(l.lazy,n.lazy,()=>{});o&&(s.lazy=o)}if(typeof n.lazy=="object"){let o=n.lazy;["middleware","loader","action"].forEach(u=>{let c=o[u],h=l[`lazy.${u}`];if(typeof c=="function"&&h.length>0){let m=Cl(h,c,()=>{});m&&(s.lazy=Object.assign(s.lazy||{},{[u]:m}))}})}return["loader","action"].forEach(o=>{let u=n[o];if(typeof u=="function"&&l[o].length>0){let c=u[Wa]??u,h=Cl(l[o],c,(...m)=>Sp(m[0]));h&&(h[Wa]=c,s[o]=h)}}),n.middleware&&n.middleware.length>0&&l.middleware.length>0&&(s.middleware=n.middleware.map(o=>{let u=o[Wa]??o,c=Cl(l.middleware,u,(...h)=>Sp(h[0]));return c?(c[Wa]=u,c):o})),s}function $_(a,n){let l={navigate:[],fetch:[]};if(n.forEach(s=>s({instrument(o){let u=Object.keys(o);for(let c of u)o[c]&&l[c].push(o[c])}})),l.navigate.length>0){let s=a.navigate[Wa]??a.navigate,o=Cl(l.navigate,s,(...u)=>{let[c,h]=u;return{to:typeof c=="number"||typeof c=="string"?c:c?$n(c):".",...Ep(a,h??{})}});o&&(o[Wa]=s,a.navigate=o)}if(l.fetch.length>0){let s=a.fetch[Wa]??a.fetch,o=Cl(l.fetch,s,(...u)=>{let[c,,h,m]=u;return{href:h??".",fetcherKey:c,...Ep(a,m??{})}});o&&(o[Wa]=s,a.fetch=o)}return a}function Cl(a,n,l){return a.length===0?null:async(...s)=>{let o=await W0(a,l(...s),()=>n(...s),a.length-1);if(o.type==="error")throw o.value;return o.value}}async function W0(a,n,l,s){let o=a[s],u;if(o){let c,h=async()=>(c?console.error("You cannot call instrumented handlers more than once"):c=W0(a,n,l,s-1),u=await c,Ot(u,"Expected a result"),u.type==="error"&&u.value instanceof Error?{status:"error",error:u.value}:{status:"success",error:void 0});try{await o(h,n)}catch(m){console.error("An instrumentation function threw an error:",m)}c||await h(),await c}else try{u={type:"success",value:await l()}}catch(c){u={type:"error",value:c}}return u||{type:"error",value:new Error("No result assigned in instrumentation chain.")}}function Sp(a){let{request:n,context:l,params:s,unstable_pattern:o}=a;return{request:K_(n),params:{...s},unstable_pattern:o,context:F_(l)}}function Ep(a,n){return{currentUrl:$n(a.state.location),..."formMethod"in n?{formMethod:n.formMethod}:{},..."formEncType"in n?{formEncType:n.formEncType}:{},..."formData"in n?{formData:n.formData}:{},..."body"in n?{body:n.body}:{}}}function K_(a){return{method:a.method,url:a.url,headers:{get:(...n)=>a.headers.get(...n)}}}function F_(a){if(W_(a)){let n={...a};return Object.freeze(n),n}else return{get:n=>a.get(n)}}var J_=Object.getOwnPropertyNames(Object.prototype).sort().join("\0");function W_(a){if(a===null||typeof a!="object")return!1;const n=Object.getPrototypeOf(a);return n===Object.prototype||n===null||Object.getOwnPropertyNames(n).sort().join("\0")===J_}var P0=["POST","PUT","PATCH","DELETE"],P_=new Set(P0),I_=["GET",...P0],t1=new Set(I_),e1=new Set([301,302,303,307,308]),n1=new Set([307,308]),Rf={state:"idle",location:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},a1={state:"idle",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},Cs={state:"unblocked",proceed:void 0,reset:void 0,location:void 0},i1=a=>({hasErrorBoundary:!!a.hasErrorBoundary}),I0="remix-router-transitions",tv=Symbol("ResetLoaderData");function l1(a){const n=a.window?a.window:typeof window<"u"?window:void 0,l=typeof n<"u"&&typeof n.document<"u"&&typeof n.document.createElement<"u";Ot(a.routes.length>0,"You must provide a non-empty routes array to createRouter");let s=a.hydrationRouteProperties||[],o=a.mapRouteProperties||i1,u=o;if(a.unstable_instrumentations){let M=a.unstable_instrumentations;u=R=>({...o(R),...Q_(M.map(H=>H.route).filter(Boolean),R)})}let c={},h=Xs(a.routes,u,void 0,c),m,g=a.basename||"/";g.startsWith("/")||(g=`/${g}`);let v=a.dataStrategy||c1,y={...a.future},_=null,x=new Set,O=null,B=null,k=null,q=a.hydrationData!=null,Y=Fa(h,a.history.location,g),$=!1,nt=null,I;if(Y==null&&!a.patchRoutesOnNavigation){let M=En(404,{pathname:a.history.location.pathname}),{matches:R,route:H}=vo(h);I=!0,Y=R,nt={[H.id]:M}}else if(Y&&!a.hydrationData&&ui(Y,h,a.history.location.pathname).active&&(Y=null),Y)if(Y.some(M=>M.route.lazy))I=!1;else if(!Y.some(M=>td(M.route)))I=!0;else{let M=a.hydrationData?a.hydrationData.loaderData:null,R=a.hydrationData?a.hydrationData.errors:null;if(R){let H=Y.findIndex(K=>R[K.route.id]!==void 0);I=Y.slice(0,H+1).every(K=>!Gf(K.route,M,R))}else I=Y.every(H=>!Gf(H.route,M,R))}else{I=!1,Y=[];let M=ui(null,h,a.history.location.pathname);M.active&&M.matches&&($=!0,Y=M.matches)}let gt,T={historyAction:a.history.action,location:a.history.location,matches:Y,initialized:I,navigation:Rf,restoreScrollPosition:a.hydrationData!=null?!1:null,preventScrollReset:!1,revalidation:"idle",loaderData:a.hydrationData&&a.hydrationData.loaderData||{},actionData:a.hydrationData&&a.hydrationData.actionData||null,errors:a.hydrationData&&a.hydrationData.errors||nt,fetchers:new Map,blockers:new Map},ut="POP",lt=null,pt=!1,ct,xt=!1,Mt=new Map,St=null,st=!1,A=!1,Q=new Set,J=new Map,ft=0,Et=-1,C=new Map,V=new Set,F=new Map,tt=new Map,dt=new Set,bt=new Map,Lt,ce=null;function ae(){if(_=a.history.listen(({action:M,location:R,delta:H})=>{if(Lt){Lt(),Lt=void 0;return}ue(bt.size===0||H!=null,"You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs. This can also happen if you are using createHashRouter and the user manually changes the URL.");let K=si({currentLocation:T.location,nextLocation:R,historyAction:M});if(K&&H!=null){let W=new Promise(ht=>{Lt=ht});a.history.go(H*-1),Fn(K,{state:"blocked",location:R,proceed(){Fn(K,{state:"proceeding",proceed:void 0,reset:void 0,location:R}),W.then(()=>a.history.go(H))},reset(){let ht=new Map(T.blockers);ht.set(K,Cs),ge({blockers:ht})}}),lt?.resolve(),lt=null;return}return wn(M,R)}),l){T1(n,Mt);let M=()=>w1(n,Mt);n.addEventListener("pagehide",M),St=()=>n.removeEventListener("pagehide",M)}return T.initialized||wn("POP",T.location,{initialHydration:!0}),gt}function ai(){_&&_(),St&&St(),x.clear(),ct&&ct.abort(),T.fetchers.forEach((M,R)=>Nl(R)),T.blockers.forEach((M,R)=>ar(R))}function Ui(M){return x.add(M),()=>x.delete(M)}function ge(M,R={}){M.matches&&(M.matches=M.matches.map(W=>{let ht=c[W.route.id],at=W.route;return at.element!==ht.element||at.errorElement!==ht.errorElement||at.hydrateFallbackElement!==ht.hydrateFallbackElement?{...W,route:ht}:W})),T={...T,...M};let H=[],K=[];T.fetchers.forEach((W,ht)=>{W.state==="idle"&&(dt.has(ht)?H.push(ht):K.push(ht))}),dt.forEach(W=>{!T.fetchers.has(W)&&!J.has(W)&&H.push(W)}),[...x].forEach(W=>W(T,{deletedFetchers:H,newErrors:M.errors??null,viewTransitionOpts:R.viewTransitionOpts,flushSync:R.flushSync===!0})),H.forEach(W=>Nl(W)),K.forEach(W=>T.fetchers.delete(W))}function Kn(M,R,{flushSync:H}={}){let K=T.actionData!=null&&T.navigation.formMethod!=null&&Be(T.navigation.formMethod)&&T.navigation.state==="loading"&&M.state?._isRedirect!==!0,W;R.actionData?Object.keys(R.actionData).length>0?W=R.actionData:W=null:K?W=T.actionData:W=null;let ht=R.loaderData?jp(T.loaderData,R.loaderData,R.matches||[],R.errors):T.loaderData,at=T.blockers;at.size>0&&(at=new Map(at),at.forEach((mt,vt)=>at.set(vt,Cs)));let P=st?!1:ir(M,R.matches||T.matches),et=pt===!0||T.navigation.formMethod!=null&&Be(T.navigation.formMethod)&&M.state?._isRedirect!==!0;m&&(h=m,m=void 0),st||ut==="POP"||(ut==="PUSH"?a.history.push(M,M.state):ut==="REPLACE"&&a.history.replace(M,M.state));let ot;if(ut==="POP"){let mt=Mt.get(T.location.pathname);mt&&mt.has(M.pathname)?ot={currentLocation:T.location,nextLocation:M}:Mt.has(M.pathname)&&(ot={currentLocation:M,nextLocation:T.location})}else if(xt){let mt=Mt.get(T.location.pathname);mt?mt.add(M.pathname):(mt=new Set([M.pathname]),Mt.set(T.location.pathname,mt)),ot={currentLocation:T.location,nextLocation:M}}ge({...R,actionData:W,loaderData:ht,historyAction:ut,location:M,initialized:!0,navigation:Rf,revalidation:"idle",restoreScrollPosition:P,preventScrollReset:et,blockers:at},{viewTransitionOpts:ot,flushSync:H===!0}),ut="POP",pt=!1,xt=!1,st=!1,A=!1,lt?.resolve(),lt=null,ce?.resolve(),ce=null}async function Bn(M,R){if(lt?.resolve(),lt=null,typeof M=="number"){lt||(lt=Hp());let Zt=lt.promise;return a.history.go(M),Zt}let H=Xf(T.location,T.matches,g,M,R?.fromRouteId,R?.relative),{path:K,submission:W,error:ht}=Mp(!1,H,R),at=T.location,P=Vs(T.location,K,R&&R.state);P={...P,...a.history.encodeLocation(P)};let et=R&&R.replace!=null?R.replace:void 0,ot="PUSH";et===!0?ot="REPLACE":et===!1||W!=null&&Be(W.formMethod)&&W.formAction===T.location.pathname+T.location.search&&(ot="REPLACE");let mt=R&&"preventScrollReset"in R?R.preventScrollReset===!0:void 0,vt=(R&&R.flushSync)===!0,Bt=si({currentLocation:at,nextLocation:P,historyAction:ot});if(Bt){Fn(Bt,{state:"blocked",location:P,proceed(){Fn(Bt,{state:"proceeding",proceed:void 0,reset:void 0,location:P}),Bn(M,R)},reset(){let Zt=new Map(T.blockers);Zt.set(Bt,Cs),ge({blockers:Zt})}});return}await wn(ot,P,{submission:W,pendingError:ht,preventScrollReset:mt,replace:R&&R.replace,enableViewTransition:R&&R.viewTransition,flushSync:vt})}function Dl(){ce||(ce=Hp()),qi(),ge({revalidation:"loading"});let M=ce.promise;return T.navigation.state==="submitting"?M:T.navigation.state==="idle"?(wn(T.historyAction,T.location,{startUninterruptedRevalidation:!0}),M):(wn(ut||T.historyAction,T.navigation.location,{overrideNavigation:T.navigation,enableViewTransition:xt===!0}),M)}async function wn(M,R,H){ct&&ct.abort(),ct=null,ut=M,st=(H&&H.startUninterruptedRevalidation)===!0,oi(T.location,T.matches),pt=(H&&H.preventScrollReset)===!0,xt=(H&&H.enableViewTransition)===!0;let K=m||h,W=H&&H.overrideNavigation,ht=H?.initialHydration&&T.matches&&T.matches.length>0&&!$?T.matches:Fa(K,R,g),at=(H&&H.flushSync)===!0;if(ht&&T.initialized&&!A&&y1(T.location,R)&&!(H&&H.submission&&Be(H.submission.formMethod))){Kn(R,{matches:ht},{flushSync:at});return}let P=ui(ht,K,R.pathname);if(P.active&&P.matches&&(ht=P.matches),!ht){let{error:le,notFoundMatches:Ut,route:kt}=xa(R.pathname);Kn(R,{matches:Ut,loaderData:{},errors:{[kt.id]:le}},{flushSync:at});return}ct=new AbortController;let et=Ml(a.history,R,ct.signal,H&&H.submission),ot=a.getContext?await a.getContext():new yp,mt;if(H&&H.pendingError)mt=[Ja(ht).route.id,{type:"error",error:H.pendingError}];else if(H&&H.submission&&Be(H.submission.formMethod)){let le=await ou(et,R,H.submission,ht,ot,P.active,H&&H.initialHydration===!0,{replace:H.replace,flushSync:at});if(le.shortCircuited)return;if(le.pendingActionResult){let[Ut,kt]=le.pendingActionResult;if(rn(kt)&&Gs(kt.error)&&kt.error.status===404){ct=null,Kn(R,{matches:le.matches,loaderData:{},errors:{[Ut]:kt.error}});return}}ht=le.matches||ht,mt=le.pendingActionResult,W=Af(R,H.submission),at=!1,P.active=!1,et=Ml(a.history,et.url,et.signal)}let{shortCircuited:vt,matches:Bt,loaderData:Zt,errors:It}=await er(et,R,ht,ot,P.active,W,H&&H.submission,H&&H.fetcherSubmission,H&&H.replace,H&&H.initialHydration===!0,at,mt);vt||(ct=null,Kn(R,{matches:Bt||ht,...Np(mt),loaderData:Zt,errors:It}))}async function ou(M,R,H,K,W,ht,at,P={}){qi();let et=M1(R,H);if(ge({navigation:et},{flushSync:P.flushSync===!0}),ht){let vt=await Sa(K,R.pathname,M.signal);if(vt.type==="aborted")return{shortCircuited:!0};if(vt.type==="error"){if(vt.partialMatches.length===0){let{matches:Zt,route:It}=vo(h);return{matches:Zt,pendingActionResult:[It.id,{type:"error",error:vt.error}]}}let Bt=Ja(vt.partialMatches).route.id;return{matches:vt.partialMatches,pendingActionResult:[Bt,{type:"error",error:vt.error}]}}else if(vt.matches)K=vt.matches;else{let{notFoundMatches:Bt,error:Zt,route:It}=xa(R.pathname);return{matches:Bt,pendingActionResult:[It.id,{type:"error",error:Zt}]}}}let ot,mt=No(K,R);if(!mt.route.action&&!mt.route.lazy)ot={type:"error",error:En(405,{method:M.method,pathname:R.pathname,routeId:mt.route.id})};else{let vt=Tl(u,c,M,K,mt,at?[]:s,W),Bt=await ii(M,vt,W,null);if(ot=Bt[mt.route.id],!ot){for(let Zt of K)if(Bt[Zt.route.id]){ot=Bt[Zt.route.id];break}}if(M.signal.aborted)return{shortCircuited:!0}}if(Ri(ot)){let vt;return P&&P.replace!=null?vt=P.replace:vt=zp(ot.response.headers.get("Location"),new URL(M.url),g)===T.location.pathname+T.location.search,await fe(M,ot,!0,{submission:H,replace:vt}),{shortCircuited:!0}}if(rn(ot)){let vt=Ja(K,mt.route.id);return(P&&P.replace)!==!0&&(ut="PUSH"),{matches:K,pendingActionResult:[vt.route.id,ot,mt.route.id]}}return{matches:K,pendingActionResult:[mt.route.id,ot]}}async function er(M,R,H,K,W,ht,at,P,et,ot,mt,vt){let Bt=ht||Af(R,at),Zt=at||P||Bp(Bt),It=!st&&!ot;if(W){if(It){let Se=ki(vt);ge({navigation:Bt,...Se!==void 0?{actionData:Se}:{}},{flushSync:mt})}let At=await Sa(H,R.pathname,M.signal);if(At.type==="aborted")return{shortCircuited:!0};if(At.type==="error"){if(At.partialMatches.length===0){let{matches:zn,route:cn}=vo(h);return{matches:zn,loaderData:{},errors:{[cn.id]:At.error}}}let Se=Ja(At.partialMatches).route.id;return{matches:At.partialMatches,loaderData:{},errors:{[Se]:At.error}}}else if(At.matches)H=At.matches;else{let{error:Se,notFoundMatches:zn,route:cn}=xa(R.pathname);return{matches:zn,loaderData:{},errors:{[cn.id]:Se}}}}let le=m||h,{dsMatches:Ut,revalidatingFetchers:kt}=Cp(M,K,u,c,a.history,T,H,Zt,R,ot?[]:s,ot===!0,A,Q,dt,F,V,le,g,a.patchRoutesOnNavigation!=null,vt);if(Et=++ft,!a.dataStrategy&&!Ut.some(At=>At.shouldLoad)&&!Ut.some(At=>At.route.middleware&&At.route.middleware.length>0)&&kt.length===0){let At=Re();return Kn(R,{matches:H,loaderData:{},errors:vt&&rn(vt[1])?{[vt[0]]:vt[1].error}:null,...Np(vt),...At?{fetchers:new Map(T.fetchers)}:{}},{flushSync:mt}),{shortCircuited:!0}}if(It){let At={};if(!W){At.navigation=Bt;let Se=ki(vt);Se!==void 0&&(At.actionData=Se)}kt.length>0&&(At.fetchers=zl(kt)),ge(At,{flushSync:mt})}kt.forEach(At=>{ie(At.key),At.controller&&J.set(At.key,At.controller)});let Fe=()=>kt.forEach(At=>ie(At.key));ct&&ct.signal.addEventListener("abort",Fe);let{loaderResults:un,fetcherResults:Wt}=await Al(Ut,kt,M,K);if(M.signal.aborted)return{shortCircuited:!0};ct&&ct.signal.removeEventListener("abort",Fe),kt.forEach(At=>J.delete(At.key));let Je=yo(un);if(Je)return await fe(M,Je.result,!0,{replace:et}),{shortCircuited:!0};if(Je=yo(Wt),Je)return V.add(Je.key),await fe(M,Je.result,!0,{replace:et}),{shortCircuited:!0};let{loaderData:Yi,errors:We}=Ap(T,H,un,vt,kt,Wt);ot&&T.errors&&(We={...T.errors,...We});let ke=Re(),Vi=nr(Et),ci=ke||Vi||kt.length>0;return{matches:H,loaderData:Yi,errors:We,...ci?{fetchers:new Map(T.fetchers)}:{}}}function ki(M){if(M&&!rn(M[1]))return{[M[0]]:M[1].data};if(T.actionData)return Object.keys(T.actionData).length===0?null:T.actionData}function zl(M){return M.forEach(R=>{let H=T.fetchers.get(R.key),K=Ts(void 0,H?H.data:void 0);T.fetchers.set(R.key,K)}),new Map(T.fetchers)}async function Rl(M,R,H,K){ie(M);let W=(K&&K.flushSync)===!0,ht=m||h,at=Xf(T.location,T.matches,g,H,R,K?.relative),P=Fa(ht,at,g),et=ui(P,ht,at);if(et.active&&et.matches&&(P=et.matches),!P){On(M,R,En(404,{pathname:at}),{flushSync:W});return}let{path:ot,submission:mt,error:vt}=Mp(!0,at,K);if(vt){On(M,R,vt,{flushSync:W});return}let Bt=a.getContext?await a.getContext():new yp,Zt=(K&&K.preventScrollReset)===!0;if(mt&&Be(mt.formMethod)){await uu(M,R,ot,P,Bt,et.active,W,Zt,mt);return}F.set(M,{routeId:R,path:ot}),await cu(M,R,ot,P,Bt,et.active,W,Zt,mt)}async function uu(M,R,H,K,W,ht,at,P,et){qi(),F.delete(M);let ot=T.fetchers.get(M);Ue(M,C1(et,ot),{flushSync:at});let mt=new AbortController,vt=Ml(a.history,H,mt.signal,et);if(ht){let qt=await Sa(K,new URL(vt.url).pathname,vt.signal,M);if(qt.type==="aborted")return;if(qt.type==="error"){On(M,R,qt.error,{flushSync:at});return}else if(qt.matches)K=qt.matches;else{On(M,R,En(404,{pathname:H}),{flushSync:at});return}}let Bt=No(K,H);if(!Bt.route.action&&!Bt.route.lazy){let qt=En(405,{method:et.formMethod,pathname:H,routeId:R});On(M,R,qt,{flushSync:at});return}J.set(M,mt);let Zt=ft,It=Tl(u,c,vt,K,Bt,s,W),le=await ii(vt,It,W,M),Ut=le[Bt.route.id];if(!Ut){for(let qt of It)if(le[qt.route.id]){Ut=le[qt.route.id];break}}if(vt.signal.aborted){J.get(M)===mt&&J.delete(M);return}if(dt.has(M)){if(Ri(Ut)||rn(Ut)){Ue(M,ga(void 0));return}}else{if(Ri(Ut))if(J.delete(M),Et>Zt){Ue(M,ga(void 0));return}else return V.add(M),Ue(M,Ts(et)),fe(vt,Ut,!1,{fetcherSubmission:et,preventScrollReset:P});if(rn(Ut)){On(M,R,Ut.error);return}}let kt=T.navigation.location||T.location,Fe=Ml(a.history,kt,mt.signal),un=m||h,Wt=T.navigation.state!=="idle"?Fa(un,T.navigation.location,g):T.matches;Ot(Wt,"Didn't find any matches after fetcher action");let Je=++ft;C.set(M,Je);let Yi=Ts(et,Ut.data);T.fetchers.set(M,Yi);let{dsMatches:We,revalidatingFetchers:ke}=Cp(Fe,W,u,c,a.history,T,Wt,et,kt,s,!1,A,Q,dt,F,V,un,g,a.patchRoutesOnNavigation!=null,[Bt.route.id,Ut]);ke.filter(qt=>qt.key!==M).forEach(qt=>{let Ce=qt.key,Ll=T.fetchers.get(Ce),mu=Ts(void 0,Ll?Ll.data:void 0);T.fetchers.set(Ce,mu),ie(Ce),qt.controller&&J.set(Ce,qt.controller)}),ge({fetchers:new Map(T.fetchers)});let Vi=()=>ke.forEach(qt=>ie(qt.key));mt.signal.addEventListener("abort",Vi);let{loaderResults:ci,fetcherResults:At}=await Al(We,ke,Fe,W);if(mt.signal.aborted)return;if(mt.signal.removeEventListener("abort",Vi),C.delete(M),J.delete(M),ke.forEach(qt=>J.delete(qt.key)),T.fetchers.has(M)){let qt=ga(Ut.data);T.fetchers.set(M,qt)}let Se=yo(ci);if(Se)return fe(Fe,Se.result,!1,{preventScrollReset:P});if(Se=yo(At),Se)return V.add(Se.key),fe(Fe,Se.result,!1,{preventScrollReset:P});let{loaderData:zn,errors:cn}=Ap(T,Wt,ci,void 0,ke,At);nr(Je),T.navigation.state==="loading"&&Je>Et?(Ot(ut,"Expected pending action"),ct&&ct.abort(),Kn(T.navigation.location,{matches:Wt,loaderData:zn,errors:cn,fetchers:new Map(T.fetchers)})):(ge({errors:cn,loaderData:jp(T.loaderData,zn,Wt,cn),fetchers:new Map(T.fetchers)}),A=!1)}async function cu(M,R,H,K,W,ht,at,P,et){let ot=T.fetchers.get(M);Ue(M,Ts(et,ot?ot.data:void 0),{flushSync:at});let mt=new AbortController,vt=Ml(a.history,H,mt.signal);if(ht){let kt=await Sa(K,new URL(vt.url).pathname,vt.signal,M);if(kt.type==="aborted")return;if(kt.type==="error"){On(M,R,kt.error,{flushSync:at});return}else if(kt.matches)K=kt.matches;else{On(M,R,En(404,{pathname:H}),{flushSync:at});return}}let Bt=No(K,H);J.set(M,mt);let Zt=ft,It=Tl(u,c,vt,K,Bt,s,W),Ut=(await ii(vt,It,W,M))[Bt.route.id];if(J.get(M)===mt&&J.delete(M),!vt.signal.aborted){if(dt.has(M)){Ue(M,ga(void 0));return}if(Ri(Ut))if(Et>Zt){Ue(M,ga(void 0));return}else{V.add(M),await fe(vt,Ut,!1,{preventScrollReset:P});return}if(rn(Ut)){On(M,R,Ut.error);return}Ue(M,ga(Ut.data))}}async function fe(M,R,H,{submission:K,fetcherSubmission:W,preventScrollReset:ht,replace:at}={}){H||(lt?.resolve(),lt=null),R.response.headers.has("X-Remix-Revalidate")&&(A=!0);let P=R.response.headers.get("Location");Ot(P,"Expected a Location header on the redirect Response"),P=zp(P,new URL(M.url),g);let et=Vs(T.location,P,{_isRedirect:!0});if(l){let It=!1;if(R.response.headers.has("X-Remix-Reload-Document"))It=!0;else if(Jo(P)){const le=$0(P,!0);It=le.origin!==n.location.origin||Cn(le.pathname,g)==null}if(It){at?n.location.replace(P):n.location.assign(P);return}}ct=null;let ot=at===!0||R.response.headers.has("X-Remix-Replace")?"REPLACE":"PUSH",{formMethod:mt,formAction:vt,formEncType:Bt}=T.navigation;!K&&!W&&mt&&vt&&Bt&&(K=Bp(T.navigation));let Zt=K||W;if(n1.has(R.response.status)&&Zt&&Be(Zt.formMethod))await wn(ot,et,{submission:{...Zt,formAction:P},preventScrollReset:ht||pt,enableViewTransition:H?xt:void 0});else{let It=Af(et,K);await wn(ot,et,{overrideNavigation:It,fetcherSubmission:W,preventScrollReset:ht||pt,enableViewTransition:H?xt:void 0})}}async function ii(M,R,H,K){let W,ht={};try{W=await d1(v,M,R,K,H,!1)}catch(at){return R.filter(P=>P.shouldLoad).forEach(P=>{ht[P.route.id]={type:"error",error:at}}),ht}if(M.signal.aborted)return ht;for(let[at,P]of Object.entries(W))if(S1(P)){let et=P.result;ht[at]={type:"redirect",response:p1(et,M,at,R,g)}}else ht[at]=await g1(P);return ht}async function Al(M,R,H,K){let W=ii(H,M,K,null),ht=Promise.all(R.map(async et=>{if(et.matches&&et.match&&et.request&&et.controller){let mt=(await ii(et.request,et.matches,K,et.key))[et.match.route.id];return{[et.key]:mt}}else return Promise.resolve({[et.key]:{type:"error",error:En(404,{pathname:et.path})}})})),at=await W,P=(await ht).reduce((et,ot)=>Object.assign(et,ot),{});return{loaderResults:at,fetcherResults:P}}function qi(){A=!0,F.forEach((M,R)=>{J.has(R)&&Q.add(R),ie(R)})}function Ue(M,R,H={}){T.fetchers.set(M,R),ge({fetchers:new Map(T.fetchers)},{flushSync:(H&&H.flushSync)===!0})}function On(M,R,H,K={}){let W=Ja(T.matches,R);Nl(M),ge({errors:{[W.route.id]:H},fetchers:new Map(T.fetchers)},{flushSync:(K&&K.flushSync)===!0})}function jl(M){return tt.set(M,(tt.get(M)||0)+1),dt.has(M)&&dt.delete(M),T.fetchers.get(M)||a1}function fu(M,R){ie(M,R?.reason),Ue(M,ga(null))}function Nl(M){let R=T.fetchers.get(M);J.has(M)&&!(R&&R.state==="loading"&&C.has(M))&&ie(M),F.delete(M),C.delete(M),V.delete(M),dt.delete(M),Q.delete(M),T.fetchers.delete(M)}function li(M){let R=(tt.get(M)||0)-1;R<=0?(tt.delete(M),dt.add(M)):tt.set(M,R),ge({fetchers:new Map(T.fetchers)})}function ie(M,R){let H=J.get(M);H&&(H.abort(R),J.delete(M))}function Dn(M){for(let R of M){let H=jl(R),K=ga(H.data);T.fetchers.set(R,K)}}function Re(){let M=[],R=!1;for(let H of V){let K=T.fetchers.get(H);Ot(K,`Expected fetcher: ${H}`),K.state==="loading"&&(V.delete(H),M.push(H),R=!0)}return Dn(M),R}function nr(M){let R=[];for(let[H,K]of C)if(K0}function du(M,R){let H=T.blockers.get(M)||Cs;return bt.get(M)!==R&&bt.set(M,R),H}function ar(M){T.blockers.delete(M),bt.delete(M)}function Fn(M,R){let H=T.blockers.get(M)||Cs;Ot(H.state==="unblocked"&&R.state==="blocked"||H.state==="blocked"&&R.state==="blocked"||H.state==="blocked"&&R.state==="proceeding"||H.state==="blocked"&&R.state==="unblocked"||H.state==="proceeding"&&R.state==="unblocked",`Invalid blocker state transition: ${H.state} -> ${R.state}`);let K=new Map(T.blockers);K.set(M,R),ge({blockers:K})}function si({currentLocation:M,nextLocation:R,historyAction:H}){if(bt.size===0)return;bt.size>1&&ue(!1,"A router only supports one blocker at a time");let K=Array.from(bt.entries()),[W,ht]=K[K.length-1],at=T.blockers.get(W);if(!(at&&at.state==="proceeding")&&ht({currentLocation:M,nextLocation:R,historyAction:H}))return W}function xa(M){let R=En(404,{pathname:M}),H=m||h,{matches:K,route:W}=vo(H);return{notFoundMatches:K,route:W,error:R}}function Jn(M,R,H){if(O=M,k=R,B=H||null,!q&&T.navigation===Rf){q=!0;let K=ir(T.location,T.matches);K!=null&&ge({restoreScrollPosition:K})}return()=>{O=null,k=null,B=null}}function ri(M,R){return B&&B(M,R.map(K=>w_(K,T.loaderData)))||M.key}function oi(M,R){if(O&&k){let H=ri(M,R);O[H]=k()}}function ir(M,R){if(O){let H=ri(M,R),K=O[H];if(typeof K=="number")return K}return null}function ui(M,R,H){if(a.patchRoutesOnNavigation)if(M){if(Object.keys(M[0].params).length>0)return{active:!0,matches:Bs(R,H,g,!0)}}else return{active:!0,matches:Bs(R,H,g,!0)||[]};return{active:!1,matches:null}}async function Sa(M,R,H,K){if(!a.patchRoutesOnNavigation)return{type:"success",matches:M};let W=M;for(;;){let ht=m==null,at=m||h,P=c;try{await a.patchRoutesOnNavigation({signal:H,path:R,matches:W,fetcherKey:K,patch:(mt,vt)=>{H.aborted||Tp(mt,vt,at,P,u,!1)}})}catch(mt){return{type:"error",error:mt,partialMatches:W}}finally{ht&&!H.aborted&&(h=[...h])}if(H.aborted)return{type:"aborted"};let et=Fa(at,R,g),ot=null;if(et){if(Object.keys(et[0].params).length===0)return{type:"success",matches:et};if(ot=Bs(at,R,g,!0),!(ot&&W.lengthH.route.id===R[K].route.id)}function hu(M){c={},m=Xs(M,u,void 0,c)}function lr(M,R,H=!1){let K=m==null;Tp(M,R,m||h,c,u,H),K&&(h=[...h],ge({}))}return gt={get basename(){return g},get future(){return y},get state(){return T},get routes(){return h},get window(){return n},initialize:ae,subscribe:Ui,enableScrollRestoration:Jn,navigate:Bn,fetch:Rl,revalidate:Dl,createHref:M=>a.history.createHref(M),encodeLocation:M=>a.history.encodeLocation(M),getFetcher:jl,resetFetcher:fu,deleteFetcher:li,dispose:ai,getBlocker:du,deleteBlocker:ar,patchRoutes:lr,_internalFetchControllers:J,_internalSetRoutes:hu,_internalSetStateDoNotUseOrYouWillBreakYourApp(M){ge(M)}},a.unstable_instrumentations&&(gt=$_(gt,a.unstable_instrumentations.map(M=>M.router).filter(Boolean))),gt}function s1(a){return a!=null&&("formData"in a&&a.formData!=null||"body"in a&&a.body!==void 0)}function Xf(a,n,l,s,o,u){let c,h;if(o){c=[];for(let g of n)if(c.push(g),g.route.id===o){h=g;break}}else c=n,h=n[n.length-1];let m=Po(s||".",Wo(c),Cn(a.pathname,l)||a.pathname,u==="path");if(s==null&&(m.search=a.search,m.hash=a.hash),(s==null||s===""||s===".")&&h){let g=ed(m.search);if(h.route.index&&!g)m.search=m.search?m.search.replace(/^\?/,"?index&"):"?index";else if(!h.route.index&&g){let v=new URLSearchParams(m.search),y=v.getAll("index");v.delete("index"),y.filter(x=>x).forEach(x=>v.append("index",x));let _=v.toString();m.search=_?`?${_}`:""}}return l!=="/"&&(m.pathname=q_({basename:l,pathname:m.pathname})),$n(m)}function Mp(a,n,l){if(!l||!s1(l))return{path:n};if(l.formMethod&&!E1(l.formMethod))return{path:n,error:En(405,{method:l.formMethod})};let s=()=>({path:n,error:En(400,{type:"invalid-body"})}),u=(l.formMethod||"get").toUpperCase(),c=sv(n);if(l.body!==void 0){if(l.formEncType==="text/plain"){if(!Be(u))return s();let y=typeof l.body=="string"?l.body:l.body instanceof FormData||l.body instanceof URLSearchParams?Array.from(l.body.entries()).reduce((_,[x,O])=>`${_}${x}=${O} +`,""):String(l.body);return{path:n,submission:{formMethod:u,formAction:c,formEncType:l.formEncType,formData:void 0,json:void 0,text:y}}}else if(l.formEncType==="application/json"){if(!Be(u))return s();try{let y=typeof l.body=="string"?JSON.parse(l.body):l.body;return{path:n,submission:{formMethod:u,formAction:c,formEncType:l.formEncType,formData:void 0,json:y,text:void 0}}}catch{return s()}}}Ot(typeof FormData=="function","FormData is not available in this environment");let h,m;if(l.formData)h=Qf(l.formData),m=l.formData;else if(l.body instanceof FormData)h=Qf(l.body),m=l.body;else if(l.body instanceof URLSearchParams)h=l.body,m=Rp(h);else if(l.body==null)h=new URLSearchParams,m=new FormData;else try{h=new URLSearchParams(l.body),m=Rp(h)}catch{return s()}let g={formMethod:u,formAction:c,formEncType:l&&l.formEncType||"application/x-www-form-urlencoded",formData:m,json:void 0,text:void 0};if(Be(g.formMethod))return{path:n,submission:g};let v=ni(n);return a&&v.search&&ed(v.search)&&h.append("index",""),v.search=`?${h}`,{path:$n(v),submission:g}}function Cp(a,n,l,s,o,u,c,h,m,g,v,y,_,x,O,B,k,q,Y,$){let nt=$?rn($[1])?$[1].error:$[1].data:void 0,I=o.createURL(u.location),gt=o.createURL(m),T;if(v&&u.errors){let St=Object.keys(u.errors)[0];T=c.findIndex(st=>st.route.id===St)}else if($&&rn($[1])){let St=$[0];T=c.findIndex(st=>st.route.id===St)-1}let ut=$?$[1].statusCode:void 0,lt=ut&&ut>=400,pt={currentUrl:I,currentParams:u.matches[0]?.params||{},nextUrl:gt,nextParams:c[0].params,...h,actionResult:nt,actionStatus:ut},ct=Js(c),xt=c.map((St,st)=>{let{route:A}=St,Q=null;if(T!=null&&st>T?Q=!1:A.lazy?Q=!0:td(A)?v?Q=Gf(A,u.loaderData,u.errors):r1(u.loaderData,u.matches[st],St)&&(Q=!0):Q=!1,Q!==null)return Zf(l,s,a,ct,St,g,n,Q);let J=lt?!1:y||I.pathname+I.search===gt.pathname+gt.search||I.search!==gt.search||o1(u.matches[st],St),ft={...pt,defaultShouldRevalidate:J},Et=qo(St,ft);return Zf(l,s,a,ct,St,g,n,Et,ft)}),Mt=[];return O.forEach((St,st)=>{if(v||!c.some(F=>F.route.id===St.routeId)||x.has(st))return;let A=u.fetchers.get(st),Q=A&&A.state!=="idle"&&A.data===void 0,J=Fa(k,St.path,q);if(!J){if(Y&&Q)return;Mt.push({key:st,routeId:St.routeId,path:St.path,matches:null,match:null,request:null,controller:null});return}if(B.has(st))return;let ft=No(J,St.path),Et=new AbortController,C=Ml(o,St.path,Et.signal),V=null;if(_.has(st))_.delete(st),V=Tl(l,s,C,J,ft,g,n);else if(Q)y&&(V=Tl(l,s,C,J,ft,g,n));else{let F={...pt,defaultShouldRevalidate:lt?!1:y};qo(ft,F)&&(V=Tl(l,s,C,J,ft,g,n,F))}V&&Mt.push({key:st,routeId:St.routeId,path:St.path,matches:V,match:ft,request:C,controller:Et})}),{dsMatches:xt,revalidatingFetchers:Mt}}function td(a){return a.loader!=null||a.middleware!=null&&a.middleware.length>0}function Gf(a,n,l){if(a.lazy)return!0;if(!td(a))return!1;let s=n!=null&&a.id in n,o=l!=null&&l[a.id]!==void 0;return!s&&o?!1:typeof a.loader=="function"&&a.loader.hydrate===!0?!0:!s&&!o}function r1(a,n,l){let s=!n||l.route.id!==n.route.id,o=!a.hasOwnProperty(l.route.id);return s||o}function o1(a,n){let l=a.route.path;return a.pathname!==n.pathname||l!=null&&l.endsWith("*")&&a.params["*"]!==n.params["*"]}function qo(a,n){if(a.route.shouldRevalidate){let l=a.route.shouldRevalidate(n);if(typeof l=="boolean")return l}return n.defaultShouldRevalidate}function Tp(a,n,l,s,o,u){let c;if(a){let g=s[a];Ot(g,`No route found to patch children into: routeId = ${a}`),g.children||(g.children=[]),c=g.children}else c=l;let h=[],m=[];if(n.forEach(g=>{let v=c.find(y=>ev(g,y));v?m.push({existingRoute:v,newRoute:g}):h.push(g)}),h.length>0){let g=Xs(h,o,[a||"_","patch",String(c?.length||"0")],s);c.push(...g)}if(u&&m.length>0)for(let g=0;gn.children?.some(o=>ev(l,o))):!1}var wp=new WeakMap,nv=({key:a,route:n,manifest:l,mapRouteProperties:s})=>{let o=l[n.id];if(Ot(o,"No route found in manifest"),!o.lazy||typeof o.lazy!="object")return;let u=o.lazy[a];if(!u)return;let c=wp.get(o);c||(c={},wp.set(o,c));let h=c[a];if(h)return h;let m=(async()=>{let g=E_(a),y=o[a]!==void 0&&a!=="hasErrorBoundary";if(g)ue(!g,"Route property "+a+" is not a supported lazy route property. This property will be ignored."),c[a]=Promise.resolve();else if(y)ue(!1,`Route "${o.id}" has a static property "${a}" defined. The lazy property will be ignored.`);else{let _=await u();_!=null&&(Object.assign(o,{[a]:_}),Object.assign(o,s(o)))}typeof o.lazy=="object"&&(o.lazy[a]=void 0,Object.values(o.lazy).every(_=>_===void 0)&&(o.lazy=void 0))})();return c[a]=m,m},Op=new WeakMap;function u1(a,n,l,s,o){let u=l[a.id];if(Ot(u,"No route found in manifest"),!a.lazy)return{lazyRoutePromise:void 0,lazyHandlerPromise:void 0};if(typeof a.lazy=="function"){let v=Op.get(u);if(v)return{lazyRoutePromise:v,lazyHandlerPromise:v};let y=(async()=>{Ot(typeof a.lazy=="function","No lazy route function found");let _=await a.lazy(),x={};for(let O in _){let B=_[O];if(B===void 0)continue;let k=C_(O),Y=u[O]!==void 0&&O!=="hasErrorBoundary";k?ue(!k,"Route property "+O+" is not a supported property to be returned from a lazy route function. This property will be ignored."):Y?ue(!Y,`Route "${u.id}" has a static property "${O}" defined but its lazy function is also returning a value for this property. The lazy route property "${O}" will be ignored.`):x[O]=B}Object.assign(u,x),Object.assign(u,{...s(u),lazy:void 0})})();return Op.set(u,y),y.catch(()=>{}),{lazyRoutePromise:y,lazyHandlerPromise:y}}let c=Object.keys(a.lazy),h=[],m;for(let v of c){if(o&&o.includes(v))continue;let y=nv({key:v,route:a,manifest:l,mapRouteProperties:s});y&&(h.push(y),v===n&&(m=y))}let g=h.length>0?Promise.all(h).then(()=>{}):void 0;return g?.catch(()=>{}),m?.catch(()=>{}),{lazyRoutePromise:g,lazyHandlerPromise:m}}async function Dp(a){let n=a.matches.filter(o=>o.shouldLoad),l={};return(await Promise.all(n.map(o=>o.resolve()))).forEach((o,u)=>{l[n[u].route.id]=o}),l}async function c1(a){return a.matches.some(n=>n.route.middleware)?av(a,()=>Dp(a)):Dp(a)}function av(a,n){return f1(a,n,s=>s,_1,l);function l(s,o,u){if(u)return Promise.resolve(Object.assign(u.value,{[o]:{type:"error",result:s}}));{let{matches:c}=a,h=Math.min(Math.max(c.findIndex(g=>g.route.id===o),0),Math.max(c.findIndex(g=>g.shouldCallHandler()),0)),m=Ja(c,c[h].route.id).route.id;return Promise.resolve({[m]:{type:"error",result:s}})}}}async function f1(a,n,l,s,o){let{matches:u,request:c,params:h,context:m,unstable_pattern:g}=a,v=u.flatMap(_=>_.route.middleware?_.route.middleware.map(x=>[_.route.id,x]):[]);return await iv({request:c,params:h,context:m,unstable_pattern:g},v,n,l,s,o)}async function iv(a,n,l,s,o,u,c=0){let{request:h}=a;if(h.signal.aborted)throw h.signal.reason??new Error(`Request aborted: ${h.method} ${h.url}`);let m=n[c];if(!m)return await l();let[g,v]=m,y,_=async()=>{if(y)throw new Error("You may only call `next()` once per middleware");try{return y={value:await iv(a,n,l,s,o,u,c+1)},y.value}catch(x){return y={value:await u(x,g,y)},y.value}};try{let x=await v(a,_),O=x!=null?s(x):void 0;return o(O)?O:y?O??y.value:(y={value:await _()},y.value)}catch(x){return await u(x,g,y)}}function lv(a,n,l,s,o){let u=nv({key:"middleware",route:s.route,manifest:n,mapRouteProperties:a}),c=u1(s.route,Be(l.method)?"action":"loader",n,a,o);return{middleware:u,route:c.lazyRoutePromise,handler:c.lazyHandlerPromise}}function Zf(a,n,l,s,o,u,c,h,m=null){let g=!1,v=lv(a,n,l,o,u);return{...o,_lazyPromises:v,shouldLoad:h,shouldRevalidateArgs:m,shouldCallHandler(y){return g=!0,m?typeof y=="boolean"?qo(o,{...m,defaultShouldRevalidate:y}):qo(o,m):h},resolve(y){let{lazy:_,loader:x,middleware:O}=o.route,B=g||h||y&&!Be(l.method)&&(_||x),k=O&&O.length>0&&!x&&!_;return B&&(Be(l.method)||!k)?h1({request:l,unstable_pattern:s,match:o,lazyHandlerPromise:v?.handler,lazyRoutePromise:v?.route,handlerOverride:y,scopedContext:c}):Promise.resolve({type:"data",result:void 0})}}}function Tl(a,n,l,s,o,u,c,h=null){return s.map(m=>m.route.id!==o.route.id?{...m,shouldLoad:!1,shouldRevalidateArgs:h,shouldCallHandler:()=>!1,_lazyPromises:lv(a,n,l,m,u),resolve:()=>Promise.resolve({type:"data",result:void 0})}:Zf(a,n,l,Js(s),m,u,c,!0,h))}async function d1(a,n,l,s,o,u){l.some(g=>g._lazyPromises?.middleware)&&await Promise.all(l.map(g=>g._lazyPromises?.middleware));let c={request:n,unstable_pattern:Js(l),params:l[0].params,context:o,matches:l},m=await a({...c,fetcherKey:s,runClientMiddleware:g=>{let v=c;return av(v,()=>g({...v,fetcherKey:s,runClientMiddleware:()=>{throw new Error("Cannot call `runClientMiddleware()` from within an `runClientMiddleware` handler")}}))}});try{await Promise.all(l.flatMap(g=>[g._lazyPromises?.handler,g._lazyPromises?.route]))}catch{}return m}async function h1({request:a,unstable_pattern:n,match:l,lazyHandlerPromise:s,lazyRoutePromise:o,handlerOverride:u,scopedContext:c}){let h,m,g=Be(a.method),v=g?"action":"loader",y=_=>{let x,O=new Promise((q,Y)=>x=Y);m=()=>x(),a.signal.addEventListener("abort",m);let B=q=>typeof _!="function"?Promise.reject(new Error(`You cannot call the handler for a route which defines a boolean "${v}" [routeId: ${l.route.id}]`)):_({request:a,unstable_pattern:n,params:l.params,context:c},...q!==void 0?[q]:[]),k=(async()=>{try{return{type:"data",result:await(u?u(Y=>B(Y)):B())}}catch(q){return{type:"error",result:q}}})();return Promise.race([k,O])};try{let _=g?l.route.action:l.route.loader;if(s||o)if(_){let x,[O]=await Promise.all([y(_).catch(B=>{x=B}),s,o]);if(x!==void 0)throw x;h=O}else{await s;let x=g?l.route.action:l.route.loader;if(x)[h]=await Promise.all([y(x),o]);else if(v==="action"){let O=new URL(a.url),B=O.pathname+O.search;throw En(405,{method:a.method,pathname:B,routeId:l.route.id})}else return{type:"data",result:void 0}}else if(_)h=await y(_);else{let x=new URL(a.url),O=x.pathname+x.search;throw En(404,{pathname:O})}}catch(_){return{type:"error",result:_}}finally{m&&a.signal.removeEventListener("abort",m)}return h}async function m1(a){let n=a.headers.get("Content-Type");return n&&/\bapplication\/json\b/.test(n)?a.body==null?null:a.json():a.text()}async function g1(a){let{result:n,type:l}=a;if(rv(n)){let s;try{s=await m1(n)}catch(o){return{type:"error",error:o}}return l==="error"?{type:"error",error:new Io(n.status,n.statusText,s),statusCode:n.status,headers:n.headers}:{type:"data",data:s,statusCode:n.status,headers:n.headers}}return l==="error"?Lp(n)?n.data instanceof Error?{type:"error",error:n.data,statusCode:n.init?.status,headers:n.init?.headers?new Headers(n.init.headers):void 0}:{type:"error",error:b1(n),statusCode:Gs(n)?n.status:void 0,headers:n.init?.headers?new Headers(n.init.headers):void 0}:{type:"error",error:n,statusCode:Gs(n)?n.status:void 0}:Lp(n)?{type:"data",data:n.data,statusCode:n.init?.status,headers:n.init?.headers?new Headers(n.init.headers):void 0}:{type:"data",data:n}}function p1(a,n,l,s,o){let u=a.headers.get("Location");if(Ot(u,"Redirects returned/thrown from loaders/actions must have a Location header"),!Jo(u)){let c=s.slice(0,s.findIndex(h=>h.route.id===l)+1);u=Xf(new URL(n.url),c,o,u),a.headers.set("Location",u)}return a}function zp(a,n,l){if(Jo(a)){let s=a,o=s.startsWith("//")?new URL(n.protocol+s):new URL(s),u=Cn(o.pathname,l)!=null;if(o.origin===n.origin&&u)return o.pathname+o.search+o.hash}return a}function Ml(a,n,l,s){let o=a.createURL(sv(n)).toString(),u={signal:l};if(s&&Be(s.formMethod)){let{formMethod:c,formEncType:h}=s;u.method=c.toUpperCase(),h==="application/json"?(u.headers=new Headers({"Content-Type":h}),u.body=JSON.stringify(s.json)):h==="text/plain"?u.body=s.text:h==="application/x-www-form-urlencoded"&&s.formData?u.body=Qf(s.formData):u.body=s.formData}return new Request(o,u)}function Qf(a){let n=new URLSearchParams;for(let[l,s]of a.entries())n.append(l,typeof s=="string"?s:s.name);return n}function Rp(a){let n=new FormData;for(let[l,s]of a.entries())n.append(l,s);return n}function v1(a,n,l,s=!1,o=!1){let u={},c=null,h,m=!1,g={},v=l&&rn(l[1])?l[1].error:void 0;return a.forEach(y=>{if(!(y.route.id in n))return;let _=y.route.id,x=n[_];if(Ot(!Ri(x),"Cannot handle redirect results in processLoaderData"),rn(x)){let O=x.error;if(v!==void 0&&(O=v,v=void 0),c=c||{},o)c[_]=O;else{let B=Ja(a,_);c[B.route.id]==null&&(c[B.route.id]=O)}s||(u[_]=tv),m||(m=!0,h=Gs(x.error)?x.error.status:500),x.headers&&(g[_]=x.headers)}else u[_]=x.data,x.statusCode&&x.statusCode!==200&&!m&&(h=x.statusCode),x.headers&&(g[_]=x.headers)}),v!==void 0&&l&&(c={[l[0]]:v},l[2]&&(u[l[2]]=void 0)),{loaderData:u,errors:c,statusCode:h||200,loaderHeaders:g}}function Ap(a,n,l,s,o,u){let{loaderData:c,errors:h}=v1(n,l,s);return o.filter(m=>!m.matches||m.matches.some(g=>g.shouldLoad)).forEach(m=>{let{key:g,match:v,controller:y}=m;if(y&&y.signal.aborted)return;let _=u[g];if(Ot(_,"Did not find corresponding fetcher result"),rn(_)){let x=Ja(a.matches,v?.route.id);h&&h[x.route.id]||(h={...h,[x.route.id]:_.error}),a.fetchers.delete(g)}else if(Ri(_))Ot(!1,"Unhandled fetcher revalidation redirect");else{let x=ga(_.data);a.fetchers.set(g,x)}}),{loaderData:c,errors:h}}function jp(a,n,l,s){let o=Object.entries(n).filter(([,u])=>u!==tv).reduce((u,[c,h])=>(u[c]=h,u),{});for(let u of l){let c=u.route.id;if(!n.hasOwnProperty(c)&&a.hasOwnProperty(c)&&u.route.loader&&(o[c]=a[c]),s&&s.hasOwnProperty(c))break}return o}function Np(a){return a?rn(a[1])?{actionData:{}}:{actionData:{[a[0]]:a[1].data}}:{}}function Ja(a,n){return(n?a.slice(0,a.findIndex(s=>s.route.id===n)+1):[...a]).reverse().find(s=>s.route.hasErrorBoundary===!0)||a[0]}function vo(a){let n=a.length===1?a[0]:a.find(l=>l.index||!l.path||l.path==="/")||{id:"__shim-error-route__"};return{matches:[{params:{},pathname:"",pathnameBase:"",route:n}],route:n}}function En(a,{pathname:n,routeId:l,method:s,type:o,message:u}={}){let c="Unknown Server Error",h="Unknown @remix-run/router error";return a===400?(c="Bad Request",s&&n&&l?h=`You made a ${s} request to "${n}" but did not provide a \`loader\` for route "${l}", so there is no way to handle the request.`:o==="invalid-body"&&(h="Unable to encode submission body")):a===403?(c="Forbidden",h=`Route "${l}" does not match URL "${n}"`):a===404?(c="Not Found",h=`No route matches URL "${n}"`):a===405&&(c="Method Not Allowed",s&&n&&l?h=`You made a ${s.toUpperCase()} request to "${n}" but did not provide an \`action\` for route "${l}", so there is no way to handle the request.`:s&&(h=`Invalid request method "${s.toUpperCase()}"`)),new Io(a||500,c,new Error(h),!0)}function yo(a){let n=Object.entries(a);for(let l=n.length-1;l>=0;l--){let[s,o]=n[l];if(Ri(o))return{key:s,result:o}}}function sv(a){let n=typeof a=="string"?ni(a):a;return $n({...n,hash:""})}function y1(a,n){return a.pathname!==n.pathname||a.search!==n.search?!1:a.hash===""?n.hash!=="":a.hash===n.hash?!0:n.hash!==""}function b1(a){return new Io(a.init?.status??500,a.init?.statusText??"Internal Server Error",a.data)}function _1(a){return a!=null&&typeof a=="object"&&Object.entries(a).every(([n,l])=>typeof n=="string"&&x1(l))}function x1(a){return a!=null&&typeof a=="object"&&"type"in a&&"result"in a&&(a.type==="data"||a.type==="error")}function S1(a){return rv(a.result)&&e1.has(a.result.status)}function rn(a){return a.type==="error"}function Ri(a){return(a&&a.type)==="redirect"}function Lp(a){return typeof a=="object"&&a!=null&&"type"in a&&"data"in a&&"init"in a&&a.type==="DataWithResponseInit"}function rv(a){return a!=null&&typeof a.status=="number"&&typeof a.statusText=="string"&&typeof a.headers=="object"&&typeof a.body<"u"}function E1(a){return t1.has(a.toUpperCase())}function Be(a){return P_.has(a.toUpperCase())}function ed(a){return new URLSearchParams(a).getAll("index").some(n=>n==="")}function No(a,n){let l=typeof n=="string"?ni(n).search:n.search;if(a[a.length-1].route.index&&ed(l||""))return a[a.length-1];let s=J0(a);return s[s.length-1]}function Bp(a){let{formMethod:n,formAction:l,formEncType:s,text:o,formData:u,json:c}=a;if(!(!n||!l||!s)){if(o!=null)return{formMethod:n,formAction:l,formEncType:s,formData:void 0,json:void 0,text:o};if(u!=null)return{formMethod:n,formAction:l,formEncType:s,formData:u,json:void 0,text:void 0};if(c!==void 0)return{formMethod:n,formAction:l,formEncType:s,formData:void 0,json:c,text:void 0}}}function Af(a,n){return n?{state:"loading",location:a,formMethod:n.formMethod,formAction:n.formAction,formEncType:n.formEncType,formData:n.formData,json:n.json,text:n.text}:{state:"loading",location:a,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0}}function M1(a,n){return{state:"submitting",location:a,formMethod:n.formMethod,formAction:n.formAction,formEncType:n.formEncType,formData:n.formData,json:n.json,text:n.text}}function Ts(a,n){return a?{state:"loading",formMethod:a.formMethod,formAction:a.formAction,formEncType:a.formEncType,formData:a.formData,json:a.json,text:a.text,data:n}:{state:"loading",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:n}}function C1(a,n){return{state:"submitting",formMethod:a.formMethod,formAction:a.formAction,formEncType:a.formEncType,formData:a.formData,json:a.json,text:a.text,data:n?n.data:void 0}}function ga(a){return{state:"idle",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:a}}function T1(a,n){try{let l=a.sessionStorage.getItem(I0);if(l){let s=JSON.parse(l);for(let[o,u]of Object.entries(s||{}))u&&Array.isArray(u)&&n.set(o,new Set(u||[]))}}catch{}}function w1(a,n){if(n.size>0){let l={};for(let[s,o]of n)l[s]=[...o];try{a.sessionStorage.setItem(I0,JSON.stringify(l))}catch(s){ue(!1,`Failed to save applied view transitions in sessionStorage (${s}).`)}}}function Hp(){let a,n,l=new Promise((s,o)=>{a=async u=>{s(u);try{await l}catch{}},n=async u=>{o(u);try{await l}catch{}}});return{promise:l,resolve:a,reject:n}}var Bi=D.createContext(null);Bi.displayName="DataRouter";var Ws=D.createContext(null);Ws.displayName="DataRouterState";D.createContext(!1);var nd=D.createContext({isTransitioning:!1});nd.displayName="ViewTransition";var ov=D.createContext(new Map);ov.displayName="Fetchers";var O1=D.createContext(null);O1.displayName="Await";var Tn=D.createContext(null);Tn.displayName="Navigation";var tu=D.createContext(null);tu.displayName="Location";var Ln=D.createContext({outlet:null,matches:[],isDataRoute:!1});Ln.displayName="Route";var ad=D.createContext(null);ad.displayName="RouteError";function D1(a,{relative:n}={}){Ot(Ol(),"useHref() may be used only in the context of a component.");let{basename:l,navigator:s}=D.useContext(Tn),{hash:o,pathname:u,search:c}=Ps(a,{relative:n}),h=u;return l!=="/"&&(h=u==="/"?l:Qn([l,u])),s.createHref({pathname:h,search:c,hash:o})}function Ol(){return D.useContext(tu)!=null}function _a(){return Ot(Ol(),"useLocation() may be used only in the context of a component."),D.useContext(tu).location}var uv="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function cv(a){D.useContext(Tn).static||D.useLayoutEffect(a)}function Hi(){let{isDataRoute:a}=D.useContext(Ln);return a?G1():z1()}function z1(){Ot(Ol(),"useNavigate() may be used only in the context of a component.");let a=D.useContext(Bi),{basename:n,navigator:l}=D.useContext(Tn),{matches:s}=D.useContext(Ln),{pathname:o}=_a(),u=JSON.stringify(Wo(s)),c=D.useRef(!1);return cv(()=>{c.current=!0}),D.useCallback((m,g={})=>{if(ue(c.current,uv),!c.current)return;if(typeof m=="number"){l.go(m);return}let v=Po(m,JSON.parse(u),o,g.relative==="path");a==null&&n!=="/"&&(v.pathname=v.pathname==="/"?n:Qn([n,v.pathname])),(g.replace?l.replace:l.push)(v,g.state,g)},[n,l,u,o,a])}var R1=D.createContext(null);function A1(a){let n=D.useContext(Ln).outlet;return D.useMemo(()=>n&&D.createElement(R1.Provider,{value:a},n),[n,a])}function Ps(a,{relative:n}={}){let{matches:l}=D.useContext(Ln),{pathname:s}=_a(),o=JSON.stringify(Wo(l));return D.useMemo(()=>Po(a,JSON.parse(o),s,n==="path"),[a,o,s,n])}function j1(a,n,l,s,o){Ot(Ol(),"useRoutes() may be used only in the context of a component.");let{navigator:u}=D.useContext(Tn),{matches:c}=D.useContext(Ln),h=c[c.length-1],m=h?h.params:{},g=h?h.pathname:"/",v=h?h.pathnameBase:"/",y=h&&h.route;{let Y=y&&y.path||"";fv(g,!y||Y.endsWith("*")||Y.endsWith("*?"),`You rendered descendant (or called \`useRoutes()\`) at "${g}" (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 _=_a(),x;x=_;let O=x.pathname||"/",B=O;if(v!=="/"){let Y=v.replace(/^\//,"").split("/");B="/"+O.replace(/^\//,"").split("/").slice(Y.length).join("/")}let k=Fa(a,{pathname:B});return ue(y||k!=null,`No routes matched location "${x.pathname}${x.search}${x.hash}" `),ue(k==null||k[k.length-1].route.element!==void 0||k[k.length-1].route.Component!==void 0||k[k.length-1].route.lazy!==void 0,`Matched leaf route at location "${x.pathname}${x.search}${x.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.`),U1(k&&k.map(Y=>Object.assign({},Y,{params:Object.assign({},m,Y.params),pathname:Qn([v,u.encodeLocation?u.encodeLocation(Y.pathname.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:Y.pathname]),pathnameBase:Y.pathnameBase==="/"?v:Qn([v,u.encodeLocation?u.encodeLocation(Y.pathnameBase.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:Y.pathnameBase])})),c,l,s,o)}function N1(){let a=X1(),n=Gs(a)?`${a.status} ${a.statusText}`:a instanceof Error?a.message:JSON.stringify(a),l=a instanceof Error?a.stack:null,s="rgba(200,200,200, 0.5)",o={padding:"0.5rem",backgroundColor:s},u={padding:"2px 4px",backgroundColor:s},c=null;return console.error("Error handled by React Router default ErrorBoundary:",a),c=D.createElement(D.Fragment,null,D.createElement("p",null,"💿 Hey developer 👋"),D.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",D.createElement("code",{style:u},"ErrorBoundary")," or"," ",D.createElement("code",{style:u},"errorElement")," prop on your route.")),D.createElement(D.Fragment,null,D.createElement("h2",null,"Unexpected Application Error!"),D.createElement("h3",{style:{fontStyle:"italic"}},n),l?D.createElement("pre",{style:o},l):null,c)}var L1=D.createElement(N1,null),B1=class extends D.Component{constructor(a){super(a),this.state={location:a.location,revalidation:a.revalidation,error:a.error}}static getDerivedStateFromError(a){return{error:a}}static getDerivedStateFromProps(a,n){return n.location!==a.location||n.revalidation!=="idle"&&a.revalidation==="idle"?{error:a.error,location:a.location,revalidation:a.revalidation}:{error:a.error!==void 0?a.error:n.error,location:n.location,revalidation:a.revalidation||n.revalidation}}componentDidCatch(a,n){this.props.onError?this.props.onError(a,n):console.error("React Router caught the following error during render",a)}render(){return this.state.error!==void 0?D.createElement(Ln.Provider,{value:this.props.routeContext},D.createElement(ad.Provider,{value:this.state.error,children:this.props.component})):this.props.children}};function H1({routeContext:a,match:n,children:l}){let s=D.useContext(Bi);return s&&s.static&&s.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(s.staticContext._deepestRenderedBoundaryId=n.route.id),D.createElement(Ln.Provider,{value:a},l)}function U1(a,n=[],l=null,s=null,o=null){if(a==null){if(!l)return null;if(l.errors)a=l.matches;else if(n.length===0&&!l.initialized&&l.matches.length>0)a=l.matches;else return null}let u=a,c=l?.errors;if(c!=null){let v=u.findIndex(y=>y.route.id&&c?.[y.route.id]!==void 0);Ot(v>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(c).join(",")}`),u=u.slice(0,Math.min(u.length,v+1))}let h=!1,m=-1;if(l)for(let v=0;v=0?u=u.slice(0,m+1):u=[u[0]];break}}}let g=l&&s?(v,y)=>{s(v,{location:l.location,params:l.matches?.[0]?.params??{},unstable_pattern:Js(l.matches),errorInfo:y})}:void 0;return u.reduceRight((v,y,_)=>{let x,O=!1,B=null,k=null;l&&(x=c&&y.route.id?c[y.route.id]:void 0,B=y.route.errorElement||L1,h&&(m<0&&_===0?(fv("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),O=!0,k=null):m===_&&(O=!0,k=y.route.hydrateFallbackElement||null)));let q=n.concat(u.slice(0,_+1)),Y=()=>{let $;return x?$=B:O?$=k:y.route.Component?$=D.createElement(y.route.Component,null):y.route.element?$=y.route.element:$=v,D.createElement(H1,{match:y,routeContext:{outlet:v,matches:q,isDataRoute:l!=null},children:$})};return l&&(y.route.ErrorBoundary||y.route.errorElement||_===0)?D.createElement(B1,{location:l.location,revalidation:l.revalidation,component:B,error:x,children:Y(),routeContext:{outlet:null,matches:q,isDataRoute:!0},onError:g}):Y()},null)}function id(a){return`${a} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function k1(a){let n=D.useContext(Bi);return Ot(n,id(a)),n}function q1(a){let n=D.useContext(Ws);return Ot(n,id(a)),n}function Y1(a){let n=D.useContext(Ln);return Ot(n,id(a)),n}function ld(a){let n=Y1(a),l=n.matches[n.matches.length-1];return Ot(l.route.id,`${a} can only be used on routes that contain a unique "id"`),l.route.id}function V1(){return ld("useRouteId")}function X1(){let a=D.useContext(ad),n=q1("useRouteError"),l=ld("useRouteError");return a!==void 0?a:n.errors?.[l]}function G1(){let{router:a}=k1("useNavigate"),n=ld("useNavigate"),l=D.useRef(!1);return cv(()=>{l.current=!0}),D.useCallback(async(o,u={})=>{ue(l.current,uv),l.current&&(typeof o=="number"?await a.navigate(o):await a.navigate(o,{fromRouteId:n,...u}))},[a,n])}var Up={};function fv(a,n,l){!n&&!Up[a]&&(Up[a]=!0,ue(!1,l))}var kp={};function qp(a,n){!a&&!kp[n]&&(kp[n]=!0,console.warn(n))}var Z1="useOptimistic",Yp=u_[Z1],Q1=()=>{};function $1(a){return Yp?Yp(a):[a,Q1]}function K1(a){let n={hasErrorBoundary:a.hasErrorBoundary||a.ErrorBoundary!=null||a.errorElement!=null};return a.Component&&(a.element&&ue(!1,"You should not include both `Component` and `element` on your route - `Component` will be used."),Object.assign(n,{element:D.createElement(a.Component),Component:void 0})),a.HydrateFallback&&(a.hydrateFallbackElement&&ue(!1,"You should not include both `HydrateFallback` and `hydrateFallbackElement` on your route - `HydrateFallback` will be used."),Object.assign(n,{hydrateFallbackElement:D.createElement(a.HydrateFallback),HydrateFallback:void 0})),a.ErrorBoundary&&(a.errorElement&&ue(!1,"You should not include both `ErrorBoundary` and `errorElement` on your route - `ErrorBoundary` will be used."),Object.assign(n,{errorElement:D.createElement(a.ErrorBoundary),ErrorBoundary:void 0})),n}var F1=["HydrateFallback","hydrateFallbackElement"],J1=class{constructor(){this.status="pending",this.promise=new Promise((a,n)=>{this.resolve=l=>{this.status==="pending"&&(this.status="resolved",a(l))},this.reject=l=>{this.status==="pending"&&(this.status="rejected",n(l))}})}};function W1({router:a,flushSync:n,unstable_onError:l,unstable_useTransitions:s}){let[o,u]=D.useState(a.state),[c,h]=$1(o),[m,g]=D.useState(),[v,y]=D.useState({isTransitioning:!1}),[_,x]=D.useState(),[O,B]=D.useState(),[k,q]=D.useState(),Y=D.useRef(new Map),$=D.useCallback((T,{deletedFetchers:ut,newErrors:lt,flushSync:pt,viewTransitionOpts:ct})=>{lt&&l&&Object.values(lt).forEach(Mt=>l(Mt,{location:T.location,params:T.matches[0]?.params??{},unstable_pattern:Js(T.matches)})),T.fetchers.forEach((Mt,St)=>{Mt.data!==void 0&&Y.current.set(St,Mt.data)}),ut.forEach(Mt=>Y.current.delete(Mt)),qp(pt===!1||n!=null,'You provided the `flushSync` option to a router update, but you are not using the `` from `react-router/dom` so `ReactDOM.flushSync()` is unavailable. Please update your app to `import { RouterProvider } from "react-router/dom"` and ensure you have `react-dom` installed as a dependency to use the `flushSync` option.');let xt=a.window!=null&&a.window.document!=null&&typeof a.window.document.startViewTransition=="function";if(qp(ct==null||xt,"You provided the `viewTransition` option to a router update, but you do not appear to be running in a DOM environment as `window.startViewTransition` is not available."),!ct||!xt){n&&pt?n(()=>u(T)):s===!1?u(T):D.startTransition(()=>{s===!0&&h(Mt=>Vp(Mt,T)),u(T)});return}if(n&&pt){n(()=>{O&&(_?.resolve(),O.skipTransition()),y({isTransitioning:!0,flushSync:!0,currentLocation:ct.currentLocation,nextLocation:ct.nextLocation})});let Mt=a.window.document.startViewTransition(()=>{n(()=>u(T))});Mt.finished.finally(()=>{n(()=>{x(void 0),B(void 0),g(void 0),y({isTransitioning:!1})})}),n(()=>B(Mt));return}O?(_?.resolve(),O.skipTransition(),q({state:T,currentLocation:ct.currentLocation,nextLocation:ct.nextLocation})):(g(T),y({isTransitioning:!0,flushSync:!1,currentLocation:ct.currentLocation,nextLocation:ct.nextLocation}))},[a.window,n,O,_,s,h,l]);D.useLayoutEffect(()=>a.subscribe($),[a,$]),D.useEffect(()=>{v.isTransitioning&&!v.flushSync&&x(new J1)},[v]),D.useEffect(()=>{if(_&&m&&a.window){let T=m,ut=_.promise,lt=a.window.document.startViewTransition(async()=>{s===!1?u(T):D.startTransition(()=>{s===!0&&h(pt=>Vp(pt,T)),u(T)}),await ut});lt.finished.finally(()=>{x(void 0),B(void 0),g(void 0),y({isTransitioning:!1})}),B(lt)}},[m,_,a.window,s,h]),D.useEffect(()=>{_&&m&&c.location.key===m.location.key&&_.resolve()},[_,O,c.location,m]),D.useEffect(()=>{!v.isTransitioning&&k&&(g(k.state),y({isTransitioning:!0,flushSync:!1,currentLocation:k.currentLocation,nextLocation:k.nextLocation}),q(void 0))},[v.isTransitioning,k]);let nt=D.useMemo(()=>({createHref:a.createHref,encodeLocation:a.encodeLocation,go:T=>a.navigate(T),push:(T,ut,lt)=>a.navigate(T,{state:ut,preventScrollReset:lt?.preventScrollReset}),replace:(T,ut,lt)=>a.navigate(T,{replace:!0,state:ut,preventScrollReset:lt?.preventScrollReset})}),[a]),I=a.basename||"/",gt=D.useMemo(()=>({router:a,navigator:nt,static:!1,basename:I,unstable_onError:l}),[a,nt,I,l]);return D.createElement(D.Fragment,null,D.createElement(Bi.Provider,{value:gt},D.createElement(Ws.Provider,{value:c},D.createElement(ov.Provider,{value:Y.current},D.createElement(nd.Provider,{value:v},D.createElement(nx,{basename:I,location:c.location,navigationType:c.historyAction,navigator:nt,unstable_useTransitions:s===!0},D.createElement(P1,{routes:a.routes,future:a.future,state:c,unstable_onError:l})))))),null)}function Vp(a,n){return{...a,navigation:n.navigation.state!=="idle"?n.navigation:a.navigation,revalidation:n.revalidation!=="idle"?n.revalidation:a.revalidation,actionData:n.navigation.state!=="submitting"?n.actionData:a.actionData,fetchers:n.fetchers}}var P1=D.memo(I1);function I1({routes:a,future:n,state:l,unstable_onError:s}){return j1(a,void 0,l,s,n)}function tx({to:a,replace:n,state:l,relative:s}){Ot(Ol()," may be used only in the context of a component.");let{static:o}=D.useContext(Tn);ue(!o," must not be used on the initial render in a . This is a no-op, but you should modify your code so the is only ever rendered in response to some user interaction or state change.");let{matches:u}=D.useContext(Ln),{pathname:c}=_a(),h=Hi(),m=Po(a,Wo(u),c,s==="path"),g=JSON.stringify(m);return D.useEffect(()=>{h(JSON.parse(g),{replace:n,state:l,relative:s})},[h,g,s,n,l]),null}function ex(a){return A1(a.context)}function nx({basename:a="/",children:n=null,location:l,navigationType:s="POP",navigator:o,static:u=!1,unstable_useTransitions:c}){Ot(!Ol(),"You cannot render a inside another . You should never have more than one in your app.");let h=a.replace(/^\/*/,"/"),m=D.useMemo(()=>({basename:h,navigator:o,static:u,unstable_useTransitions:c,future:{}}),[h,o,u,c]);typeof l=="string"&&(l=ni(l));let{pathname:g="/",search:v="",hash:y="",state:_=null,key:x="default"}=l,O=D.useMemo(()=>{let B=Cn(g,h);return B==null?null:{location:{pathname:B,search:v,hash:y,state:_,key:x},navigationType:s}},[h,g,v,y,_,x,s]);return ue(O!=null,` is not able to match the URL "${g}${v}${y}" because it does not start with the basename, so the won't render anything.`),O==null?null:D.createElement(Tn.Provider,{value:m},D.createElement(tu.Provider,{children:n,value:O}))}var Lo="get",Bo="application/x-www-form-urlencoded";function eu(a){return typeof HTMLElement<"u"&&a instanceof HTMLElement}function ax(a){return eu(a)&&a.tagName.toLowerCase()==="button"}function ix(a){return eu(a)&&a.tagName.toLowerCase()==="form"}function lx(a){return eu(a)&&a.tagName.toLowerCase()==="input"}function sx(a){return!!(a.metaKey||a.altKey||a.ctrlKey||a.shiftKey)}function rx(a,n){return a.button===0&&(!n||n==="_self")&&!sx(a)}var bo=null;function ox(){if(bo===null)try{new FormData(document.createElement("form"),0),bo=!1}catch{bo=!0}return bo}var ux=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function jf(a){return a!=null&&!ux.has(a)?(ue(!1,`"${a}" is not a valid \`encType\` for \`
\`/\`\` and will default to "${Bo}"`),null):a}function cx(a,n){let l,s,o,u,c;if(ix(a)){let h=a.getAttribute("action");s=h?Cn(h,n):null,l=a.getAttribute("method")||Lo,o=jf(a.getAttribute("enctype"))||Bo,u=new FormData(a)}else if(ax(a)||lx(a)&&(a.type==="submit"||a.type==="image")){let h=a.form;if(h==null)throw new Error('Cannot submit a