From a5bb7abce8664e7ab882303f35cd5d0d5768b563 Mon Sep 17 00:00:00 2001 From: rassadin11 Date: Wed, 17 Jun 2026 18:10:23 +0300 Subject: [PATCH] add staking page --- dist/assets/index-CvjPBUMw.js | 161 +++++++++++ ...{index-D_ylxO9S.css => index-CyLzS1Ao.css} | 2 +- dist/assets/index-LxsThgvi.js | 161 ----------- dist/index.html | 4 +- src/features/pools/api/poolsApi.ts | 267 ++++++++++++++++++ src/features/pools/index.ts | 13 + src/features/pools/model/usePools.ts | 85 ++++++ src/widgets/pools/model/meta.ts | 135 --------- src/widgets/pools/ui/LpDepositCard.tsx | 36 ++- .../pools/ui/LpPositionsPanel.module.css | 7 + src/widgets/pools/ui/LpPositionsPanel.tsx | 17 +- src/widgets/pools/ui/LpRemoveModal.module.css | 144 ++++++++++ src/widgets/pools/ui/LpRemoveModal.tsx | 68 +++++ src/widgets/pools/ui/PoolsTable.module.css | 7 + src/widgets/pools/ui/PoolsTable.tsx | 17 +- src/widgets/pools/ui/PoolsWidget.tsx | 132 ++++++++- tsconfig.tsbuildinfo | 2 +- 17 files changed, 928 insertions(+), 330 deletions(-) create mode 100644 dist/assets/index-CvjPBUMw.js rename dist/assets/{index-D_ylxO9S.css => index-CyLzS1Ao.css} (90%) delete mode 100644 dist/assets/index-LxsThgvi.js create mode 100644 src/features/pools/api/poolsApi.ts create mode 100644 src/features/pools/index.ts create mode 100644 src/features/pools/model/usePools.ts create mode 100644 src/widgets/pools/ui/LpRemoveModal.module.css create mode 100644 src/widgets/pools/ui/LpRemoveModal.tsx diff --git a/dist/assets/index-CvjPBUMw.js b/dist/assets/index-CvjPBUMw.js new file mode 100644 index 0000000..d201e9a --- /dev/null +++ b/dist/assets/index-CvjPBUMw.js @@ -0,0 +1,161 @@ +var Pm=a=>{throw TypeError(a)};var wd=(a,i,c)=>i.has(a)||Pm("Cannot "+c);var E=(a,i,c)=>(wd(a,i,"read from private field"),c?c.call(a):i.get(a)),oe=(a,i,c)=>i.has(a)?Pm("Cannot add the same private member more than once"):i instanceof WeakSet?i.add(a):i.set(a,c),J=(a,i,c,r)=>(wd(a,i,"write to private field"),r?r.call(a,c):i.set(a,c),c),we=(a,i,c)=>(wd(a,i,"access private method"),c);var Ro=(a,i,c,r)=>({set _(d){J(a,i,d,c)},get _(){return E(a,i,r)}});(function(){const i=document.createElement("link").relList;if(i&&i.supports&&i.supports("modulepreload"))return;for(const d of document.querySelectorAll('link[rel="modulepreload"]'))r(d);new MutationObserver(d=>{for(const f of d)if(f.type==="childList")for(const h of f.addedNodes)h.tagName==="LINK"&&h.rel==="modulepreload"&&r(h)}).observe(document,{childList:!0,subtree:!0});function c(d){const f={};return d.integrity&&(f.integrity=d.integrity),d.referrerPolicy&&(f.referrerPolicy=d.referrerPolicy),d.crossOrigin==="use-credentials"?f.credentials="include":d.crossOrigin==="anonymous"?f.credentials="omit":f.credentials="same-origin",f}function r(d){if(d.ep)return;d.ep=!0;const f=c(d);fetch(d.href,f)}})();function C3(a){return a&&a.__esModule&&Object.prototype.hasOwnProperty.call(a,"default")?a.default:a}var Cd={exports:{}},Bc={};/** + * @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 Im;function Sy(){if(Im)return Bc;Im=1;var a=Symbol.for("react.transitional.element"),i=Symbol.for("react.fragment");function c(r,d,f){var h=null;if(f!==void 0&&(h=""+f),d.key!==void 0&&(h=""+d.key),"key"in d){f={};for(var g in d)g!=="key"&&(f[g]=d[g])}else f=d;return d=f.ref,{$$typeof:a,type:r,key:h,ref:d!==void 0?d:null,props:f}}return Bc.Fragment=i,Bc.jsx=c,Bc.jsxs=c,Bc}var Ym;function Ny(){return Ym||(Ym=1,Cd.exports=Sy()),Cd.exports}var s=Ny(),Td={exports:{}},be={};/** + * @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 Xm;function wy(){if(Xm)return be;Xm=1;var a=Symbol.for("react.transitional.element"),i=Symbol.for("react.portal"),c=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),d=Symbol.for("react.profiler"),f=Symbol.for("react.consumer"),h=Symbol.for("react.context"),g=Symbol.for("react.forward_ref"),m=Symbol.for("react.suspense"),p=Symbol.for("react.memo"),v=Symbol.for("react.lazy"),y=Symbol.for("react.activity"),b=Symbol.iterator;function N(R){return R===null||typeof R!="object"?null:(R=b&&R[b]||R["@@iterator"],typeof R=="function"?R:null)}var S={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},w=Object.assign,C={};function A(R,G,Z){this.props=R,this.context=G,this.refs=C,this.updater=Z||S}A.prototype.isReactComponent={},A.prototype.setState=function(R,G){if(typeof R!="object"&&typeof R!="function"&&R!=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,R,G,"setState")},A.prototype.forceUpdate=function(R){this.updater.enqueueForceUpdate(this,R,"forceUpdate")};function z(){}z.prototype=A.prototype;function M(R,G,Z){this.props=R,this.context=G,this.refs=C,this.updater=Z||S}var U=M.prototype=new z;U.constructor=M,w(U,A.prototype),U.isPureReactComponent=!0;var I=Array.isArray;function K(){}var B={H:null,A:null,T:null,S:null},P=Object.prototype.hasOwnProperty;function ne(R,G,Z){var te=Z.ref;return{$$typeof:a,type:R,key:G,ref:te!==void 0?te:null,props:Z}}function ce(R,G){return ne(R.type,G,R.props)}function ue(R){return typeof R=="object"&&R!==null&&R.$$typeof===a}function he(R){var G={"=":"=0",":":"=2"};return"$"+R.replace(/[=:]/g,function(Z){return G[Z]})}var ae=/\/+/g;function pe(R,G){return typeof R=="object"&&R!==null&&R.key!=null?he(""+R.key):G.toString(36)}function re(R){switch(R.status){case"fulfilled":return R.value;case"rejected":throw R.reason;default:switch(typeof R.status=="string"?R.then(K,K):(R.status="pending",R.then(function(G){R.status==="pending"&&(R.status="fulfilled",R.value=G)},function(G){R.status==="pending"&&(R.status="rejected",R.reason=G)})),R.status){case"fulfilled":return R.value;case"rejected":throw R.reason}}throw R}function q(R,G,Z,te,ye){var Se=typeof R;(Se==="undefined"||Se==="boolean")&&(R=null);var Be=!1;if(R===null)Be=!0;else switch(Se){case"bigint":case"string":case"number":Be=!0;break;case"object":switch(R.$$typeof){case a:case i:Be=!0;break;case v:return Be=R._init,q(Be(R._payload),G,Z,te,ye)}}if(Be)return ye=ye(R),Be=te===""?"."+pe(R,0):te,I(ye)?(Z="",Be!=null&&(Z=Be.replace(ae,"$&/")+"/"),q(ye,G,Z,"",function(us){return us})):ye!=null&&(ue(ye)&&(ye=ce(ye,Z+(ye.key==null||R&&R.key===ye.key?"":(""+ye.key).replace(ae,"$&/")+"/")+Be)),G.push(ye)),1;Be=0;var At=te===""?".":te+":";if(I(R))for(var st=0;st>>1,_e=q[Te];if(0>>1;Ted(Z,ie))te<_e&&0>d(ye,Z)?(q[Te]=ye,q[te]=ie,Te=te):(q[Te]=Z,q[G]=ie,Te=G);else if(te<_e&&0>d(ye,ie))q[Te]=ye,q[te]=ie,Te=te;else break e}}return Y}function d(q,Y){var ie=q.sortIndex-Y.sortIndex;return ie!==0?ie:q.id-Y.id}if(a.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var f=performance;a.unstable_now=function(){return f.now()}}else{var h=Date,g=h.now();a.unstable_now=function(){return h.now()-g}}var m=[],p=[],v=1,y=null,b=3,N=!1,S=!1,w=!1,C=!1,A=typeof setTimeout=="function"?setTimeout:null,z=typeof clearTimeout=="function"?clearTimeout:null,M=typeof setImmediate<"u"?setImmediate:null;function U(q){for(var Y=c(p);Y!==null;){if(Y.callback===null)r(p);else if(Y.startTime<=q)r(p),Y.sortIndex=Y.expirationTime,i(m,Y);else break;Y=c(p)}}function I(q){if(w=!1,U(q),!S)if(c(m)!==null)S=!0,K||(K=!0,he());else{var Y=c(p);Y!==null&&re(I,Y.startTime-q)}}var K=!1,B=-1,P=5,ne=-1;function ce(){return C?!0:!(a.unstable_now()-neq&&ce());){var Te=y.callback;if(typeof Te=="function"){y.callback=null,b=y.priorityLevel;var _e=Te(y.expirationTime<=q);if(q=a.unstable_now(),typeof _e=="function"){y.callback=_e,U(q),Y=!0;break t}y===c(m)&&r(m),U(q)}else r(m);y=c(m)}if(y!==null)Y=!0;else{var R=c(p);R!==null&&re(I,R.startTime-q),Y=!1}}break e}finally{y=null,b=ie,N=!1}Y=void 0}}finally{Y?he():K=!1}}}var he;if(typeof M=="function")he=function(){M(ue)};else if(typeof MessageChannel<"u"){var ae=new MessageChannel,pe=ae.port2;ae.port1.onmessage=ue,he=function(){pe.postMessage(null)}}else he=function(){A(ue,0)};function re(q,Y){B=A(function(){q(a.unstable_now())},Y)}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(q){q.callback=null},a.unstable_forceFrameRate=function(q){0>q||125Te?(q.sortIndex=ie,i(p,q),c(m)===null&&q===c(p)&&(w?(z(B),B=-1):w=!0,re(I,ie-Te))):(q.sortIndex=_e,i(m,q),S||N||(S=!0,K||(K=!0,he()))),q},a.unstable_shouldYield=ce,a.unstable_wrapCallback=function(q){var Y=b;return function(){var ie=b;b=Y;try{return q.apply(this,arguments)}finally{b=ie}}}})(Ad)),Ad}var Wm;function Ty(){return Wm||(Wm=1,Rd.exports=Cy()),Rd.exports}var Ld={exports:{}},Yt={};/** + * @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 Jm;function Ey(){if(Jm)return Yt;Jm=1;var a=N2();function i(m){var p="https://react.dev/errors/"+m;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(a)}catch(i){console.error(i)}}return a(),Ld.exports=Ey(),Ld.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 tp;function Ay(){if(tp)return $c;tp=1;var a=Ty(),i=N2(),c=Ry();function r(e){var t="https://react.dev/errors/"+e;if(1_e||(e.current=Te[_e],Te[_e]=null,_e--)}function Z(e,t){_e++,Te[_e]=e.current,e.current=t}var te=R(null),ye=R(null),Se=R(null),Be=R(null);function At(e,t){switch(Z(Se,t),Z(ye,e),Z(te,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?pm(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=pm(t),e=_m(t,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}G(te),Z(te,e)}function st(){G(te),G(ye),G(Se)}function us(e){e.memoizedState!==null&&Z(Be,e);var t=te.current,n=_m(t,e.type);t!==n&&(Z(ye,e),Z(te,n))}function ws(e){ye.current===e&&(G(te),G(ye)),Be.current===e&&(G(Be),Mc._currentValue=ie)}var ta,na;function Ae(e){if(ta===void 0)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);ta=t&&t[1]||"",na=-1)":-1o||T[l]!==k[o]){var F=` +`+T[l].replace(" at new "," at ");return e.displayName&&F.includes("")&&(F=F.replace("",e.displayName)),F}while(1<=l&&0<=o);break}}}finally{Jt=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:"")?Ae(n):""}function et(e,t){switch(e.tag){case 26:case 27:case 5:return Ae(e.type);case 16:return Ae("Lazy");case 13:return e.child!==t&&t!==null?Ae("Suspense Fallback"):Ae("Suspense");case 19:return Ae("SuspenseList");case 0:case 15:return Cs(e.type,!1);case 11:return Cs(e.type.render,!1);case 1:return Cs(e.type,!0);case 31:return Ae("Activity");default:return""}}function on(e){try{var t="",n=null;do t+=et(e,n),n=e,e=e.return;while(e);return t}catch(l){return` +Error generating stack: `+l.message+` +`+l.stack}}var Ll=Object.prototype.hasOwnProperty,Ol=a.unstable_scheduleCallback,fu=a.unstable_cancelCallback,tg=a.unstable_shouldYield,ng=a.unstable_requestPaint,jn=a.unstable_now,sg=a.unstable_getCurrentPriorityLevel,P2=a.unstable_ImmediatePriority,I2=a.unstable_UserBlockingPriority,dr=a.unstable_NormalPriority,ag=a.unstable_LowPriority,Y2=a.unstable_IdlePriority,lg=a.log,ig=a.unstable_setDisableYieldValue,Qi=null,Sn=null;function sa(e){if(typeof lg=="function"&&ig(e),Sn&&typeof Sn.setStrictMode=="function")try{Sn.setStrictMode(Qi,e)}catch{}}var Nn=Math.clz32?Math.clz32:og,cg=Math.log,rg=Math.LN2;function og(e){return e>>>=0,e===0?32:31-(cg(e)/rg|0)|0}var fr=256,hr=262144,mr=4194304;function Ga(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64: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 e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function pr(e,t,n){var l=e.pendingLanes;if(l===0)return 0;var o=0,u=e.suspendedLanes,_=e.pingedLanes;e=e.warmLanes;var x=l&134217727;return x!==0?(l=x&~u,l!==0?o=Ga(l):(_&=x,_!==0?o=Ga(_):n||(n=x&~e,n!==0&&(o=Ga(n))))):(x=l&~u,x!==0?o=Ga(x):_!==0?o=Ga(_):n||(n=l&~e,n!==0&&(o=Ga(n)))),o===0?0:t!==0&&t!==o&&(t&u)===0&&(u=o&-o,n=t&-t,u>=n||u===32&&(n&4194048)!==0)?t:o}function Pi(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function ug(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+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 t+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 X2(){var e=mr;return mr<<=1,(mr&62914560)===0&&(mr=4194304),e}function hu(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Ii(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function dg(e,t,n,l,o,u){var _=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var x=e.entanglements,T=e.expirationTimes,k=e.hiddenUpdates;for(n=_&~n;0"u")return null;try{return e.activeElement||e.body}catch{return e.body}}var gg=/[\n"\\]/g;function Hn(e){return e.replace(gg,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function yu(e,t,n,l,o,u,_,x){e.name="",_!=null&&typeof _!="function"&&typeof _!="symbol"&&typeof _!="boolean"?e.type=_:e.removeAttribute("type"),t!=null?_==="number"?(t===0&&e.value===""||e.value!=t)&&(e.value=""+Un(t)):e.value!==""+Un(t)&&(e.value=""+Un(t)):_!=="submit"&&_!=="reset"||e.removeAttribute("value"),t!=null?xu(e,_,Un(t)):n!=null?xu(e,_,Un(n)):l!=null&&e.removeAttribute("value"),o==null&&u!=null&&(e.defaultChecked=!!u),o!=null&&(e.checked=o&&typeof o!="function"&&typeof o!="symbol"),x!=null&&typeof x!="function"&&typeof x!="symbol"&&typeof x!="boolean"?e.name=""+Un(x):e.removeAttribute("name")}function of(e,t,n,l,o,u,_,x){if(u!=null&&typeof u!="function"&&typeof u!="symbol"&&typeof u!="boolean"&&(e.type=u),t!=null||n!=null){if(!(u!=="submit"&&u!=="reset"||t!=null)){vu(e);return}n=n!=null?""+Un(n):"",t=t!=null?""+Un(t):n,x||t===e.value||(e.value=t),e.defaultValue=t}l=l??o,l=typeof l!="function"&&typeof l!="symbol"&&!!l,e.checked=x?e.checked:!!l,e.defaultChecked=!!l,_!=null&&typeof _!="function"&&typeof _!="symbol"&&typeof _!="boolean"&&(e.name=_),vu(e)}function xu(e,t,n){t==="number"&&vr(e.ownerDocument)===e||e.defaultValue===""+n||(e.defaultValue=""+n)}function $l(e,t,n,l){if(e=e.options,t){t={};for(var o=0;o"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),wu=!1;if(Rs)try{var Zi={};Object.defineProperty(Zi,"passive",{get:function(){wu=!0}}),window.addEventListener("test",Zi,Zi),window.removeEventListener("test",Zi,Zi)}catch{wu=!1}var la=null,Cu=null,xr=null;function _f(){if(xr)return xr;var e,t=Cu,n=t.length,l,o="value"in la?la.value:la.textContent,u=o.length;for(e=0;e=ec),jf=" ",Sf=!1;function Nf(e,t){switch(e){case"keyup":return Qg.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function wf(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Fl=!1;function Ig(e,t){switch(e){case"compositionend":return wf(t);case"keypress":return t.which!==32?null:(Sf=!0,jf);case"textInput":return e=t.data,e===jf&&Sf?null:e;default:return null}}function Yg(e,t){if(Fl)return e==="compositionend"||!Lu&&Nf(e,t)?(e=_f(),xr=Cu=la=null,Fl=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=l}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=Mf(n)}}function Df(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Df(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function kf(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=vr(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=vr(e.document)}return t}function zu(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}var nv=Rs&&"documentMode"in document&&11>=document.documentMode,Gl=null,Du=null,ac=null,ku=!1;function Bf(e,t,n){var l=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;ku||Gl==null||Gl!==vr(l)||(l=Gl,"selectionStart"in l&&zu(l)?l={start:l.selectionStart,end:l.selectionEnd}:(l=(l.ownerDocument&&l.ownerDocument.defaultView||window).getSelection(),l={anchorNode:l.anchorNode,anchorOffset:l.anchorOffset,focusNode:l.focusNode,focusOffset:l.focusOffset}),ac&&sc(ac,l)||(ac=l,l=mo(Du,"onSelect"),0>=_,o-=_,ds=1<<32-Nn(t)+o|n<Ne?(De=le,le=null):De=le.sibling;var Fe=$(O,le,D[Ne],V);if(Fe===null){le===null&&(le=De);break}e&&le&&Fe.alternate===null&&t(O,le),L=u(Fe,L,Ne),qe===null?fe=Fe:qe.sibling=Fe,qe=Fe,le=De}if(Ne===D.length)return n(O,le),$e&&Ls(O,Ne),fe;if(le===null){for(;NeNe?(De=le,le=null):De=le.sibling;var Ta=$(O,le,Fe.value,V);if(Ta===null){le===null&&(le=De);break}e&&le&&Ta.alternate===null&&t(O,le),L=u(Ta,L,Ne),qe===null?fe=Ta:qe.sibling=Ta,qe=Ta,le=De}if(Fe.done)return n(O,le),$e&&Ls(O,Ne),fe;if(le===null){for(;!Fe.done;Ne++,Fe=D.next())Fe=Q(O,Fe.value,V),Fe!==null&&(L=u(Fe,L,Ne),qe===null?fe=Fe:qe.sibling=Fe,qe=Fe);return $e&&Ls(O,Ne),fe}for(le=l(le);!Fe.done;Ne++,Fe=D.next())Fe=H(le,O,Ne,Fe.value,V),Fe!==null&&(e&&Fe.alternate!==null&&le.delete(Fe.key===null?Ne:Fe.key),L=u(Fe,L,Ne),qe===null?fe=Fe:qe.sibling=Fe,qe=Fe);return e&&le.forEach(function(jy){return t(O,jy)}),$e&&Ls(O,Ne),fe}function Ke(O,L,D,V){if(typeof D=="object"&&D!==null&&D.type===w&&D.key===null&&(D=D.props.children),typeof D=="object"&&D!==null){switch(D.$$typeof){case N:e:{for(var fe=D.key;L!==null;){if(L.key===fe){if(fe=D.type,fe===w){if(L.tag===7){n(O,L.sibling),V=o(L,D.props.children),V.return=O,O=V;break e}}else if(L.elementType===fe||typeof fe=="object"&&fe!==null&&fe.$$typeof===P&&el(fe)===L.type){n(O,L.sibling),V=o(L,D.props),uc(V,D),V.return=O,O=V;break e}n(O,L);break}else t(O,L);L=L.sibling}D.type===w?(V=Xa(D.props.children,O.mode,V,D.key),V.return=O,O=V):(V=Ar(D.type,D.key,D.props,null,O.mode,V),uc(V,D),V.return=O,O=V)}return _(O);case S:e:{for(fe=D.key;L!==null;){if(L.key===fe)if(L.tag===4&&L.stateNode.containerInfo===D.containerInfo&&L.stateNode.implementation===D.implementation){n(O,L.sibling),V=o(L,D.children||[]),V.return=O,O=V;break e}else{n(O,L);break}else t(O,L);L=L.sibling}V=Gu(D,O.mode,V),V.return=O,O=V}return _(O);case P:return D=el(D),Ke(O,L,D,V)}if(re(D))return se(O,L,D,V);if(he(D)){if(fe=he(D),typeof fe!="function")throw Error(r(150));return D=fe.call(D),ge(O,L,D,V)}if(typeof D.then=="function")return Ke(O,L,Br(D),V);if(D.$$typeof===M)return Ke(O,L,Mr(O,D),V);$r(O,D)}return typeof D=="string"&&D!==""||typeof D=="number"||typeof D=="bigint"?(D=""+D,L!==null&&L.tag===6?(n(O,L.sibling),V=o(L,D),V.return=O,O=V):(n(O,L),V=Fu(D,O.mode,V),V.return=O,O=V),_(O)):n(O,L)}return function(O,L,D,V){try{oc=0;var fe=Ke(O,L,D,V);return ei=null,fe}catch(le){if(le===Jl||le===Dr)throw le;var qe=Cn(29,le,null,O.mode);return qe.lanes=V,qe.return=O,qe}finally{}}}var nl=ih(!0),ch=ih(!1),ua=!1;function t0(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function n0(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function da(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function fa(e,t,n){var l=e.updateQueue;if(l===null)return null;if(l=l.shared,(Ge&2)!==0){var o=l.pending;return o===null?t.next=t:(t.next=o.next,o.next=t),l.pending=t,t=Rr(e),Vf(e,null,n),t}return Er(e,l,t,n),Rr(e)}function dc(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194048)!==0)){var l=t.lanes;l&=e.pendingLanes,n|=l,t.lanes=n,Z2(e,n)}}function s0(e,t){var n=e.updateQueue,l=e.alternate;if(l!==null&&(l=l.updateQueue,n===l)){var o=null,u=null;if(n=n.firstBaseUpdate,n!==null){do{var _={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};u===null?o=u=_:u=u.next=_,n=n.next}while(n!==null);u===null?o=u=t:u=u.next=t}else o=u=t;n={baseState:l.baseState,firstBaseUpdate:o,lastBaseUpdate:u,shared:l.shared,callbacks:l.callbacks},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var a0=!1;function fc(){if(a0){var e=Wl;if(e!==null)throw e}}function hc(e,t,n,l){a0=!1;var o=e.updateQueue;ua=!1;var u=o.firstBaseUpdate,_=o.lastBaseUpdate,x=o.shared.pending;if(x!==null){o.shared.pending=null;var T=x,k=T.next;T.next=null,_===null?u=k:_.next=k,_=T;var F=e.alternate;F!==null&&(F=F.updateQueue,x=F.lastBaseUpdate,x!==_&&(x===null?F.firstBaseUpdate=k:x.next=k,F.lastBaseUpdate=T))}if(u!==null){var Q=o.baseState;_=0,F=k=T=null,x=u;do{var $=x.lane&-536870913,H=$!==x.lane;if(H?(ze&$)===$:(l&$)===$){$!==0&&$===Zl&&(a0=!0),F!==null&&(F=F.next={lane:0,tag:x.tag,payload:x.payload,callback:null,next:null});e:{var se=e,ge=x;$=t;var Ke=n;switch(ge.tag){case 1:if(se=ge.payload,typeof se=="function"){Q=se.call(Ke,Q,$);break e}Q=se;break e;case 3:se.flags=se.flags&-65537|128;case 0:if(se=ge.payload,$=typeof se=="function"?se.call(Ke,Q,$):se,$==null)break e;Q=y({},Q,$);break e;case 2:ua=!0}}$=x.callback,$!==null&&(e.flags|=64,H&&(e.flags|=8192),H=o.callbacks,H===null?o.callbacks=[$]:H.push($))}else H={lane:$,tag:x.tag,payload:x.payload,callback:x.callback,next:null},F===null?(k=F=H,T=Q):F=F.next=H,_|=$;if(x=x.next,x===null){if(x=o.shared.pending,x===null)break;H=x,x=H.next,H.next=null,o.lastBaseUpdate=H,o.shared.pending=null}}while(!0);F===null&&(T=Q),o.baseState=T,o.firstBaseUpdate=k,o.lastBaseUpdate=F,u===null&&(o.shared.lanes=0),ga|=_,e.lanes=_,e.memoizedState=Q}}function rh(e,t){if(typeof e!="function")throw Error(r(191,e));e.call(t)}function oh(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;eu?u:8;var _=q.T,x={};q.T=x,S0(e,!1,t,n);try{var T=o(),k=q.S;if(k!==null&&k(x,T),T!==null&&typeof T=="object"&&typeof T.then=="function"){var F=dv(T,l);_c(e,t,F,Ln(e))}else _c(e,t,l,Ln(e))}catch(Q){_c(e,t,{then:function(){},status:"rejected",reason:Q},Ln())}finally{Y.p=u,_!==null&&x.types!==null&&(_.types=x.types),q.T=_}}function gv(){}function b0(e,t,n,l){if(e.tag!==5)throw Error(r(476));var o=qh(e).queue;Hh(e,o,t,ie,n===null?gv:function(){return Fh(e),n(l)})}function qh(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:ie,baseState:ie,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ds,lastRenderedState:ie},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ds,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function Fh(e){var t=qh(e);t.next===null&&(t=e.alternate.memoizedState),_c(e,t.next.queue,{},Ln())}function j0(){return Vt(Mc)}function Gh(){return xt().memoizedState}function Vh(){return xt().memoizedState}function vv(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=Ln();e=da(n);var l=fa(t,e,n);l!==null&&(_n(l,t,n),dc(l,t,n)),t={cache:Zu()},e.payload=t;return}t=t.return}}function yv(e,t,n){var l=Ln();n={lane:l,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},Yr(e)?Ph(t,n):(n=Hu(e,t,n,l),n!==null&&(_n(n,e,l),Ih(n,t,l)))}function Qh(e,t,n){var l=Ln();_c(e,t,n,l)}function _c(e,t,n,l){var o={lane:l,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(Yr(e))Ph(t,o);else{var u=e.alternate;if(e.lanes===0&&(u===null||u.lanes===0)&&(u=t.lastRenderedReducer,u!==null))try{var _=t.lastRenderedState,x=u(_,n);if(o.hasEagerState=!0,o.eagerState=x,wn(x,_))return Er(e,t,o,0),We===null&&Tr(),!1}catch{}finally{}if(n=Hu(e,t,o,l),n!==null)return _n(n,e,l),Ih(n,t,l),!0}return!1}function S0(e,t,n,l){if(l={lane:2,revertLane:td(),gesture:null,action:l,hasEagerState:!1,eagerState:null,next:null},Yr(e)){if(t)throw Error(r(479))}else t=Hu(e,n,l,2),t!==null&&_n(t,e,2)}function Yr(e){var t=e.alternate;return e===je||t!==null&&t===je}function Ph(e,t){ni=qr=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Ih(e,t,n){if((n&4194048)!==0){var l=t.lanes;l&=e.pendingLanes,n|=l,t.lanes=n,Z2(e,n)}}var gc={readContext:Vt,use:Vr,useCallback:pt,useContext:pt,useEffect:pt,useImperativeHandle:pt,useLayoutEffect:pt,useInsertionEffect:pt,useMemo:pt,useReducer:pt,useRef:pt,useState:pt,useDebugValue:pt,useDeferredValue:pt,useTransition:pt,useSyncExternalStore:pt,useId:pt,useHostTransitionStatus:pt,useFormState:pt,useActionState:pt,useOptimistic:pt,useMemoCache:pt,useCacheRefresh:pt};gc.useEffectEvent=pt;var Yh={readContext:Vt,use:Vr,useCallback:function(e,t){return en().memoizedState=[e,t===void 0?null:t],e},useContext:Vt,useEffect:Lh,useImperativeHandle:function(e,t,n){n=n!=null?n.concat([e]):null,Pr(4194308,4,Dh.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Pr(4194308,4,e,t)},useInsertionEffect:function(e,t){Pr(4,2,e,t)},useMemo:function(e,t){var n=en();t=t===void 0?null:t;var l=e();if(sl){sa(!0);try{e()}finally{sa(!1)}}return n.memoizedState=[l,t],l},useReducer:function(e,t,n){var l=en();if(n!==void 0){var o=n(t);if(sl){sa(!0);try{n(t)}finally{sa(!1)}}}else o=t;return l.memoizedState=l.baseState=o,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:o},l.queue=e,e=e.dispatch=yv.bind(null,je,e),[l.memoizedState,e]},useRef:function(e){var t=en();return e={current:e},t.memoizedState=e},useState:function(e){e=_0(e);var t=e.queue,n=Qh.bind(null,je,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:y0,useDeferredValue:function(e,t){var n=en();return x0(n,e,t)},useTransition:function(){var e=_0(!1);return e=Hh.bind(null,je,e.queue,!0,!1),en().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var l=je,o=en();if($e){if(n===void 0)throw Error(r(407));n=n()}else{if(n=t(),We===null)throw Error(r(349));(ze&127)!==0||ph(l,t,n)}o.memoizedState=n;var u={value:n,getSnapshot:t};return o.queue=u,Lh(gh.bind(null,l,u,e),[e]),l.flags|=2048,ai(9,{destroy:void 0},_h.bind(null,l,u,n,t),null),n},useId:function(){var e=en(),t=We.identifierPrefix;if($e){var n=fs,l=ds;n=(l&~(1<<32-Nn(l)-1)).toString(32)+n,t="_"+t+"R_"+n,n=Fr++,0<\/script>",u=u.removeChild(u.firstChild);break;case"select":u=typeof l.is=="string"?_.createElement("select",{is:l.is}):_.createElement("select"),l.multiple?u.multiple=!0:l.size&&(u.size=l.size);break;default:u=typeof l.is=="string"?_.createElement(o,{is:l.is}):_.createElement(o)}}u[Ft]=t,u[un]=l;e:for(_=t.child;_!==null;){if(_.tag===5||_.tag===6)u.appendChild(_.stateNode);else if(_.tag!==4&&_.tag!==27&&_.child!==null){_.child.return=_,_=_.child;continue}if(_===t)break e;for(;_.sibling===null;){if(_.return===null||_.return===t)break e;_=_.return}_.sibling.return=_.return,_=_.sibling}t.stateNode=u;e:switch(Pt(u,o,l),o){case"button":case"input":case"select":case"textarea":l=!!l.autoFocus;break e;case"img":l=!0;break e;default:l=!1}l&&Bs(t)}}return lt(t),B0(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==l&&Bs(t);else{if(typeof l!="string"&&t.stateNode===null)throw Error(r(166));if(e=Se.current,Xl(t)){if(e=t.stateNode,n=t.memoizedProps,l=null,o=Gt,o!==null)switch(o.tag){case 27:case 5:l=o.memoizedProps}e[Ft]=t,e=!!(e.nodeValue===n||l!==null&&l.suppressHydrationWarning===!0||hm(e.nodeValue,n)),e||ra(t,!0)}else e=po(e).createTextNode(l),e[Ft]=t,t.stateNode=e}return lt(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(l=Xl(t),n!==null){if(e===null){if(!l)throw Error(r(318));if(e=t.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(r(557));e[Ft]=t}else Ka(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;lt(t),e=!1}else n=Iu(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(En(t),t):(En(t),null);if((t.flags&128)!==0)throw Error(r(558))}return lt(t),null;case 13:if(l=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(o=Xl(t),l!==null&&l.dehydrated!==null){if(e===null){if(!o)throw Error(r(318));if(o=t.memoizedState,o=o!==null?o.dehydrated:null,!o)throw Error(r(317));o[Ft]=t}else Ka(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;lt(t),o=!1}else o=Iu(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=o),o=!0;if(!o)return t.flags&256?(En(t),t):(En(t),null)}return En(t),(t.flags&128)!==0?(t.lanes=n,t):(n=l!==null,e=e!==null&&e.memoizedState!==null,n&&(l=t.child,o=null,l.alternate!==null&&l.alternate.memoizedState!==null&&l.alternate.memoizedState.cachePool!==null&&(o=l.alternate.memoizedState.cachePool.pool),u=null,l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(u=l.memoizedState.cachePool.pool),u!==o&&(l.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),Jr(t,t.updateQueue),lt(t),null);case 4:return st(),e===null&&ld(t.stateNode.containerInfo),lt(t),null;case 10:return Ms(t.type),lt(t),null;case 19:if(G(yt),l=t.memoizedState,l===null)return lt(t),null;if(o=(t.flags&128)!==0,u=l.rendering,u===null)if(o)yc(l,!1);else{if(_t!==0||e!==null&&(e.flags&128)!==0)for(e=t.child;e!==null;){if(u=Hr(e),u!==null){for(t.flags|=128,yc(l,!1),e=u.updateQueue,t.updateQueue=e,Jr(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)Qf(n,e),n=n.sibling;return Z(yt,yt.current&1|2),$e&&Ls(t,l.treeForkCount),t.child}e=e.sibling}l.tail!==null&&jn()>ao&&(t.flags|=128,o=!0,yc(l,!1),t.lanes=4194304)}else{if(!o)if(e=Hr(u),e!==null){if(t.flags|=128,o=!0,e=e.updateQueue,t.updateQueue=e,Jr(t,e),yc(l,!0),l.tail===null&&l.tailMode==="hidden"&&!u.alternate&&!$e)return lt(t),null}else 2*jn()-l.renderingStartTime>ao&&n!==536870912&&(t.flags|=128,o=!0,yc(l,!1),t.lanes=4194304);l.isBackwards?(u.sibling=t.child,t.child=u):(e=l.last,e!==null?e.sibling=u:t.child=u,l.last=u)}return l.tail!==null?(e=l.tail,l.rendering=e,l.tail=e.sibling,l.renderingStartTime=jn(),e.sibling=null,n=yt.current,Z(yt,o?n&1|2:n&1),$e&&Ls(t,l.treeForkCount),e):(lt(t),null);case 22:case 23:return En(t),i0(),l=t.memoizedState!==null,e!==null?e.memoizedState!==null!==l&&(t.flags|=8192):l&&(t.flags|=8192),l?(n&536870912)!==0&&(t.flags&128)===0&&(lt(t),t.subtreeFlags&6&&(t.flags|=8192)):lt(t),n=t.updateQueue,n!==null&&Jr(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),l=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(l=t.memoizedState.cachePool.pool),l!==n&&(t.flags|=2048),e!==null&&G(Ja),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),Ms(Nt),lt(t),null;case 25:return null;case 30:return null}throw Error(r(156,t.tag))}function Nv(e,t){switch(Qu(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Ms(Nt),st(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return ws(t),null;case 31:if(t.memoizedState!==null){if(En(t),t.alternate===null)throw Error(r(340));Ka()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(En(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(r(340));Ka()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return G(yt),null;case 4:return st(),null;case 10:return Ms(t.type),null;case 22:case 23:return En(t),i0(),e!==null&&G(Ja),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return Ms(Nt),null;case 25:return null;default:return null}}function v1(e,t){switch(Qu(t),t.tag){case 3:Ms(Nt),st();break;case 26:case 27:case 5:ws(t);break;case 4:st();break;case 31:t.memoizedState!==null&&En(t);break;case 13:En(t);break;case 19:G(yt);break;case 10:Ms(t.type);break;case 22:case 23:En(t),i0(),e!==null&&G(Ja);break;case 24:Ms(Nt)}}function xc(e,t){try{var n=t.updateQueue,l=n!==null?n.lastEffect:null;if(l!==null){var o=l.next;n=o;do{if((n.tag&e)===e){l=void 0;var u=n.create,_=n.inst;l=u(),_.destroy=l}n=n.next}while(n!==o)}}catch(x){Pe(t,t.return,x)}}function pa(e,t,n){try{var l=t.updateQueue,o=l!==null?l.lastEffect:null;if(o!==null){var u=o.next;l=u;do{if((l.tag&e)===e){var _=l.inst,x=_.destroy;if(x!==void 0){_.destroy=void 0,o=t;var T=n,k=x;try{k()}catch(F){Pe(o,T,F)}}}l=l.next}while(l!==u)}}catch(F){Pe(t,t.return,F)}}function y1(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{oh(t,n)}catch(l){Pe(e,e.return,l)}}}function x1(e,t,n){n.props=al(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(l){Pe(e,t,l)}}function bc(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var l=e.stateNode;break;case 30:l=e.stateNode;break;default:l=e.stateNode}typeof n=="function"?e.refCleanup=n(l):n.current=l}}catch(o){Pe(e,t,o)}}function hs(e,t){var n=e.ref,l=e.refCleanup;if(n!==null)if(typeof l=="function")try{l()}catch(o){Pe(e,t,o)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n=="function")try{n(null)}catch(o){Pe(e,t,o)}else n.current=null}function b1(e){var t=e.type,n=e.memoizedProps,l=e.stateNode;try{e:switch(t){case"button":case"input":case"select":case"textarea":n.autoFocus&&l.focus();break e;case"img":n.src?l.src=n.src:n.srcSet&&(l.srcset=n.srcSet)}}catch(o){Pe(e,e.return,o)}}function $0(e,t,n){try{var l=e.stateNode;Pv(l,e.type,n,t),l[un]=t}catch(o){Pe(e,e.return,o)}}function j1(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&ja(e.type)||e.tag===4}function U0(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||j1(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&ja(e.type)||e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function H0(e,t,n){var l=e.tag;if(l===5||l===6)e=e.stateNode,t?(n.nodeType===9?n.body:n.nodeName==="HTML"?n.ownerDocument.body:n).insertBefore(e,t):(t=n.nodeType===9?n.body:n.nodeName==="HTML"?n.ownerDocument.body:n,t.appendChild(e),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Es));else if(l!==4&&(l===27&&ja(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(H0(e,t,n),e=e.sibling;e!==null;)H0(e,t,n),e=e.sibling}function eo(e,t,n){var l=e.tag;if(l===5||l===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(l!==4&&(l===27&&ja(e.type)&&(n=e.stateNode),e=e.child,e!==null))for(eo(e,t,n),e=e.sibling;e!==null;)eo(e,t,n),e=e.sibling}function S1(e){var t=e.stateNode,n=e.memoizedProps;try{for(var l=e.type,o=t.attributes;o.length;)t.removeAttributeNode(o[0]);Pt(t,l,n),t[Ft]=e,t[un]=n}catch(u){Pe(e,e.return,u)}}var $s=!1,Tt=!1,q0=!1,N1=typeof WeakSet=="function"?WeakSet:Set,kt=null;function wv(e,t){if(e=e.containerInfo,rd=jo,e=kf(e),zu(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var l=n.getSelection&&n.getSelection();if(l&&l.rangeCount!==0){n=l.anchorNode;var o=l.anchorOffset,u=l.focusNode;l=l.focusOffset;try{n.nodeType,u.nodeType}catch{n=null;break e}var _=0,x=-1,T=-1,k=0,F=0,Q=e,$=null;t:for(;;){for(var H;Q!==n||o!==0&&Q.nodeType!==3||(x=_+o),Q!==u||l!==0&&Q.nodeType!==3||(T=_+l),Q.nodeType===3&&(_+=Q.nodeValue.length),(H=Q.firstChild)!==null;)$=Q,Q=H;for(;;){if(Q===e)break t;if($===n&&++k===o&&(x=_),$===u&&++F===l&&(T=_),(H=Q.nextSibling)!==null)break;Q=$,$=Q.parentNode}Q=H}n=x===-1||T===-1?null:{start:x,end:T}}else n=null}n=n||{start:0,end:0}}else n=null;for(od={focusedElem:e,selectionRange:n},jo=!1,kt=t;kt!==null;)if(t=kt,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,kt=e;else for(;kt!==null;){switch(t=kt,u=t.alternate,e=t.flags,t.tag){case 0:if((e&4)!==0&&(e=t.updateQueue,e=e!==null?e.events:null,e!==null))for(n=0;n title"))),Pt(u,l,n),u[Ft]=e,Dt(u),l=u;break e;case"link":var _=Am("link","href",o).get(l+(n.href||""));if(_){for(var x=0;x<_.length;x++)if(u=_[x],u.getAttribute("href")===(n.href==null||n.href===""?null:n.href)&&u.getAttribute("rel")===(n.rel==null?null:n.rel)&&u.getAttribute("title")===(n.title==null?null:n.title)&&u.getAttribute("crossorigin")===(n.crossOrigin==null?null:n.crossOrigin)){_.splice(x,1);break t}}u=o.createElement(l),Pt(u,l,n),o.head.appendChild(u);break;case"meta":if(_=Am("meta","content",o).get(l+(n.content||""))){for(x=0;x<_.length;x++)if(u=_[x],u.getAttribute("content")===(n.content==null?null:""+n.content)&&u.getAttribute("name")===(n.name==null?null:n.name)&&u.getAttribute("property")===(n.property==null?null:n.property)&&u.getAttribute("http-equiv")===(n.httpEquiv==null?null:n.httpEquiv)&&u.getAttribute("charset")===(n.charSet==null?null:n.charSet)){_.splice(x,1);break t}}u=o.createElement(l),Pt(u,l,n),o.head.appendChild(u);break;default:throw Error(r(468,l))}u[Ft]=e,Dt(u),l=u}e.stateNode=l}else Lm(o,e.type,e.stateNode);else e.stateNode=Rm(o,l,e.memoizedProps);else u!==l?(u===null?n.stateNode!==null&&(n=n.stateNode,n.parentNode.removeChild(n)):u.count--,l===null?Lm(o,e.type,e.stateNode):Rm(o,l,e.memoizedProps)):l===null&&e.stateNode!==null&&$0(e,e.memoizedProps,n.memoizedProps)}break;case 27:hn(t,e),mn(e),l&512&&(Tt||n===null||hs(n,n.return)),n!==null&&l&4&&$0(e,e.memoizedProps,n.memoizedProps);break;case 5:if(hn(t,e),mn(e),l&512&&(Tt||n===null||hs(n,n.return)),e.flags&32){o=e.stateNode;try{Ul(o,"")}catch(se){Pe(e,e.return,se)}}l&4&&e.stateNode!=null&&(o=e.memoizedProps,$0(e,o,n!==null?n.memoizedProps:o)),l&1024&&(q0=!0);break;case 6:if(hn(t,e),mn(e),l&4){if(e.stateNode===null)throw Error(r(162));l=e.memoizedProps,n=e.stateNode;try{n.nodeValue=l}catch(se){Pe(e,e.return,se)}}break;case 3:if(vo=null,o=ts,ts=_o(t.containerInfo),hn(t,e),ts=o,mn(e),l&4&&n!==null&&n.memoizedState.isDehydrated)try{_i(t.containerInfo)}catch(se){Pe(e,e.return,se)}q0&&(q0=!1,L1(e));break;case 4:l=ts,ts=_o(e.stateNode.containerInfo),hn(t,e),mn(e),ts=l;break;case 12:hn(t,e),mn(e);break;case 31:hn(t,e),mn(e),l&4&&(l=e.updateQueue,l!==null&&(e.updateQueue=null,to(e,l)));break;case 13:hn(t,e),mn(e),e.child.flags&8192&&e.memoizedState!==null!=(n!==null&&n.memoizedState!==null)&&(so=jn()),l&4&&(l=e.updateQueue,l!==null&&(e.updateQueue=null,to(e,l)));break;case 22:o=e.memoizedState!==null;var T=n!==null&&n.memoizedState!==null,k=$s,F=Tt;if($s=k||o,Tt=F||T,hn(t,e),Tt=F,$s=k,mn(e),l&8192)e:for(t=e.stateNode,t._visibility=o?t._visibility&-2:t._visibility|1,o&&(n===null||T||$s||Tt||ll(e)),n=null,t=e;;){if(t.tag===5||t.tag===26){if(n===null){T=n=t;try{if(u=T.stateNode,o)_=u.style,typeof _.setProperty=="function"?_.setProperty("display","none","important"):_.display="none";else{x=T.stateNode;var Q=T.memoizedProps.style,$=Q!=null&&Q.hasOwnProperty("display")?Q.display:null;x.style.display=$==null||typeof $=="boolean"?"":(""+$).trim()}}catch(se){Pe(T,T.return,se)}}}else if(t.tag===6){if(n===null){T=t;try{T.stateNode.nodeValue=o?"":T.memoizedProps}catch(se){Pe(T,T.return,se)}}}else if(t.tag===18){if(n===null){T=t;try{var H=T.stateNode;o?xm(H,!0):xm(T.stateNode,!1)}catch(se){Pe(T,T.return,se)}}}else if((t.tag!==22&&t.tag!==23||t.memoizedState===null||t===e)&&t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break e;for(;t.sibling===null;){if(t.return===null||t.return===e)break e;n===t&&(n=null),t=t.return}n===t&&(n=null),t.sibling.return=t.return,t=t.sibling}l&4&&(l=e.updateQueue,l!==null&&(n=l.retryQueue,n!==null&&(l.retryQueue=null,to(e,n))));break;case 19:hn(t,e),mn(e),l&4&&(l=e.updateQueue,l!==null&&(e.updateQueue=null,to(e,l)));break;case 30:break;case 21:break;default:hn(t,e),mn(e)}}function mn(e){var t=e.flags;if(t&2){try{for(var n,l=e.return;l!==null;){if(j1(l)){n=l;break}l=l.return}if(n==null)throw Error(r(160));switch(n.tag){case 27:var o=n.stateNode,u=U0(e);eo(e,u,o);break;case 5:var _=n.stateNode;n.flags&32&&(Ul(_,""),n.flags&=-33);var x=U0(e);eo(e,x,_);break;case 3:case 4:var T=n.stateNode.containerInfo,k=U0(e);H0(e,k,T);break;default:throw Error(r(161))}}catch(F){Pe(e,e.return,F)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function L1(e){if(e.subtreeFlags&1024)for(e=e.child;e!==null;){var t=e;L1(t),t.tag===5&&t.flags&1024&&t.stateNode.reset(),e=e.sibling}}function Hs(e,t){if(t.subtreeFlags&8772)for(t=t.child;t!==null;)w1(e,t.alternate,t),t=t.sibling}function ll(e){for(e=e.child;e!==null;){var t=e;switch(t.tag){case 0:case 11:case 14:case 15:pa(4,t,t.return),ll(t);break;case 1:hs(t,t.return);var n=t.stateNode;typeof n.componentWillUnmount=="function"&&x1(t,t.return,n),ll(t);break;case 27:Ac(t.stateNode);case 26:case 5:hs(t,t.return),ll(t);break;case 22:t.memoizedState===null&&ll(t);break;case 30:ll(t);break;default:ll(t)}e=e.sibling}}function qs(e,t,n){for(n=n&&(t.subtreeFlags&8772)!==0,t=t.child;t!==null;){var l=t.alternate,o=e,u=t,_=u.flags;switch(u.tag){case 0:case 11:case 15:qs(o,u,n),xc(4,u);break;case 1:if(qs(o,u,n),l=u,o=l.stateNode,typeof o.componentDidMount=="function")try{o.componentDidMount()}catch(k){Pe(l,l.return,k)}if(l=u,o=l.updateQueue,o!==null){var x=l.stateNode;try{var T=o.shared.hiddenCallbacks;if(T!==null)for(o.shared.hiddenCallbacks=null,o=0;oKe&&(_=Ke,Ke=ge,ge=_);var O=zf(x,ge),L=zf(x,Ke);if(O&&L&&(H.rangeCount!==1||H.anchorNode!==O.node||H.anchorOffset!==O.offset||H.focusNode!==L.node||H.focusOffset!==L.offset)){var D=Q.createRange();D.setStart(O.node,O.offset),H.removeAllRanges(),ge>Ke?(H.addRange(D),H.extend(L.node,L.offset)):(D.setEnd(L.node,L.offset),H.addRange(D))}}}}for(Q=[],H=x;H=H.parentNode;)H.nodeType===1&&Q.push({element:H,left:H.scrollLeft,top:H.scrollTop});for(typeof x.focus=="function"&&x.focus(),x=0;xn?32:n,q.T=null,n=Y0,Y0=null;var u=ya,_=Gs;if(Lt=0,oi=ya=null,Gs=0,(Ge&6)!==0)throw Error(r(331));var x=Ge;if(Ge|=4,D1(u.current),O1(u,u.current,_,n),Ge=x,Tc(0,!1),Sn&&typeof Sn.onPostCommitFiberRoot=="function")try{Sn.onPostCommitFiberRoot(Qi,u)}catch{}return!0}finally{Y.p=o,q.T=l,J1(e,t)}}function tm(e,t,n){t=Fn(n,t),t=T0(e.stateNode,t,2),e=fa(e,t,2),e!==null&&(Ii(e,2),ms(e))}function Pe(e,t,n){if(e.tag===3)tm(e,e,n);else for(;t!==null;){if(t.tag===3){tm(t,e,n);break}else if(t.tag===1){var l=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof l.componentDidCatch=="function"&&(va===null||!va.has(l))){e=Fn(n,e),n=n1(2),l=fa(t,n,2),l!==null&&(s1(n,l,t,e),Ii(l,2),ms(l));break}}t=t.return}}function W0(e,t,n){var l=e.pingCache;if(l===null){l=e.pingCache=new Ev;var o=new Set;l.set(t,o)}else o=l.get(t),o===void 0&&(o=new Set,l.set(t,o));o.has(n)||(V0=!0,o.add(n),e=Mv.bind(null,e,t,n),t.then(e,e))}function Mv(e,t,n){var l=e.pingCache;l!==null&&l.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,We===e&&(ze&n)===n&&(_t===4||_t===3&&(ze&62914560)===ze&&300>jn()-so?(Ge&2)===0&&ui(e,0):Q0|=n,ri===ze&&(ri=0)),ms(e)}function nm(e,t){t===0&&(t=X2()),e=Ya(e,t),e!==null&&(Ii(e,t),ms(e))}function zv(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),nm(e,n)}function Dv(e,t){var n=0;switch(e.tag){case 31:case 13:var l=e.stateNode,o=e.memoizedState;o!==null&&(n=o.retryLane);break;case 19:l=e.stateNode;break;case 22:l=e.stateNode._retryCache;break;default:throw Error(r(314))}l!==null&&l.delete(t),nm(e,n)}function kv(e,t){return Ol(e,t)}var uo=null,fi=null,J0=!1,fo=!1,ed=!1,ba=0;function ms(e){e!==fi&&e.next===null&&(fi===null?uo=fi=e:fi=fi.next=e),fo=!0,J0||(J0=!0,$v())}function Tc(e,t){if(!ed&&fo){ed=!0;do for(var n=!1,l=uo;l!==null;){if(e!==0){var o=l.pendingLanes;if(o===0)var u=0;else{var _=l.suspendedLanes,x=l.pingedLanes;u=(1<<31-Nn(42|e)+1)-1,u&=o&~(_&~x),u=u&201326741?u&201326741|1:u?u|2:0}u!==0&&(n=!0,im(l,u))}else u=ze,u=pr(l,l===We?u:0,l.cancelPendingCommit!==null||l.timeoutHandle!==-1),(u&3)===0||Pi(l,u)||(n=!0,im(l,u));l=l.next}while(n);ed=!1}}function Bv(){sm()}function sm(){fo=J0=!1;var e=0;ba!==0&&Yv()&&(e=ba);for(var t=jn(),n=null,l=uo;l!==null;){var o=l.next,u=am(l,t);u===0?(l.next=null,n===null?uo=o:n.next=o,o===null&&(fi=n)):(n=l,(e!==0||(u&3)!==0)&&(fo=!0)),l=o}Lt!==0&&Lt!==5||Tc(e),ba!==0&&(ba=0)}function am(e,t){for(var n=e.suspendedLanes,l=e.pingedLanes,o=e.expirationTimes,u=e.pendingLanes&-62914561;0x)break;var F=T.transferSize,Q=T.initiatorType;F&&mm(Q)&&(T=T.responseEnd,_+=F*(T"u"?null:document;function Cm(e,t,n){var l=hi;if(l&&typeof t=="string"&&t){var o=Hn(t);o='link[rel="'+e+'"][href="'+o+'"]',typeof n=="string"&&(o+='[crossorigin="'+n+'"]'),wm.has(o)||(wm.add(o),e={rel:e,crossOrigin:n,href:t},l.querySelector(o)===null&&(t=l.createElement("link"),Pt(t,"link",e),Dt(t),l.head.appendChild(t)))}}function sy(e){Vs.D(e),Cm("dns-prefetch",e,null)}function ay(e,t){Vs.C(e,t),Cm("preconnect",e,t)}function ly(e,t,n){Vs.L(e,t,n);var l=hi;if(l&&e&&t){var o='link[rel="preload"][as="'+Hn(t)+'"]';t==="image"&&n&&n.imageSrcSet?(o+='[imagesrcset="'+Hn(n.imageSrcSet)+'"]',typeof n.imageSizes=="string"&&(o+='[imagesizes="'+Hn(n.imageSizes)+'"]')):o+='[href="'+Hn(e)+'"]';var u=o;switch(t){case"style":u=mi(e);break;case"script":u=pi(e)}Yn.has(u)||(e=y({rel:"preload",href:t==="image"&&n&&n.imageSrcSet?void 0:e,as:t},n),Yn.set(u,e),l.querySelector(o)!==null||t==="style"&&l.querySelector(Lc(u))||t==="script"&&l.querySelector(Oc(u))||(t=l.createElement("link"),Pt(t,"link",e),Dt(t),l.head.appendChild(t)))}}function iy(e,t){Vs.m(e,t);var n=hi;if(n&&e){var l=t&&typeof t.as=="string"?t.as:"script",o='link[rel="modulepreload"][as="'+Hn(l)+'"][href="'+Hn(e)+'"]',u=o;switch(l){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":u=pi(e)}if(!Yn.has(u)&&(e=y({rel:"modulepreload",href:e},t),Yn.set(u,e),n.querySelector(o)===null)){switch(l){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(n.querySelector(Oc(u)))return}l=n.createElement("link"),Pt(l,"link",e),Dt(l),n.head.appendChild(l)}}}function cy(e,t,n){Vs.S(e,t,n);var l=hi;if(l&&e){var o=kl(l).hoistableStyles,u=mi(e);t=t||"default";var _=o.get(u);if(!_){var x={loading:0,preload:null};if(_=l.querySelector(Lc(u)))x.loading=5;else{e=y({rel:"stylesheet",href:e,"data-precedence":t},n),(n=Yn.get(u))&&_d(e,n);var T=_=l.createElement("link");Dt(T),Pt(T,"link",e),T._p=new Promise(function(k,F){T.onload=k,T.onerror=F}),T.addEventListener("load",function(){x.loading|=1}),T.addEventListener("error",function(){x.loading|=2}),x.loading|=4,go(_,t,l)}_={type:"stylesheet",instance:_,count:1,state:x},o.set(u,_)}}}function ry(e,t){Vs.X(e,t);var n=hi;if(n&&e){var l=kl(n).hoistableScripts,o=pi(e),u=l.get(o);u||(u=n.querySelector(Oc(o)),u||(e=y({src:e,async:!0},t),(t=Yn.get(o))&&gd(e,t),u=n.createElement("script"),Dt(u),Pt(u,"link",e),n.head.appendChild(u)),u={type:"script",instance:u,count:1,state:null},l.set(o,u))}}function oy(e,t){Vs.M(e,t);var n=hi;if(n&&e){var l=kl(n).hoistableScripts,o=pi(e),u=l.get(o);u||(u=n.querySelector(Oc(o)),u||(e=y({src:e,async:!0,type:"module"},t),(t=Yn.get(o))&&gd(e,t),u=n.createElement("script"),Dt(u),Pt(u,"link",e),n.head.appendChild(u)),u={type:"script",instance:u,count:1,state:null},l.set(o,u))}}function Tm(e,t,n,l){var o=(o=Se.current)?_o(o):null;if(!o)throw Error(r(446));switch(e){case"meta":case"title":return null;case"style":return typeof n.precedence=="string"&&typeof n.href=="string"?(t=mi(n.href),n=kl(o).hoistableStyles,l=n.get(t),l||(l={type:"style",instance:null,count:0,state:null},n.set(t,l)),l):{type:"void",instance:null,count:0,state:null};case"link":if(n.rel==="stylesheet"&&typeof n.href=="string"&&typeof n.precedence=="string"){e=mi(n.href);var u=kl(o).hoistableStyles,_=u.get(e);if(_||(o=o.ownerDocument||o,_={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},u.set(e,_),(u=o.querySelector(Lc(e)))&&!u._p&&(_.instance=u,_.state.loading=5),Yn.has(e)||(n={rel:"preload",as:"style",href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},Yn.set(e,n),u||uy(o,e,n,_.state))),t&&l===null)throw Error(r(528,""));return _}if(t&&l!==null)throw Error(r(529,""));return null;case"script":return t=n.async,n=n.src,typeof n=="string"&&t&&typeof t!="function"&&typeof t!="symbol"?(t=pi(n),n=kl(o).hoistableScripts,l=n.get(t),l||(l={type:"script",instance:null,count:0,state:null},n.set(t,l)),l):{type:"void",instance:null,count:0,state:null};default:throw Error(r(444,e))}}function mi(e){return'href="'+Hn(e)+'"'}function Lc(e){return'link[rel="stylesheet"]['+e+"]"}function Em(e){return y({},e,{"data-precedence":e.precedence,precedence:null})}function uy(e,t,n,l){e.querySelector('link[rel="preload"][as="style"]['+t+"]")?l.loading=1:(t=e.createElement("link"),l.preload=t,t.addEventListener("load",function(){return l.loading|=1}),t.addEventListener("error",function(){return l.loading|=2}),Pt(t,"link",n),Dt(t),e.head.appendChild(t))}function pi(e){return'[src="'+Hn(e)+'"]'}function Oc(e){return"script[async]"+e}function Rm(e,t,n){if(t.count++,t.instance===null)switch(t.type){case"style":var l=e.querySelector('style[data-href~="'+Hn(n.href)+'"]');if(l)return t.instance=l,Dt(l),l;var o=y({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return l=(e.ownerDocument||e).createElement("style"),Dt(l),Pt(l,"style",o),go(l,n.precedence,e),t.instance=l;case"stylesheet":o=mi(n.href);var u=e.querySelector(Lc(o));if(u)return t.state.loading|=4,t.instance=u,Dt(u),u;l=Em(n),(o=Yn.get(o))&&_d(l,o),u=(e.ownerDocument||e).createElement("link"),Dt(u);var _=u;return _._p=new Promise(function(x,T){_.onload=x,_.onerror=T}),Pt(u,"link",l),t.state.loading|=4,go(u,n.precedence,e),t.instance=u;case"script":return u=pi(n.src),(o=e.querySelector(Oc(u)))?(t.instance=o,Dt(o),o):(l=n,(o=Yn.get(u))&&(l=y({},n),gd(l,o)),e=e.ownerDocument||e,o=e.createElement("script"),Dt(o),Pt(o,"link",l),e.head.appendChild(o),t.instance=o);case"void":return null;default:throw Error(r(443,t.type))}else t.type==="stylesheet"&&(t.state.loading&4)===0&&(l=t.instance,t.state.loading|=4,go(l,n.precedence,e));return t.instance}function go(e,t,n){for(var l=n.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),o=l.length?l[l.length-1]:null,u=o,_=0;_ title"):null)}function dy(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case"meta":case"title":return!0;case"style":if(typeof t.precedence!="string"||typeof t.href!="string"||t.href==="")break;return!0;case"link":if(typeof t.rel!="string"||typeof t.href!="string"||t.href===""||t.onLoad||t.onError)break;switch(t.rel){case"stylesheet":return e=t.disabled,typeof t.precedence=="string"&&e==null;default:return!0}case"script":if(t.async&&typeof t.async!="function"&&typeof t.async!="symbol"&&!t.onLoad&&!t.onError&&t.src&&typeof t.src=="string")return!0}return!1}function Om(e){return!(e.type==="stylesheet"&&(e.state.loading&3)===0)}function fy(e,t,n,l){if(n.type==="stylesheet"&&(typeof l.media!="string"||matchMedia(l.media).matches!==!1)&&(n.state.loading&4)===0){if(n.instance===null){var o=mi(l.href),u=t.querySelector(Lc(o));if(u){t=u._p,t!==null&&typeof t=="object"&&typeof t.then=="function"&&(e.count++,e=yo.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=u,Dt(u);return}u=t.ownerDocument||t,l=Em(l),(o=Yn.get(o))&&_d(l,o),u=u.createElement("link"),Dt(u);var _=u;_._p=new Promise(function(x,T){_.onload=x,_.onerror=T}),Pt(u,"link",l),n.instance=u}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&(n.state.loading&3)===0&&(e.count++,n=yo.bind(e),t.addEventListener("load",n),t.addEventListener("error",n))}}var vd=0;function hy(e,t){return e.stylesheets&&e.count===0&&bo(e,e.stylesheets),0vd?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(l),clearTimeout(o)}}:null}function yo(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)bo(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var xo=null;function bo(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,xo=new Map,t.forEach(my,e),xo=null,yo.call(e))}function my(e,t){if(!(t.state.loading&4)){var n=xo.get(e);if(n)var l=n.get(null);else{n=new Map,xo.set(e,n);for(var o=e.querySelectorAll("link[data-precedence],style[data-precedence]"),u=0;u"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(a)}catch(i){console.error(i)}}return a(),Ed.exports=Ay(),Ed.exports}var Oy=Ly();/** + * react-router v7.14.2 + * + * 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 sp="popstate";function ap(a){return typeof a=="object"&&a!=null&&"pathname"in a&&"search"in a&&"hash"in a&&"state"in a&&"key"in a}function My(a={}){function i(r,d){var p;let f=(p=d.state)==null?void 0:p.masked,{pathname:h,search:g,hash:m}=f||r.location;return Wd("",{pathname:h,search:g,hash:m},d.state&&d.state.usr||null,d.state&&d.state.key||"default",f?{pathname:r.location.pathname,search:r.location.search,hash:r.location.hash}:void 0)}function c(r,d){return typeof d=="string"?d:Kc(d)}return Dy(i,c,null,a)}function ut(a,i){if(a===!1||a===null||typeof a>"u")throw new Error(i)}function is(a,i){if(!a){typeof console<"u"&&console.warn(i);try{throw new Error(i)}catch{}}}function zy(){return Math.random().toString(36).substring(2,10)}function lp(a,i){return{usr:a.state,key:a.key,idx:i,masked:a.unstable_mask?{pathname:a.pathname,search:a.search,hash:a.hash}:void 0}}function Wd(a,i,c=null,r,d){return{pathname:typeof a=="string"?a:a.pathname,search:"",hash:"",...typeof i=="string"?Ui(i):i,state:c,key:i&&i.key||r||zy(),unstable_mask:d}}function Kc({pathname:a="/",search:i="",hash:c=""}){return i&&i!=="?"&&(a+=i.charAt(0)==="?"?i:"?"+i),c&&c!=="#"&&(a+=c.charAt(0)==="#"?c:"#"+c),a}function Ui(a){let i={};if(a){let c=a.indexOf("#");c>=0&&(i.hash=a.substring(c),a=a.substring(0,c));let r=a.indexOf("?");r>=0&&(i.search=a.substring(r),a=a.substring(0,r)),a&&(i.pathname=a)}return i}function Dy(a,i,c,r={}){let{window:d=document.defaultView,v5Compat:f=!1}=r,h=d.history,g="POP",m=null,p=v();p==null&&(p=0,h.replaceState({...h.state,idx:p},""));function v(){return(h.state||{idx:null}).idx}function y(){g="POP";let C=v(),A=C==null?null:C-p;p=C,m&&m({action:g,location:w.location,delta:A})}function b(C,A){g="PUSH";let z=ap(C)?C:Wd(w.location,C,A);p=v()+1;let M=lp(z,p),U=w.createHref(z.unstable_mask||z);try{h.pushState(M,"",U)}catch(I){if(I instanceof DOMException&&I.name==="DataCloneError")throw I;d.location.assign(U)}f&&m&&m({action:g,location:w.location,delta:1})}function N(C,A){g="REPLACE";let z=ap(C)?C:Wd(w.location,C,A);p=v();let M=lp(z,p),U=w.createHref(z.unstable_mask||z);h.replaceState(M,"",U),f&&m&&m({action:g,location:w.location,delta:0})}function S(C){return ky(C)}let w={get action(){return g},get location(){return a(d,h)},listen(C){if(m)throw new Error("A history only accepts one active listener");return d.addEventListener(sp,y),m=C,()=>{d.removeEventListener(sp,y),m=null}},createHref(C){return i(d,C)},createURL:S,encodeLocation(C){let A=S(C);return{pathname:A.pathname,search:A.search,hash:A.hash}},push:b,replace:N,go(C){return h.go(C)}};return w}function ky(a,i=!1){let c="http://localhost";typeof window<"u"&&(c=window.location.origin!=="null"?window.location.origin:window.location.href),ut(c,"No window.location.(origin|href) available to create URL");let r=typeof a=="string"?a:Kc(a);return r=r.replace(/ $/,"%20"),!i&&r.startsWith("//")&&(r=c+r),new URL(r,c)}function T3(a,i,c="/"){return By(a,i,c,!1)}function By(a,i,c,r){let d=typeof i=="string"?Ui(i):i,f=Js(d.pathname||"/",c);if(f==null)return null;let h=E3(a);$y(h);let g=null;for(let m=0;g==null&&m{let v={relativePath:p===void 0?h.path||"":p,caseSensitive:h.caseSensitive===!0,childrenIndex:g,route:h};if(v.relativePath.startsWith("/")){if(!v.relativePath.startsWith(r)&&m)return;ut(v.relativePath.startsWith(r),`Absolute route path "${v.relativePath}" nested under path "${r}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),v.relativePath=v.relativePath.slice(r.length)}let y=ls([r,v.relativePath]),b=c.concat(v);h.children&&h.children.length>0&&(ut(h.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${y}".`),E3(h.children,i,b,y,m)),!(h.path==null&&!h.index)&&i.push({path:y,score:Qy(y,h.index),routesMeta:b})};return a.forEach((h,g)=>{var m;if(h.path===""||!((m=h.path)!=null&&m.includes("?")))f(h,g);else for(let p of R3(h.path))f(h,g,!0,p)}),i}function R3(a){let i=a.split("/");if(i.length===0)return[];let[c,...r]=i,d=c.endsWith("?"),f=c.replace(/\?$/,"");if(r.length===0)return d?[f,""]:[f];let h=R3(r.join("/")),g=[];return g.push(...h.map(m=>m===""?f:[f,m].join("/"))),d&&g.push(...h),g.map(m=>a.startsWith("/")&&m===""?"/":m)}function $y(a){a.sort((i,c)=>i.score!==c.score?c.score-i.score:Py(i.routesMeta.map(r=>r.childrenIndex),c.routesMeta.map(r=>r.childrenIndex)))}var Uy=/^:[\w-]+$/,Hy=3,qy=2,Fy=1,Gy=10,Vy=-2,ip=a=>a==="*";function Qy(a,i){let c=a.split("/"),r=c.length;return c.some(ip)&&(r+=Vy),i&&(r+=qy),c.filter(d=>!ip(d)).reduce((d,f)=>d+(Uy.test(f)?Hy:f===""?Fy:Gy),r)}function Py(a,i){return a.length===i.length&&a.slice(0,-1).every((r,d)=>r===i[d])?a[a.length-1]-i[i.length-1]:0}function Iy(a,i,c=!1){let{routesMeta:r}=a,d={},f="/",h=[];for(let g=0;g{if(v==="*"){let S=g[b]||"";h=f.slice(0,f.length-S.length).replace(/(.)\/+$/,"$1")}const N=g[b];return y&&!N?p[v]=void 0:p[v]=(N||"").replace(/%2F/g,"/"),p},{}),pathname:f,pathnameBase:h,pattern:a}}function Yy(a,i=!1,c=!0){is(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 r=[],d="^"+a.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(h,g,m,p,v)=>{if(r.push({paramName:g,isOptional:m!=null}),m){let y=v.charAt(p+h.length);return y&&y!=="/"?"/([^\\/]*)":"(?:/([^\\/]*))?"}return"/([^\\/]+)"}).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return a.endsWith("*")?(r.push({paramName:"*"}),d+=a==="*"||a==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):c?d+="\\/*$":a!==""&&a!=="/"&&(d+="(?:(?=\\/|$))"),[new RegExp(d,i?void 0:"i"),r]}function Xy(a){try{return a.split("/").map(i=>decodeURIComponent(i).replace(/\//g,"%2F")).join("/")}catch(i){return is(!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 (${i}).`),a}}function Js(a,i){if(i==="/")return a;if(!a.toLowerCase().startsWith(i.toLowerCase()))return null;let c=i.endsWith("/")?i.length-1:i.length,r=a.charAt(c);return r&&r!=="/"?null:a.slice(c)||"/"}var Ky=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i;function Zy(a,i="/"){let{pathname:c,search:r="",hash:d=""}=typeof a=="string"?Ui(a):a,f;return c?(c=A3(c),c.startsWith("/")?f=cp(c.substring(1),"/"):f=cp(c,i)):f=i,{pathname:f,search:ex(r),hash:tx(d)}}function cp(a,i){let c=Qo(i).split("/");return a.split("/").forEach(d=>{d===".."?c.length>1&&c.pop():d!=="."&&c.push(d)}),c.length>1?c.join("/"):"/"}function Od(a,i,c,r){return`Cannot include a '${a}' character in a manually specified \`to.${i}\` field [${JSON.stringify(r)}]. Please separate it out to the \`to.${c}\` field. Alternatively you may provide the full path as a string in and the router will parse it for you.`}function Wy(a){return a.filter((i,c)=>c===0||i.route.path&&i.route.path.length>0)}function w2(a){let i=Wy(a);return i.map((c,r)=>r===i.length-1?c.pathname:c.pathnameBase)}function Jo(a,i,c,r=!1){let d;typeof a=="string"?d=Ui(a):(d={...a},ut(!d.pathname||!d.pathname.includes("?"),Od("?","pathname","search",d)),ut(!d.pathname||!d.pathname.includes("#"),Od("#","pathname","hash",d)),ut(!d.search||!d.search.includes("#"),Od("#","search","hash",d)));let f=a===""||d.pathname==="",h=f?"/":d.pathname,g;if(h==null)g=c;else{let y=i.length-1;if(!r&&h.startsWith("..")){let b=h.split("/");for(;b[0]==="..";)b.shift(),y-=1;d.pathname=b.join("/")}g=y>=0?i[y]:"/"}let m=Zy(d,g),p=h&&h!=="/"&&h.endsWith("/"),v=(f||h===".")&&c.endsWith("/");return!m.pathname.endsWith("/")&&(p||v)&&(m.pathname+="/"),m}var A3=a=>a.replace(/\/\/+/g,"/"),ls=a=>A3(a.join("/")),Qo=a=>a.replace(/\/+$/,""),Jy=a=>Qo(a).replace(/^\/*/,"/"),ex=a=>!a||a==="?"?"":a.startsWith("?")?a:"?"+a,tx=a=>!a||a==="#"?"":a.startsWith("#")?a:"#"+a,nx=class{constructor(a,i,c,r=!1){this.status=a,this.statusText=i||"",this.internal=r,c instanceof Error?(this.data=c.toString(),this.error=c):this.data=c}};function sx(a){return a!=null&&typeof a.status=="number"&&typeof a.statusText=="string"&&typeof a.internal=="boolean"&&"data"in a}function ax(a){let i=a.map(c=>c.route.path).filter(Boolean);return ls(i)||"/"}var L3=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function O3(a,i){let c=a;if(typeof c!="string"||!Ky.test(c))return{absoluteURL:void 0,isExternal:!1,to:c};let r=c,d=!1;if(L3)try{let f=new URL(window.location.href),h=c.startsWith("//")?new URL(f.protocol+c):new URL(c),g=Js(h.pathname,i);h.origin===f.origin&&g!=null?c=g+h.search+h.hash:d=!0}catch{is(!1,` contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}return{absoluteURL:r,isExternal:d,to:c}}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var M3=["POST","PUT","PATCH","DELETE"];new Set(M3);var lx=["GET",...M3];new Set(lx);var Hi=j.createContext(null);Hi.displayName="DataRouter";var eu=j.createContext(null);eu.displayName="DataRouterState";var z3=j.createContext(!1);function ix(){return j.useContext(z3)}var D3=j.createContext({isTransitioning:!1});D3.displayName="ViewTransition";var cx=j.createContext(new Map);cx.displayName="Fetchers";var rx=j.createContext(null);rx.displayName="Await";var kn=j.createContext(null);kn.displayName="Navigation";var ir=j.createContext(null);ir.displayName="Location";var Jn=j.createContext({outlet:null,matches:[],isDataRoute:!1});Jn.displayName="Route";var C2=j.createContext(null);C2.displayName="RouteError";var k3="REACT_ROUTER_ERROR",ox="REDIRECT",ux="ROUTE_ERROR_RESPONSE";function dx(a){if(a.startsWith(`${k3}:${ox}:{`))try{let i=JSON.parse(a.slice(28));if(typeof i=="object"&&i&&typeof i.status=="number"&&typeof i.statusText=="string"&&typeof i.location=="string"&&typeof i.reloadDocument=="boolean"&&typeof i.replace=="boolean")return i}catch{}}function fx(a){if(a.startsWith(`${k3}:${ux}:{`))try{let i=JSON.parse(a.slice(40));if(typeof i=="object"&&i&&typeof i.status=="number"&&typeof i.statusText=="string")return new nx(i.status,i.statusText,i.data)}catch{}}function hx(a,{relative:i}={}){ut(qi(),"useHref() may be used only in the context of a component.");let{basename:c,navigator:r}=j.useContext(kn),{hash:d,pathname:f,search:h}=cr(a,{relative:i}),g=f;return c!=="/"&&(g=f==="/"?c:ls([c,f])),r.createHref({pathname:g,search:h,hash:d})}function qi(){return j.useContext(ir)!=null}function Bn(){return ut(qi(),"useLocation() may be used only in the context of a component."),j.useContext(ir).location}var B3="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function $3(a){j.useContext(kn).static||j.useLayoutEffect(a)}function $n(){let{isDataRoute:a}=j.useContext(Jn);return a?Rx():mx()}function mx(){ut(qi(),"useNavigate() may be used only in the context of a component.");let a=j.useContext(Hi),{basename:i,navigator:c}=j.useContext(kn),{matches:r}=j.useContext(Jn),{pathname:d}=Bn(),f=JSON.stringify(w2(r)),h=j.useRef(!1);return $3(()=>{h.current=!0}),j.useCallback((m,p={})=>{if(is(h.current,B3),!h.current)return;if(typeof m=="number"){c.go(m);return}let v=Jo(m,JSON.parse(f),d,p.relative==="path");a==null&&i!=="/"&&(v.pathname=v.pathname==="/"?i:ls([i,v.pathname])),(p.replace?c.replace:c.push)(v,p.state,p)},[i,c,f,d,a])}var px=j.createContext(null);function _x(a){let i=j.useContext(Jn).outlet;return j.useMemo(()=>i&&j.createElement(px.Provider,{value:a},i),[i,a])}function gx(){let{matches:a}=j.useContext(Jn),i=a[a.length-1];return(i==null?void 0:i.params)??{}}function cr(a,{relative:i}={}){let{matches:c}=j.useContext(Jn),{pathname:r}=Bn(),d=JSON.stringify(w2(c));return j.useMemo(()=>Jo(a,JSON.parse(d),r,i==="path"),[a,d,r,i])}function vx(a,i){return U3(a,i)}function U3(a,i,c){var C;ut(qi(),"useRoutes() may be used only in the context of a component.");let{navigator:r}=j.useContext(kn),{matches:d}=j.useContext(Jn),f=d[d.length-1],h=f?f.params:{},g=f?f.pathname:"/",m=f?f.pathnameBase:"/",p=f&&f.route;{let A=p&&p.path||"";q3(g,!p||A.endsWith("*")||A.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 v=Bn(),y;if(i){let A=typeof i=="string"?Ui(i):i;ut(m==="/"||((C=A.pathname)==null?void 0:C.startsWith(m)),`When overriding the location using \`\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${m}" but pathname "${A.pathname}" was given in the \`location\` prop.`),y=A}else y=v;let b=y.pathname||"/",N=b;if(m!=="/"){let A=m.replace(/^\//,"").split("/");N="/"+b.replace(/^\//,"").split("/").slice(A.length).join("/")}let S=T3(a,{pathname:N});is(p||S!=null,`No routes matched location "${y.pathname}${y.search}${y.hash}" `),is(S==null||S[S.length-1].route.element!==void 0||S[S.length-1].route.Component!==void 0||S[S.length-1].route.lazy!==void 0,`Matched leaf route at location "${y.pathname}${y.search}${y.hash}" does not have an element or Component. This means it will render an with a null value by default resulting in an "empty" page.`);let w=Sx(S&&S.map(A=>Object.assign({},A,{params:Object.assign({},h,A.params),pathname:ls([m,r.encodeLocation?r.encodeLocation(A.pathname.replace(/%/g,"%25").replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:A.pathname]),pathnameBase:A.pathnameBase==="/"?m:ls([m,r.encodeLocation?r.encodeLocation(A.pathnameBase.replace(/%/g,"%25").replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:A.pathnameBase])})),d,c);return i&&w?j.createElement(ir.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",unstable_mask:void 0,...y},navigationType:"POP"}},w):w}function yx(){let a=Ex(),i=sx(a)?`${a.status} ${a.statusText}`:a instanceof Error?a.message:JSON.stringify(a),c=a instanceof Error?a.stack:null,r="rgba(200,200,200, 0.5)",d={padding:"0.5rem",backgroundColor:r},f={padding:"2px 4px",backgroundColor:r},h=null;return console.error("Error handled by React Router default ErrorBoundary:",a),h=j.createElement(j.Fragment,null,j.createElement("p",null,"💿 Hey developer 👋"),j.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",j.createElement("code",{style:f},"ErrorBoundary")," or"," ",j.createElement("code",{style:f},"errorElement")," prop on your route.")),j.createElement(j.Fragment,null,j.createElement("h2",null,"Unexpected Application Error!"),j.createElement("h3",{style:{fontStyle:"italic"}},i),c?j.createElement("pre",{style:d},c):null,h)}var xx=j.createElement(yx,null),H3=class extends j.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,i){return i.location!==a.location||i.revalidation!=="idle"&&a.revalidation==="idle"?{error:a.error,location:a.location,revalidation:a.revalidation}:{error:a.error!==void 0?a.error:i.error,location:i.location,revalidation:a.revalidation||i.revalidation}}componentDidCatch(a,i){this.props.onError?this.props.onError(a,i):console.error("React Router caught the following error during render",a)}render(){let a=this.state.error;if(this.context&&typeof a=="object"&&a&&"digest"in a&&typeof a.digest=="string"){const c=fx(a.digest);c&&(a=c)}let i=a!==void 0?j.createElement(Jn.Provider,{value:this.props.routeContext},j.createElement(C2.Provider,{value:a,children:this.props.component})):this.props.children;return this.context?j.createElement(bx,{error:a},i):i}};H3.contextType=z3;var Md=new WeakMap;function bx({children:a,error:i}){let{basename:c}=j.useContext(kn);if(typeof i=="object"&&i&&"digest"in i&&typeof i.digest=="string"){let r=dx(i.digest);if(r){let d=Md.get(i);if(d)throw d;let f=O3(r.location,c);if(L3&&!Md.get(i))if(f.isExternal||r.reloadDocument)window.location.href=f.absoluteURL||f.to;else{const h=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(f.to,{replace:r.replace}));throw Md.set(i,h),h}return j.createElement("meta",{httpEquiv:"refresh",content:`0;url=${f.absoluteURL||f.to}`})}}return a}function jx({routeContext:a,match:i,children:c}){let r=j.useContext(Hi);return r&&r.static&&r.staticContext&&(i.route.errorElement||i.route.ErrorBoundary)&&(r.staticContext._deepestRenderedBoundaryId=i.route.id),j.createElement(Jn.Provider,{value:a},c)}function Sx(a,i=[],c){let r=c==null?void 0:c.state;if(a==null){if(!r)return null;if(r.errors)a=r.matches;else if(i.length===0&&!r.initialized&&r.matches.length>0)a=r.matches;else return null}let d=a,f=r==null?void 0:r.errors;if(f!=null){let v=d.findIndex(y=>y.route.id&&(f==null?void 0:f[y.route.id])!==void 0);ut(v>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(f).join(",")}`),d=d.slice(0,Math.min(d.length,v+1))}let h=!1,g=-1;if(c&&r){h=r.renderFallback;for(let v=0;v=0?d=d.slice(0,g+1):d=[d[0]];break}}}}let m=c==null?void 0:c.onError,p=r&&m?(v,y)=>{var b,N;m(v,{location:r.location,params:((N=(b=r.matches)==null?void 0:b[0])==null?void 0:N.params)??{},unstable_pattern:ax(r.matches),errorInfo:y})}:void 0;return d.reduceRight((v,y,b)=>{let N,S=!1,w=null,C=null;r&&(N=f&&y.route.id?f[y.route.id]:void 0,w=y.route.errorElement||xx,h&&(g<0&&b===0?(q3("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),S=!0,C=null):g===b&&(S=!0,C=y.route.hydrateFallbackElement||null)));let A=i.concat(d.slice(0,b+1)),z=()=>{let M;return N?M=w:S?M=C:y.route.Component?M=j.createElement(y.route.Component,null):y.route.element?M=y.route.element:M=v,j.createElement(jx,{match:y,routeContext:{outlet:v,matches:A,isDataRoute:r!=null},children:M})};return r&&(y.route.ErrorBoundary||y.route.errorElement||b===0)?j.createElement(H3,{location:r.location,revalidation:r.revalidation,component:w,error:N,children:z(),routeContext:{outlet:null,matches:A,isDataRoute:!0},onError:p}):z()},null)}function T2(a){return`${a} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function Nx(a){let i=j.useContext(Hi);return ut(i,T2(a)),i}function wx(a){let i=j.useContext(eu);return ut(i,T2(a)),i}function Cx(a){let i=j.useContext(Jn);return ut(i,T2(a)),i}function E2(a){let i=Cx(a),c=i.matches[i.matches.length-1];return ut(c.route.id,`${a} can only be used on routes that contain a unique "id"`),c.route.id}function Tx(){return E2("useRouteId")}function Ex(){var r;let a=j.useContext(C2),i=wx("useRouteError"),c=E2("useRouteError");return a!==void 0?a:(r=i.errors)==null?void 0:r[c]}function Rx(){let{router:a}=Nx("useNavigate"),i=E2("useNavigate"),c=j.useRef(!1);return $3(()=>{c.current=!0}),j.useCallback(async(d,f={})=>{is(c.current,B3),c.current&&(typeof d=="number"?await a.navigate(d):await a.navigate(d,{fromRouteId:i,...f}))},[a,i])}var rp={};function q3(a,i,c){!i&&!rp[a]&&(rp[a]=!0,is(!1,c))}j.memo(Ax);function Ax({routes:a,future:i,state:c,isStatic:r,onError:d}){return U3(a,void 0,{state:c,isStatic:r,onError:d})}function tu({to:a,replace:i,state:c,relative:r}){ut(qi()," may be used only in the context of a component.");let{static:d}=j.useContext(kn);is(!d," 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:f}=j.useContext(Jn),{pathname:h}=Bn(),g=$n(),m=Jo(a,w2(f),h,r==="path"),p=JSON.stringify(m);return j.useEffect(()=>{g(JSON.parse(p),{replace:i,state:c,relative:r})},[g,p,r,i,c]),null}function R2(a){return _x(a.context)}function Je(a){ut(!1,"A is only ever to be used as the child of element, never rendered directly. Please wrap your in a .")}function Lx({basename:a="/",children:i=null,location:c,navigationType:r="POP",navigator:d,static:f=!1,unstable_useTransitions:h}){ut(!qi(),"You cannot render a inside another . You should never have more than one in your app.");let g=a.replace(/^\/*/,"/"),m=j.useMemo(()=>({basename:g,navigator:d,static:f,unstable_useTransitions:h,future:{}}),[g,d,f,h]);typeof c=="string"&&(c=Ui(c));let{pathname:p="/",search:v="",hash:y="",state:b=null,key:N="default",unstable_mask:S}=c,w=j.useMemo(()=>{let C=Js(p,g);return C==null?null:{location:{pathname:C,search:v,hash:y,state:b,key:N,unstable_mask:S},navigationType:r}},[g,p,v,y,b,N,r,S]);return is(w!=null,` is not able to match the URL "${p}${v}${y}" because it does not start with the basename, so the won't render anything.`),w==null?null:j.createElement(kn.Provider,{value:m},j.createElement(ir.Provider,{children:i,value:w}))}function Ox({children:a,location:i}){return vx(Jd(a),i)}function Jd(a,i=[]){let c=[];return j.Children.forEach(a,(r,d)=>{if(!j.isValidElement(r))return;let f=[...i,d];if(r.type===j.Fragment){c.push.apply(c,Jd(r.props.children,f));return}ut(r.type===Je,`[${typeof r.type=="string"?r.type:r.type.name}] is not a component. All component children of must be a or `),ut(!r.props.index||!r.props.children,"An index route cannot have child routes.");let h={id:r.props.id||f.join("-"),caseSensitive:r.props.caseSensitive,element:r.props.element,Component:r.props.Component,index:r.props.index,path:r.props.path,middleware:r.props.middleware,loader:r.props.loader,action:r.props.action,hydrateFallbackElement:r.props.hydrateFallbackElement,HydrateFallback:r.props.HydrateFallback,errorElement:r.props.errorElement,ErrorBoundary:r.props.ErrorBoundary,hasErrorBoundary:r.props.hasErrorBoundary===!0||r.props.ErrorBoundary!=null||r.props.errorElement!=null,shouldRevalidate:r.props.shouldRevalidate,handle:r.props.handle,lazy:r.props.lazy};r.props.children&&(h.children=Jd(r.props.children,f)),c.push(h)}),c}var qo="get",Fo="application/x-www-form-urlencoded";function nu(a){return typeof HTMLElement<"u"&&a instanceof HTMLElement}function Mx(a){return nu(a)&&a.tagName.toLowerCase()==="button"}function zx(a){return nu(a)&&a.tagName.toLowerCase()==="form"}function Dx(a){return nu(a)&&a.tagName.toLowerCase()==="input"}function kx(a){return!!(a.metaKey||a.altKey||a.ctrlKey||a.shiftKey)}function Bx(a,i){return a.button===0&&(!i||i==="_self")&&!kx(a)}var Ao=null;function $x(){if(Ao===null)try{new FormData(document.createElement("form"),0),Ao=!1}catch{Ao=!0}return Ao}var Ux=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function zd(a){return a!=null&&!Ux.has(a)?(is(!1,`"${a}" is not a valid \`encType\` for \`
\`/\`\` and will default to "${Fo}"`),null):a}function Hx(a,i){let c,r,d,f,h;if(zx(a)){let g=a.getAttribute("action");r=g?Js(g,i):null,c=a.getAttribute("method")||qo,d=zd(a.getAttribute("enctype"))||Fo,f=new FormData(a)}else if(Mx(a)||Dx(a)&&(a.type==="submit"||a.type==="image")){let g=a.form;if(g==null)throw new Error('Cannot submit a + + +
+ Позиция + + {position.symbol0}/{position.symbol1} + + + {formatFeeTier(position.feeTier)} · #{position.tokenId} + +
+ +
+ {PERCENTS.map((p) => ( + + ))} +
+ + {percent === 100 && ( +

При выводе 100% позиция (NFT) будет сожжена.

+ )} + + + + + ) +} diff --git a/src/widgets/pools/ui/PoolsTable.module.css b/src/widgets/pools/ui/PoolsTable.module.css index 645ad7b..b83fd4e 100644 --- a/src/widgets/pools/ui/PoolsTable.module.css +++ b/src/widgets/pools/ui/PoolsTable.module.css @@ -21,6 +21,13 @@ overflow-x: auto; } +.message { + font-size: 14px; + color: var(--text-secondary); + text-align: center; + padding: 24px 0; +} + .table { width: 100%; border-collapse: collapse; diff --git a/src/widgets/pools/ui/PoolsTable.tsx b/src/widgets/pools/ui/PoolsTable.tsx index 7659c06..ed8287e 100644 --- a/src/widgets/pools/ui/PoolsTable.tsx +++ b/src/widgets/pools/ui/PoolsTable.tsx @@ -1,11 +1,14 @@ -import { TokenIcon } from '@shared/ui' -import { coinIcon, formatFeeTier, type Pool } from '../model/meta' +import { Spinner, TokenIcon } from '@shared/ui' +import type { Pool } from '@features/pools' +import { coinIcon, formatFeeTier } from '../model/meta' import styles from './PoolsTable.module.css' interface Props { pools: Pool[] selected: string | null onSelect: (poolAddress: string) => void + loading?: boolean + error?: string | null } const DASH = '—' @@ -35,13 +38,20 @@ function PairIcons({ symbol0, symbol1 }: { symbol0: string; symbol1: string }) { ) } -export function PoolsTable({ pools, selected, onSelect }: Props) { +export function PoolsTable({ pools, selected, onSelect, loading, error }: Props) { return (
Курируемые пулы
+ {loading && } + {!loading && error &&
{error}
} + {!loading && !error && pools.length === 0 && ( +
Курируемых пулов пока нет.
+ )} + + {!loading && !error && pools.length > 0 && (
@@ -94,6 +104,7 @@ export function PoolsTable({ pools, selected, onSelect }: Props) {
+ )}
) } diff --git a/src/widgets/pools/ui/PoolsWidget.tsx b/src/widgets/pools/ui/PoolsWidget.tsx index 6a4e2c7..5795c26 100644 --- a/src/widgets/pools/ui/PoolsWidget.tsx +++ b/src/widgets/pools/ui/PoolsWidget.tsx @@ -1,42 +1,135 @@ -import { useState } from 'react' +import { useMemo, useState } from 'react' import { Notification } from '@shared/ui' +import { useDebounce } from '@shared/lib/hooks/useDebounce' +import { + usePools, + useLpPositions, + useLpQuote, + useAddLp, + useRemoveLp, + getPoolsErrorMessage, + type LpDepositInput, + type LpPosition, +} from '@features/pools' import { PoolsTable } from './PoolsTable' import { LpDepositCard } from './LpDepositCard' import { LpPositionsPanel } from './LpPositionsPanel' -import { MOCK_POOLS, MOCK_POSITIONS, MOCK_QUOTE } from '../model/meta' +import { LpRemoveModal } from './LpRemoveModal' import styles from './PoolsWidget.module.css' type Toast = { status: 'success' | 'error' | 'info'; message: string } | null +// Предзаполнение диапазона при выборе пула: текущая цена ±5%. +const RANGE_SPREAD = 0.05 + export function PoolsWidget() { - const [selected, setSelected] = useState(MOCK_POOLS[0]?.poolAddress ?? null) + const poolsQuery = usePools() + const positionsQuery = useLpPositions() + const addM = useAddLp() + const removeM = useRemoveLp() + + const pools = poolsQuery.data ?? [] + const positions = positionsQuery.data?.positions ?? [] + + const [selected, setSelected] = useState(null) const [amount0, setAmount0] = useState('') const [amount1, setAmount1] = useState('') const [priceLower, setPriceLower] = useState('') const [priceUpper, setPriceUpper] = useState('') const [slippage, setSlippage] = useState('1') const [useNativeEth, setUseNativeEth] = useState(true) + const [removeTarget, setRemoveTarget] = useState(null) const [toast, setToast] = useState(null) - const pool = MOCK_POOLS.find((p) => p.poolAddress === selected) ?? null + const pool = pools.find((p) => p.poolAddress === selected) ?? null - // Заглушки: логика endpoint появится позже, пока только тосты. - function handleSubmit() { - setToast({ status: 'info', message: 'Депозит в пул будет доступен после подключения API' }) + function handleSelect(poolAddress: string) { + setSelected(poolAddress) + const next = pools.find((p) => p.poolAddress === poolAddress) + // Предзаполняем диапазон ±5% от текущей цены (юзер может поправить вручную). + if (next) { + setPriceLower((next.currentPrice * (1 - RANGE_SPREAD)).toFixed(2)) + setPriceUpper((next.currentPrice * (1 + RANGE_SPREAD)).toFixed(2)) + } + setAmount0('') + setAmount1('') } - function handleRemove() { - setToast({ status: 'info', message: 'Вывод позиции будет доступен после подключения API' }) + // Дебаунсим вход квоты, чтобы не дёргать /lp/quote на каждый символ. + const dAmount0 = useDebounce(amount0, 400) + const dAmount1 = useDebounce(amount1, 400) + const dPriceLower = useDebounce(priceLower, 400) + const dPriceUpper = useDebounce(priceUpper, 400) + const dSlippage = useDebounce(slippage, 400) + + const quoteInput = useMemo(() => { + if (!pool) return null + const slippageNum = parseFloat(dSlippage) + return { + pool, + amount0Human: dAmount0, + amount1Human: dAmount1, + priceLower: parseFloat(dPriceLower) || 0, + priceUpper: parseFloat(dPriceUpper) || 0, + slippageBps: Number.isFinite(slippageNum) ? Math.round(slippageNum * 100) : undefined, + useNativeEth, + } + }, [pool, dAmount0, dAmount1, dPriceLower, dPriceUpper, dSlippage, useNativeEth]) + + const quoteQuery = useLpQuote(quoteInput) + + function handleSubmit() { + if (!pool) return + const slippageNum = parseFloat(slippage) + const input: LpDepositInput = { + pool, + amount0Human: amount0, + amount1Human: amount1, + priceLower: parseFloat(priceLower) || 0, + priceUpper: parseFloat(priceUpper) || 0, + slippageBps: Number.isFinite(slippageNum) ? Math.round(slippageNum * 100) : undefined, + useNativeEth, + } + addM.mutate(input, { + onSuccess: () => { + setToast({ status: 'success', message: `Депозит в пул ${pool.symbol0}/${pool.symbol1} выполнен` }) + setAmount0('') + setAmount1('') + }, + onError: (e) => setToast({ status: 'error', message: getPoolsErrorMessage(e) }), + }) + } + + function handleConfirmRemove(percent: number) { + if (!removeTarget) return + removeM.mutate( + { tokenId: removeTarget.tokenId, percent }, + { + onSuccess: () => { + setRemoveTarget(null) + setToast({ status: 'success', message: 'Ликвидность выведена на кошелёк' }) + }, + onError: (e) => setToast({ status: 'error', message: getPoolsErrorMessage(e) }), + } + ) } return (
- +
- + setRemoveTarget(positions.find((p) => p.tokenId === tokenId) ?? null)} + removePending={removeM.isPending} + isLoading={positionsQuery.isLoading} + error={positionsQuery.isError ? getPoolsErrorMessage(positionsQuery.error) : null} + />
+ {removeTarget && ( + setRemoveTarget(null)} + /> + )} + {toast && setToast(null)} />}
) diff --git a/tsconfig.tsbuildinfo b/tsconfig.tsbuildinfo index 1bb4bd0..5d5d384 100644 --- a/tsconfig.tsbuildinfo +++ b/tsconfig.tsbuildinfo @@ -1 +1 @@ -{"root":["./src/main.tsx","./src/vite-env.d.ts","./src/app/app.tsx","./src/app/providers/guestroute.tsx","./src/app/providers/protectedroute.tsx","./src/app/providers/queryprovider.tsx","./src/app/providers/routerprovider.tsx","./src/app/providers/scrolltotop.tsx","./src/app/providers/index.ts","./src/entities/commission/index.ts","./src/entities/commission/model/tiers.ts","./src/entities/commission/ui/commissiontable.tsx","./src/features/auth/index.ts","./src/features/auth/api/profileapi.ts","./src/features/auth/api/registrationapi.ts","./src/features/auth/hooks/useauth.ts","./src/features/auth/hooks/useisauthenticated.ts","./src/features/auth/hooks/useme.ts","./src/features/auth/hooks/useupdatephone.ts","./src/features/auth/hooks/useuploadavatar.ts","./src/features/b2b/index.ts","./src/features/b2b/api/b2bapi.ts","./src/features/b2b/hooks/usecreatepurchaserequest.ts","./src/features/b2b/hooks/usemypurchaserequests.ts","./src/features/kyc/api/kycapi.ts","./src/features/payment/index.ts","./src/features/payment/api/paymentapi.ts","./src/features/payment/hooks/usecreateorder.ts","./src/features/payment/hooks/useorders.ts","./src/features/payment/hooks/usepaymentconfig.ts","./src/features/payment/hooks/usepaymentquote.ts","./src/features/payment/hooks/usepaymentquotebyrub.ts","./src/features/payment/model/usecurrencyconversion.ts","./src/features/staking/index.ts","./src/features/staking/api/stakingapi.ts","./src/features/staking/model/usestaking.ts","./src/features/wallet/index.ts","./src/features/wallet/api/walletapi.ts","./src/features/wallet/model/usewalletdata.ts","./src/pages/bridge/index.ts","./src/pages/bridge/ui/bridgepage.tsx","./src/pages/converter/index.ts","./src/pages/converter/ui/converterpage.tsx","./src/pages/converter/ui/legalconverterpage.tsx","./src/pages/converter-test/index.ts","./src/pages/converter-test/ui/convertertestpage.tsx","./src/pages/home/index.ts","./src/pages/home/ui/homepage.tsx","./src/pages/kyc/index.ts","./src/pages/kyc/ui/kycpage.tsx","./src/pages/login/index.ts","./src/pages/login/ui/loginpage.tsx","./src/pages/politika-cookie/index.ts","./src/pages/politika-cookie/ui/politikacookiepage.tsx","./src/pages/politika-personalnyh-dannyh/index.ts","./src/pages/politika-personalnyh-dannyh/ui/politikapage.tsx","./src/pages/pools/index.ts","./src/pages/pools/ui/poolspage.tsx","./src/pages/profile/index.ts","./src/pages/profile/ui/individualfields.tsx","./src/pages/profile/ui/legalentityfields.tsx","./src/pages/profile/ui/profilepage.tsx","./src/pages/publichnaya-oferta/index.ts","./src/pages/publichnaya-oferta/ui/publichnayaofertapage.tsx","./src/pages/reestr-pd-rkn/index.ts","./src/pages/reestr-pd-rkn/ui/reestrypage.tsx","./src/pages/register/index.ts","./src/pages/register/ui/registerpage.tsx","./src/pages/register-test/index.ts","./src/pages/register-test/ui/registertestpage.tsx","./src/pages/restore-password/index.ts","./src/pages/restore-password/ui/restorepasswordpage.tsx","./src/pages/seed-phrase/index.ts","./src/pages/seed-phrase/ui/seedphrasepage.tsx","./src/pages/soglasie-personalnyh-dannyh/index.ts","./src/pages/soglasie-personalnyh-dannyh/ui/soglasiepage.tsx","./src/pages/staking/index.ts","./src/pages/staking/ui/stakingpage.tsx","./src/pages/swap/index.ts","./src/pages/swap/ui/swappage.tsx","./src/pages/transactions/index.ts","./src/pages/transactions/ui/transactionspage.tsx","./src/pages/wallet/index.ts","./src/pages/wallet/ui/walletpage.tsx","./src/shared/api/base.ts","./src/shared/api/csrf.ts","./src/shared/api/tokenstore.ts","./src/shared/api/types.ts","./src/shared/assets/coins/index.ts","./src/shared/config/constants.ts","./src/shared/config/env.ts","./src/shared/config/routes.ts","./src/shared/lib/hooks/usedebounce.ts","./src/shared/lib/hooks/uselocalstorage.ts","./src/shared/lib/utils/baseunits.ts","./src/shared/lib/utils/cn.ts","./src/shared/lib/utils/truncatedecimals.ts","./src/shared/types/index.ts","./src/shared/ui/index.ts","./src/shared/ui/button/button.tsx","./src/shared/ui/button/index.ts","./src/shared/ui/convertfield/convertfield.tsx","./src/shared/ui/convertfield/index.ts","./src/shared/ui/directionswapbutton/directionswapbutton.tsx","./src/shared/ui/directionswapbutton/index.ts","./src/shared/ui/formfield/formfield.tsx","./src/shared/ui/formfield/index.ts","./src/shared/ui/notification/notification.tsx","./src/shared/ui/notification/index.ts","./src/shared/ui/pill/pill.tsx","./src/shared/ui/pill/index.ts","./src/shared/ui/primarybutton/primarybutton.tsx","./src/shared/ui/primarybutton/index.ts","./src/shared/ui/select/select.tsx","./src/shared/ui/select/index.ts","./src/shared/ui/spinner/spinner.tsx","./src/shared/ui/spinner/index.ts","./src/shared/ui/title/title.tsx","./src/shared/ui/tokenicon/tokenicon.tsx","./src/shared/ui/tokenicon/index.ts","./src/widgets/about/index.ts","./src/widgets/about/ui/about.tsx","./src/widgets/balance-card/index.ts","./src/widgets/balance-card/ui/balancecard.tsx","./src/widgets/bridge-form/index.ts","./src/widgets/bridge-form/ui/bridgeconfirmmodal.tsx","./src/widgets/bridge-form/ui/bridgeform.tsx","./src/widgets/bridge-form/ui/networkselect.tsx","./src/widgets/converter-page/index.ts","./src/widgets/converter-page/model/useconvertersection.ts","./src/widgets/converter-page/ui/agreementcheck.tsx","./src/widgets/converter-page/ui/convertersection.tsx","./src/widgets/currency-converter/index.ts","./src/widgets/currency-converter/ui/agreementcheckbox.tsx","./src/widgets/currency-converter/ui/converter.tsx","./src/widgets/footer/index.ts","./src/widgets/footer/ui/footer.tsx","./src/widgets/header/index.ts","./src/widgets/header/ui/header.tsx","./src/widgets/hero/index.ts","./src/widgets/hero/lib/usecountdown.ts","./src/widgets/hero/ui/conversionflow.tsx","./src/widgets/hero/ui/countdown.tsx","./src/widgets/hero/ui/exchangecard.tsx","./src/widgets/hero/ui/hero.tsx","./src/widgets/kyc-verification/index.ts","./src/widgets/kyc-verification/model/usekyc.ts","./src/widgets/kyc-verification/ui/kycmodal.tsx","./src/widgets/kyc-verification/ui/kycwidget.tsx","./src/widgets/login-form/index.ts","./src/widgets/login-form/model/useloginform.ts","./src/widgets/login-form/ui/loginform.tsx","./src/widgets/networks-table/index.ts","./src/widgets/networks-table/model/networks.ts","./src/widgets/networks-table/ui/networkstable.tsx","./src/widgets/pools/index.ts","./src/widgets/pools/model/meta.ts","./src/widgets/pools/ui/lpdepositcard.tsx","./src/widgets/pools/ui/lppositionspanel.tsx","./src/widgets/pools/ui/poolstable.tsx","./src/widgets/pools/ui/poolswidget.tsx","./src/widgets/profile/index.ts","./src/widgets/profile/ui/avatarcropmodal.tsx","./src/widgets/profile/ui/profileavatar.tsx","./src/widgets/profile/ui/profilesection.tsx","./src/widgets/profile/ui/getcroppedimg.ts","./src/widgets/purchase-requests-list/index.ts","./src/widgets/purchase-requests-list/ui/purchaserequestslist.tsx","./src/widgets/receive-modal/index.ts","./src/widgets/receive-modal/ui/receivemodal.tsx","./src/widgets/register-form/index.ts","./src/widgets/register-form/model/useregisterform.ts","./src/widgets/register-form/ui/individualform.tsx","./src/widgets/register-form/ui/legalregisterinfo.tsx","./src/widgets/register-form/ui/registerform.tsx","./src/widgets/restore-password-form/index.ts","./src/widgets/restore-password-form/ui/restorepasswordform.tsx","./src/widgets/seed-phrase/index.ts","./src/widgets/seed-phrase/model/useseedphrase.ts","./src/widgets/seed-phrase/ui/seedphrasewidget.tsx","./src/widgets/send-modal/index.ts","./src/widgets/send-modal/model/sendtypes.ts","./src/widgets/send-modal/ui/sendmodal.tsx","./src/widgets/staking/index.ts","./src/widgets/staking/model/meta.ts","./src/widgets/staking/ui/chaintoggle.tsx","./src/widgets/staking/ui/positionspanel.tsx","./src/widgets/staking/ui/stakecard.tsx","./src/widgets/staking/ui/stakequotepanel.tsx","./src/widgets/staking/ui/stakingwidget.tsx","./src/widgets/staking/ui/unstakemodal.tsx","./src/widgets/staking/ui/withdrawnotice.tsx","./src/widgets/swap-bridge-tabs/index.ts","./src/widgets/swap-bridge-tabs/ui/swapbridgetabs.tsx","./src/widgets/swap-form/index.ts","./src/widgets/swap-form/model/useswapform.ts","./src/widgets/swap-form/ui/raterow.tsx","./src/widgets/swap-form/ui/swapcard.tsx","./src/widgets/swap-form/ui/swapconfirmmodal.tsx","./src/widgets/swap-form/ui/swapdirectionbutton.tsx","./src/widgets/swap-form/ui/swapform.tsx","./src/widgets/swap-form/ui/swapinfopanel.tsx","./src/widgets/swap-form/ui/tokenselect.tsx","./src/widgets/swap-form/ui/trxconfirmmodal.tsx","./src/widgets/token-table/index.ts","./src/widgets/token-table/model/tokens.ts","./src/widgets/token-table/model/usechaintokenrows.ts","./src/widgets/token-table/ui/tokentable.tsx","./src/widgets/transactions-list/index.ts","./src/widgets/transactions-list/model/format.ts","./src/widgets/transactions-list/model/paymentstatuslabels.ts","./src/widgets/transactions-list/ui/copybutton.tsx","./src/widgets/transactions-list/ui/orderaccordion.tsx","./src/widgets/transactions-list/ui/statusbadge.tsx","./src/widgets/transactions-list/ui/transactionslist.tsx","./src/widgets/wallet-chain-tabs/index.ts","./src/widgets/wallet-chain-tabs/ui/walletchaintabs.tsx","./src/widgets/wallet-header/index.ts","./src/widgets/wallet-header/ui/walletheader.tsx","./src/widgets/wallet-layout/index.ts","./src/widgets/wallet-layout/ui/walletlayout.tsx"],"version":"5.6.3"} \ No newline at end of file +{"root":["./src/main.tsx","./src/vite-env.d.ts","./src/app/app.tsx","./src/app/providers/guestroute.tsx","./src/app/providers/protectedroute.tsx","./src/app/providers/queryprovider.tsx","./src/app/providers/routerprovider.tsx","./src/app/providers/scrolltotop.tsx","./src/app/providers/index.ts","./src/entities/commission/index.ts","./src/entities/commission/model/tiers.ts","./src/entities/commission/ui/commissiontable.tsx","./src/features/auth/index.ts","./src/features/auth/api/profileapi.ts","./src/features/auth/api/registrationapi.ts","./src/features/auth/hooks/useauth.ts","./src/features/auth/hooks/useisauthenticated.ts","./src/features/auth/hooks/useme.ts","./src/features/auth/hooks/useupdatephone.ts","./src/features/auth/hooks/useuploadavatar.ts","./src/features/b2b/index.ts","./src/features/b2b/api/b2bapi.ts","./src/features/b2b/hooks/usecreatepurchaserequest.ts","./src/features/b2b/hooks/usemypurchaserequests.ts","./src/features/kyc/api/kycapi.ts","./src/features/payment/index.ts","./src/features/payment/api/paymentapi.ts","./src/features/payment/hooks/usecreateorder.ts","./src/features/payment/hooks/useorders.ts","./src/features/payment/hooks/usepaymentconfig.ts","./src/features/payment/hooks/usepaymentquote.ts","./src/features/payment/hooks/usepaymentquotebyrub.ts","./src/features/payment/model/usecurrencyconversion.ts","./src/features/pools/index.ts","./src/features/pools/api/poolsapi.ts","./src/features/pools/model/usepools.ts","./src/features/staking/index.ts","./src/features/staking/api/stakingapi.ts","./src/features/staking/model/usestaking.ts","./src/features/wallet/index.ts","./src/features/wallet/api/walletapi.ts","./src/features/wallet/model/usewalletdata.ts","./src/pages/bridge/index.ts","./src/pages/bridge/ui/bridgepage.tsx","./src/pages/converter/index.ts","./src/pages/converter/ui/converterpage.tsx","./src/pages/converter/ui/legalconverterpage.tsx","./src/pages/converter-test/index.ts","./src/pages/converter-test/ui/convertertestpage.tsx","./src/pages/home/index.ts","./src/pages/home/ui/homepage.tsx","./src/pages/kyc/index.ts","./src/pages/kyc/ui/kycpage.tsx","./src/pages/login/index.ts","./src/pages/login/ui/loginpage.tsx","./src/pages/politika-cookie/index.ts","./src/pages/politika-cookie/ui/politikacookiepage.tsx","./src/pages/politika-personalnyh-dannyh/index.ts","./src/pages/politika-personalnyh-dannyh/ui/politikapage.tsx","./src/pages/pools/index.ts","./src/pages/pools/ui/poolspage.tsx","./src/pages/profile/index.ts","./src/pages/profile/ui/individualfields.tsx","./src/pages/profile/ui/legalentityfields.tsx","./src/pages/profile/ui/profilepage.tsx","./src/pages/publichnaya-oferta/index.ts","./src/pages/publichnaya-oferta/ui/publichnayaofertapage.tsx","./src/pages/reestr-pd-rkn/index.ts","./src/pages/reestr-pd-rkn/ui/reestrypage.tsx","./src/pages/register/index.ts","./src/pages/register/ui/registerpage.tsx","./src/pages/register-test/index.ts","./src/pages/register-test/ui/registertestpage.tsx","./src/pages/restore-password/index.ts","./src/pages/restore-password/ui/restorepasswordpage.tsx","./src/pages/seed-phrase/index.ts","./src/pages/seed-phrase/ui/seedphrasepage.tsx","./src/pages/soglasie-personalnyh-dannyh/index.ts","./src/pages/soglasie-personalnyh-dannyh/ui/soglasiepage.tsx","./src/pages/staking/index.ts","./src/pages/staking/ui/stakingpage.tsx","./src/pages/swap/index.ts","./src/pages/swap/ui/swappage.tsx","./src/pages/transactions/index.ts","./src/pages/transactions/ui/transactionspage.tsx","./src/pages/wallet/index.ts","./src/pages/wallet/ui/walletpage.tsx","./src/shared/api/base.ts","./src/shared/api/csrf.ts","./src/shared/api/tokenstore.ts","./src/shared/api/types.ts","./src/shared/assets/coins/index.ts","./src/shared/config/constants.ts","./src/shared/config/env.ts","./src/shared/config/routes.ts","./src/shared/lib/hooks/usedebounce.ts","./src/shared/lib/hooks/uselocalstorage.ts","./src/shared/lib/utils/baseunits.ts","./src/shared/lib/utils/cn.ts","./src/shared/lib/utils/truncatedecimals.ts","./src/shared/types/index.ts","./src/shared/ui/index.ts","./src/shared/ui/button/button.tsx","./src/shared/ui/button/index.ts","./src/shared/ui/convertfield/convertfield.tsx","./src/shared/ui/convertfield/index.ts","./src/shared/ui/directionswapbutton/directionswapbutton.tsx","./src/shared/ui/directionswapbutton/index.ts","./src/shared/ui/formfield/formfield.tsx","./src/shared/ui/formfield/index.ts","./src/shared/ui/notification/notification.tsx","./src/shared/ui/notification/index.ts","./src/shared/ui/pill/pill.tsx","./src/shared/ui/pill/index.ts","./src/shared/ui/primarybutton/primarybutton.tsx","./src/shared/ui/primarybutton/index.ts","./src/shared/ui/select/select.tsx","./src/shared/ui/select/index.ts","./src/shared/ui/spinner/spinner.tsx","./src/shared/ui/spinner/index.ts","./src/shared/ui/title/title.tsx","./src/shared/ui/tokenicon/tokenicon.tsx","./src/shared/ui/tokenicon/index.ts","./src/widgets/about/index.ts","./src/widgets/about/ui/about.tsx","./src/widgets/balance-card/index.ts","./src/widgets/balance-card/ui/balancecard.tsx","./src/widgets/bridge-form/index.ts","./src/widgets/bridge-form/ui/bridgeconfirmmodal.tsx","./src/widgets/bridge-form/ui/bridgeform.tsx","./src/widgets/bridge-form/ui/networkselect.tsx","./src/widgets/converter-page/index.ts","./src/widgets/converter-page/model/useconvertersection.ts","./src/widgets/converter-page/ui/agreementcheck.tsx","./src/widgets/converter-page/ui/convertersection.tsx","./src/widgets/currency-converter/index.ts","./src/widgets/currency-converter/ui/agreementcheckbox.tsx","./src/widgets/currency-converter/ui/converter.tsx","./src/widgets/footer/index.ts","./src/widgets/footer/ui/footer.tsx","./src/widgets/header/index.ts","./src/widgets/header/ui/header.tsx","./src/widgets/hero/index.ts","./src/widgets/hero/lib/usecountdown.ts","./src/widgets/hero/ui/conversionflow.tsx","./src/widgets/hero/ui/countdown.tsx","./src/widgets/hero/ui/exchangecard.tsx","./src/widgets/hero/ui/hero.tsx","./src/widgets/kyc-verification/index.ts","./src/widgets/kyc-verification/model/usekyc.ts","./src/widgets/kyc-verification/ui/kycmodal.tsx","./src/widgets/kyc-verification/ui/kycwidget.tsx","./src/widgets/login-form/index.ts","./src/widgets/login-form/model/useloginform.ts","./src/widgets/login-form/ui/loginform.tsx","./src/widgets/networks-table/index.ts","./src/widgets/networks-table/model/networks.ts","./src/widgets/networks-table/ui/networkstable.tsx","./src/widgets/pools/index.ts","./src/widgets/pools/model/meta.ts","./src/widgets/pools/ui/lpdepositcard.tsx","./src/widgets/pools/ui/lppositionspanel.tsx","./src/widgets/pools/ui/lpremovemodal.tsx","./src/widgets/pools/ui/poolstable.tsx","./src/widgets/pools/ui/poolswidget.tsx","./src/widgets/profile/index.ts","./src/widgets/profile/ui/avatarcropmodal.tsx","./src/widgets/profile/ui/profileavatar.tsx","./src/widgets/profile/ui/profilesection.tsx","./src/widgets/profile/ui/getcroppedimg.ts","./src/widgets/purchase-requests-list/index.ts","./src/widgets/purchase-requests-list/ui/purchaserequestslist.tsx","./src/widgets/receive-modal/index.ts","./src/widgets/receive-modal/ui/receivemodal.tsx","./src/widgets/register-form/index.ts","./src/widgets/register-form/model/useregisterform.ts","./src/widgets/register-form/ui/individualform.tsx","./src/widgets/register-form/ui/legalregisterinfo.tsx","./src/widgets/register-form/ui/registerform.tsx","./src/widgets/restore-password-form/index.ts","./src/widgets/restore-password-form/ui/restorepasswordform.tsx","./src/widgets/seed-phrase/index.ts","./src/widgets/seed-phrase/model/useseedphrase.ts","./src/widgets/seed-phrase/ui/seedphrasewidget.tsx","./src/widgets/send-modal/index.ts","./src/widgets/send-modal/model/sendtypes.ts","./src/widgets/send-modal/ui/sendmodal.tsx","./src/widgets/staking/index.ts","./src/widgets/staking/model/meta.ts","./src/widgets/staking/ui/chaintoggle.tsx","./src/widgets/staking/ui/positionspanel.tsx","./src/widgets/staking/ui/stakecard.tsx","./src/widgets/staking/ui/stakequotepanel.tsx","./src/widgets/staking/ui/stakingwidget.tsx","./src/widgets/staking/ui/unstakemodal.tsx","./src/widgets/staking/ui/withdrawnotice.tsx","./src/widgets/swap-bridge-tabs/index.ts","./src/widgets/swap-bridge-tabs/ui/swapbridgetabs.tsx","./src/widgets/swap-form/index.ts","./src/widgets/swap-form/model/useswapform.ts","./src/widgets/swap-form/ui/raterow.tsx","./src/widgets/swap-form/ui/swapcard.tsx","./src/widgets/swap-form/ui/swapconfirmmodal.tsx","./src/widgets/swap-form/ui/swapdirectionbutton.tsx","./src/widgets/swap-form/ui/swapform.tsx","./src/widgets/swap-form/ui/swapinfopanel.tsx","./src/widgets/swap-form/ui/tokenselect.tsx","./src/widgets/swap-form/ui/trxconfirmmodal.tsx","./src/widgets/token-table/index.ts","./src/widgets/token-table/model/tokens.ts","./src/widgets/token-table/model/usechaintokenrows.ts","./src/widgets/token-table/ui/tokentable.tsx","./src/widgets/transactions-list/index.ts","./src/widgets/transactions-list/model/format.ts","./src/widgets/transactions-list/model/paymentstatuslabels.ts","./src/widgets/transactions-list/ui/copybutton.tsx","./src/widgets/transactions-list/ui/orderaccordion.tsx","./src/widgets/transactions-list/ui/statusbadge.tsx","./src/widgets/transactions-list/ui/transactionslist.tsx","./src/widgets/wallet-chain-tabs/index.ts","./src/widgets/wallet-chain-tabs/ui/walletchaintabs.tsx","./src/widgets/wallet-header/index.ts","./src/widgets/wallet-header/ui/walletheader.tsx","./src/widgets/wallet-layout/index.ts","./src/widgets/wallet-layout/ui/walletlayout.tsx"],"version":"5.6.3"} \ No newline at end of file