PageSourceSearch

https://serversideanalytics.ai/assets/index-C2iM5ZjE.js

js serversideanalytics.ai collected 2026-10-05 12:35:33 UTC 887,180 bytes, 286 lines download raw bytes

vendor: 6,401 bytes, lines 1-9
1var pC=Object.defineProperty;var Xm=e=>{throw TypeError(e)};var fC=(e,t,n)=>t in e?pC(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var Yn=(e,t,n)=>fC(e,typeof t!="symbol"?t+"":t,n),vu=(e,t,n)=>t.has(e)||Xm("Cannot "+n);var F=(e,t,n)=>(vu(e,t,"read from private field"),n?n.call(e):t.get(e)),pe=(e,t,n)=>t.has(e)?Xm("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),te=(e,t,n,r)=>(vu(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n),Xe=(e,t,n)=>(vu(e,t,"access private method"),n);var La=(e,t,n,r)=>({set _(i){te(e,t,i,n)},get _(){return F(e,t,r)}});function hC(e,t){for(var n=0;n<t.length;n++){const r=t[n];if(typeof r!="string"&&!Array.isArray(r)){for(const i in r)if(i!=="default"&&!(i in e)){const s=Object.getOwnPropertyDescriptor(r,i);s&&Object.defineProperty(e,i,s.get?s:{enumerable:!0,get:()=>r[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))r(i);new MutationObserver(i=>{for(const s of i)if(s.type==="childList")for(const o of s.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function n(i){const s={};return i.integrity&&(s.integrity=i.integrity),i.referrerPolicy&&(s.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?s.credentials="include":i.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function r(i){if(i.ep)return;i.ep=!0;const s=n(i);fetch(i.href,s)}})();var Ll=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Oi(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var mw={exports:{}},Nc={},gw={exports:{}},oe={};/**
2 * @license React
3 * react.production.min.js
4 *
5 * Copyright (c) Facebook, Inc. and its affiliates.
6 *
7 * This source code is licensed under the MIT license found in the
8 * LICENSE file in the root directory of this source tree.
9 */var ka=Symbol.for("react.element"),mC=Symbol.for("react.portal"),gC=Symbol.for("react.fragment"),yC=Symbol.for("react.strict_mode"),vC=Symbol.for("react.profiler"),xC=Symbol.for("react.provider"),wC=Symbol.for("react.context"),bC=Symbol.for("react.forward_ref"),kC=Symbol.for("react.suspense"),SC=Symbol.for("react.memo"),TC=Symbol.for("react.lazy"),Jm=Symbol.iterator;function CC(e){return e===null||typeof e!="object"?null:(e=Jm&&e[Jm]||e["@@iterator"],typeof e=="function"?e:null)}var yw={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},vw=Object.assign,xw={};function Hs(e,t,n){this.props=e,this.context=t,this.refs=xw,this.updater=n||yw}Hs.prototype.isReactComponent={};Hs.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};Hs.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function ww(){}ww.prototype=Hs.prototype;function jf(e,t,n){this.props=e,this.context=t,this.refs=xw,this.updater=n||yw}var Nf=jf.prototype=new ww;Nf.constructor=jf;vw(Nf,Hs.prototype);Nf.isPureReactComponent=!0;var Zm=Array.isArray,bw=Object.prototype.hasOwnProperty,Af={current:null},kw={key:!0,ref:!0,__self:!0,__source:!0};function Sw(e,t,n){var r,i={},s=null,o=null;if(t!=null)for(r in t.ref!==void 0&&(o=t.ref),t.key!==void 0&&(s=""+t.key),t)bw.call(t,r)&&!kw.hasOwnProperty(r)&&(i[r]=t[r]);var l=arguments.length-2;if(l===1)i.children=n;else if(1<l){for(var c=Array(l),u=0;u<l;u++)c[u]=arguments[u+2];i.children=c}if(e&&e.defaultProps)for(r in l=e.defaultProps,l)i[r]===void 0&&(i[r]=l[r]);return{$$typeof:ka,type:e,key:s,ref:o,props:i,_owner:Af.current}}function jC(e,t){return{$$typeof:ka,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}function Pf(e){return typeof e=="object"&&e!==null&&e.$$typeof===ka}function NC(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(n){return t[n]})}var eg=/\/+/g;function xu(e,t){return typeof e=="object"&&e!==null&&e.key!=null?NC(""+e.key):t.toString(36)}function hl(e,t,n,r,i){var s=typeof e;(s==="undefined"||s==="boolean")&&(e=null);var o=!1;if(e===null)o=!0;else switch(s){case"string":case"number":o=!0;break;case"object":switch(e.$$typeof){case ka:case mC:o=!0}}if(o)return o=e,i=i(o),e=r===""?"."+xu(o,0):r,Zm(i)?(n="",e!=null&&(n=e.replace(eg,"$&/")+"/"),hl(i,t,n,"",function(u){return u})):i!=null&&(Pf(i)&&(i=jC(i,n+(!i.key||o&&o.key===i.key?"":(""+i.key).replace(eg,"$&/")+"/")+e)),t.push(i)),1;if(o=0,r=r===""?".":r+":",Zm(e))for(var l=0;l<e.length;l++){s=e[l];var c=r+xu(s,l);o+=hl(s,t,n,c,i)}else if(c=CC(e),typeof c=="function")for(e=c.call(e),l=0;!(s=e.next()).done;)s=s.value,c=r+xu(s,l++),o+=hl(s,t,n,c,i);else if(s==="object")throw t=String(e),Error("Objects are not valid as a React child (found: "+(t==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return o}function _a(e,t,n){if(e==null)return e;var r=[],i=0;return hl(e,r,"","",function(s){return t.call(n,s,i++)}),r}function AC(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(n){(e._status===0||e._status===-1)&&(e._status=1,e._result=n)},function(n){(e._status===0||e._status===-1)&&(e._status=2,e._result=n)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var mt={current:null},ml={transition:null},PC={ReactCurrentDispatcher:mt,ReactCurrentBatchConfig:ml,ReactCurrentOwner:Af};function Tw(){throw Error("act(...) is not supported in production builds of React.")}oe.Children={map:_a,forEach:function(e,t,n){_a(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return _a(e,function(){t++}),t},toArray:function(e){return _a(e,function(t){return t})||[]},only:function(e){if(!Pf(e))throw Error("React.Children.only expected to receive a single React element child.");return e}};oe.Component=Hs;oe.Fragment=gC;oe.Profiler=vC;oe.PureComponent=jf;oe.StrictMode=yC;oe.Suspense=kC;
vendor: 5,025 bytes, lines 9-25
9oe.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=PC;oe.act=Tw;oe.cloneElement=function(e,t,n){if(e==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var r=vw({},e.props),i=e.key,s=e.ref,o=e._owner;if(t!=null){if(t.ref!==void 0&&(s=t.ref,o=Af.current),t.key!==void 0&&(i=""+t.key),e.type&&e.type.defaultProps)var l=e.type.defaultProps;for(c in t)bw.call(t,c)&&!kw.hasOwnProperty(c)&&(r[c]=t[c]===void 0&&l!==void 0?l[c]:t[c])}var c=arguments.length-2;if(c===1)r.children=n;else if(1<c){l=Array(c);for(var u=0;u<c;u++)l[u]=arguments[u+2];r.children=l}return{$$typeof:ka,type:e.type,key:i,ref:s,props:r,_owner:o}};oe.createContext=function(e){return e={$$typeof:wC,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},e.Provider={$$typeof:xC,_context:e},e.Consumer=e};oe.createElement=Sw;oe.createFactory=function(e){var t=Sw.bind(null,e);return t.type=e,t};oe.createRef=function(){return{current:null}};oe.forwardRef=function(e){return{$$typeof:bC,render:e}};oe.isValidElement=Pf;oe.lazy=function(e){return{$$typeof:TC,_payload:{_status:-1,_result:e},_init:AC}};oe.memo=function(e,t){return{$$typeof:SC,type:e,compare:t===void 0?null:t}};oe.startTransition=function(e){var t=ml.transition;ml.transition={};try{e()}finally{ml.transition=t}};oe.unstable_act=Tw;oe.useCallback=function(e,t){return mt.current.useCallback(e,t)};oe.useContext=function(e){return mt.current.useContext(e)};oe.useDebugValue=function(){};oe.useDeferredValue=function(e){return mt.current.useDeferredValue(e)};oe.useEffect=function(e,t){return mt.current.useEffect(e,t)};oe.useId=function(){return mt.current.useId()};oe.useImperativeHandle=function(e,t,n){return mt.current.useImperativeHandle(e,t,n)};oe.useInsertionEffect=function(e,t){return mt.current.useInsertionEffect(e,t)};oe.useLayoutEffect=function(e,t){return mt.current.useLayoutEffect(e,t)};oe.useMemo=function(e,t){return mt.current.useMemo(e,t)};oe.useReducer=function(e,t,n){return mt.current.useReducer(e,t,n)};oe.useRef=function(e){return mt.current.useRef(e)};oe.useState=function(e){return mt.current.useState(e)};oe.useSyncExternalStore=function(e,t,n){return mt.current.useSyncExternalStore(e,t,n)};oe.useTransition=function(){return mt.current.useTransition()};oe.version="18.3.1";gw.exports=oe;var b=gw.exports;const L=Oi(b),Ef=hC({__proto__:null,default:L},[b]);/**
10 * @license React
11 * react-jsx-runtime.production.min.js
12 *
13 * Copyright (c) Facebook, Inc. and its affiliates.
14 *
15 * This source code is licensed under the MIT license found in the
16 * LICENSE file in the root directory of this source tree.
17 */var EC=b,MC=Symbol.for("react.element"),IC=Symbol.for("react.fragment"),RC=Object.prototype.hasOwnProperty,DC=EC.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,FC={key:!0,ref:!0,__self:!0,__source:!0};function Cw(e,t,n){var r,i={},s=null,o=null;n!==void 0&&(s=""+n),t.key!==void 0&&(s=""+t.key),t.ref!==void 0&&(o=t.ref);for(r in t)RC.call(t,r)&&!FC.hasOwnProperty(r)&&(i[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps,t)i[r]===void 0&&(i[r]=t[r]);return{$$typeof:MC,type:e,key:s,ref:o,props:i,_owner:DC.current}}Nc.Fragment=IC;Nc.jsx=Cw;Nc.jsxs=Cw;mw.exports=Nc;var a=mw.exports,jw={exports:{}},zt={},Nw={exports:{}},Aw={};/**
18 * @license React
19 * scheduler.production.min.js
20 *
21 * Copyright (c) Facebook, Inc. and its affiliates.
22 *
23 * This source code is licensed under the MIT license found in the
24 * LICENSE file in the root directory of this source tree.
25 */(function(e){function t(E,D){var S=E.length;E.push(D);e:for(;0<S;){var Q=S-1>>>1,Y=E[Q];if(0<i(Y,D))E[Q]=D,E[S]=Y,S=Q;else break e}}function n(E){return E.length===0?null:E[0]}function r(E){if(E.length===0)return null;var D=E[0],S=E.pop();if(S!==D){E[0]=S;e:for(var Q=0,Y=E.length,j=Y>>>1;Q<j;){var X=2*(Q+1)-1,me=E[X],ce=X+1,ae=E[ce];if(0>i(me,S))ce<Y&&0>i(ae,me)?(E[Q]=ae,E[ce]=S,Q=ce):(E[Q]=me,E[X]=S,Q=X);else if(ce<Y&&0>i(ae,S))E[Q]=ae,E[ce]=S,Q=ce;else break e}}return D}function i(E,D){var S=E.sortIndex-D.sortIndex;return S!==0?S:E.id-D.id}if(typeof performance=="object"&&typeof performance.now=="function"){var s=performance;e.unstable_now=function(){return s.now()}}else{var o=Date,l=o.now();e.unstable_now=function(){return o.now()-l}}var c=[],u=[],d=1,p=null,h=3,f=!1,x=!1,g=!1,w=typeof setTimeout=="function"?setTimeout:null,m=typeof clearTimeout=="function"?clearTimeout:null,y=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function v(E){for(var D=n(u);D!==null;){if(D.callback===null)r(u);else if(D.startTime<=E)r(u),D.sortIndex=D.expirationTime,t(c,D);else break;D=n(u)}}function k(E){if(g=!1,v(E),!x)if(n(c)!==null)x=!0,K(C);else{var D=n(u);D!==null&&V(k,D.startTime-E)}}function C(E,D){x=!1,g&&(g=!1,m(A),A=-1),f=!0;var S=h;try{for(v(D),p=n(c);p!==null&&(!(p.expirationTime>
vendor: 9,184 bytes, lines 25-34
25D)||E&&!O());){var Q=p.callback;if(typeof Q=="function"){p.callback=null,h=p.priorityLevel;var Y=Q(p.expirationTime<=D);D=e.unstable_now(),typeof Y=="function"?p.callback=Y:p===n(c)&&r(c),v(D)}else r(c);p=n(c)}if(p!==null)var j=!0;else{var X=n(u);X!==null&&V(k,X.startTime-D),j=!1}return j}finally{p=null,h=S,f=!1}}var T=!1,N=null,A=-1,P=5,M=-1;function O(){return!(e.unstable_now()-M<P)}function R(){if(N!==null){var E=e.unstable_now();M=E;var D=!0;try{D=N(!0,E)}finally{D?U():(T=!1,N=null)}}else T=!1}var U;if(typeof y=="function")U=function(){y(R)};else if(typeof MessageChannel<"u"){var _=new MessageChannel,$=_.port2;_.port1.onmessage=R,U=function(){$.postMessage(null)}}else U=function(){w(R,0)};function K(E){N=E,T||(T=!0,U())}function V(E,D){A=w(function(){E(e.unstable_now())},D)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(E){E.callback=null},e.unstable_continueExecution=function(){x||f||(x=!0,K(C))},e.unstable_forceFrameRate=function(E){0>E||125<E?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):P=0<E?Math.floor(1e3/E):5},e.unstable_getCurrentPriorityLevel=function(){return h},e.unstable_getFirstCallbackNode=function(){return n(c)},e.unstable_next=function(E){switch(h){case 1:case 2:case 3:var D=3;break;default:D=h}var S=h;h=D;try{return E()}finally{h=S}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=function(){},e.unstable_runWithPriority=function(E,D){switch(E){case 1:case 2:case 3:case 4:case 5:break;default:E=3}var S=h;h=E;try{return D()}finally{h=S}},e.unstable_scheduleCallback=function(E,D,S){var Q=e.unstable_now();switch(typeof S=="object"&&S!==null?(S=S.delay,S=typeof S=="number"&&0<S?Q+S:Q):S=Q,E){case 1:var Y=-1;break;case 2:Y=250;break;case 5:Y=1073741823;break;case 4:Y=1e4;break;default:Y=5e3}return Y=S+Y,E={id:d++,callback:D,priorityLevel:E,startTime:S,expirationTime:Y,sortIndex:-1},S>Q?(E.sortIndex=S,t(u,E),n(c)===null&&E===n(u)&&(g?(m(A),A=-1):g=!0,V(k,S-Q))):(E.sortIndex=Y,t(c,E),x||f||(x=!0,K(C))),E},e.unstable_shouldYield=O,e.unstable_wrapCallback=function(E){var D=h;return function(){var S=h;h=D;try{return E.apply(this,arguments)}finally{h=S}}}})(Aw);Nw.exports=Aw;var OC=Nw.exports;/**
26 * @license React
27 * react-dom.production.min.js
28 *
29 * Copyright (c) Facebook, Inc. and its affiliates.
30 *
31 * This source code is licensed under the MIT license found in the
32 * LICENSE file in the root directory of this source tree.
33 */var LC=b,Bt=OC;function B(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var Pw=new Set,Ho={};function Li(e,t){Ms(e,t),Ms(e+"Capture",t)}function Ms(e,t){for(Ho[e]=t,e=0;e<t.length;e++)Pw.add(t[e])}var ir=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Md=Object.prototype.hasOwnProperty,_C=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,tg={},ng={};function BC(e){return Md.call(ng,e)?!0:Md.call(tg,e)?!1:_C.test(e)?ng[e]=!0:(tg[e]=!0,!1)}function GC(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function zC(e,t,n,r){if(t===null||typeof t>"u"||GC(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function gt(e,t,n,r,i,s,o){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=i,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=s,this.removeEmptyString=o}var Qe={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){Qe[e]=new gt(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];Qe[t]=new gt(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){Qe[e]=new gt(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){Qe[e]=new gt(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){Qe[e]=new gt(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){Qe[e]=new gt(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){Qe[e]=new gt(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){Qe[e]=new gt(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){Qe[e]=new gt(e,5,!1,e.toLowerCase(),null,!1,!1)});var Mf=/[\-:]([a-z])/g;function If(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(Mf,If);Qe[t]=new gt(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(Mf,If);Qe[t]=new gt(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(Mf,If);Qe[t]=new gt(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){Qe[e]=new gt(e,1,!1,e.toLowerCase(),null,!1,!1)});Qe.xlinkHref=new gt("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){Qe[e]=new gt(e,1,!1,e.toLowerCase(),null,!0,!0)});function Rf(e,t,n,r){var i=Qe.hasOwnProperty(t)?Qe[t]:null;(i!==null?i.type!==0:r||!(2<t.length)||t[0]!=="o"&&t[0]!=="O"||t[1]!=="n"&&t[1]!=="N")&&(zC(t,n,i,r)&&(n=null),r||i===null?BC(t)&&(n===null?e.removeAttribute(t):e.setAttribute(t,""+n)):i.mustUseProperty?e[i.propertyName]=n===null?i.type===3?!1:"":n:(t=i.attributeName,r=i.attributeNamespace,n===null?e.removeAttribute(t):(i=i.type,n=i===3||i===4&&n===!0?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}var dr=LC.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,Ba=Symbol.for("react.element"),qi=Symbol.for("react.portal"),Ki=Symbol.for("react.fragment"),Df=Symbol.for("react.strict_mode"),Id=Symbol.for("react.profiler"),Ew=Symbol.for("react.provider"),Mw=Symbol.for("react.context"),Ff=Symbol.for("react.forward_ref"),Rd=Symbol.for("react.suspense"),Dd=Symbol.for("react.suspense_list"),Of=Symbol.for("react.memo"),Cr=Symbol.for("react.lazy"),Iw=Symbol.for("react.offscreen"),rg=Symbol.iterator;function oo(e){return e===null||typeof e!="object"?null:(e=rg&&e[rg]||e["@@iterator"],typeof e=="function"?e:null)}var Ee=Object.assign,wu;function ko(e){if(wu===void 0)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);wu=t&&t[1]||""}return`
34`+wu+e}var bu=!1;function ku(e,t){if(!e||bu)return"";bu=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(t,[])}catch(u){var r=u}Reflect.construct(e,[],t)}else{try{t.call()}catch(u){r=u}e.call(t.prototype)}else{try{throw Error()}catch(u){r=u}e()}}
vendor: 16,737 bytes, lines 34-37
34catch(u){if(u&&r&&typeof u.stack=="string"){for(var i=u.stack.split(`
35`),s=r.stack.split(`
36`),o=i.length-1,l=s.length-1;1<=o&&0<=l&&i[o]!==s[l];)l--;for(;1<=o&&0<=l;o--,l--)if(i[o]!==s[l]){if(o!==1||l!==1)do if(o--,l--,0>l||i[o]!==s[l]){var c=`
37`+i[o].replace(" at new "," at ");return e.displayName&&c.includes("<anonymous>")&&(c=c.replace("<anonymous>",e.displayName)),c}while(1<=o&&0<=l);break}}}finally{bu=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?ko(e):""}function VC(e){switch(e.tag){case 5:return ko(e.type);case 16:return ko("Lazy");case 13:return ko("Suspense");case 19:return ko("SuspenseList");case 0:case 2:case 15:return e=ku(e.type,!1),e;case 11:return e=ku(e.type.render,!1),e;case 1:return e=ku(e.type,!0),e;default:return""}}function Fd(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Ki:return"Fragment";case qi:return"Portal";case Id:return"Profiler";case Df:return"StrictMode";case Rd:return"Suspense";case Dd:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case Mw:return(e.displayName||"Context")+".Consumer";case Ew:return(e._context.displayName||"Context")+".Provider";case Ff:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Of:return t=e.displayName||null,t!==null?t:Fd(e.type)||"Memo";case Cr:t=e._payload,e=e._init;try{return Fd(e(t))}catch{}}return null}function $C(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Fd(t);case 8:return t===Df?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function qr(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Rw(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function UC(e){var t=Rw(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var i=n.get,s=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(o){r=""+o,s.call(this,o)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(o){r=""+o},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Ga(e){e._valueTracker||(e._valueTracker=UC(e))}function Dw(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=Rw(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function _l(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function Od(e,t){var n=t.checked;return Ee({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function ig(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=qr(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function Fw(e,t){t=t.checked,t!=null&&Rf(e,"checked",t,!1)}function Ld(e,t){Fw(e,t);var n=qr(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?_d(e,t.type,n):t.hasOwnProperty("defaultValue")&&_d(e,t.type,qr(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function sg(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function _d(e,t,n){(t!=="number"||_l(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var So=Array.isArray;function us(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i<n.length;i++)t["$"+n[i]]=!0;for(n=0;n<e.length;n++)i=t.hasOwnProperty("$"+e[n].value),e[n].selected!==i&&(e[n].selected=i),i&&r&&(e[n].defaultSelected=!0)}else{for(n=""+qr(n),t=null,i=0;i<e.length;i++){if(e[i].value===n){e[i].selected=!0,r&&(e[i].defaultSelected=!0);return}t!==null||e[i].disabled||(t=e[i])}t!==null&&(t.selected=!0)}}function Bd(e,t){if(t.dangerouslySetInnerHTML!=null)throw Error(B(91));return Ee({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function og(e,t){var n=t.value;if(n==null){if(n=t.children,t=t.defaultValue,n!=null){if(t!=null)throw Error(B(92));if(So(n)){if(1<n.length)throw Error(B(93));n=n[0]}t=n}t==null&&(t=""),n=t}e._wrapperState={initialValue:qr(n)}}function Ow(e,t){var n=qr(t.value),r=qr(t.defaultValue);n!=null&&(n=""+n,n!==e.value&&(e.value=n),t.defaultValue==null&&e.defaultValue!==n&&(e.defaultValue=n)),r!=null&&(e.defaultValue=""+r)}function ag(e){var t=e.textContent;t===e._wrapperState.initialValue&&t!==""&&t!==null&&(e.value=t)}function Lw(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function Gd(e,t){return e==null||e==="http://www.w3.org/1999/xhtml"?Lw(t):e==="http://www.w3.org/2000/svg"&&t==="foreignObject"?"http://www.w3.org/1999/xhtml":e}var za,_w=function(e){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(t,n,r,i){MSApp.execUnsafeLocalFunction(function(){return e(t,n,r,i)})}:e}(function(e,t){if(e.namespaceURI!=="http://www.w3.org/2000/svg"||"innerHTML"in e)e.innerHTML=t;else{for(za=za||document.createElement("div"),za.innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=za.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Wo(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Ao={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},HC=["Webkit","ms","Moz","O"];Object.keys(Ao).forEach(function(e){HC.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Ao[t]=Ao[e]})});function Bw(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||Ao.hasOwnProperty(e)&&Ao[e]?(""+t).trim():t+"px"}function Gw(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,i=Bw(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,i):e[n]=i}}var WC=Ee({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function zd(e,t){if(t){if(WC[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(B(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(B(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(B(61))}if(t.style!=null&&typeof t.style!="object")throw Error(B(62))}}function Vd(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var $d=null;function Lf(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Ud=null,ds=null,ps=null;function lg(e){if(e=Ca(e)){if(typeof Ud!="function")throw Error(B(280));var t=e.stateNode;t&&(t=Ic(t),Ud(e.stateNode,e.type,t))}}function zw(e){ds?ps?ps.push(e):ps=[e]:ds=e}function Vw(){if(ds){var e=ds,t=ps;if(ps=ds=null,lg(e),t)for(e=0;e<t.length;e++)lg(t[e])}}function $w(e,t){return e(t)}function Uw(){}var Su=!1;function Hw(e,t,n){if(Su)return e(t,n);Su=!0;try{return $w(e,t,n)}finally{Su=!1,(ds!==null||ps!==null)&&(Uw(),Vw())}}function qo(e,t){var n=e.stateNode;if(n===null)return null;var r=Ic(n);if(r===null)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(e=e.type,r=!(e==="button"||e==="input"||e==="select"||e==="textarea")),e=!r;break e;default:e=!1}if(e)return null;if(n&&typeof n!="function")throw Error(B(231,t,typeof n));return n}var Hd=!1;if(ir)try{var ao={};Object.defineProperty(ao,"passive",{get:function(){Hd=!0}}),window.addEventListener("test",ao,ao),window.removeEventListener("test",ao,ao)}catch{Hd=!1}function qC(e,t,n,r,i,s,o,l,c){var u=Array.prototype.slice.call(arguments,3);try{t.apply(n,u)}catch(d){this.onError(d)}}var Po=!1,Bl=null,Gl=!1,Wd=null,KC={onError:function(e){Po=!0,Bl=e}};function YC(e,t,n,r,i,s,o,l,c){Po=!1,Bl=null,qC.apply(KC,arguments)}function QC(e,t,n,r,i,s,o,l,c){if(YC.apply(this,arguments),Po){if(Po){var u=Bl;Po=!1,Bl=null}else throw Error(B(198));Gl||(Gl=!0,Wd=u)}}function _i(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,t.flags&4098&&(n=t.return),e=t.return;while(e)}return t.tag===3?n:null}function Ww(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function cg(e){if(_i(e)!==e)throw Error(B(188))}function XC(e){var t=e.alternate;if(!t){if(t=_i(e),t===null)throw Error(B(188));return t!==e?null:e}for(var n=e,r=t;;){var i=n.return;if(i===null)break;var s=i.alternate;if(s===null){if(r=i.return,r!==null){n=r;continue}break}if(i.child===s.child){for(s=i.child;s;){if(s===n)return cg(i),e;if(s===r)return cg(i),t;s=s.sibling}throw Error(B(188))}if(n.return!==r.return)n=i,r=s;else{for(var o=!1,l=i.child;l;){if(l===n){o=!0,n=i,r=s;break}if(l===r){o=!0,r=i,n=s;break}l=l.sibling}if(!o){for(l=s.child;l;){if(l===n){o=!0,n=s,r=i;break}if(l===r){o=!0,r=s,n=i;break}l=l.sibling}if(!o)throw Error(B(189))}}if(n.alternate!==r)throw Error(B(190))}if(n.tag!==3)throw Error(B(188));return n.stateNode.current===n?e:t}function qw(e){return e=XC(e),e!==null?Kw(e):null}function Kw(e){if(e.tag===5||e.tag===6)return e;for(e=e.child;e!==null;){var t=Kw(e);if(t!==null)return t;e=e.sibling}return null}var Yw=Bt.unstable_scheduleCallback,ug=Bt.unstable_cancelCallback,JC=Bt.unstable_shouldYield,ZC=Bt.unstable_requestPaint,Re=Bt.unstable_now,ej=Bt.unstable_getCurrentPriorityLevel,_f=Bt.unstable_ImmediatePriority,Qw=Bt.unstable_UserBlockingPriority,zl=Bt.unstable_NormalPriority,tj=Bt.unstable_LowPriority,Xw=Bt.unstable_IdlePriority,Ac=null,Ln=null;function nj(e){if(Ln&&typeof Ln.onCommitFiberRoot=="function")try{Ln.onCommitFiberRoot(Ac,e,void 0,(e.current.flags&128)===128)}catch{}}var xn=Math.clz32?Math.clz32:sj,rj=Math.log,ij=Math.LN2;function sj(e){return e>>>=0,e===0?32:31-(rj(e)/ij|0)|0}var Va=64,$a=4194304;function To(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Vl(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,i=e.suspendedLanes,s=e.pingedLanes,o=n&268435455;if(o!==0){var l=o&~i;l!==0?r=To(l):(s&=o,s!==0&&(r=To(s)))}else o=n&~i,o!==0?r=To(o):s!==0&&(r=To(s));if(r===0)return 0;if(t!==0&&t!==r&&!(t&i)&&(i=r&-r,s=t&-t,i>=s||i===16&&(s&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0<t;)n=31-xn(t),i=1<<n,r|=e[n],t&=~i;return r}function oj(e,t){switch(e){case 1:case 2:case 4:return t+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function aj(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,s=e.pendingLanes;0<s;){var o=31-xn(s),l=1<<o,c=i[o];c===-1?(!(l&n)||l&r)&&(i[o]=oj(l,t)):c<=t&&(e.expiredLanes|=l),s&=~l}}function qd(e){return e=e.pendingLanes&-1073741825,e!==0?e:e&1073741824?1073741824:0}function Jw(){var e=Va;return Va<<=1,!(Va&4194240)&&(Va=64),e}function Tu(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Sa(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-xn(t),e[t]=n}function lj(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0<n;){var i=31-xn(n),s=1<<i;t[i]=0,r[i]=-1,e[i]=-1,n&=~s}}function Bf(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-xn(n),i=1<<r;i&t|e[r]&t&&(e[r]|=t),n&=~i}}var he=0;function Zw(e){return e&=-e,1<e?4<e?e&268435455?16:536870912:4:1}var e0,Gf,t0,n0,r0,Kd=!1,Ua=[],_r=null,Br=null,Gr=null,Ko=new Map,Yo=new Map,Nr=[],cj="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function dg(e,t){switch(e){case"focusin":case"focusout":_r=null;break;case"dragenter":case"dragleave":Br=null;break;case"mouseover":case"mouseout":Gr=null;break;case"pointerover":case"pointerout":Ko.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":Yo.delete(t.pointerId)}}function lo(e,t,n,r,i,s){return e===null||e.nativeEvent!==s?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:s,targetContainers:[i]},t!==null&&(t=Ca(t),t!==null&&Gf(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,i!==null&&t.indexOf(i)===-1&&t.push(i),e)}function uj(e,t,n,r,i){switch(t){case"focusin":return _r=lo(_r,e,t,n,r,i),!0;case"dragenter":return Br=lo(Br,e,t,n,r,i),!0;case"mouseover":return Gr=lo(Gr,e,t,n,r,i),!0;case"pointerover":var s=i.pointerId;return Ko.set(s,lo(Ko.get(s)||null,e,t,n,r,i)),!0;case"gotpointercapture":return s=i.pointerId,Yo.set(s,lo(Yo.get(s)||null,e,t,n,r,i)),!0}return!1}function i0(e){var t=mi(e.target);if(t!==null){var n=_i(t);if(n!==null){if(t=n.tag,t===13){if(t=Ww(n),t!==null){e.blockedOn=t,r0(e.priority,function(){t0(n)});return}}else if(t===3&&n.stateNode.current.memoizedState.isDehydrated){e.blockedOn=n.tag===3?n.stateNode.containerInfo:null;return}}}e.blockedOn=null}function gl(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var n=Yd(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(n===null){n=e.nativeEvent;var r=new n.constructor(n.type,n);$d=r,n.target.dispatchEvent(r),$d=null}else return t=Ca(n),t!==null&&Gf(t),e.blockedOn=n,!1;t.shift()}return!0}function pg(e,t,n){gl(e)&&n.delete(t)}function dj(){Kd=!1,_r!==null&&gl(_r)&&(_r=null),Br!==null&&gl(Br)&&(Br=null),Gr!==null&&gl(Gr)&&(Gr=null),Ko.forEac
vendor: 11,841 bytes, line 37
37h(pg),Yo.forEach(pg)}function co(e,t){e.blockedOn===t&&(e.blockedOn=null,Kd||(Kd=!0,Bt.unstable_scheduleCallback(Bt.unstable_NormalPriority,dj)))}function Qo(e){function t(i){return co(i,e)}if(0<Ua.length){co(Ua[0],e);for(var n=1;n<Ua.length;n++){var r=Ua[n];r.blockedOn===e&&(r.blockedOn=null)}}for(_r!==null&&co(_r,e),Br!==null&&co(Br,e),Gr!==null&&co(Gr,e),Ko.forEach(t),Yo.forEach(t),n=0;n<Nr.length;n++)r=Nr[n],r.blockedOn===e&&(r.blockedOn=null);for(;0<Nr.length&&(n=Nr[0],n.blockedOn===null);)i0(n),n.blockedOn===null&&Nr.shift()}var fs=dr.ReactCurrentBatchConfig,$l=!0;function pj(e,t,n,r){var i=he,s=fs.transition;fs.transition=null;try{he=1,zf(e,t,n,r)}finally{he=i,fs.transition=s}}function fj(e,t,n,r){var i=he,s=fs.transition;fs.transition=null;try{he=4,zf(e,t,n,r)}finally{he=i,fs.transition=s}}function zf(e,t,n,r){if($l){var i=Yd(e,t,n,r);if(i===null)Du(e,t,r,Ul,n),dg(e,r);else if(uj(i,e,t,n,r))r.stopPropagation();else if(dg(e,r),t&4&&-1<cj.indexOf(e)){for(;i!==null;){var s=Ca(i);if(s!==null&&e0(s),s=Yd(e,t,n,r),s===null&&Du(e,t,r,Ul,n),s===i)break;i=s}i!==null&&r.stopPropagation()}else Du(e,t,r,null,n)}}var Ul=null;function Yd(e,t,n,r){if(Ul=null,e=Lf(r),e=mi(e),e!==null)if(t=_i(e),t===null)e=null;else if(n=t.tag,n===13){if(e=Ww(t),e!==null)return e;e=null}else if(n===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null);return Ul=e,null}function s0(e){switch(e){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(ej()){case _f:return 1;case Qw:return 4;case zl:case tj:return 16;case Xw:return 536870912;default:return 16}default:return 16}}var Dr=null,Vf=null,yl=null;function o0(){if(yl)return yl;var e,t=Vf,n=t.length,r,i="value"in Dr?Dr.value:Dr.textContent,s=i.length;for(e=0;e<n&&t[e]===i[e];e++);var o=n-e;for(r=1;r<=o&&t[n-r]===i[s-r];r++);return yl=i.slice(e,1<r?1-r:void 0)}function vl(e){var t=e.keyCode;return"charCode"in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function Ha(){return!0}function fg(){return!1}function Vt(e){function t(n,r,i,s,o){this._reactName=n,this._targetInst=i,this.type=r,this.nativeEvent=s,this.target=o,this.currentTarget=null;for(var l in e)e.hasOwnProperty(l)&&(n=e[l],this[l]=n?n(s):s[l]);return this.isDefaultPrevented=(s.defaultPrevented!=null?s.defaultPrevented:s.returnValue===!1)?Ha:fg,this.isPropagationStopped=fg,this}return Ee(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var n=this.nativeEvent;n&&(n.preventDefault?n.preventDefault():typeof n.returnValue!="unknown"&&(n.returnValue=!1),this.isDefaultPrevented=Ha)},stopPropagation:function(){var n=this.nativeEvent;n&&(n.stopPropagation?n.stopPropagation():typeof n.cancelBubble!="unknown"&&(n.cancelBubble=!0),this.isPropagationStopped=Ha)},persist:function(){},isPersistent:Ha}),t}var Ws={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},$f=Vt(Ws),Ta=Ee({},Ws,{view:0,detail:0}),hj=Vt(Ta),Cu,ju,uo,Pc=Ee({},Ta,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Uf,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==uo&&(uo&&e.type==="mousemove"?(Cu=e.screenX-uo.screenX,ju=e.screenY-uo.screenY):ju=Cu=0,uo=e),Cu)},movementY:function(e){return"movementY"in e?e.movementY:ju}}),hg=Vt(Pc),mj=Ee({},Pc,{dataTransfer:0}),gj=Vt(mj),yj=Ee({},Ta,{relatedTarget:0}),Nu=Vt(yj),vj=Ee({},Ws,{animationName:0,elapsedTime:0,pseudoElement:0}),xj=Vt(vj),wj=Ee({},Ws,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),bj=Vt(wj),kj=Ee({},Ws,{data:0}),mg=Vt(kj),Sj={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},Tj={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Cj={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function jj(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=Cj[e])?!!t[e]:!1}function Uf(){return jj}var Nj=Ee({},Ta,{key:function(e){if(e.key){var t=Sj[e.key]||e.key;if(t!=="Unidentified")return t}return e.type==="keypress"?(e=vl(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?Tj[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Uf,charCode:function(e){return e.type==="keypress"?vl(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?vl(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),Aj=Vt(Nj),Pj=Ee({},Pc,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),gg=Vt(Pj),Ej=Ee({},Ta,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Uf}),Mj=Vt(Ej),Ij=Ee({},Ws,{propertyName:0,elapsedTime:0,pseudoElement:0}),Rj=Vt(Ij),Dj=Ee({},Pc,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),Fj=Vt(Dj),Oj=[9,13,27,32],Hf=ir&&"CompositionEvent"in window,Eo=null;ir&&"documentMode"in document&&(Eo=document.documentMode);var Lj=ir&&"TextEvent"in window&&!Eo,a0=ir&&(!Hf||Eo&&8<Eo&&11>=Eo),yg=" ",vg=!1;function l0(e,t){switch(e){case"keyup":return Oj.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function c0(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Yi=!1;function _j(e,t){switch(e){case"compositionend":return c0(t);case"keypress":return t.which!==32?null:(vg=!0,yg);case"textInput":return e=t.data,e===yg&&vg?null:e;default:return null}}function Bj(e,t){if(Yi)return e==="compositionend"||!Hf&&l0(e,t)?(e=o0(),yl=Vf=Dr=null,Yi=!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.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return a0&&t.locale!=="ko"?null:t.data;default:return null}}var Gj={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function xg(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t==="input"?!!Gj[e.type]:t==="textarea"}function u0(e,t,n,r){zw(r),t=Hl(t,"onChange"),0<t.length&&(n=new $f("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Mo=null,Xo=null;function zj(e){b0(e,0)}function Ec(e){var t=Ji(e);if(Dw(t))return e}function Vj(e,t){if(e==="change")return t}var d0=!1;if(ir){var Au;if(ir){var Pu="oninput"in document;if(!Pu){var wg=document.createElement("div");wg.setAttribute("oninput","return;"),Pu=typeof wg.oninput=="function"}Au=Pu}else Au=!1;d0=Au&&(!document.documentMode||9<document.documentMode)}function bg(){Mo&&(Mo.detachEvent("onpropertychange",p0),Xo=Mo=null)}function p0(e){if(e.propertyName==="value"&&Ec(Xo)){var t=[];u0(t,Xo,e,Lf(e)),Hw(zj,t)}}function $j(e,t,n){e==="focusin"?(bg(),Mo=t,Xo=n,Mo.attachEvent("onpropertychange",p0)):e==="focusout"&&bg()}function Uj(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return Ec(Xo)}function Hj(e,t){if(e==="click")return Ec(t)}function Wj(e,t){if(e==="input"||e==="change")return Ec(t)}function qj(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var bn=typeof Object.is=="function"?Object.is:qj;function Jo(e,t){if(bn(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var i=n[r];if(!Md.call(t,i)||!bn(e[i],t[i]))return!1}return!0}function kg(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Sg(e,t){var n=kg(e);e=0;for(var r;n;){if(n.nodeType===3){if(r=e+n.textContent.length,e<=t&&r>=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=kg(n)}}function f0(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?f0(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function h0(){for(var e=window,t=_l();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=_l(e.document)}return t}function Wf(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function Kj(e){var t=h0(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&f0(n.ownerDocument.documentElement,n)){if(r!==null&&Wf(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var i=n.textContent.length,s=Math.min(r.start,i);r=r.end===void 0?s:Math.min(r.end,i),!e.extend&&s>r&&(i=r,r=s,s=i),i=Sg(n,s);var o=Sg(n,r);i&&o&&(e.rangeCount!==1||e.anchorNode!==i.node||e.anchorOffset!==i.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&(t=t.createRange(),t.setStart(i.node,i.offset),e.removeAllRanges(),s>r?(e.addRange(t),e.extend(o.node,o.offset)):(t.setEnd(o.node,o.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n<t.length;n++)e=t[n],e.element.scrollLeft=e.left,e.element.scrollTop=e.top}}var Yj=ir&&"documentMode"in document&&11>=document.documentMode,Qi=null,Qd=null,Io=null,Xd=!1;function Tg(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Xd||Qi==null||Qi!==_l(r)||(r=Qi,"selectionStart"in r&&Wf(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focu
vendor: 3,150 bytes, line 37
37sNode:r.focusNode,focusOffset:r.focusOffset}),Io&&Jo(Io,r)||(Io=r,r=Hl(Qd,"onSelect"),0<r.length&&(t=new $f("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=Qi)))}function Wa(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var Xi={animationend:Wa("Animation","AnimationEnd"),animationiteration:Wa("Animation","AnimationIteration"),animationstart:Wa("Animation","AnimationStart"),transitionend:Wa("Transition","TransitionEnd")},Eu={},m0={};ir&&(m0=document.createElement("div").style,"AnimationEvent"in window||(delete Xi.animationend.animation,delete Xi.animationiteration.animation,delete Xi.animationstart.animation),"TransitionEvent"in window||delete Xi.transitionend.transition);function Mc(e){if(Eu[e])return Eu[e];if(!Xi[e])return e;var t=Xi[e],n;for(n in t)if(t.hasOwnProperty(n)&&n in m0)return Eu[e]=t[n];return e}var g0=Mc("animationend"),y0=Mc("animationiteration"),v0=Mc("animationstart"),x0=Mc("transitionend"),w0=new Map,Cg="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function ei(e,t){w0.set(e,t),Li(t,[e])}for(var Mu=0;Mu<Cg.length;Mu++){var Iu=Cg[Mu],Qj=Iu.toLowerCase(),Xj=Iu[0].toUpperCase()+Iu.slice(1);ei(Qj,"on"+Xj)}ei(g0,"onAnimationEnd");ei(y0,"onAnimationIteration");ei(v0,"onAnimationStart");ei("dblclick","onDoubleClick");ei("focusin","onFocus");ei("focusout","onBlur");ei(x0,"onTransitionEnd");Ms("onMouseEnter",["mouseout","mouseover"]);Ms("onMouseLeave",["mouseout","mouseover"]);Ms("onPointerEnter",["pointerout","pointerover"]);Ms("onPointerLeave",["pointerout","pointerover"]);Li("onChange","change click focusin focusout input keydown keyup selectionchange".split(" "));Li("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" "));Li("onBeforeInput",["compositionend","keypress","textInput","paste"]);Li("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" "));Li("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" "));Li("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Co="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Jj=new Set("cancel close invalid load scroll toggle".split(" ").concat(Co));function jg(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,QC(r,t,void 0,e),e.currentTarget=null}
vendor: 3,878 bytes, line 37
37function b0(e,t){t=(t&4)!==0;for(var n=0;n<e.length;n++){var r=e[n],i=r.event;r=r.listeners;e:{var s=void 0;if(t)for(var o=r.length-1;0<=o;o--){var l=r[o],c=l.instance,u=l.currentTarget;if(l=l.listener,c!==s&&i.isPropagationStopped())break e;jg(i,l,u),s=c}else for(o=0;o<r.length;o++){if(l=r[o],c=l.instance,u=l.currentTarget,l=l.listener,c!==s&&i.isPropagationStopped())break e;jg(i,l,u),s=c}}}if(Gl)throw e=Wd,Gl=!1,Wd=null,e}function be(e,t){var n=t[np];n===void 0&&(n=t[np]=new Set);var r=e+"__bubble";n.has(r)||(k0(t,e,2,!1),n.add(r))}function Ru(e,t,n){var r=0;t&&(r|=4),k0(n,e,r,t)}var qa="_reactListening"+Math.random().toString(36).slice(2);function Zo(e){if(!e[qa]){e[qa]=!0,Pw.forEach(function(n){n!=="selectionchange"&&(Jj.has(n)||Ru(n,!1,e),Ru(n,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[qa]||(t[qa]=!0,Ru("selectionchange",!1,t))}}function k0(e,t,n,r){switch(s0(t)){case 1:var i=pj;break;case 4:i=fj;break;default:i=zf}n=i.bind(null,t,n,e),i=void 0,!Hd||t!=="touchstart"&&t!=="touchmove"&&t!=="wheel"||(i=!0),r?i!==void 0?e.addEventListener(t,n,{capture:!0,passive:i}):e.addEventListener(t,n,!0):i!==void 0?e.addEventListener(t,n,{passive:i}):e.addEventListener(t,n,!1)}function Du(e,t,n,r,i){var s=r;if(!(t&1)&&!(t&2)&&r!==null)e:for(;;){if(r===null)return;var o=r.tag;if(o===3||o===4){var l=r.stateNode.containerInfo;if(l===i||l.nodeType===8&&l.parentNode===i)break;if(o===4)for(o=r.return;o!==null;){var c=o.tag;if((c===3||c===4)&&(c=o.stateNode.containerInfo,c===i||c.nodeType===8&&c.parentNode===i))return;o=o.return}for(;l!==null;){if(o=mi(l),o===null)return;if(c=o.tag,c===5||c===6){r=s=o;continue e}l=l.parentNode}}r=r.return}Hw(function(){var u=s,d=Lf(n),p=[];e:{var h=w0.get(e);if(h!==void 0){var f=$f,x=e;switch(e){case"keypress":if(vl(n)===0)break e;case"keydown":case"keyup":f=Aj;break;case"focusin":x="focus",f=Nu;break;case"focusout":x="blur",f=Nu;break;case"beforeblur":case"afterblur":f=Nu;break;case"click":if(n.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":f=hg;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":f=gj;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":f=Mj;break;case g0:case y0:case v0:f=xj;break;case x0:f=Rj;break;case"scroll":f=hj;break;case"wheel":f=Fj;break;case"copy":case"cut":case"paste":f=bj;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":f=gg}var g=(t&4)!==0,w=!g&&e==="scroll",m=g?h!==null?h+"Capture":null:h;g=[];for(var y=u,v;y!==null;){v=y;var k=v.stateNode;if(v.tag===5&&k!==null&&(v=k,m!==null&&(k=qo(y,m),k!=null&&g.push(ea(y,k,v)))),w)break;y=y.return}0<g.length&&(h=new f(h,x,null,n,d),p.push({event:h,listeners:g}))}}if(!(t&7)){e:{if(h=e==="mouseover"||e==="pointerover",f=e==="mouseout"||e==="pointerout",h&&n!==$d&&(x=n.relatedTarget||n.fromElement)&&(mi(x)||x[sr]))break e;if((f||h)&&(h=d.window===d?d:(h=d.ownerDocument)?h.defaultView||h.parentWindow:window,f?(x=n.relatedTarget||n.toElement,f=u,x=x?mi(x):null,x!==null&&(w=_i(x),x!==w||x.tag!==5&&x.tag!==6)&&(x=null)):(f=null,x=u),f!==x)){if(g=hg,k="onMouseLeave",m="onMouseEnter",y="mouse",(e==="pointerout"||e==="pointerover")&&(g=gg,k="onPointerLeave",m="onPointerEnter",y="pointer"),w=f==null?h:Ji(f),v=x==null?h:Ji(x),h=new g(k,y+"leave",f,n,d),h.target=w,h.relatedTarget=v,k=null,mi(d)===u&&(g=new g(m,y+"enter",x,n,d),g.target=v,g.relatedTarget=w,k=g),w=k,f&&x)t:{for(g=f,m=x,y=0,v=g;v;v=Ui(v))y++;for(v=0,k=m;k;k=Ui(k))v++;for(;0<y-v;)g=Ui(g),y--;for(;0<v-y;)m=Ui(m),v--;for(;y--;){if(g===m||m!==null&&g===m.alternate)break t;g=Ui(g),m=Ui(m)}g=null}else g=null;f!==null&&Ng(p,h,f,g,!1),x!==null&&w!==null&&Ng(p,w,x,g,!0)}}
vendor: 7,582 bytes, lines 37-38
37e:{if(h=u?Ji(u):window,f=h.nodeName&&h.nodeName.toLowerCase(),f==="select"||f==="input"&&h.type==="file")var C=Vj;else if(xg(h))if(d0)C=Wj;else{C=Uj;var T=$j}else(f=h.nodeName)&&f.toLowerCase()==="input"&&(h.type==="checkbox"||h.type==="radio")&&(C=Hj);if(C&&(C=C(e,u))){u0(p,C,n,d);break e}T&&T(e,h,u),e==="focusout"&&(T=h._wrapperState)&&T.controlled&&h.type==="number"&&_d(h,"number",h.value)}switch(T=u?Ji(u):window,e){case"focusin":(xg(T)||T.contentEditable==="true")&&(Qi=T,Qd=u,Io=null);break;case"focusout":Io=Qd=Qi=null;break;case"mousedown":Xd=!0;break;case"contextmenu":case"mouseup":case"dragend":Xd=!1,Tg(p,n,d);break;case"selectionchange":if(Yj)break;case"keydown":case"keyup":Tg(p,n,d)}var N;if(Hf)e:{switch(e){case"compositionstart":var A="onCompositionStart";break e;case"compositionend":A="onCompositionEnd";break e;case"compositionupdate":A="onCompositionUpdate";break e}A=void 0}else Yi?l0(e,n)&&(A="onCompositionEnd"):e==="keydown"&&n.keyCode===229&&(A="onCompositionStart");A&&(a0&&n.locale!=="ko"&&(Yi||A!=="onCompositionStart"?A==="onCompositionEnd"&&Yi&&(N=o0()):(Dr=d,Vf="value"in Dr?Dr.value:Dr.textContent,Yi=!0)),T=Hl(u,A),0<T.length&&(A=new mg(A,e,null,n,d),p.push({event:A,listeners:T}),N?A.data=N:(N=c0(n),N!==null&&(A.data=N)))),(N=Lj?_j(e,n):Bj(e,n))&&(u=Hl(u,"onBeforeInput"),0<u.length&&(d=new mg("onBeforeInput","beforeinput",null,n,d),p.push({event:d,listeners:u}),d.data=N))}b0(p,t)})}function ea(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Hl(e,t){for(var n=t+"Capture",r=[];e!==null;){var i=e,s=i.stateNode;i.tag===5&&s!==null&&(i=s,s=qo(e,n),s!=null&&r.unshift(ea(e,s,i)),s=qo(e,t),s!=null&&r.push(ea(e,s,i))),e=e.return}return r}function Ui(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5);return e||null}function Ng(e,t,n,r,i){for(var s=t._reactName,o=[];n!==null&&n!==r;){var l=n,c=l.alternate,u=l.stateNode;if(c!==null&&c===r)break;l.tag===5&&u!==null&&(l=u,i?(c=qo(n,s),c!=null&&o.unshift(ea(n,c,l))):i||(c=qo(n,s),c!=null&&o.push(ea(n,c,l)))),n=n.return}o.length!==0&&e.push({event:t,listeners:o})}var Zj=/\r\n?/g,eN=/\u0000|\uFFFD/g;function Ag(e){return(typeof e=="string"?e:""+e).replace(Zj,`
38`).replace(eN,"")}function Ka(e,t,n){if(t=Ag(t),Ag(e)!==t&&n)throw Error(B(425))}function Wl(){}var Jd=null,Zd=null;function ep(e,t){return e==="textarea"||e==="noscript"||typeof t.children=="string"||typeof t.children=="number"||typeof t.dangerouslySetInnerHTML=="object"&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var tp=typeof setTimeout=="function"?setTimeout:void 0,tN=typeof clearTimeout=="function"?clearTimeout:void 0,Pg=typeof Promise=="function"?Promise:void 0,nN=typeof queueMicrotask=="function"?queueMicrotask:typeof Pg<"u"?function(e){return Pg.resolve(null).then(e).catch(rN)}:tp;function rN(e){setTimeout(function(){throw e})}function Fu(e,t){var n=t,r=0;do{var i=n.nextSibling;if(e.removeChild(n),i&&i.nodeType===8)if(n=i.data,n==="/$"){if(r===0){e.removeChild(i),Qo(t);return}r--}else n!=="$"&&n!=="$?"&&n!=="$!"||r++;n=i}while(n);Qo(t)}function zr(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t==="$"||t==="$!"||t==="$?")break;if(t==="/$")return null}}return e}function Eg(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="$"||n==="$!"||n==="$?"){if(t===0)return e;t--}else n==="/$"&&t++}e=e.previousSibling}return null}var qs=Math.random().toString(36).slice(2),Rn="__reactFiber$"+qs,ta="__reactProps$"+qs,sr="__reactContainer$"+qs,np="__reactEvents$"+qs,iN="__reactListeners$"+qs,sN="__reactHandles$"+qs;function mi(e){var t=e[Rn];if(t)return t;for(var n=e.parentNode;n;){if(t=n[sr]||n[Rn]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=Eg(e);e!==null;){if(n=e[Rn])return n;e=Eg(e)}return t}e=n,n=e.parentNode}return null}function Ca(e){return e=e[Rn]||e[sr],!e||e.tag!==5&&e.tag!==6&&e.tag!==13&&e.tag!==3?null:e}function Ji(e){if(e.tag===5||e.tag===6)return e.stateNode;throw Error(B(33))}function Ic(e){return e[ta]||null}var rp=[],Zi=-1;function ti(e){return{current:e}}function ke(e){0>Zi||(e.current=rp[Zi],rp[Zi]=null,Zi--)}function ve(e,t){Zi++,rp[Zi]=e.current,e.current=t}var Kr={},rt=ti(Kr),Tt=ti(!1),Ei=Kr;function Is(e,t){var n=e.type.contextTypes;if(!n)return Kr;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var i={},s;for(s in n)i[s]=t[s];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=i),i}function Ct(e){return e=e.childContextTypes,e!=null}function ql(){ke(Tt),ke(rt)}function Mg(e,t,n){if(rt.current!==Kr)throw Error(B(168));ve(rt,t),ve(Tt,n)}function S0(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var i in r)if(!(i in t))throw Error(B(108,$C(e)||"Unknown",i));return Ee({},n,r)}function Kl(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Kr,Ei=rt.current,ve(rt,e),ve(Tt,Tt.current),!0}function Ig(e,t,n){var r=e.stateNode;if(!r)throw Error(B(169));n?(e=S0(e,t,Ei),r.__reactInternalMemoizedMergedChildContext=e,ke(Tt),ke(rt),ve(rt,e)):ke(Tt),ve(Tt,n)}var Zn=null,Rc=!1,Ou=!1;function T0(e){Zn===null?Zn=[e]:Zn.push(e)}function oN(e){Rc=!0,T0(e)}function ni(){if(!Ou&&Zn!==null){Ou=!0;var e=0,t=he;try{var n=Zn;for(he=1;e<n.length;e++){var r=n[e];do r=r(!0);while(r!==null)}Zn=null,Rc=!1}catch(i){throw Zn!==null&&(Zn=Zn.slice(e+1)),Yw(_f,ni),i}finally{he=t,Ou=!1}}return null}var es=[],ts=0,Yl=null,Ql=0,qt=[],Kt=0,Mi=null,tr=1,nr="";function di(e,t){es[ts++]=Ql,es[ts++]=Yl,Yl=e,Ql=t}function C0(e,t,n){qt[Kt++]=tr,qt[Kt++]=nr,qt[Kt++]=Mi,Mi=e;var r=tr;e=nr;var i=32-xn(r)-1;r&=~(1<<i),n+=1;var s=32-xn(t)+i;if(30<s){var o=i-i%5;s=(r&(1<<o)-1).toString(32),r>>=o,i-=o,tr=1<<32-xn(t)+i|n<<i|r,nr=s+e}else tr=1<<s|n<<i|r,nr=e}function qf(e){e.return!==null&&(di(e,1),C0(e,1,0))}function Kf(e){for(;e===Yl;)Yl=es[--ts],es[ts]=null,Ql=es[--ts],es[ts]=null;for(;e===Mi;)Mi=qt[--Kt],qt[Kt]=null,nr=qt[--Kt],qt[Kt]=null,tr=qt[--Kt],qt[Kt]=null}var Lt=null,Ft=null,Ce=!1,yn=null;function j0(e,t){var n=Qt(5,null,null,0);n.elementType="DELETED",n.stateNode=t,n.return=e,t=e.deletions,t===null?(e.deletions=[n],e.flags|=16):t.push(n)}function Rg(e,t){switch(e.tag){case 5:var n=e.type;return t=t.nodeType!==1||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t,t!==null?(e.stateNode=t,Lt=e,Ft=zr(t.firstChild),!0):!1;case 6:return t=e.pendingProps===""||t.nodeType!==3?null:t,t!==null?(e.stateNode=t,Lt=e,Ft=null,!0):!1;case 13:return t=t.nodeType!==8?null:t,t!==null?(n=Mi!==null?{id:tr,overflow:nr}:null,e.memoizedState={dehydrated:t,treeContext:n,retryLane:1073741824},n=Qt(18,null,null,0),n.stateNode=t,n.return=e,e.child=n,Lt=e,Ft=null,!0):!1;default:return!1}}function ip(e){return(e.mode&1)!==0&&(e.flags&128)===0}function sp(e){if(Ce){var t=Ft;if(t){var n=t;if(!Rg(e,t)){if(ip(e))throw Error(B(418));t=zr(n.nextSibling);var r=Lt;t&&Rg(e,t)?j0(r,n):(e.flags=e.flags&-4097|2,Ce=!1,Lt=e)}}else{if(ip(e))throw Error(B(418));e.flags=e.flags&-4097|2,Ce=!1,Lt=e}}}function Dg(e){for(e=e.return;e!==null&&e.tag!==5&&e.tag!==3&&e.tag!==13;)e=e.return;Lt=e}function Ya(e){if(e!==Lt)return!1;if(!Ce)return Dg(e),Ce=!0,!1;var t;if((t=e.tag!==3)&&!(t=e.tag!==5)&&(t=e.type,t=t!=="head"&&t!=="body"&&!ep(e.type,e.memoizedProps)),t&&(t=Ft)){if(ip(e))throw N0(),Error(B(418));for(;t;)j0(e,t),t=zr(t.nextSibling)}if(Dg(e),e.tag===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(B(317)
vendor: 24,274 bytes, lines 38-40
38);e:{for(e=e.nextSibling,t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="/$"){if(t===0){Ft=zr(e.nextSibling);break e}t--}else n!=="$"&&n!=="$!"&&n!=="$?"||t++}e=e.nextSibling}Ft=null}}else Ft=Lt?zr(e.stateNode.nextSibling):null;return!0}function N0(){for(var e=Ft;e;)e=zr(e.nextSibling)}function Rs(){Ft=Lt=null,Ce=!1}function Yf(e){yn===null?yn=[e]:yn.push(e)}var aN=dr.ReactCurrentBatchConfig;function po(e,t,n){if(e=n.ref,e!==null&&typeof e!="function"&&typeof e!="object"){if(n._owner){if(n=n._owner,n){if(n.tag!==1)throw Error(B(309));var r=n.stateNode}if(!r)throw Error(B(147,e));var i=r,s=""+e;return t!==null&&t.ref!==null&&typeof t.ref=="function"&&t.ref._stringRef===s?t.ref:(t=function(o){var l=i.refs;o===null?delete l[s]:l[s]=o},t._stringRef=s,t)}if(typeof e!="string")throw Error(B(284));if(!n._owner)throw Error(B(290,e))}return e}function Qa(e,t){throw e=Object.prototype.toString.call(t),Error(B(31,e==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function Fg(e){var t=e._init;return t(e._payload)}function A0(e){function t(m,y){if(e){var v=m.deletions;v===null?(m.deletions=[y],m.flags|=16):v.push(y)}}function n(m,y){if(!e)return null;for(;y!==null;)t(m,y),y=y.sibling;return null}function r(m,y){for(m=new Map;y!==null;)y.key!==null?m.set(y.key,y):m.set(y.index,y),y=y.sibling;return m}function i(m,y){return m=Hr(m,y),m.index=0,m.sibling=null,m}function s(m,y,v){return m.index=v,e?(v=m.alternate,v!==null?(v=v.index,v<y?(m.flags|=2,y):v):(m.flags|=2,y)):(m.flags|=1048576,y)}function o(m){return e&&m.alternate===null&&(m.flags|=2),m}function l(m,y,v,k){return y===null||y.tag!==6?(y=$u(v,m.mode,k),y.return=m,y):(y=i(y,v),y.return=m,y)}function c(m,y,v,k){var C=v.type;return C===Ki?d(m,y,v.props.children,k,v.key):y!==null&&(y.elementType===C||typeof C=="object"&&C!==null&&C.$$typeof===Cr&&Fg(C)===y.type)?(k=i(y,v.props),k.ref=po(m,y,v),k.return=m,k):(k=Cl(v.type,v.key,v.props,null,m.mode,k),k.ref=po(m,y,v),k.return=m,k)}function u(m,y,v,k){return y===null||y.tag!==4||y.stateNode.containerInfo!==v.containerInfo||y.stateNode.implementation!==v.implementation?(y=Uu(v,m.mode,k),y.return=m,y):(y=i(y,v.children||[]),y.return=m,y)}function d(m,y,v,k,C){return y===null||y.tag!==7?(y=Ai(v,m.mode,k,C),y.return=m,y):(y=i(y,v),y.return=m,y)}function p(m,y,v){if(typeof y=="string"&&y!==""||typeof y=="number")return y=$u(""+y,m.mode,v),y.return=m,y;if(typeof y=="object"&&y!==null){switch(y.$$typeof){case Ba:return v=Cl(y.type,y.key,y.props,null,m.mode,v),v.ref=po(m,null,y),v.return=m,v;case qi:return y=Uu(y,m.mode,v),y.return=m,y;case Cr:var k=y._init;return p(m,k(y._payload),v)}if(So(y)||oo(y))return y=Ai(y,m.mode,v,null),y.return=m,y;Qa(m,y)}return null}function h(m,y,v,k){var C=y!==null?y.key:null;if(typeof v=="string"&&v!==""||typeof v=="number")return C!==null?null:l(m,y,""+v,k);if(typeof v=="object"&&v!==null){switch(v.$$typeof){case Ba:return v.key===C?c(m,y,v,k):null;case qi:return v.key===C?u(m,y,v,k):null;case Cr:return C=v._init,h(m,y,C(v._payload),k)}if(So(v)||oo(v))return C!==null?null:d(m,y,v,k,null);Qa(m,v)}return null}function f(m,y,v,k,C){if(typeof k=="string"&&k!==""||typeof k=="number")return m=m.get(v)||null,l(y,m,""+k,C);if(typeof k=="object"&&k!==null){switch(k.$$typeof){case Ba:return m=m.get(k.key===null?v:k.key)||null,c(y,m,k,C);case qi:return m=m.get(k.key===null?v:k.key)||null,u(y,m,k,C);case Cr:var T=k._init;return f(m,y,v,T(k._payload),C)}if(So(k)||oo(k))return m=m.get(v)||null,d(y,m,k,C,null);Qa(y,k)}return null}function x(m,y,v,k){for(var C=null,T=null,N=y,A=y=0,P=null;N!==null&&A<v.length;A++){N.index>A?(P=N,N=null):P=N.sibling;var M=h(m,N,v[A],k);if(M===null){N===null&&(N=P);break}e&&N&&M.alternate===null&&t(m,N),y=s(M,y,A),T===null?C=M:T.sibling=M,T=M,N=P}if(A===v.length)return n(m,N),Ce&&di(m,A),C;if(N===null){for(;A<v.length;A++)N=p(m,v[A],k),N!==null&&(y=s(N,y,A),T===null?C=N:T.sibling=N,T=N);return Ce&&di(m,A),C}for(N=r(m,N);A<v.length;A++)P=f(N,m,A,v[A],k),P!==null&&(e&&P.alternate!==null&&N.delete(P.key===null?A:P.key),y=s(P,y,A),T===null?C=P:T.sibling=P,T=P);return e&&N.forEach(function(O){return t(m,O)}),Ce&&di(m,A),C}function g(m,y,v,k){var C=oo(v);if(typeof C!="function")throw Error(B(150));if(v=C.call(v),v==null)throw Error(B(151));for(var T=C=null,N=y,A=y=0,P=null,M=v.next();N!==null&&!M.done;A++,M=v.next()){N.index>A?(P=N,N=null):P=N.sibling;var O=h(m,N,M.value,k);if(O===null){N===null&&(N=P);break}e&&N&&O.alternate===null&&t(m,N),y=s(O,y,A),T===null?C=O:T.sibling=O,T=O,N=P}if(M.done)return n(m,N),Ce&&di(m,A),C;if(N===null){for(;!M.done;A++,M=v.next())M=p(m,M.value,k),M!==null&&(y=s(M,y,A),T===null?C=M:T.sibling=M,T=M);return Ce&&di(m,A),C}for(N=r(m,N);!M.done;A++,M=v.next())M=f(N,m,A,M.value,k),M!==null&&(e&&M.alternate!==null&&N.delete(M.key===null?A:M.key),y=s(M,y,A),T===null?C=M:T.sibling=M,T=M);return e&&N.forEach(function(R){return t(m,R)}),Ce&&di(m,A),C}function w(m,y,v,k){if(typeof v=="object"&&v!==null&&v.type===Ki&&v.key===null&&(v=v.props.children),typeof v=="object"&&v!==null){switch(v.$$typeof){case Ba:e:{for(var C=v.key,T=y;T!==null;){if(T.key===C){if(C=v.type,C===Ki){if(T.tag===7){n(m,T.sibling),y=i(T,v.props.children),y.return=m,m=y;break e}}else if(T.elementType===C||typeof C=="object"&&C!==null&&C.$$typeof===Cr&&Fg(C)===T.type){n(m,T.sibling),y=i(T,v.props),y.ref=po(m,T,v),y.return=m,m=y;break e}n(m,T);break}else t(m,T);T=T.sibling}v.type===Ki?(y=Ai(v.props.children,m.mode,k,v.key),y.return=m,m=y):(k=Cl(v.type,v.key,v.props,null,m.mode,k),k.ref=po(m,y,v),k.return=m,m=k)}return o(m);case qi:e:{for(T=v.key;y!==null;){if(y.key===T)if(y.tag===4&&y.stateNode.containerInfo===v.containerInfo&&y.stateNode.implementation===v.implementation){n(m,y.sibling),y=i(y,v.children||[]),y.return=m,m=y;break e}else{n(m,y);break}else t(m,y);y=y.sibling}y=Uu(v,m.mode,k),y.return=m,m=y}return o(m);case Cr:return T=v._init,w(m,y,T(v._payload),k)}if(So(v))return x(m,y,v,k);if(oo(v))return g(m,y,v,k);Qa(m,v)}return typeof v=="string"&&v!==""||typeof v=="number"?(v=""+v,y!==null&&y.tag===6?(n(m,y.sibling),y=i(y,v),y.return=m,m=y):(n(m,y),y=$u(v,m.mode,k),y.return=m,m=y),o(m)):n(m,y)}return w}var Ds=A0(!0),P0=A0(!1),Xl=ti(null),Jl=null,ns=null,Qf=null;function Xf(){Qf=ns=Jl=null}function Jf(e){var t=Xl.current;ke(Xl),e._currentValue=t}function op(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function hs(e,t){Jl=e,Qf=ns=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(St=!0),e.firstContext=null)}function en(e){var t=e._currentValue;if(Qf!==e)if(e={context:e,memoizedValue:t,next:null},ns===null){if(Jl===null)throw Error(B(308));ns=e,Jl.dependencies={lanes:0,firstContext:e}}else ns=ns.next=e;return t}var gi=null;function Zf(e){gi===null?gi=[e]:gi.push(e)}function E0(e,t,n,r){var i=t.interleaved;return i===null?(n.next=n,Zf(t)):(n.next=i.next,i.next=n),t.interleaved=n,or(e,r)}function or(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var jr=!1;function eh(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function M0(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function rr(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Vr(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,ue&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,or(e,n)}return i=r.interleaved,i===null?(t.next=t,Zf(r)):(t.next=i.next,i.next=t),r.interleaved=t,or(e,n)}function xl(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Bf(e,n)}}function Og(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,s=null;if(n=n.firstBaseUpdate,n!==null){do{var o={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};s===null?i=s=o:s=s.next=o,n=n.next}while(n!==null);s===null?i=s=t:s=s.next=t}else i=s=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:s,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function Zl(e,t,n,r){var i=e.updateQueue;jr=!1;var s=i.firstBaseUpdate,o=i.lastBaseUpdate,l=i.shared.pending;if(l!==null){i.shared.pending=null;var c=l,u=c.next;c.next=null,o===null?s=u:o.next=u,o=c;var d=e.alternate;d!==null&&(d=d.updateQueue,l=d.lastBaseUpdate,l!==o&&(l===null?d.firstBaseUpdate=u:l.next=u,d.lastBaseUpdate=c))}if(s!==null){var p=i.baseState;o=0,d=u=c=null,l=s;do{var h=l.lane,f=l.eventTime;if((r&h)===h){d!==null&&(d=d.next={eventTime:f,lane:0,tag:l.tag,payload:l.payload,callback:l.callback,next:null});e:{var x=e,g=l;switch(h=t,f=n,g.tag){case 1:if(x=g.payload,typeof x=="function"){p=x.call(f,p,h);break e}p=x;break e;case 3:x.flags=x.flags&-65537|128;case 0:if(x=g.payload,h=typeof x=="function"?x.call(f,p,h):x,h==null)break e;p=Ee({},p,h);break e;case 2:jr=!0}}l.callback!==null&&l.lane!==0&&(e.flags|=64,h=i.effects,h===null?i.effects=[l]:h.push(l))}else f={eventTime:f,lane:h,tag:l.tag,payload:l.payload,callback:l.callback,next:null},d===null?(u=d=f,c=p):d=d.next=f,o|=h;if(l=l.next,l===null){if(l=i.shared.pending,l===null)break;h=l,l=h.next,h.next=null,i.lastBaseUpdate=h,i.shared.pending=null}}while(!0);if(d===null&&(c=p),i.baseState=c,i.firstBaseUpdate=u,i.lastBaseUpdate=d,t=i.shared.interleaved,t!==null){i=t;do o|=i.lane,i=i.next;while(i!==t)}else s===null&&(i.shared.lanes=0);Ri|=o,e.lanes=o,e.memoizedState=p}}function Lg(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;t<e.length;t++){var r=e[t],i=r.callback;if(i!==null){if(r.callback=null,r=n,typeof i!="function")throw Error(B(191,i));i.call(r)}}}var ja={},_n=ti(ja),na=ti(ja),ra=ti(ja);function yi(e){if(e===ja)throw Error(B(174));return e}function th(e,t){switch(ve(ra,t),ve(na,e),ve(_n,ja),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:Gd(null,"");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=Gd(t,e)}ke(_n),ve(_n,t)}function Fs(){ke(_n),ke(na),ke(ra)}function I0(e){yi(ra.current);var t=yi(_n.current),n=Gd(t,e.type);t!==n&&(ve(na,e),ve(_n,n))}function nh(e){na.current===e&&(ke(_n),ke(na))}var Ne=ti(0);function ec(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||n.data==="$?"||n.data==="$!"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Lu=[];function rh(){for(var e=0;e<Lu.length;e++)Lu[e]._workInProgressVersionPrimary=null;Lu.length=0}var wl=dr.ReactCurrentDispatcher,_u=dr.ReactCurrentBatchConfig,Ii=0,Pe=null,ze=null,Ue=null,tc=!1,Ro=!1,ia=0,lN=0;function Je(){throw Error(B(321))}function ih(e,t){if(t===null)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!bn(e[n],t[n]))return!1;return!0}function sh(e,t,n,r,i,s){if(Ii=s,Pe=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,wl.current=e===null||e.memoizedState===null?pN:fN,e=n(r,i),Ro){s=0;do{if(Ro=!1,ia=0,25<=s)throw Error(B(301));s+=1,Ue=ze=null,t.updateQueue=null,wl.current=hN,e=n(r,i)}while(Ro)}if(wl.current=nc,t=ze!==null&&ze.next!==null,Ii=0,Ue=ze=Pe=null,tc=!1,t)throw Error(B(300));return e}function oh(){var e=ia!==0;return ia=0,e}function An(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Ue===null?Pe.memoizedState=Ue=e:Ue=Ue.next=e,Ue}function tn(){if(ze===null){var e=Pe.alternate;e=e!==null?e.memoizedState:null}else e=ze.next;var t=Ue===null?Pe.memoizedState:Ue.next;if(t!==null)Ue=t,ze=e;else{if(e===null)throw Error(B(310));ze=e,e={memoizedState:ze.memoizedState,baseState:ze.baseState,baseQueue:ze.baseQueue,queue:ze.queue,next:null},Ue===null?Pe.memoizedState=Ue=e:Ue=Ue.next=e}return Ue}function sa(e,t){return typeof t=="function"?t(e):t}function Bu(e){var t=tn(),n=t.queue;if(n===null)throw Error(B(311));n.lastRenderedReducer=e;var r=ze,i=r.baseQueue,s=n.pending;if(s!==null){if(i!==null){var o=i.next;i.next=s.next,s.next=o}r.baseQueue=i=s,n.pending=null}if(i!==null){s=i.next,r=r.baseState;var l=o=null,c=null,u=s;do{var d=u.lane;if((Ii&d)===d)c!==null&&(c=c.next={lane:0,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null}),r=u.hasEagerState?u.eagerState:e(r,u.action);else{var p={lane:d,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null};c===null?(l=c=p,o=r):c=c.next=p,Pe.lanes|=d,Ri|=d}u=u.next}while(u!==null&&u!==s);c===null?o=r:c.next=l,bn(r,t.memoizedState)||(St=!0),t.memoizedState=r,t.baseState=o,t.baseQueue=c,n.lastRenderedState=r}if(e=n.interleaved,e!==null){i=e;do s=i.lane,Pe.lanes|=s,Ri|=s,i=i.next;while(i!==e)}else i===null&&(n.lanes=0);return[t.memoizedState,n.dispatch]}function Gu(e){var t=tn(),n=t.queue;if(n===null)throw Error(B(311));n.lastRenderedReducer=e;var r=n.dispatch,i=n.pending,s=t.memoizedState;if(i!==null){n.pending=null;var o=i=i.next;do s=e(s,o.action),o=o.next;while(o!==i);bn(s,t.memoizedState)||(St=!0),t.memoizedState=s,t.baseQueue===null&&(t.baseState=s),n.lastRenderedState=s}return[s,r]}function R0(){}function D0(e,t){var n=Pe,r=tn(),i=t(),s=!bn(r.memoizedState,i);if(s&&(r.memoizedState=i,St=!0),r=r.queue,ah(L0.bind(null,n,r,e),[e]),r.getSnapshot!==t||s||Ue!==null&&Ue.memoizedState.tag&1){if(n.flags|=2048,oa(9,O0.bind(null,n,r,i,t),void 0,null),He===null)throw Error(B(349));Ii&30||F0(n,t,i)}return i}function F0(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},t=Pe.updateQueue,t===null?(t={lastEffect:null,stores:null},Pe.updateQueue=t,t.stores=[e]):(n=t.stores,n===null?t.stores=[e]:n.push(e))}function O0(e,t,n,r){t.value=n,t.getSnapshot=r,_0(t)&&B0(e)}function L0(e,t,n){return n(function(){_0(t)&&B0(e)})}function _0(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!bn(e,n)}catch{return!0}}function B0(e){var t=or(e,1);t!==null&&wn(t,e,1,-1)}function _g(e){var t=An();return typeof e=="function"&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:sa,lastRenderedState:e},t.queue=e,e=e.dispatch=dN.bind(null,Pe,e),[t.memoizedState,e]}function oa(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},t=Pe.updateQueue,t===null?(t={lastEffect:null,stores:null},Pe.updateQueue=t,t.lastEffect=e.next=e):(n=t.lastEffect,n===null?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e)),e}function G0(){return tn().memoizedState}function bl(e,t,n,r){var i=An();Pe.flags|=e,i.memoizedState=oa(1|t,n,void 0,r===void 0?null:r)}function Dc(e,t,n,r){var i=tn();r=r===void 0?null:r;var s=void 0;if(ze!==null){var o=ze.memoizedState;if(s=o.destroy,r!==null&&ih(r,o.deps)){i.memoizedState=oa(t,n,s,r);return}}Pe.flags|=e,i.memoizedState=oa(1|t,n,s,r)}function Bg(e,t){return bl(8390656,8,e,t)}function ah(e,t){return Dc(2048,8,e,t)}function z0(e,t){return Dc(4,2,e,t)}function V0(e,t){return Dc(4,4,e,t)}function $0(e,t){if(typeof t=="function")return e=e(),t(e),function(){t(null)};if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function U0(e,t,n){return n=n!=null?n.concat([e]):null,Dc(4,4,$0.bind(null,t,e),n)}function lh(){}function H0(e,t){var n=tn();t=t===void 0?null:t;var r=n.memoizedState;return r!==null&&t!==null&&ih(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function W0(e,t){var n=tn();t=t===void 0?null:t;var r=n.memoizedState;return r!==null&&t!==null&&ih(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function q0(e,t,n){return Ii&21?(bn(n,t)||(n=Jw(),Pe.lanes|=n,Ri|=n,e.baseState=!0),t):(e.baseState&&(e.baseState=!1,St=!0),e.memoizedState=n)}function cN(e,t){var n=he;he=n!==0&&4>n?n:4,e(!0);var r=_u.transition;_u.transition={};try{e(!1),t()}finally{he=n,_u.transition=r}}function K0(){return tn().memoizedState}function uN(e,t,n){var r=Ur(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},Y0(e))Q0(t,n);else if(n=E0(e,t,n,r),n!==null){var i=ht();wn(n,e,r,i),X0(n,t,r)}}function dN(e,t,n){var r=Ur(e),i={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(Y0(e))Q0(t,i);else{var s=e.alternate;if(e.lanes===0&&(s===null||s.lanes===0)&&(s=t.lastRenderedReducer,s!==null))try{var o=t.lastRenderedState,l=s(o,n);if(i.hasEagerState=!0,i.eagerState=l,bn(l,o)){var c=t.interleaved;c===null?(i.next=i,Zf(t)):(i.next=c.next,c.next=i),t.interleaved=i;return}}catch{}finally{}n=E0(e,t,i,r),n!==null&&(i=ht(),wn(n,e,r,i),X0(n,t,r))}}function Y0(e){var t=e.alternate;return e===Pe||t!==null&&t===Pe}function Q0(e,t){Ro=tc=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function X0(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Bf(e,n)}}var nc={readContext:en,useCallback:Je,useContext:Je,useEffect:Je,useImperativeHandle:Je,useInsertionEffect:Je,useLayoutEffect:Je,useMemo:Je,useReducer:Je,useRef:Je,useState:Je,useDebugValue:Je,useDeferredValue:Je,useTransition:Je,useMutableSource:Je,useSyncExternalStore:Je,useId:Je,unstable_isNewReconciler:!1},pN={readContext:en,useCallback:function(e,t){return An().memoizedState=[e,t===void 0?null:t],e},useContext:en,useEffect:Bg,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,bl(4194308,4,$0.bind(null,t,e),n)},useLayoutEffect:function(e,t){return bl(4194308,4,e,t)},useInsertionEffect:function(e,t){return bl(4,2,e,t)},useMemo:function(e,t){var n=An();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=An();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=uN.bind(null,Pe,e),[r.memoizedState,e]},useRef:function(e){var t=An();return e={current:e},t.memoizedState=e},useState:_g,useDebugValue:lh,useDeferredValue:function(e){return An().memoizedState=e},useTransition:function(){var e=_g(!1),t=e[0];return e=cN.bind(null,e[1]),An().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=Pe,i=An();if(Ce){if(n===void 0)throw Error(B(407));n=n()}else{if(n=t(),He===null)throw Error(B(349));Ii&30||F0(r,t,n)}i.memoizedState=n;var s={value:n,getSnapshot:t};return i.queue=s,Bg(L0.bind(null,r,s,e),[e]),r.flags|=2048,oa(9,O0.bind(null,r,s,n,t),void 0,null),n},useId:function(){var e=An(),t=He.identifierPrefix;if(Ce){var n=nr,r=tr;n=(r&~(1<<32-xn(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=ia++,0<n&&(t+="H"+n.toString(32)),t+=":"}else n=lN++,t=":"+t+"r"+n.toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},fN={readContext:en,useCallback:H0,useContext:en,useEffect:ah,useImperativeHandle:U0,useInsertionEffect:z0,useLayoutEffect:V0,useMemo:W0,useReducer:Bu,useRef:G0,useState:function(){return Bu(sa)},useDebugValue:lh,useDeferredValue:function(e){var t=tn();return q0(t,ze.memoizedState,e)},useTransition:function(){var e=Bu(sa)[0],t=tn().memoizedState;return[e,t]},useMutableSource:R0,useSyncExternalStore:D0,useId:K0,unstable_isNewReconciler:!1},hN={readContext:en,useCallback:H0,useContext:en,useEffect:ah,useImperativeHandle:U0,useInsertionEffect:z0,useLayoutEffect:V0,useMemo:W0,useReducer:Gu,useRef:G0,useState:function(){return Gu(sa)},useDebugValue:lh,useDeferredValue:function(e){var t=tn();return ze===null?t.memoizedState=e:q0(t,ze.memoizedState,e)},useTransition:function(){var e=Gu(sa)[0],t=tn().memoizedState;return[e,t]},useMutableSource:R0,useSyncExternalStore:D0,useId:K0,unstable_isNewReconciler:!1};function pn(e,t){if(e&&e.defaultProps){t=Ee({},t),e=e.defaultProps;for(var n in e)t[n]===void 0&&(t[n]=e[n]);return t}return t}function ap(e,t,n,r){t=e.memoizedState,n=n(r,t),n=n==null?t:Ee({},t,n),e.memoizedState=n,e.lanes===0&&(e.updateQueue.baseState=n)}var Fc={isMounted:function(e){return(e=e._reactInternals)?_i(e)===e:!1},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=ht(),i=Ur(e),s=rr(r,i);s.payload=t,n!=null&&(s.callback=n),t=Vr(e,s,i),t!==null&&(wn(t,e,i,r),xl(t,e,i))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=ht(),i=Ur(e),s=rr(r,i);s.tag=1,s.payload=t,n!=null&&(s.callback=n),t=Vr(e,s,i),t!==null&&(wn(t,e,i,r),xl(t,e,i))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=ht(),r=Ur(e),i=rr(n,r);i.tag=2,t!=null&&(i.callback=t),t=Vr(e,i,r),t!==null&&(wn(t,e,r,n),xl(t,e,r))}};function Gg(e,t,n,r,i,s,o){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(r,s,o):t.prototype&&t.prototype.isPureReactComponent?!Jo(n,r)||!Jo(i,s):!0}function J0(e,t,n){var r=!1,i=Kr,s=t.contextType;return typeof s=="object"&&s!==null?s=en(s):(i=Ct(t)?Ei:rt.current,r=t.contextTypes,s=(r=r!=null)?Is(e,i):Kr),t=new t(n,s),e.memoizedState=t.state!==null&&t.state!==void 0?t.state:null,t.updater=Fc,e.stateNode=t,t._reactInternals=e,r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=i,e.__reactInternalMemoizedMaskedChildContext=s),t}function zg(e,t,n,r){e=t.state,typeof t.componentWillReceiveProps=="function"&&t.componentWillReceiveProps(n,r),typeof t.UNSAFE_componentWillReceiveProps=="function"&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&Fc.enqueueReplaceState(t,t.state,null)}function lp(e,t,n,r){var i=e.stateNode;i.props=n,i.state=e.memoizedState,i.refs={},eh(e);var s=t.contextType;typeof s=="object"&&s!==null?i.context=en(s):(s=Ct(t)?Ei:rt.current,i.context=Is(e,s)),i.state=e.memoizedState,s=t.getDerivedStateFromProps,typeof s=="function"&&(ap(e,t,s,n),i.state=e.memoizedState),typeof t.getDerivedStateFromProps=="function"||typeof i.getSnapshotBeforeUpdate=="function"||typeof i.UNSAFE_componentWillMount!="function"&&typeof i.componentWillMount!="function"||(t=i.state,typeof i.componentWillMount=="function"&&i.componentWillMount(),typeof i.UNSAFE_componentWillMount=="function"&&i.UNSAFE_componentWillMount(),t!==i.state&&Fc.enqueueReplaceState(i,i.state,null),Zl(e,n,i,r),i.state=e.memoizedState),typeof i.componentDidMount=="function"&&(e.flags|=4194308)}function Os(e,t){try{var n="",r=t;do n+=VC(r),r=r.return;while(r);var i=n}catch(s){i=`
39Error generating stack: `+s.message+`
40`+s.stack}return{value:e,source:t,stack:i,digest:null}}function zu(e,t,n){return{value:e,source:null,stack:n??null,digest:t??null}}function cp(e,t){try{console.error(t.value)}catch(n){setTimeout(function(){throw n})}}var mN=typeof WeakMap=="function"?WeakMap:Map;function Z0(e,t,n){n=rr(-1,n),n.tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){ic||(ic=!0,xp=r),cp(e,t)},n}function eb(e,t,n){n=rr(-1,n),n.tag=3;var r=e.type.getDerivedStateFromError;if(typeof r=="function"){var i=t.value;n.payload=function(){return r(i)},n.callback=function(){cp(e,t)}}var s=e.stateNode;return s!==null&&typeof s.componentDidCatch=="function"&&(n.callback=function(){cp(e,t),typeof r!="function"&&($r===null?$r=new Set([this]):$r.add(this));var o=t.stack;this.componentDidCatch(t.value,{componentStack:o!==null?o:""})}),n}function Vg(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new mN;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||(i.add(n),e=PN.bind(null,e,t,n),t.then(e,e))}function $g(e){do{var t;if((t=e.tag===13)&&(t=e.memoizedState,t=t!==null?t.dehydrated!==null:!0),t)return e;e=e.return}while(e!==null);return null}function Ug(e,t,n,r,i){return e.mode&1?(e.flags|=65536,e.lanes=i,e):(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,n.tag===1&&(n.alternate===null?n.tag=17:(t=rr(-1,1),t.tag=2,Vr(n,t,1))),n.lanes|=1),e)}var gN=dr.ReactCurrentOwner,St=!1;function lt(e,t,n,r){t.child=e===null?P0(t,null,n,r):Ds(t,e.child,n,r)}function Hg(e,t,n,r,i){n=n.render;var s=t.ref;return hs(t,i),r=sh(e,t,n,r,s,i),n=oh(),e!==null&&!St?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~i,ar(e,t,i)):(Ce&&n&&qf(t),t.flags|=1,lt(e,t,r,i
vendor: 9,531 bytes, line 40
40),t.child)}function Wg(e,t,n,r,i){if(e===null){var s=n.type;return typeof s=="function"&&!gh(s)&&s.defaultProps===void 0&&n.compare===null&&n.defaultProps===void 0?(t.tag=15,t.type=s,tb(e,t,s,r,i)):(e=Cl(n.type,null,r,t,t.mode,i),e.ref=t.ref,e.return=t,t.child=e)}if(s=e.child,!(e.lanes&i)){var o=s.memoizedProps;if(n=n.compare,n=n!==null?n:Jo,n(o,r)&&e.ref===t.ref)return ar(e,t,i)}return t.flags|=1,e=Hr(s,r),e.ref=t.ref,e.return=t,t.child=e}function tb(e,t,n,r,i){if(e!==null){var s=e.memoizedProps;if(Jo(s,r)&&e.ref===t.ref)if(St=!1,t.pendingProps=r=s,(e.lanes&i)!==0)e.flags&131072&&(St=!0);else return t.lanes=e.lanes,ar(e,t,i)}return up(e,t,n,r,i)}function nb(e,t,n){var r=t.pendingProps,i=r.children,s=e!==null?e.memoizedState:null;if(r.mode==="hidden")if(!(t.mode&1))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},ve(is,Rt),Rt|=n;else{if(!(n&1073741824))return e=s!==null?s.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,ve(is,Rt),Rt|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=s!==null?s.baseLanes:n,ve(is,Rt),Rt|=r}else s!==null?(r=s.baseLanes|n,t.memoizedState=null):r=n,ve(is,Rt),Rt|=r;return lt(e,t,i,n),t.child}function rb(e,t){var n=t.ref;(e===null&&n!==null||e!==null&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function up(e,t,n,r,i){var s=Ct(n)?Ei:rt.current;return s=Is(t,s),hs(t,i),n=sh(e,t,n,r,s,i),r=oh(),e!==null&&!St?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~i,ar(e,t,i)):(Ce&&r&&qf(t),t.flags|=1,lt(e,t,n,i),t.child)}function qg(e,t,n,r,i){if(Ct(n)){var s=!0;Kl(t)}else s=!1;if(hs(t,i),t.stateNode===null)kl(e,t),J0(t,n,r),lp(t,n,r,i),r=!0;else if(e===null){var o=t.stateNode,l=t.memoizedProps;o.props=l;var c=o.context,u=n.contextType;typeof u=="object"&&u!==null?u=en(u):(u=Ct(n)?Ei:rt.current,u=Is(t,u));var d=n.getDerivedStateFromProps,p=typeof d=="function"||typeof o.getSnapshotBeforeUpdate=="function";p||typeof o.UNSAFE_componentWillReceiveProps!="function"&&typeof o.componentWillReceiveProps!="function"||(l!==r||c!==u)&&zg(t,o,r,u),jr=!1;var h=t.memoizedState;o.state=h,Zl(t,r,o,i),c=t.memoizedState,l!==r||h!==c||Tt.current||jr?(typeof d=="function"&&(ap(t,n,d,r),c=t.memoizedState),(l=jr||Gg(t,n,l,r,h,c,u))?(p||typeof o.UNSAFE_componentWillMount!="function"&&typeof o.componentWillMount!="function"||(typeof o.componentWillMount=="function"&&o.componentWillMount(),typeof o.UNSAFE_componentWillMount=="function"&&o.UNSAFE_componentWillMount()),typeof o.componentDidMount=="function"&&(t.flags|=4194308)):(typeof o.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=c),o.props=r,o.state=c,o.context=u,r=l):(typeof o.componentDidMount=="function"&&(t.flags|=4194308),r=!1)}else{o=t.stateNode,M0(e,t),l=t.memoizedProps,u=t.type===t.elementType?l:pn(t.type,l),o.props=u,p=t.pendingProps,h=o.context,c=n.contextType,typeof c=="object"&&c!==null?c=en(c):(c=Ct(n)?Ei:rt.current,c=Is(t,c));var f=n.getDerivedStateFromProps;(d=typeof f=="function"||typeof o.getSnapshotBeforeUpdate=="function")||typeof o.UNSAFE_componentWillReceiveProps!="function"&&typeof o.componentWillReceiveProps!="function"||(l!==p||h!==c)&&zg(t,o,r,c),jr=!1,h=t.memoizedState,o.state=h,Zl(t,r,o,i);var x=t.memoizedState;l!==p||h!==x||Tt.current||jr?(typeof f=="function"&&(ap(t,n,f,r),x=t.memoizedState),(u=jr||Gg(t,n,u,r,h,x,c)||!1)?(d||typeof o.UNSAFE_componentWillUpdate!="function"&&typeof o.componentWillUpdate!="function"||(typeof o.componentWillUpdate=="function"&&o.componentWillUpdate(r,x,c),typeof o.UNSAFE_componentWillUpdate=="function"&&o.UNSAFE_componentWillUpdate(r,x,c)),typeof o.componentDidUpdate=="function"&&(t.flags|=4),typeof o.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof o.componentDidUpdate!="function"||l===e.memoizedProps&&h===e.memoizedState||(t.flags|=4),typeof o.getSnapshotBeforeUpdate!="function"||l===e.memoizedProps&&h===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=x),o.props=r,o.state=x,o.context=c,r=u):(typeof o.componentDidUpdate!="function"||l===e.memoizedProps&&h===e.memoizedState||(t.flags|=4),typeof o.getSnapshotBeforeUpdate!="function"||l===e.memoizedProps&&h===e.memoizedState||(t.flags|=1024),r=!1)}return dp(e,t,n,r,s,i)}function dp(e,t,n,r,i,s){rb(e,t);var o=(t.flags&128)!==0;if(!r&&!o)return i&&Ig(t,n,!1),ar(e,t,s);r=t.stateNode,gN.current=t;var l=o&&typeof n.getDerivedStateFromError!="function"?null:r.render();return t.flags|=1,e!==null&&o?(t.child=Ds(t,e.child,null,s),t.child=Ds(t,null,l,s)):lt(e,t,l,s),t.memoizedState=r.state,i&&Ig(t,n,!0),t.child}function ib(e){var t=e.stateNode;t.pendingContext?Mg(e,t.pendingContext,t.pendingContext!==t.context):t.context&&Mg(e,t.context,!1),th(e,t.containerInfo)}function Kg(e,t,n,r,i){return Rs(),Yf(i),t.flags|=256,lt(e,t,n,r),t.child}var pp={dehydrated:null,treeContext:null,retryLane:0};function fp(e){return{baseLanes:e,cachePool:null,transitions:null}}function sb(e,t,n){var r=t.pendingProps,i=Ne.current,s=!1,o=(t.flags&128)!==0,l;if((l=o)||(l=e!==null&&e.memoizedState===null?!1:(i&2)!==0),l?(s=!0,t.flags&=-129):(e===null||e.memoizedState!==null)&&(i|=1),ve(Ne,i&1),e===null)return sp(t),e=t.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?(t.mode&1?e.data==="$!"?t.lanes=8:t.lanes=1073741824:t.lanes=1,null):(o=r.children,e=r.fallback,s?(r=t.mode,s=t.child,o={mode:"hidden",children:o},!(r&1)&&s!==null?(s.childLanes=0,s.pendingProps=o):s=_c(o,r,0,null),e=Ai(e,r,n,null),s.return=t,e.return=t,s.sibling=e,t.child=s,t.child.memoizedState=fp(n),t.memoizedState=pp,e):ch(t,o));if(i=e.memoizedState,i!==null&&(l=i.dehydrated,l!==null))return yN(e,t,o,r,l,i,n);if(s){s=r.fallback,o=t.mode,i=e.child,l=i.sibling;var c={mode:"hidden",children:r.children};return!(o&1)&&t.child!==i?(r=t.child,r.childLanes=0,r.pendingProps=c,t.deletions=null):(r=Hr(i,c),r.subtreeFlags=i.subtreeFlags&14680064),l!==null?s=Hr(l,s):(s=Ai(s,o,n,null),s.flags|=2),s.return=t,r.return=t,r.sibling=s,t.child=r,r=s,s=t.child,o=e.child.memoizedState,o=o===null?fp(n):{baseLanes:o.baseLanes|n,cachePool:null,transitions:o.transitions},s.memoizedState=o,s.childLanes=e.childLanes&~n,t.memoizedState=pp,r}return s=e.child,e=s.sibling,r=Hr(s,{mode:"visible",children:r.children}),!(t.mode&1)&&(r.lanes=n),r.return=t,r.sibling=null,e!==null&&(n=t.deletions,n===null?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=r,t.memoizedState=null,r}function ch(e,t){return t=_c({mode:"visible",children:t},e.mode,0,null),t.return=e,e.child=t}function Xa(e,t,n,r){return r!==null&&Yf(r),Ds(t,e.child,null,n),e=ch(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function yN(e,t,n,r,i,s,o){if(n)return t.flags&256?(t.flags&=-257,r=zu(Error(B(422))),Xa(e,t,o,r)):t.memoizedState!==null?(t.child=e.child,t.flags|=128,null):(s=r.fallback,i=t.mode,r=_c({mode:"visible",children:r.children},i,0,null),s=Ai(s,i,o,null),s.flags|=2,r.return=t,s.return=t,r.sibling=s,t.child=r,t.mode&1&&Ds(t,e.child,null,o),t.child.memoizedState=fp(o),t.memoizedState=pp,s);if(!(t.mode&1))return Xa(e,t,o,null);if(i.data==="$!"){if(r=i.nextSibling&&i.nextSibling.dataset,r)var l=r.dgst;return r=l,s=Error(B(419)),r=zu(s,r,void 0),Xa(e,t,o,r)}if(l=(o&e.childLanes)!==0,St||l){if(r=He,r!==null){switch(o&-o){case 4:i=2;break;case 16:i=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:i=32;break;case 536870912:i=268435456;break;default:i=0}i=i&(r.suspendedLanes|o)?0:i,i!==0&&i!==s.retryLane&&(s.retryLane=i,or(e,i),wn(r,e,i,-1))}return mh(),r=zu(Error(B(421))),Xa(e,t,o,r)}return i.data==="$?"?(t.flags|=128,t.child=e.child,t=EN.bind(null,e),i._reactRetry=t,null):(e=s.treeContext,Ft=zr(i.nextSibling),Lt=t,Ce=!0,yn=null,e!==null&&(qt[Kt++]=tr,qt[Kt++]=nr,qt[Kt++]=Mi,tr=e.id,nr=e.overflow,Mi=t),t=ch(t,r.children),t.flags|=4096,t)}function Yg(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),op(e.return,t,n)}function Vu(e,t,n,r,i){var s=e.memoizedState;s===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:i}:(s.isBackwards=t,s.rendering=null,s.renderingStartTime=0,s.last=r,s.tail=n,s.tailMode=i)}function ob(e,t,n){var r=t.pendingProps,i=r.revealOrder,s=r.tail;if(lt(e,t,r.children,n),r=Ne.current,r&2)r=r&1|2,t.flags|=128;else{if(e!==null&&e.flags&128)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&Yg(e,n,t);else if(e.tag===19)Yg(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;e.sibling===null;){if(e.return===null||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(ve(Ne,r),!(t.mode&1))t.memoizedState=null;else switch(i){case"forwards":for(n=t.child,i=null;n!==null;)e=n.alternate,e!==null&&ec(e)===null&&(i=n),n=n.sibling;n=i,n===null?(i=t.child,t.child=null):(i=n.sibling,n.sibling=null),Vu(t,!1,i,n,s);break;case"backwards":for(n=null,i=t.child,t.child=null;i!==null;){if(e=i.alternate,e!==null&&ec(e)===null){t.child=i;break}e=i.sibling,i.sibling=n,n=i,i=e}Vu(t,!0,n,null,s);break;case"together":Vu(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function kl(e,t){!(t.mode&1)&&e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2)}function ar(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),Ri|=t.lanes,!(n&t.childLanes))return null;if(e!==null&&t.child!==e.child)throw Error(B(153));
vendor: 4,522 bytes, line 40
40if(t.child!==null){for(e=t.child,n=Hr(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=Hr(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function vN(e,t,n){switch(t.tag){case 3:ib(t),Rs();break;case 5:I0(t);break;case 1:Ct(t.type)&&Kl(t);break;case 4:th(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,i=t.memoizedProps.value;ve(Xl,r._currentValue),r._currentValue=i;break;case 13:if(r=t.memoizedState,r!==null)return r.dehydrated!==null?(ve(Ne,Ne.current&1),t.flags|=128,null):n&t.child.childLanes?sb(e,t,n):(ve(Ne,Ne.current&1),e=ar(e,t,n),e!==null?e.sibling:null);ve(Ne,Ne.current&1);break;case 19:if(r=(n&t.childLanes)!==0,e.flags&128){if(r)return ob(e,t,n);t.flags|=128}if(i=t.memoizedState,i!==null&&(i.rendering=null,i.tail=null,i.lastEffect=null),ve(Ne,Ne.current),r)break;return null;case 22:case 23:return t.lanes=0,nb(e,t,n)}return ar(e,t,n)}var ab,hp,lb,cb;ab=function(e,t){for(var n=t.child;n!==null;){if(n.tag===5||n.tag===6)e.appendChild(n.stateNode);else if(n.tag!==4&&n.child!==null){n.child.return=n,n=n.child;continue}if(n===t)break;for(;n.sibling===null;){if(n.return===null||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}};hp=function(){};lb=function(e,t,n,r){var i=e.memoizedProps;if(i!==r){e=t.stateNode,yi(_n.current);var s=null;switch(n){case"input":i=Od(e,i),r=Od(e,r),s=[];break;case"select":i=Ee({},i,{value:void 0}),r=Ee({},r,{value:void 0}),s=[];break;case"textarea":i=Bd(e,i),r=Bd(e,r),s=[];break;default:typeof i.onClick!="function"&&typeof r.onClick=="function"&&(e.onclick=Wl)}zd(n,r);var o;n=null;for(u in i)if(!r.hasOwnProperty(u)&&i.hasOwnProperty(u)&&i[u]!=null)if(u==="style"){var l=i[u];for(o in l)l.hasOwnProperty(o)&&(n||(n={}),n[o]="")}else u!=="dangerouslySetInnerHTML"&&u!=="children"&&u!=="suppressContentEditableWarning"&&u!=="suppressHydrationWarning"&&u!=="autoFocus"&&(Ho.hasOwnProperty(u)?s||(s=[]):(s=s||[]).push(u,null));for(u in r){var c=r[u];if(l=i!=null?i[u]:void 0,r.hasOwnProperty(u)&&c!==l&&(c!=null||l!=null))if(u==="style")if(l){for(o in l)!l.hasOwnProperty(o)||c&&c.hasOwnProperty(o)||(n||(n={}),n[o]="");for(o in c)c.hasOwnProperty(o)&&l[o]!==c[o]&&(n||(n={}),n[o]=c[o])}else n||(s||(s=[]),s.push(u,n)),n=c;else u==="dangerouslySetInnerHTML"?(c=c?c.__html:void 0,l=l?l.__html:void 0,c!=null&&l!==c&&(s=s||[]).push(u,c)):u==="children"?typeof c!="string"&&typeof c!="number"||(s=s||[]).push(u,""+c):u!=="suppressContentEditableWarning"&&u!=="suppressHydrationWarning"&&(Ho.hasOwnProperty(u)?(c!=null&&u==="onScroll"&&be("scroll",e),s||l===c||(s=[])):(s=s||[]).push(u,c))}n&&(s=s||[]).push("style",n);var u=s;(t.updateQueue=u)&&(t.flags|=4)}};cb=function(e,t,n,r){n!==r&&(t.flags|=4)};function fo(e,t){if(!Ce)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;n!==null;)n.alternate!==null&&(r=n),n=n.sibling;r===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:r.sibling=null}}function Ze(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,r=0;if(t)for(var i=e.child;i!==null;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags&14680064,r|=i.flags&14680064,i.return=e,i=i.sibling;else for(i=e.child;i!==null;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags,r|=i.flags,i.return=e,i=i.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function xN(e,t,n){var r=t.pendingProps;switch(Kf(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Ze(t),null;case 1:return Ct(t.type)&&ql(),Ze(t),null;case 3:return r=t.stateNode,Fs(),ke(Tt),ke(rt),rh(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),(e===null||e.child===null)&&(Ya(t)?t.flags|=4:e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,yn!==null&&(kp(yn),yn=null))),hp(e,t),Ze(t),null;case 5:nh(t);var i=yi(ra.current);if(n=t.type,e!==null&&t.stateNode!=null)lb(e,t,n,r,i),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(t.stateNode===null)throw Error(B(166));return Ze(t),null}if(e=yi(_n.current),Ya(t)){r=t.stateNode,n=t.type;var s=t.memoizedProps;switch(r[Rn]=t,r[ta]=s,e=(t.mode&1)!==0,n){case"dialog":be("cancel",r),be("close",r);break;case"iframe":case"object":case"embed":be("load",r);break;case"video":case"audio":for(i=0;i<Co.length;i++)be(Co[i],r);break;case"source":be("error",r);break;case"img":case"image":case"link":be("error",r),be("load",r);break;case"details":be("toggle",r);break;
vendor: 32,660 bytes, line 40
40case"input":ig(r,s),be("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!s.multiple},be("invalid",r);break;case"textarea":og(r,s),be("invalid",r)}zd(n,s),i=null;for(var o in s)if(s.hasOwnProperty(o)){var l=s[o];o==="children"?typeof l=="string"?r.textContent!==l&&(s.suppressHydrationWarning!==!0&&Ka(r.textContent,l,e),i=["children",l]):typeof l=="number"&&r.textContent!==""+l&&(s.suppressHydrationWarning!==!0&&Ka(r.textContent,l,e),i=["children",""+l]):Ho.hasOwnProperty(o)&&l!=null&&o==="onScroll"&&be("scroll",r)}switch(n){case"input":Ga(r),sg(r,s,!0);break;case"textarea":Ga(r),ag(r);break;case"select":case"option":break;default:typeof s.onClick=="function"&&(r.onclick=Wl)}r=i,t.updateQueue=r,r!==null&&(t.flags|=4)}else{o=i.nodeType===9?i:i.ownerDocument,e==="http://www.w3.org/1999/xhtml"&&(e=Lw(n)),e==="http://www.w3.org/1999/xhtml"?n==="script"?(e=o.createElement("div"),e.innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=o.createElement(n,{is:r.is}):(e=o.createElement(n),n==="select"&&(o=e,r.multiple?o.multiple=!0:r.size&&(o.size=r.size))):e=o.createElementNS(e,n),e[Rn]=t,e[ta]=r,ab(e,t,!1,!1),t.stateNode=e;e:{switch(o=Vd(n,r),n){case"dialog":be("cancel",e),be("close",e),i=r;break;case"iframe":case"object":case"embed":be("load",e),i=r;break;case"video":case"audio":for(i=0;i<Co.length;i++)be(Co[i],e);i=r;break;case"source":be("error",e),i=r;break;case"img":case"image":case"link":be("error",e),be("load",e),i=r;break;case"details":be("toggle",e),i=r;break;case"input":ig(e,r),i=Od(e,r),be("invalid",e);break;case"option":i=r;break;case"select":e._wrapperState={wasMultiple:!!r.multiple},i=Ee({},r,{value:void 0}),be("invalid",e);break;case"textarea":og(e,r),i=Bd(e,r),be("invalid",e);break;default:i=r}zd(n,i),l=i;for(s in l)if(l.hasOwnProperty(s)){var c=l[s];s==="style"?Gw(e,c):s==="dangerouslySetInnerHTML"?(c=c?c.__html:void 0,c!=null&&_w(e,c)):s==="children"?typeof c=="string"?(n!=="textarea"||c!=="")&&Wo(e,c):typeof c=="number"&&Wo(e,""+c):s!=="suppressContentEditableWarning"&&s!=="suppressHydrationWarning"&&s!=="autoFocus"&&(Ho.hasOwnProperty(s)?c!=null&&s==="onScroll"&&be("scroll",e):c!=null&&Rf(e,s,c,o))}switch(n){case"input":Ga(e),sg(e,r,!1);break;case"textarea":Ga(e),ag(e);break;case"option":r.value!=null&&e.setAttribute("value",""+qr(r.value));break;case"select":e.multiple=!!r.multiple,s=r.value,s!=null?us(e,!!r.multiple,s,!1):r.defaultValue!=null&&us(e,!!r.multiple,r.defaultValue,!0);break;default:typeof i.onClick=="function"&&(e.onclick=Wl)}switch(n){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break e;case"img":r=!0;break e;default:r=!1}}r&&(t.flags|=4)}t.ref!==null&&(t.flags|=512,t.flags|=2097152)}return Ze(t),null;case 6:if(e&&t.stateNode!=null)cb(e,t,e.memoizedProps,r);else{if(typeof r!="string"&&t.stateNode===null)throw Error(B(166));if(n=yi(ra.current),yi(_n.current),Ya(t)){if(r=t.stateNode,n=t.memoizedProps,r[Rn]=t,(s=r.nodeValue!==n)&&(e=Lt,e!==null))switch(e.tag){case 3:Ka(r.nodeValue,n,(e.mode&1)!==0);break;case 5:e.memoizedProps.suppressHydrationWarning!==!0&&Ka(r.nodeValue,n,(e.mode&1)!==0)}s&&(t.flags|=4)}else r=(n.nodeType===9?n:n.ownerDocument).createTextNode(r),r[Rn]=t,t.stateNode=r}return Ze(t),null;case 13:if(ke(Ne),r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(Ce&&Ft!==null&&t.mode&1&&!(t.flags&128))N0(),Rs(),t.flags|=98560,s=!1;else if(s=Ya(t),r!==null&&r.dehydrated!==null){if(e===null){if(!s)throw Error(B(318));if(s=t.memoizedState,s=s!==null?s.dehydrated:null,!s)throw Error(B(317));s[Rn]=t}else Rs(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Ze(t),s=!1}else yn!==null&&(kp(yn),yn=null),s=!0;if(!s)return t.flags&65536?t:null}return t.flags&128?(t.lanes=n,t):(r=r!==null,r!==(e!==null&&e.memoizedState!==null)&&r&&(t.child.flags|=8192,t.mode&1&&(e===null||Ne.current&1?Ve===0&&(Ve=3):mh())),t.updateQueue!==null&&(t.flags|=4),Ze(t),null);case 4:return Fs(),hp(e,t),e===null&&Zo(t.stateNode.containerInfo),Ze(t),null;case 10:return Jf(t.type._context),Ze(t),null;case 17:return Ct(t.type)&&ql(),Ze(t),null;case 19:if(ke(Ne),s=t.memoizedState,s===null)return Ze(t),null;if(r=(t.flags&128)!==0,o=s.rendering,o===null)if(r)fo(s,!1);else{if(Ve!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=ec(e),o!==null){for(t.flags|=128,fo(s,!1),r=o.updateQueue,r!==null&&(t.updateQueue=r,t.flags|=4),t.subtreeFlags=0,r=n,n=t.child;n!==null;)s=n,e=r,s.flags&=14680066,o=s.alternate,o===null?(s.childLanes=0,s.lanes=e,s.child=null,s.subtreeFlags=0,s.memoizedProps=null,s.memoizedState=null,s.updateQueue=null,s.dependencies=null,s.stateNode=null):(s.childLanes=o.childLanes,s.lanes=o.lanes,s.child=o.child,s.subtreeFlags=0,s.deletions=null,s.memoizedProps=o.memoizedProps,s.memoizedState=o.memoizedState,s.updateQueue=o.updateQueue,s.type=o.type,e=o.dependencies,s.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return ve(Ne,Ne.current&1|2),t.child}e=e.sibling}s.tail!==null&&Re()>Ls&&(t.flags|=128,r=!0,fo(s,!1),t.lanes=4194304)}else{if(!r)if(e=ec(o),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),fo(s,!0),s.tail===null&&s.tailMode==="hidden"&&!o.alternate&&!Ce)return Ze(t),null}else 2*Re()-s.renderingStartTime>Ls&&n!==1073741824&&(t.flags|=128,r=!0,fo(s,!1),t.lanes=4194304);s.isBackwards?(o.sibling=t.child,t.child=o):(n=s.last,n!==null?n.sibling=o:t.child=o,s.last=o)}return s.tail!==null?(t=s.tail,s.rendering=t,s.tail=t.sibling,s.renderingStartTime=Re(),t.sibling=null,n=Ne.current,ve(Ne,r?n&1|2:n&1),t):(Ze(t),null);case 22:case 23:return hh(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?Rt&1073741824&&(Ze(t),t.subtreeFlags&6&&(t.flags|=8192)):Ze(t),null;case 24:return null;case 25:return null}throw Error(B(156,t.tag))}function wN(e,t){switch(Kf(t),t.tag){case 1:return Ct(t.type)&&ql(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Fs(),ke(Tt),ke(rt),rh(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return nh(t),null;case 13:if(ke(Ne),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(B(340));Rs()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return ke(Ne),null;case 4:return Fs(),null;case 10:return Jf(t.type._context),null;case 22:case 23:return hh(),null;case 24:return null;default:return null}}var Ja=!1,tt=!1,bN=typeof WeakSet=="function"?WeakSet:Set,W=null;function rs(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){Ie(e,t,r)}else n.current=null}function mp(e,t,n){try{n()}catch(r){Ie(e,t,r)}}var Qg=!1;function kN(e,t){if(Jd=$l,e=h0(),Wf(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var i=r.anchorOffset,s=r.focusNode;r=r.focusOffset;try{n.nodeType,s.nodeType}catch{n=null;break e}var o=0,l=-1,c=-1,u=0,d=0,p=e,h=null;t:for(;;){for(var f;p!==n||i!==0&&p.nodeType!==3||(l=o+i),p!==s||r!==0&&p.nodeType!==3||(c=o+r),p.nodeType===3&&(o+=p.nodeValue.length),(f=p.firstChild)!==null;)h=p,p=f;for(;;){if(p===e)break t;if(h===n&&++u===i&&(l=o),h===s&&++d===r&&(c=o),(f=p.nextSibling)!==null)break;p=h,h=p.parentNode}p=f}n=l===-1||c===-1?null:{start:l,end:c}}else n=null}n=n||{start:0,end:0}}else n=null;for(Zd={focusedElem:e,selectionRange:n},$l=!1,W=t;W!==null;)if(t=W,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,W=e;else for(;W!==null;){t=W;try{var x=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(x!==null){var g=x.memoizedProps,w=x.memoizedState,m=t.stateNode,y=m.getSnapshotBeforeUpdate(t.elementType===t.type?g:pn(t.type,g),w);m.__reactInternalSnapshotBeforeUpdate=y}break;case 3:var v=t.stateNode.containerInfo;v.nodeType===1?v.textContent="":v.nodeType===9&&v.documentElement&&v.removeChild(v.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(B(163))}}catch(k){Ie(t,t.return,k)}if(e=t.sibling,e!==null){e.return=t.return,W=e;break}W=t.return}return x=Qg,Qg=!1,x}function Do(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var i=r=r.next;do{if((i.tag&e)===e){var s=i.destroy;i.destroy=void 0,s!==void 0&&mp(t,n,s)}i=i.next}while(i!==r)}}function Oc(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function gp(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function ub(e){var t=e.alternate;t!==null&&(e.alternate=null,ub(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Rn],delete t[ta],delete t[np],delete t[iN],delete t[sN])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function db(e){return e.tag===5||e.tag===3||e.tag===4}function Xg(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||db(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function yp(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Wl));else if(r!==4&&(e=e.child,e!==null))for(yp(e,t,n),e=e.sibling;e!==null;)yp(e,t,n),e=e.sibling}function vp(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(vp(e,t,n),e=e.sibling;e!==null;)vp(e,t,n),e=e.sibling}var qe=null,gn=!1;function xr(e,t,n){for(n=n.child;n!==null;)pb(e,t,n),n=n.sibling}function pb(e,t,n){if(Ln&&typeof Ln.onCommitFiberUnmount=="function")try{Ln.onCommitFiberUnmount(Ac,n)}catch{}switch(n.tag){case 5:tt||rs(n,t);case 6:var r=qe,i=gn;qe=null,xr(e,t,n),qe=r,gn=i,qe!==null&&(gn?(e=qe,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):qe.removeChild(n.stateNode));break;case 18:qe!==null&&(gn?(e=qe,n=n.stateNode,e.nodeType===8?Fu(e.parentNode,n):e.nodeType===1&&Fu(e,n),Qo(e)):Fu(qe,n.stateNode));break;case 4:r=qe,i=gn,qe=n.stateNode.containerInfo,gn=!0,xr(e,t,n),qe=r,gn=i;break;case 0:case 11:case 14:case 15:if(!tt&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){i=r=r.next;do{var s=i,o=s.destroy;s=s.tag,o!==void 0&&(s&2||s&4)&&mp(n,t,o),i=i.next}while(i!==r)}xr(e,t,n);break;case 1:if(!tt&&(rs(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(l){Ie(n,t,l)}xr(e,t,n);break;case 21:xr(e,t,n);break;case 22:n.mode&1?(tt=(r=tt)||n.memoizedState!==null,xr(e,t,n),tt=r):xr(e,t,n);break;default:xr(e,t,n)}}function Jg(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new bN),t.forEach(function(r){var i=MN.bind(null,e,r);n.has(r)||(n.add(r),r.then(i,i))})}}function ln(e,t){var n=t.deletions;if(n!==null)for(var r=0;r<n.length;r++){var i=n[r];try{var s=e,o=t,l=o;e:for(;l!==null;){switch(l.tag){case 5:qe=l.stateNode,gn=!1;break e;case 3:qe=l.stateNode.containerInfo,gn=!0;break e;case 4:qe=l.stateNode.containerInfo,gn=!0;break e}l=l.return}if(qe===null)throw Error(B(160));pb(s,o,i),qe=null,gn=!1;var c=i.alternate;c!==null&&(c.return=null),i.return=null}catch(u){Ie(i,t,u)}}if(t.subtreeFlags&12854)for(t=t.child;t!==null;)fb(t,e),t=t.sibling}function fb(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(ln(t,e),Nn(e),r&4){try{Do(3,e,e.return),Oc(3,e)}catch(g){Ie(e,e.return,g)}try{Do(5,e,e.return)}catch(g){Ie(e,e.return,g)}}break;case 1:ln(t,e),Nn(e),r&512&&n!==null&&rs(n,n.return);break;case 5:if(ln(t,e),Nn(e),r&512&&n!==null&&rs(n,n.return),e.flags&32){var i=e.stateNode;try{Wo(i,"")}catch(g){Ie(e,e.return,g)}}if(r&4&&(i=e.stateNode,i!=null)){var s=e.memoizedProps,o=n!==null?n.memoizedProps:s,l=e.type,c=e.updateQueue;if(e.updateQueue=null,c!==null)try{l==="input"&&s.type==="radio"&&s.name!=null&&Fw(i,s),Vd(l,o);var u=Vd(l,s);for(o=0;o<c.length;o+=2){var d=c[o],p=c[o+1];d==="style"?Gw(i,p):d==="dangerouslySetInnerHTML"?_w(i,p):d==="children"?Wo(i,p):Rf(i,d,p,u)}switch(l){case"input":Ld(i,s);break;case"textarea":Ow(i,s);break;case"select":var h=i._wrapperState.wasMultiple;i._wrapperState.wasMultiple=!!s.multiple;var f=s.value;f!=null?us(i,!!s.multiple,f,!1):h!==!!s.multiple&&(s.defaultValue!=null?us(i,!!s.multiple,s.defaultValue,!0):us(i,!!s.multiple,s.multiple?[]:"",!1))}i[ta]=s}catch(g){Ie(e,e.return,g)}}break;case 6:if(ln(t,e),Nn(e),r&4){if(e.stateNode===null)throw Error(B(162));i=e.stateNode,s=e.memoizedProps;try{i.nodeValue=s}catch(g){Ie(e,e.return,g)}}break;case 3:if(ln(t,e),Nn(e),r&4&&n!==null&&n.memoizedState.isDehydrated)try{Qo(t.containerInfo)}catch(g){Ie(e,e.return,g)}break;case 4:ln(t,e),Nn(e);break;case 13:ln(t,e),Nn(e),i=e.child,i.flags&8192&&(s=i.memoizedState!==null,i.stateNode.isHidden=s,!s||i.alternate!==null&&i.alternate.memoizedState!==null||(ph=Re())),r&4&&Jg(e);break;case 22:if(d=n!==null&&n.memoizedState!==null,e.mode&1?(tt=(u=tt)||d,ln(t,e),tt=u):ln(t,e),Nn(e),r&8192){if(u=e.memoizedState!==null,(e.stateNode.isHidden=u)&&!d&&e.mode&1)for(W=e,d=e.child;d!==null;){for(p=W=d;W!==null;){switch(h=W,f=h.child,h.tag){case 0:case 11:case 14:case 15:Do(4,h,h.return);break;case 1:rs(h,h.return);var x=h.stateNode;if(typeof x.componentWillUnmount=="function"){r=h,n=h.return;try{t=r,x.props=t.memoizedProps,x.state=t.memoizedState,x.componentWillUnmount()}catch(g){Ie(r,n,g)}}break;case 5:rs(h,h.return);break;case 22:if(h.memoizedState!==null){ey(p);continue}}f!==null?(f.return=h,W=f):ey(p)}d=d.sibling}e:for(d=null,p=e;;){if(p.tag===5){if(d===null){d=p;try{i=p.stateNode,u?(s=i.style,typeof s.setProperty=="function"?s.setProperty("display","none","important"):s.display="none"):(l=p.stateNode,c=p.memoizedProps.style,o=c!=null&&c.hasOwnProperty("display")?c.display:null,l.style.display=Bw("display",o))}catch(g){Ie(e,e.return,g)}}}else if(p.tag===6){if(d===null)try{p.stateNode.nodeValue=u?"":p.memoizedProps}catch(g){Ie(e,e.return,g)}}else if((p.tag!==22&&p.tag!==23||p.memoizedState===null||p===e)&&p.child!==null){p.child.return=p,p=p.child;continue}if(p===e)break e;for(;p.sibling===null;){if(p.return===null||p.return===e)break e;d===p&&(d=null),p=p.return}d===p&&(d=null),p.sibling.return=p.return,p=p.sibling}}break;case 19:ln(t,e),Nn(e),r&4&&Jg(e);break;case 21:break;default:ln(t,e),Nn(e)}}function Nn(e){var t=e.flags;if(t&2){try{e:{for(var n=e.return;n!==null;){if(db(n)){var r=n;break e}n=n.return}throw Error(B(160))}switch(r.tag){case 5:var i=r.stateNode;r.flags&32&&(Wo(i,""),r.flags&=-33);var s=Xg(e);vp(e,s,i);break;case 3:case 4:var o=r.stateNode.containerInfo,l=Xg(e);yp(e,l,o);break;default:throw Error(B(161))}}catch(c){Ie(e,e.return,c)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function SN(e,t,n){W=e,hb(e)}function hb(e,t,n){for(var r=(e.mode&1)!==0;W!==null;){var i=W,s=i.child;if(i.tag===22&&r){var o=i.memoizedState!==null||Ja;if(!o){var l=i.alternate,c=l!==null&&l.memoizedState!==null||tt;l=Ja;var u=tt;if(Ja=o,(tt=c)&&!u)for(W=i;W!==null;)o=W,c=o.child,o.tag===22&&o.memoizedState!==null?ty(i):c!==null?(c.return=o,W=c):ty(i);for(;s!==null;)W=s,hb(s),s=s.sibling;W=i,Ja=l,tt=u}Zg(e)}else i.subtreeFlags&8772&&s!==null?(s.return=i,W=s):Zg(e)}}function Zg(e){for(;W!==null;){var t=W;if(t.flags&8772){var n=t.alternate;try{if(t.flags&8772)switch(t.tag){case 0:case 11:case 15:tt||Oc(5,t);break;case 1:var r=t.stateNode;if(t.flags&4&&!tt)if(n===null)r.componentDidMount();else{var i=t.elementType===t.type?n.memoizedProps:pn(t.type,n.memoizedProps);r.componentDidUpdate(i,n.memoizedState,r.__reactInternalSnapshotBeforeUpdate)}var s=t.updateQueue;s!==null&&Lg(t,s,r);break;case 3:var o=t.updateQueue;if(o!==null){if(n=null,t.child!==null)switch(t.child.tag){case 5:n=t.child.stateNode;break;case 1:n=t.child.stateNode}Lg(t,o,n)}break;case 5:var l=t.stateNode;if(n===null&&t.flags&4){n=l;var c=t.memoizedProps;switch(t.type){case"button":case"input":case"select":case"textarea":c.autoFocus&&n.focus();break;case"img":c.src&&(n.src=c.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(t.memoizedState===null){var u=t.alternate;if(u!==null){var d=u.memoizedState;if(d!==null){var p=d.dehydrated;p!==null&&Qo(p)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(B(163))}tt||t.flags&512&&gp(t)}catch(h){Ie(t,t.return,h)}}if(t===e){W=null;break}if(n=t.sibling,n!==null){n.return=t.return,W=n;break}W=t.return}}function ey(e){for(;W!==null;){var t=W;if(t===e){W=null;break}var n=t.sibling;if(n!==null){n.return=t.return,W=n;break}W=t.return}}function ty(e){for(;W!==null;){var t=W;try{switch(t.tag){case 0:case 11:case 15:var n=t.return;try{Oc(4,t)}catch(c){Ie(t,n,c)}break;case 1:var r=t.stateNode;if(typeof r.componentDidMount=="function"){var i=t.return;try{r.componentDidMount()}catch(c){Ie(t,i,c)}}var s=t.return;try{gp(t)}catch(c){Ie(t,s,c)}break;case 5:var o=t.return;try{gp(t)}catch(c){Ie(t,o,c)}}}catch(c){Ie(t,t.return,c)}if(t===e){W=null;break}var l=t.sibling;if(l!==null){l.return=t.return,W=l;break}W=t.return}}var TN=Math.ceil,rc=dr.ReactCurrentDispatcher,uh=dr.ReactCurrentOwner,Jt=dr.ReactCurrentBatchConfig,ue=0,He=null,Be=null,Ye=0,Rt=0,is=ti(0),Ve=0,aa=null,Ri=0,Lc=0,dh=0,Fo=null,kt=null,ph=0,Ls=1/0,Jn=null,ic=!1,xp=null,$r=null,Za=!1,Fr=null,sc=0,Oo=0,wp=null,Sl=-1,Tl=0;function ht(){return ue&6?Re():Sl!==-1?Sl:Sl=Re()}function Ur(e){return e.mode&1?ue&2&&Ye!==0?Ye&-Ye:aN.transition!==null?(Tl===0&&(Tl=Jw()),Tl):(e=he,e!==0||(e=window.event,e=e===void 0?16:s0(e.type)),e):1}function wn(e,t,n,r){if(50<Oo)throw Oo=0,wp=null,Error(B(185));Sa(e,n,r),(!(ue&2)||e!==He)&&(e===He&&(!(ue&2)&&(Lc|=n),Ve===4&&Ar(e,Ye)),jt(e,r),n===1&&ue===0&&!(t.mode&1)&&(Ls=Re()+500,Rc&&ni()))}function jt(e,t){var n=e.callbackNode;aj(e,t);var r=Vl(e,e===He?Ye:0);if(r===0)n!==null&&ug(n),e.callbackNode=null,e.callbackPriority=0;else if(t=r&-r,e.callbackPriority!==t){if(n!=null&&ug(n),t===1)e.tag===0?oN(ny.bind(null,e)):T0(ny.bind(null,e)),nN(function(){!(ue&6)&&ni()}),n=null;else{switch(Zw(r)){case 1:n=_f;break;case 4:n=Qw;break;case 16:n=zl;break;case 536870912:n=Xw;break;default:n=zl}n=kb(n,mb.bind(null,e))}e.callbackPriority=t,e.callbackNode=n}}function mb(e,t){if(Sl=-1,Tl=0,ue&6)throw Error(B(327));var n=e.callbackNode;if(ms()&&e.callbackNode!==n)return null;var r=Vl(e,e===He?Ye:0);if(r===0)return null;if(r&30||r&e.expiredLanes||t)t=oc(e,r);else{t=r;var i=ue;ue|=2;var s=yb();(He!==e||Ye!==t)&&(Jn=null,Ls=Re()+500,Ni(e,t));do try{NN();break}catch(l){gb(e,l)}while(!0);Xf(),rc.current=s,ue=i,Be!==null?t=0:(He=null,Ye=0,t=Ve)}if(t!==0){if(t===2&&(i=qd(e),i!==0&&(r=i,t=bp(e,i))),t===1)throw n=aa,Ni(e,0),Ar(e,r),jt(e,Re()),n;if(t===6)Ar(e,r);else{if(i=e.current.alternate,!(r&30)&&!CN(i)&&(t=oc(e,r),t===2&&(s=qd(e),s!==0&&(r=s,t=bp(e,s))),t===1))throw n=aa,Ni(e,0),Ar(e,r),jt(e,Re()),n;switch(e.finishedWork=i,e.finishedLanes=r,t){case 0:case 1:throw Error(B(345));case 2:pi(e,kt,Jn);break;case 3:if(Ar(e,r),(r&130023424)===r&&(t=ph+500-Re(),10<t)){if(Vl(e,0)!==0)break;if(i=e.suspendedLanes,(i&r)!==r){ht(),e.pingedLanes|=e.suspendedLanes&i;break}e.timeoutHandle=tp(pi.bind(null,e,kt,Jn),t);break}pi(e,kt,Jn);break;case 4:if(Ar(e,r),(r&4194240)===r)break;for(t=e.eventTimes,i=-1;0<r;){var o=31-xn(r);s=1<<o,o=t[o],o>i&&(i=o),r&=~s}if(r=i,r=Re()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*TN(r/1960))-r,10<r){e.timeoutHandle=tp(pi.bind(null,e,kt,Jn),r);break}pi(e,kt,Jn);break;case 5:pi(e,kt,Jn);break;default:throw Error(B(329))}}}return jt(e,Re()),e.callbackNode===n?mb.bind(null,e):null}function bp(e,t){var n=Fo;return e.current.memoizedState.isDehydrated&&(Ni(e,t).flags|=256),e=oc(e,t),e!==2&&(t=kt,kt=n,t!==null&&kp(t)),e}function kp(e){kt===null?kt=e:kt.push.apply(kt,e)}function CN(e){for(var t=e;;){if(t.flags&16384){var n=t.updateQueue;if(n!==null&&(n=n.stores,n!==null))for(var r=0;r<n.length;r++){var i=n[r],s=i.getSnapshot;i=i.value;try{if(!bn(s(),i))return!1}catch{return!1}}}if(n=t.child,t.subtreeFlags&16384&&n!==null)n.return=t,t=n;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function Ar(e,t){for(t&=~dh,t&=~Lc,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-xn(t),r=1<<n;e[n]=-1,t&=~r}}function ny(e){if(ue&6)throw Error(B(327));ms();var t=Vl(e,0);if(!(t&1))return jt(e,Re()),null;var n=oc(e,t);if(e.tag!==0&&n===2){var r=qd(e);r!==0&&(t=r,n=bp(e,r))}if(n===1)throw n=aa,Ni(e,0),Ar(e,t),jt(e,Re()),n;if(n===6)throw Error(B(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,pi(e,kt,Jn),jt(e,Re()),null}function fh(e,t){var n=ue;ue|=1;try{return e(t)}finally{ue=n,ue===0&&(Ls=Re()+500,Rc&&ni())}}function Di(e){Fr!==null&&Fr.tag===0&&!(ue&6)&&ms();var t=ue;ue|=1;var n=Jt.transition,r=he;try{if(Jt.transition=null,he=1,e)return e()}finally{he=r,Jt.transition=n,ue=t,!(ue&6)&&ni()}}function hh(){Rt=is.current,ke(is)}function Ni(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(n!==-1&&(e.timeoutHandle=-1,tN(n)),Be!==null)for(n=Be.return;n!==null;){var r=n;switch(Kf(r),r.tag){case 1:r=r.type.childContextTypes,r!=null&&ql();break;case 3:Fs(),ke(Tt),ke(rt),rh();break;case 5:nh(r);break;case 4:Fs();break;case 13:ke(Ne);break;case 19:ke(Ne);break;case 10:Jf(r.type._context);break;case 22:case 23:hh()}n=n.return}if(He=e,Be=e=Hr(e.current,null),Ye=Rt=t,Ve=0,aa=null,dh=Lc=Ri=0,kt=Fo=null,gi!==null){for(t=0;t<gi.length;t++)if(n=gi[t],r=n.interleaved,r!==null){n.interleaved=null;var i=r.next,s=n.pending;if(s!==null){var o=s.next;s.next=i,r.next=o}n.pending=r}gi=null}return e}function gb(e,t){do{var n=Be;try{if(Xf(),wl.current=nc,tc){for(var r=Pe.memoizedState;r!==null;){var i=r.queue;i!==null&&(i.pending=null),r=r.next}tc=!1}if(Ii=0,Ue=ze=Pe=null,Ro=!1,ia=0,uh.current=null,n===null||n.return===null){Ve=1,aa=t,Be=null;break}e:{var s=e,o=n.return,l=n,c=t;if(t=Ye,l.flags|=32768,c!==null&&typeof c=="object"&&typeof c.then=="function"){var u=c,d=l,p=d.tag;if(!(d.mode&1)&&(p===0||p===11||p===15)){var h=d.alternate;h?(d.updateQueue=h.updateQueue,d.memoizedState=h.memoizedState,d.lanes=h.lanes):(d.updateQueue=null,d.memoizedState=null)}var f=$g(o);if(f!==null){f.flags&=-257,Ug(f,o,l,s,t),f.mode&1&&Vg(s,u,t),t=f,c=u;var x=t.updateQueue;if(x===null){var g=new Set;g.add(c),t.updateQueue=g}else x.add(c);break e}else{if(!(t&1)){Vg(s,u,t),mh();break e}c=Error(B(426))}}else if(Ce&&l.mode&1){var w=$g(o);if(w!==null){!(w.flags&65536)&&(w.flags|=256),Ug(w,o,l,s,t),Yf(Os(c,l));break e}}s=c=Os(c,l),Ve!==4&&(Ve=2),Fo===null?Fo=[s]:Fo.push(s),s=o;do{switch(s.tag){case 3:s.flags|=65536,t&=-t,s.lanes|=t;var m=Z0(s,c,t);Og(s,m);break e;case 1:l=c;var y=s.type,v=s.stateNode;if(!(s.flags&128)&&(typeof y.getDerivedStateFromError=="function"||v!==null&&typeof v.componentDidCatch=="function"&&($r===null||!$r.has(v)))){s.flags|=65536,t&=-t,s.lanes|=t;var k=eb(s,l,t);Og(s,k);break e}}s=s.return}while(s!==null)}xb(n)}catch(C){t=C,Be===n&&n!==null&&(Be=n=n.return);continue}break}while(!0)}function yb(){var e=rc.current;return rc.current=nc,e===null?nc:e}function mh(){(Ve===0||Ve===3||Ve===2)&&(Ve=4),He===null||!(Ri&268435455)&&!(Lc&268435455)||Ar(He,Ye)}function oc(e,t){var n=ue;ue|=2;var r=yb();(He!==e||Ye!==t)&&(Jn=null,Ni(e,t));do try{jN();break}catch(i){gb(e,i)}while(!0);if(Xf(),ue=n,rc.current=r,Be!==null)throw Error(B(261));return He=null,Ye=0,Ve}function jN(){for(;Be!==null;)vb(Be)}function NN(){for(;Be!==null&&!JC();)vb(Be)}function vb(e){var t=bb(e.alternate,e,Rt);e.memoizedProps=e.pendingProps,t===null?xb(e):Be=t,uh.current=null}function xb(e){var t=e;do{var n=t.alternate;if(e=t.return,t.flags&32768){if(n=wN(n,t),n!==null){n.flags&=32767,Be=n;return}if(e!==null)e.flags|=32768,e.subtreeFlags=0,e.deletions=null;else{Ve=6,Be=null;return}}else if(n=xN(n,t,Rt),n!==null){Be=n;return}if(t=t.sibling,t!==null){Be=t;return}Be=t=e}while(t!==null);Ve===0&&(Ve=5)}function pi(e,t,n){var r=he,i=Jt.transition;try{Jt.transition=null,he=1,AN(e,t,n,r)}finally{Jt.transition=i,he=r}return null}function AN(e,t,n,r){do ms();while(Fr!==null);if(ue&6)throw Error(B(327));n=e.finishedWork;var i=e.finishedLanes;if(n===null)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(B(177));e.callbackNode=null,e.callbackPriority=0;var s=n.lanes|n.childLanes;if(lj(e,s),e===He&&(Be=He=null,Ye=0),!(n.subtreeFlags&2064)&&!(n.flags&2064)||Za||(Za=!0,kb(zl,function(){return ms(),null})),s=(n.flags&15990)!==0,n.subtreeFlags&15990||s){s=Jt.transition,Jt.transition=null;var o=he;he=1;var l=ue;ue|=4,uh.current=null,kN(e,n),fb(n,e),Kj(Zd),$l=!!Jd,Zd=Jd=null,e.current=n,SN(n),ZC(),ue=l,he=o,Jt.transition=s}else e.current=n;if(Za&&(Za=!1,Fr=e,sc=i),s=e.pendingLanes,s===0&&($r=null),nj(n.stateNode),jt(e,Re()),t!==null)for(r=e.onRecoverableError,n=0;n<t.length;n++)i=t[n],r(i.value,{componentStack:i.stack,digest:i.digest});if(ic)throw ic=!1,e=xp,xp=null,e;return sc&1&&e.tag!==0&&ms(),s=e.pendingLanes,s&1?e===wp?Oo++:(Oo=0,wp=e):Oo=0,ni(),null}function ms(){if(Fr!==null){var e=Zw(sc),t=Jt.transition,n=he;try{if(Jt.transition=null,he=16>e?16:e,Fr===null)var r=!1;else{if(e=Fr,Fr=null,sc=0,ue&6)throw Error(B(331));var i=ue;for(ue|=4,W=e.current;W!==null;){var s=W,o=s.child;if(W.flags&16){var l=s.deletions;if(l!==null){for(var c=0;c<l.length;c++){var u=l[c];for(W=u;W!==null;){var d=W;switch(d.tag){case 0:case 11:case 15:Do(8,d,s)}var p=d.child;if(p!==null)p.return=d,W=p;else for(;W!==null;){d=W;var h=d.sibling,f=d.return;if(ub(d),d===u){W=null;break}if(h!==null){h.return=f,W=h;break}W=f}}}var x=s.alternate;if(x!==null){var g=x.child;if(g!==null){x.child=null;do{var w=g.sibling;g.sibling=null,g=w}while(g!==null)}}W=s}}if(s.subtreeFlags&2064&&o!==null)o.return=s,W=o;else e:for(;W!==null;){if(s=W,s.flags&2048)switch(s.tag){case 0:case 11:case 15:Do(9,s,s.return)}var m=s.sibling;if(m!==null){m.return=s.return,W=m;break e}W=s.return}}var y=e.current;for(W=y;W!==null;){o=W;var v=o.child;if(o.subtreeFlags&2064&&v!==null)v.return=o,W=v;else e:for(o=y;W!==null;){if(l=W,l.flags&2048)try{switch(l.tag){case 0:case 11:case 15:Oc(9,l)}}catch(C){Ie(l,l.return,C)}if(l===o){W=null;break e}var k=l.sibling;if(k!==null){k.return=l.return,W=k;break e}W=l.return}}if(ue=i,ni(),Ln&&typeof Ln.onPostCommitFiberRoot=="function")try{Ln.onPostCommitFiberRoot(Ac,e)}catch{}r=!0}return r}finally{he=n,Jt.transition=t}}return!1}function ry(e,t,n){t=Os(n,t),t=Z0(e,t,1),e=Vr(e,t,1),t=ht(),e!==null&&(Sa(e,1,t),jt(e,t))}function Ie(e,t,n){if(e.tag===3)ry(e,e,n);else for(;t!==null;){if(t.tag===3){ry(t,e,n);break}else if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof r.componentDidCatch=="function"&&($r===null||!$r.has(r))){e=Os(n,e),e=eb(t,e,1),t=Vr(t,e,1),e=ht(),t!==null&&(Sa(t,1,e),jt(t,e));break}}t=t.return}}function PN(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),t=ht(),e.pingedLanes|=e.suspendedLanes&n,He===e&&(Ye&n)===n&&(Ve===4||Ve===3&&(Ye&130023424)===Ye&&500>Re()-ph?Ni(e,0):dh|=n),jt(e,t)}function wb(e,t){t===0&&(e.mode&1?(t=$a,$a<<=1,!($a&130023424)&&($a=4194304)):t=1);var n=ht();e=or(e,t),e!==null&&(Sa(e,t,n),jt(e,n))}function EN(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),wb(e,n)}function MN(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,i=e.memoizedState;i!==null&&(n=i.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(B(314))}r!==null&&r.delete(t),wb(e,n)}var bb;bb=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||Tt.current)St=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return St=!1,vN(e,t,n);St=!!(e.flags&131072)}else St=!1,Ce&&t.flags&1048576&&C0(t,Ql,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;kl(e,t),e=t.pendingProps;var i=Is(t,rt.current);hs(t,n),i=sh(null,t,r,e,i,n);var s=oh();return t.flags|=1,typeof i=="object"&&i!==null&&typeof i.render=="function"&&i.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Ct(r)?(s=!0,Kl(t)):s=!1,t.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,eh(t),i.updater=Fc,t.stateNode=i,i._reactInternals=t,lp(t,r,e,n),t=dp(null,t,r,!0,s,n)):(t.tag=0,Ce&&s&&qf(t),lt(null,t,i,n),t=t.child),t;case 16:r=t.elementType;e:{switch(kl(e,t),e=t.pendingProps,i=r._init,r=i(r._payload),t.type=r,i=t.tag=RN(r),e=pn(r,e),i){case 0:t=up(null,t,r,e,n);break e;case 1:t=qg(null,t,r,e,n);break e;case 11:t=Hg(null,t,r,e,n);break e;case 14:t=Wg(null,t,r,pn(r.type,e),n);break e}throw Error(B(306,r,""))}return t;case 0:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:pn(r,i),up(e,t,r,i,n);case 1:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:pn(r,i),qg(e,t,r,i,n);case 3:e:{if(ib(t),e===null)throw Error(B(387));r=t.pendingProps,s=t.memoizedState,i=s.element,M0(e,t),Zl(t,r,null,n);var o=t.memoizedState;if(r=o.element,s.isDehydrated)if(s={element:r,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},t.updateQueue.baseState=s,t.memoizedState=s,t.flags&256){i=Os(Error(B(423)),t),t=Kg(e,t,r,n,i);break e}else if(r!==i){i=Os(Error(B(424)),t),t=Kg(e,t,r,n,i);break e}else for(Ft=zr(t.stateNode.containerInfo.firstChild),Lt=t,Ce=!0,yn=null,n=P0(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(Rs(),r===i){t=ar(e,t,n);break e}lt(e,t,r,n)}t=t.child}return t;case 5:return I0(t),e===null&&sp(t),r=t.type,i=t.pendingProps,s=e!==null?e.memoizedProps:null,o=i.children,ep(r,i)?o=null:s!==null&&ep(r,s)&&(t.flags|=32),rb(e,t),lt(e,t,o,n),t.child;case 6:return e===null&&sp(t),null;case 13:return sb(e,t,n);case 4:return th(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Ds(t,null,r,n):lt(e,t,r,n),t.child;case 11:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:pn(r,i),Hg(e,t,r,i,n);case 7:return lt(e,t,t.pendingProps,n),t.child;case 8:return lt(e,t,t.pendingProps.children,n),t.child;case 12:return lt(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,i=t.pendingProps,s=t.memoizedProps,o=i.value,ve(Xl,r._currentValue),r._currentValue=o,s!==null)if(bn(s.value,o)){if(s.children===i.children&&!Tt.current){t=ar(e,t,n);break e}}else for(s=t.child,s!==null&&(s.return=t);s!==null;){var l=s.dependencies;if(l!==null){o=s.child;for(var c=l.firstContext;c!==null;){if(c.context===r){if(s.tag===1){c=rr(-1,n&-n),c.tag=2;var u=s.updateQueue;if(u!==null){u=u.shared;var d=u.pending;d===null?c.next=c:(c.next=d.next,d.next=c),u.pending=c}}s.lanes|=n,c=s.alternate,c!==null&&(c.lanes|=n),op(s.return,n,t),l.lanes|=n;break}c=c.next}}else if(s.tag===10)o=s.type===t.type?null:s.child;else if(s.tag===18){if(o=s.return,o===null)throw Error(B(341));o.lanes|=n,l=o.alternate,l!==null&&(l.lanes|=n),op(o,n,t),o=s.sibling}else o=s.child;if(o!==null)o.return=s;else for(o=s;o!==null;){if(o===t){o=null;break}if(s=o.sibling,s!==null){s.return=o.return,o=s;break}o=o.return}s=o}lt(e,t,i.children,n),t=t.child}return t;case 9:return i=t.type,r=t.pendingProps.children,hs(t,n),i=en(i),r=r(i),t.flags|=1,lt(e,t,r,n),t.child;case 14:return r=t.type,i=pn(r,t.pendingProps),i=pn(r.type,i),Wg(e,t,r,i,n);case 15:return tb(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:pn(r,i),kl(e,t),t.tag=1,Ct(r)?(e=!0,Kl(t)):e=!1,hs(t,n),J0(t,r,i),lp(t,r,i,n),dp(null,t,r,!0,e,n);case 19:return ob(e,t,n);case 22:return nb(e,t,n)}throw Error(B(156,t.tag))};function kb(e,t){return Yw(e,t)}function IN(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Qt(e,t,n,r){return new IN(e,t,n,r)}function gh(e){return e=e.prototype,!(!e||!e.isReactComponent)}function RN(e){if(typeof e=="function")return gh(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Ff)return 11;if(e===Of)return 14}return 2}function Hr(e,t){var n=e.alternate;return n===null?(n=Qt(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deleti
vendor: 4,897 bytes, line 40
40ons=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Cl(e,t,n,r,i,s){var o=2;if(r=e,typeof e=="function")gh(e)&&(o=1);else if(typeof e=="string")o=5;else e:switch(e){case Ki:return Ai(n.children,i,s,t);case Df:o=8,i|=8;break;case Id:return e=Qt(12,n,t,i|2),e.elementType=Id,e.lanes=s,e;case Rd:return e=Qt(13,n,t,i),e.elementType=Rd,e.lanes=s,e;case Dd:return e=Qt(19,n,t,i),e.elementType=Dd,e.lanes=s,e;case Iw:return _c(n,i,s,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case Ew:o=10;break e;case Mw:o=9;break e;case Ff:o=11;break e;case Of:o=14;break e;case Cr:o=16,r=null;break e}throw Error(B(130,e==null?e:typeof e,""))}return t=Qt(o,n,t,i),t.elementType=e,t.type=r,t.lanes=s,t}function Ai(e,t,n,r){return e=Qt(7,e,r,t),e.lanes=n,e}function _c(e,t,n,r){return e=Qt(22,e,r,t),e.elementType=Iw,e.lanes=n,e.stateNode={isHidden:!1},e}function $u(e,t,n){return e=Qt(6,e,null,t),e.lanes=n,e}function Uu(e,t,n){return t=Qt(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function DN(e,t,n,r,i){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Tu(0),this.expirationTimes=Tu(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Tu(0),this.identifierPrefix=r,this.onRecoverableError=i,this.mutableSourceEagerHydrationData=null}function yh(e,t,n,r,i,s,o,l,c){return e=new DN(e,t,n,l,c),t===1?(t=1,s===!0&&(t|=8)):t=0,s=Qt(3,null,null,t),e.current=s,s.stateNode=e,s.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},eh(s),e}function FN(e,t,n){var r=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:qi,key:r==null?null:""+r,children:e,containerInfo:t,implementation:n}}function Sb(e){if(!e)return Kr;e=e._reactInternals;e:{if(_i(e)!==e||e.tag!==1)throw Error(B(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(Ct(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(t!==null);throw Error(B(171))}if(e.tag===1){var n=e.type;if(Ct(n))return S0(e,n,t)}return t}function Tb(e,t,n,r,i,s,o,l,c){return e=yh(n,r,!0,e,i,s,o,l,c),e.context=Sb(null),n=e.current,r=ht(),i=Ur(n),s=rr(r,i),s.callback=t??null,Vr(n,s,i),e.current.lanes=i,Sa(e,i,r),jt(e,r),e}function Bc(e,t,n,r){var i=t.current,s=ht(),o=Ur(i);return n=Sb(n),t.context===null?t.context=n:t.pendingContext=n,t=rr(s,o),t.payload={element:e},r=r===void 0?null:r,r!==null&&(t.callback=r),e=Vr(i,t,o),e!==null&&(wn(e,i,o,s),xl(e,i,o)),o}function ac(e){if(e=e.current,!e.child)return null;switch(e.child.tag){case 5:return e.child.stateNode;default:return e.child.stateNode}}function iy(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n<t?n:t}}function vh(e,t){iy(e,t),(e=e.alternate)&&iy(e,t)}function ON(){return null}var Cb=typeof reportError=="function"?reportError:function(e){console.error(e)};function xh(e){this._internalRoot=e}Gc.prototype.render=xh.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(B(409));Bc(e,t,null,null)};Gc.prototype.unmount=xh.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;Di(function(){Bc(null,e,null,null)}),t[sr]=null}};function Gc(e){this._internalRoot=e}Gc.prototype.unstable_scheduleHydration=function(e){if(e){var t=n0();e={blockedOn:null,target:e,priority:t};for(var n=0;n<Nr.length&&t!==0&&t<Nr[n].priority;n++);Nr.splice(n,0,e),n===0&&i0(e)}};function wh(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function zc(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11&&(e.nodeType!==8||e.nodeValue!==" react-mount-point-unstable "))}function sy(){}function LN(e,t,n,r,i){if(i){if(typeof r=="function"){var s=r;r=function(){var u=ac(o);s.call(u)}}var o=Tb(t,r,e,0,null,!1,!1,"",sy);return e._reactRootContainer=o,e[sr]=o.current,Zo(e.nodeType===8?e.parentNode:e),Di(),o}for(;i=e.lastChild;)e.removeChild(i);if(typeof r=="function"){var l=r;r=function(){var u=ac(c);l.call(u)}}var c=yh(e,0,!1,null,null,!1,!1,"",sy);return e._reactRootContainer=c,e[sr]=c.current,Zo(e.nodeType===8?e.parentNode:e),Di(function(){Bc(t,c,n,r)}),c}function Vc(e,t,n,r,i){var s=n._reactRootContainer;if(s){var o=s;if(typeof i=="function"){var l=i;
vendor: 4,508 bytes, line 40
40i=function(){var c=ac(o);l.call(c)}}Bc(t,o,e,i)}else o=LN(n,t,e,i,r);return ac(o)}e0=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var n=To(t.pendingLanes);n!==0&&(Bf(t,n|1),jt(t,Re()),!(ue&6)&&(Ls=Re()+500,ni()))}break;case 13:Di(function(){var r=or(e,1);if(r!==null){var i=ht();wn(r,e,1,i)}}),vh(e,1)}};Gf=function(e){if(e.tag===13){var t=or(e,134217728);if(t!==null){var n=ht();wn(t,e,134217728,n)}vh(e,134217728)}};t0=function(e){if(e.tag===13){var t=Ur(e),n=or(e,t);if(n!==null){var r=ht();wn(n,e,t,r)}vh(e,t)}};n0=function(){return he};r0=function(e,t){var n=he;try{return he=e,t()}finally{he=n}};Ud=function(e,t,n){switch(t){case"input":if(Ld(e,n),t=n.name,n.type==="radio"&&t!=null){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var i=Ic(r);if(!i)throw Error(B(90));Dw(r),Ld(r,i)}}}break;case"textarea":Ow(e,n);break;case"select":t=n.value,t!=null&&us(e,!!n.multiple,t,!1)}};$w=fh;Uw=Di;var _N={usingClientEntryPoint:!1,Events:[Ca,Ji,Ic,zw,Vw,fh]},ho={findFiberByHostInstance:mi,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},BN={bundleType:ho.bundleType,version:ho.version,rendererPackageName:ho.rendererPackageName,rendererConfig:ho.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:dr.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return e=qw(e),e===null?null:e.stateNode},findFiberByHostInstance:ho.findFiberByHostInstance||ON,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var el=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!el.isDisabled&&el.supportsFiber)try{Ac=el.inject(BN),Ln=el}catch{}}zt.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=_N;zt.createPortal=function(e,t){var n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!wh(t))throw Error(B(200));return FN(e,t,null,n)};zt.createRoot=function(e,t){if(!wh(e))throw Error(B(299));var n=!1,r="",i=Cb;return t!=null&&(t.unstable_strictMode===!0&&(n=!0),t.identifierPrefix!==void 0&&(r=t.identifierPrefix),t.onRecoverableError!==void 0&&(i=t.onRecoverableError)),t=yh(e,1,!1,null,null,n,!1,r,i),e[sr]=t.current,Zo(e.nodeType===8?e.parentNode:e),new xh(t)};zt.findDOMNode=function(e){if(e==null)return null;if(e.nodeType===1)return e;var t=e._reactInternals;if(t===void 0)throw typeof e.render=="function"?Error(B(188)):(e=Object.keys(e).join(","),Error(B(268,e)));return e=qw(t),e=e===null?null:e.stateNode,e};zt.flushSync=function(e){return Di(e)};zt.hydrate=function(e,t,n){if(!zc(t))throw Error(B(200));return Vc(null,e,t,!0,n)};zt.hydrateRoot=function(e,t,n){if(!wh(e))throw Error(B(405));var r=n!=null&&n.hydratedSources||null,i=!1,s="",o=Cb;if(n!=null&&(n.unstable_strictMode===!0&&(i=!0),n.identifierPrefix!==void 0&&(s=n.identifierPrefix),n.onRecoverableError!==void 0&&(o=n.onRecoverableError)),t=Tb(t,null,e,1,n??null,i,!1,s,o),e[sr]=t.current,Zo(e),r)for(e=0;e<r.length;e++)n=r[e],i=n._getVersion,i=i(n._source),t.mutableSourceEagerHydrationData==null?t.mutableSourceEagerHydrationData=[n,i]:t.mutableSourceEagerHydrationData.push(n,i);return new Gc(t)};zt.render=function(e,t,n){if(!zc(t))throw Error(B(200));return Vc(null,e,t,!1,n)};zt.unmountComponentAtNode=function(e){if(!zc(e))throw Error(B(40));return e._reactRootContainer?(Di(function(){Vc(null,null,e,!1,function(){e._reactRootContainer=null,e[sr]=null})}),!0):!1};zt.unstable_batchedUpdates=fh;zt.unstable_renderSubtreeIntoContainer=function(e,t,n,r){if(!zc(n))throw Error(B(200));if(e==null||e._reactInternals===void 0)throw Error(B(38));return Vc(e,t,n,!1,r)};zt.version="18.3.1-next-f1338f8080-20240426";function jb(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(jb)}catch(e){console.error(e)}}jb(),jw.exports=zt;var Na=jw.exports;const Nb=Oi(Na);var Ab,oy=Na;Ab=oy.createRoot,oy.hydrateRoot;var GN=typeof Element<"u",zN=typeof Map=="function",VN=typeof Set=="function",$N=typeof ArrayBuffer=="function"&&!!ArrayBuffer.isView;function jl(e,t){if(e===t)return!0;
40if(e&&t&&typeof e=="object"&&typeof t=="object"){if(e.constructor!==t.constructor)return!1;var n,r,i;if(Array.isArray(e)){if(n=e.length,n!=t.length)return!1;for(r=n;r--!==0;)if(!jl(e[r],t[r]))return!1;return!0}var s;if(zN&&e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(s=e.entries();!(r=s.next()).done;)if(!t.has(r.value[0]))return!1;for(s=e.entries();!(r=s.next()).done;)if(!jl(r.value[1],t.get(r.value[0])))return!1;return!0}if(VN&&e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(s=e.entries();!(r=s.next()).done;)if(!t.has(r.value[0]))return!1;return!0}if($N&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(t)){if(n=e.length,n!=t.length)return!1;for(r=n;r--!==0;)if(e[r]!==t[r])return!1;return!0}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf&&typeof e.valueOf=="function"&&typeof t.valueOf=="function")return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString&&typeof e.toString=="function"&&typeof t.toString=="function")return e.toString()===t.toString();if(i=Object.keys(e),n=i.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!Object.prototype.hasOwnProperty.call(t,i[r]))return!1;if(GN&&e instanceof Element)return!1;for(r=n;r--!==0;)if(!((i[r]==="_owner"||i[r]==="__v"||i[r]==="__o")&&e.$$typeof)&&!jl(e[i[r]],t[i[r]]))return!1;return!0}return e!==e&&t!==t}var UN=function(t,n){try{return jl(t,n)}catch(r){if((r.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw r}};const HN=Oi(UN);var WN=function(e,t,n,r,i,s,o,l){if(!e){var c;if(t===void 0)c=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var u=[n,r,i,s,o,l],d=0;c=new Error(t.replace(/%s/g,function(){return u[d++]})),c.name="Invariant Violation"}throw c.framesToPop=1,c}},qN=WN;const ay=Oi(qN);var KN=function(t,n,r,i){var s=r?r.call(i,t,n):void 0;if(s!==void 0)return!!s;if(t===n)return!0;if(typeof t!="object"||!t||typeof n!="object"||!n)return!1;var o=Object.keys(t),l=Object.keys(n);if(o.length!==l.length)return!1;for(var c=Object.prototype.hasOwnProperty.bind(n),u=0;u<o.length;u++){var d=o[u];if(!c(d))return!1;var p=t[d],h=n[d];if(s=r?r.call(i,p,h,d):void 0,s===!1||s===void 0&&p!==h)return!1}return!0};const YN=Oi(KN);var Pb=(e=>(e.BASE="base",e.BODY="body",e.HEAD="head",e.HTML="html",e.LINK="link",e.META="meta",e.NOSCRIPT="noscript",e.SCRIPT="script",e.STYLE="style",e.TITLE="title",e.FRAGMENT="Symbol(react.fragment)",e))(Pb||{}),Hu={link:{rel:["amphtml","canonical","alternate"]},script:{type:["application/ld+json"]},meta:{charset:"",name:["generator","robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]}},ly=Object.values(Pb),bh={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},QN=Object.entries(bh).reduce((e,[t,n])=>(e[n]=t,e),{}),vn="data-rh",gs={DEFAULT_TITLE:"defaultTitle",DEFER:"defer",ENCODE_SPECIAL_CHARACTERS:"encodeSpecialCharacters",ON_CHANGE_CLIENT_STATE:"onChangeClientState",TITLE_TEMPLATE:"titleTemplate",PRIORITIZE_SEO_TAGS:"prioritizeSeoTags"},ys=(e,t)=>{for(let n=e.length-1;n>=0;n-=1){const r=e[n];if(Object.prototype.hasOwnProperty.call(r,t))return r[t]}return null},XN=e=>{let t=ys(e,"title");const n=ys(e,gs.TITLE_TEMPLATE);if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,()=>t);const r=ys(e,gs.DEFAULT_TITLE);return t||r||void 0},JN=e=>ys(e,gs.ON_CHANGE_CLIENT_STATE)||(()=>{}),Wu=(e,t)=>t.filter(n=>typeof n[e]<"u").map(n=>n[e]).reduce((n,r)=>({...n,...r}),{}),ZN=(e,t)=>t.filter(n=>typeof n.base<"u").map(n=>n.base).reverse().reduce((n,r)=>{if(!n.length){const i=Object.keys(r);for(let s=0;s<i.length;s+=1){const l=i[s].toLowerCase();if(e.indexOf(l)!==-1&&r[l])return n.concat(r)}}return n},[]),eA=e=>console&&typeof console.warn=="function"&&console.warn(e),mo=(e,t,n)=>{const r={};return n.filter(i=>Array.isArray(i[e])?!0:(typeof i[e]<"u"&&eA(`Helmet: ${e} should be of type "Array". Instead found type "${typeof i[e]}"`),!1)).map(i=>i[e]).reverse().reduce((i,s)=>{const o={};s.filter(c=>{let u;const d=Object.keys(c);for(let h=0;h<d.length;h+=1){const f=d[h],x=f.toLowerCase();t.indexOf(x)!==-1&&!(u==="rel"&&c[u].toLowerCase()==="canonical")&&!(x==="rel"&&c[x].toLowerCase()==="stylesheet")&&(u=x),t.indexOf(f)!==-1&&(f==="innerHTML"||f==="cssText"||f==="itemprop")&&(u=f)}if(!u||!c[u])return!1;const p=c[u].toLowerCase();return r[u]||(r[u]={}),o[u]||(o[u]={}),r[u][p]?!1:(o[u][p]=!0,!0)}
40).reverse().forEach(c=>i.push(c));const l=Object.keys(o);for(let c=0;c<l.length;c+=1){const u=l[c],d={...r[u],...o[u]};r[u]=d}return i},[]).reverse()},tA=(e,t)=>{if(Array.isArray(e)&&e.length){for(let n=0;n<e.length;n+=1)if(e[n][t])return!0}return!1},nA=e=>({baseTag:ZN(["href"],e),bodyAttributes:Wu("bodyAttributes",e),defer:ys(e,gs.DEFER),encode:ys(e,gs.ENCODE_SPECIAL_CHARACTERS),htmlAttributes:Wu("htmlAttributes",e),linkTags:mo("link",["rel","href"],e),metaTags:mo("meta",["name","charset","http-equiv","property","itemprop"],e),noscriptTags:mo("noscript",["innerHTML"],e),onChangeClientState:JN(e),scriptTags:mo("script",["src","innerHTML"],e),styleTags:mo("style",["cssText"],e),title:XN(e),titleAttributes:Wu("titleAttributes",e),prioritizeSeoTags:tA(e,gs.PRIORITIZE_SEO_TAGS)}),Eb=e=>Array.isArray(e)?e.join(""):e,rA=(e,t)=>{const n=Object.keys(e);for(let r=0;r<n.length;r+=1)if(t[n[r]]&&t[n[r]].includes(e[n[r]]))return!0;return!1},qu=(e,t)=>Array.isArray(e)?e.reduce((n,r)=>(rA(r,t)?n.priority.push(r):n.default.push(r),n),{priority:[],default:[]}):{default:e,priority:[]},cy=(e,t)=>({...e,[t]:void 0}),iA=["noscript","script","style"],Sp=(e,t=!0)=>t===!1?String(e):String(e).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;"),Mb=e=>Object.keys(e).reduce((t,n)=>{const r=typeof e[n]<"u"?`${n}="${e[n]}"`:`${n}`;return t?`${t} ${r}`:r},""),sA=(e,t,n,r)=>{const i=Mb(n),s=Eb(t);return i?`<${e} ${vn}="true" ${i}>${Sp(s,r)}</${e}>`:`<${e} ${vn}="true">${Sp(s,r)}</${e}>`},oA=(e,t,n=!0)=>t.reduce((r,i)=>{const s=i,o=Object.keys(s).filter(u=>!(u==="innerHTML"||u==="cssText")).reduce((u,d)=>{const p=typeof s[d]>"u"?d:`${d}="${Sp(s[d],n)}"`;return u?`${u} ${p}`:p},""),l=s.innerHTML||s.cssText||"",c=iA.indexOf(e)===-1;return`${r}<${e} ${vn}="true" ${o}${c?"/>":`>${l}</${e}>`}`},""),Ib=(e,t={})=>Object.keys(e).reduce((n,r)=>{const i=bh[r];return n[i||r]=e[r],n},t),aA=(e,t,n)=>{const r={key:t,[vn]:!0},i=Ib(n,r);return[L.createElement("title",i,t)]},Nl=(e,t)=>t.map((n,r)=>{const i={key:r,[vn]:!0};return Object.keys(n).forEach(s=>{const l=bh[s]||s;if(l==="innerHTML"||l==="cssText"){const c=n.innerHTML||n.cssText;i.dangerouslySetInnerHTML={__html:c}}else i[l]=n[s]}),L.createElement(e,i)}),Ht=(e,t,n=!0)=>{switch(e){case"title":return{toComponent:()=>aA(e,t.title,t.titleAttributes),toString:()=>sA(e,t.title,t.titleAttributes,n)};case"bodyAttributes":case"htmlAttributes":return{toComponent:()=>Ib(t),toString:()=>Mb(t)};default:return{toComponent:()=>Nl(e,t),toString:()=>oA(e,t,n)}}},lA=({metaTags:e,linkTags:t,scriptTags:n,encode:r})=>{const i=qu(e,Hu.meta),s=qu(t,Hu.link),o=qu(n,Hu.script);return{priorityMethods:{toComponent:()=>[...Nl("meta",i.priority),...Nl("link",s.priority),...Nl("script",o.priority)],toString:()=>`${Ht("meta",i.priority,r)} ${Ht("link",s.priority,r)} ${Ht("script",o.priority,r)}`},metaTags:i.default,linkTags:s.default,scriptTags:o.default}},cA=e=>{const{baseTag:t,bodyAttributes:n,encode:r=!0,htmlAttributes:i,noscriptTags:s,styleTags:o,title:l="",titleAttributes:c,prioritizeSeoTags:u}=e;let{linkTags:d,metaTags:p,scriptTags:h}=e,f={toComponent:()=>{},toString:()=>""};return u&&({priorityMethods:f,linkTags:d,metaTags:p,scriptTags:h}=lA(e)),{priority:f,base:Ht("base",t,r),bodyAttributes:Ht("bodyAttributes",n,r),htmlAttributes:Ht("htmlAttributes",i,r),link:Ht("link",d,r),meta:Ht("meta",p,r),noscript:Ht("noscript",s,r),script:Ht("script",h,r),style:Ht("style",o,r),title:Ht("title",{title:l,titleAttributes:c},r)}},Tp=cA,tl=[],Rb=!!(typeof window<"u"&&window.document&&window.document.createElement),Cp=class{constructor(e,t){Yn(this,"instances",[]);Yn(this,"canUseDOM",Rb);Yn(this,"context");Yn(this,"value",{setHelmet:e=>{this.context.helmet=e},helmetInstances:{get:()=>this.canUseDOM?tl:this.instances,add:e=>{(this.canUseDOM?tl:this.instances).push(e)},remove:e=>{const t=(this.canUseDOM?tl:this.instances).indexOf(e);(this.canUseDOM?tl:this.instances).splice(t,1)}}});this.context=e,this.canUseDOM=t||!1,t||(e.helmet=Tp({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))}},uA={},Db=L.createContext(uA),wi,Fb=(wi=class extends b.Component{constructor(n){super(n);Yn(this,"helmetData");this.helmetData=new Cp(this.props.context||{},wi.canUseDOM)}render(){return L.createElement(Db.Provider,{value:this.helmetData.value},this.props.children)}},Yn(wi,"canUseDOM",Rb),wi),Hi=(e,t)=>{const n=document.head||document.querySelector("head"),r=n.querySelectorAll(`${e}[${vn}]`),i=[].slice.call(r),s=[];let o;return t&&t.length&&t.forEach(l=>{const c=document.createElement(e);for(const u in l)if(Object.prototype.hasOwnProperty.call(l,u))if(u==="innerHTML")c.innerHTML=l.innerHTML;else if(u==="cssText")c.styleSheet?c.styleSheet.cssText=l.cssText:c.appendChild(document.createTextNode(l.cssText));else{const d=u,p=typeof l[d]>"u"?"":l[d];c.setAttribute(u,p)}c.setAttribute(vn,"true"),i.some((u,d)=>(o=d,c.isEqualNode(u)))?i.splice(o,1):s.push(c)}
40),i.forEach(l=>{var c;return(c=l.parentNode)==null?void 0:c.removeChild(l)}),s.forEach(l=>n.appendChild(l)),{oldTags:i,newTags:s}},jp=(e,t)=>{const n=document.getElementsByTagName(e)[0];if(!n)return;const r=n.getAttribute(vn),i=r?r.split(","):[],s=[...i],o=Object.keys(t);for(const l of o){const c=t[l]||"";n.getAttribute(l)!==c&&n.setAttribute(l,c),i.indexOf(l)===-1&&i.push(l);const u=s.indexOf(l);u!==-1&&s.splice(u,1)}for(let l=s.length-1;l>=0;l-=1)n.removeAttribute(s[l]);i.length===s.length?n.removeAttribute(vn):n.getAttribute(vn)!==o.join(",")&&n.setAttribute(vn,o.join(","))},dA=(e,t)=>{typeof e<"u"&&document.title!==e&&(document.title=Eb(e)),jp("title",t)},uy=(e,t)=>{const{baseTag:n,bodyAttributes:r,htmlAttributes:i,linkTags:s,metaTags:o,noscriptTags:l,onChangeClientState:c,scriptTags:u,styleTags:d,title:p,titleAttributes:h}=e;jp("body",r),jp("html",i),dA(p,h);const f={baseTag:Hi("base",n),linkTags:Hi("link",s),metaTags:Hi("meta",o),noscriptTags:Hi("noscript",l),scriptTags:Hi("script",u),styleTags:Hi("style",d)},x={},g={};Object.keys(f).forEach(w=>{const{newTags:m,oldTags:y}=f[w];m.length&&(x[w]=m),y.length&&(g[w]=f[w].oldTags)}),t&&t(),c(e,x,g)},go=null,pA=e=>{go&&cancelAnimationFrame(go),e.defer?go=requestAnimationFrame(()=>{uy(e,()=>{go=null})}):(uy(e),go=null)},fA=pA,dy=class extends b.Component{constructor(){super(...arguments);Yn(this,"rendered",!1)}shouldComponentUpdate(t){return!YN(t,this.props)}componentDidUpdate(){this.emitChange()}componentWillUnmount(){const{helmetInstances:t}=this.props.context;t.remove(this),this.emitChange()}emitChange(){const{helmetInstances:t,setHelmet:n}=this.props.context;let r=null;const i=nA(t.get().map(s=>{const o={...s.props};return delete o.context,o}));Fb.canUseDOM?fA(i):Tp&&(r=Tp(i)),n(r)}init(){if(this.rendered)return;this.rendered=!0;const{helmetInstances:t}=this.props.context;t.add(this),this.emitChange()}render(){return this.init(),null}},Ed,kh=(Ed=class extends b.Component{shouldComponentUpdate(e){return!HN(cy(this.props,"helmetData"),cy(e,"helmetData"))}mapNestedChildrenToProps(e,t){if(!t)return null;switch(e.type){case"script":case"noscript":return{innerHTML:t};case"style":return{cssText:t};default:throw new Error(`<${e.type} /> elements are self-closing and can not contain children. Refer to our API for more information.`)}}flattenArrayTypeChildren(e,t,n,r){return{...t,[e.type]:[...t[e.type]||[],{...n,...this.mapNestedChildrenToProps(e,r)}]}}mapObjectTypeChildren(e,t,n,r){switch(e.type){case"title":return{...t,[e.type]:r,titleAttributes:{...n}};case"body":return{...t,bodyAttributes:{...n}};case"html":return{...t,htmlAttributes:{...n}};default:return{...t,[e.type]:{...n}}}}mapArrayTypeChildrenToProps(e,t){let n={...t};return Object.keys(e).forEach(r=>{n={...n,[r]:e[r]}}),n}warnOnInvalidChildren(e,t){return ay(ly.some(n=>e.type===n),typeof e.type=="function"?"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.":`Only elements types ${ly.join(", ")} are allowed. Helmet does not support rendering <${e.type}> elements. Refer to our API for more information.`),ay(!t||typeof t=="string"||Array.isArray(t)&&!t.some(n=>typeof n!="string"),`Helmet expects a string as a child of <${e.type}>. Did you forget to wrap your children in braces? ( <${e.type}>{\`\`}</${e.type}> ) Refer to our API for more information.`),!0}mapChildrenToProps(e,t){let n={};return L.Children.forEach(e,r=>{if(!r||!r.props)return;const{children:i,...s}=r.props,o=Object.keys(s).reduce((c,u)=>(c[QN[u]||u]=s[u],c),{});let{type:l}=r;
40switch(typeof l=="symbol"?l=l.toString():this.warnOnInvalidChildren(r,i),l){case"Symbol(react.fragment)":t=this.mapChildrenToProps(i,t);break;case"link":case"meta":case"noscript":case"script":case"style":n=this.flattenArrayTypeChildren(r,n,o,i);break;default:t=this.mapObjectTypeChildren(r,t,o,i);break}}),this.mapArrayTypeChildrenToProps(n,t)}render(){const{children:e,...t}=this.props;let n={...t},{helmetData:r}=t;if(e&&(n=this.mapChildrenToProps(e,n)),r&&!(r instanceof Cp)){const i=r;r=new Cp(i.context,!0),delete n.helmetData}return r?L.createElement(dy,{...n,context:r.value}):L.createElement(Db.Consumer,null,i=>L.createElement(dy,{...n,context:i}))}},Yn(Ed,"defaultProps",{defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1}),Ed);const hA=1,mA=1e6;let Ku=0;function gA(){return Ku=(Ku+1)%Number.MAX_SAFE_INTEGER,Ku.toString()}const Yu=new Map,py=e=>{if(Yu.has(e))return;const t=setTimeout(()=>{Yu.delete(e),Lo({type:"REMOVE_TOAST",toastId:e})},mA);Yu.set(e,t)},yA=(e,t)=>{switch(t.type){case"ADD_TOAST":return{...e,toasts:[t.toast,...e.toasts].slice(0,hA)};case"UPDATE_TOAST":return{...e,toasts:e.toasts.map(n=>n.id===t.toast.id?{...n,...t.toast}:n)};case"DISMISS_TOAST":{const{toastId:n}=t;return n?py(n):e.toasts.forEach(r=>{py(r.id)}),{...e,toasts:e.toasts.map(r=>r.id===n||n===void 0?{...r,open:!1}:r)}}case"REMOVE_TOAST":return t.toastId===void 0?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(n=>n.id!==t.toastId)}}},Al=[];let Pl={toasts:[]};function Lo(e){Pl=yA(Pl,e),Al.forEach(t=>{t(Pl)})}function vA({...e}){const t=gA(),n=i=>Lo({type:"UPDATE_TOAST",toast:{...i,id:t}}),r=()=>Lo({type:"DISMISS_TOAST",toastId:t});return Lo({type:"ADD_TOAST",toast:{...e,id:t,open:!0,onOpenChange:i=>{i||r()}}}),{id:t,dismiss:r,update:n}}function xA(){const[e,t]=b.useState(Pl);return b.useEffect(()=>(Al.push(t),()=>{const n=Al.indexOf(t);n>-1&&Al.splice(n,1)}),[e]),{...e,toast:vA,dismiss:n=>Lo({type:"DISMISS_TOAST",toastId:n})}}function De(e,t,{checkForDefaultPrevented:n=!0}={}){return function(i){if(e==null||e(i),n===!1||!i.defaultPrevented)return t==null?void 0:t(i)}}function fy(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function Ob(...e){return t=>{let n=!1;const r=e.map(i=>{const s=fy(i,t);return!n&&typeof s=="function"&&(n=!0),s});if(n)return()=>{for(let i=0;i<r.length;i++){const s=r[i];typeof s=="function"?s():fy(e[i],null)}}}}function Gt(...e){return b.useCallback(Ob(...e),e)}function Ks(e,t=[]){let n=[];function r(s,o){const l=b.createContext(o),c=n.length;n=[...n,o];const u=p=>{var m;const{scope:h,children:f,...x}=p,g=((m=h==null?void 0:h[e])==null?void 0:m[c])||l,w=b.useMemo(()=>x,Object.values(x));return a.jsx(g.Provider,{value:w,children:f})};u.displayName=s+"Provider";function d(p,h){var g;const f=((g=h==null?void 0:h[e])==null?void 0:g[c])||l,x=b.useContext(f);if(x)return x;if(o!==void 0)return o;throw new Error(`\`${p}\` must be used within \`${s}\``)}return[u,d]}const i=()=>{const s=n.map(o=>b.createContext(o));return function(l){const c=(l==null?void 0:l[e])||s;return b.useMemo(()=>({[`__scope${e}`]:{...l,[e]:c}}),[l,c])}};return i.scopeName=e,[r,wA(i,...t)]}function wA(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(i=>({useScope:i(),scopeName:i.scopeName}));return function(s){const o=r.reduce((l,{useScope:c,scopeName:u})=>{const p=c(s)[`__scope${u}`];return{...l,...p}},{});return b.useMemo(()=>({[`__scope${t.scopeName}`]:o}),[o])}};return n.scopeName=t.scopeName,n}function lc(e){const t=kA(e),n=b.forwardRef((r,i)=>{const{children:s,...o}=r,l=b.Children.toArray(s),c=l.find(TA);if(c){const u=c.props.children,d=l.map(p=>p===c?b.Children.count(u)>1?b.Children.only(null):b.isValidElement(u)?u.props.children:null:p);return a.jsx(t,{...o,ref:i,children:b.isValidElement(u)?b.cloneElement(u,void 0,d):null})}return a.jsx(t,{...o,ref:i,children:s})});return n.displayName=`${e}.Slot`,n}var bA=lc("Slot");function kA(e){const t=b.forwardRef((n,r)=>{const{children:i,...s}=n;if(b.isValidElement(i)){const o=jA(i),l=CA(s,i.props);return i.type!==b.Fragment&&(l.ref=r?Ob(r,o):o),b.cloneElement(i,l)}return b.Children.count(i)>1?b.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var Lb=Symbol("radix.slottable");function SA(e){const t=({children:n})=>a.jsx(a.Fragment,{children:n});return t.displayName=`${e}.Slottable`,t.__radixId=Lb,t}function TA(e){return b.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Lb}function CA(e,t){const n={...t};for(const r in t){const i=e[r],s=t[r];/^on[A-Z]/.test(r)?i&&s?n[r]=(...l)=>{const c=s(...l);return i(...l),c}:i&&(n[r]=i):r==="style"?n[r]={...i,...s}
vendor: 9,308 bytes, line 40
40:r==="className"&&(n[r]=[i,s].filter(Boolean).join(" "))}return{...e,...n}}function jA(e){var r,i;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(i=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:i.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function _b(e){const t=e+"CollectionProvider",[n,r]=Ks(t),[i,s]=n(t,{collectionRef:{current:null},itemMap:new Map}),o=g=>{const{scope:w,children:m}=g,y=L.useRef(null),v=L.useRef(new Map).current;return a.jsx(i,{scope:w,itemMap:v,collectionRef:y,children:m})};o.displayName=t;const l=e+"CollectionSlot",c=lc(l),u=L.forwardRef((g,w)=>{const{scope:m,children:y}=g,v=s(l,m),k=Gt(w,v.collectionRef);return a.jsx(c,{ref:k,children:y})});u.displayName=l;const d=e+"CollectionItemSlot",p="data-radix-collection-item",h=lc(d),f=L.forwardRef((g,w)=>{const{scope:m,children:y,...v}=g,k=L.useRef(null),C=Gt(w,k),T=s(d,m);return L.useEffect(()=>(T.itemMap.set(k,{ref:k,...v}),()=>void T.itemMap.delete(k))),a.jsx(h,{[p]:"",ref:C,children:y})});f.displayName=d;function x(g){const w=s(e+"CollectionConsumer",g);return L.useCallback(()=>{const y=w.collectionRef.current;if(!y)return[];const v=Array.from(y.querySelectorAll(`[${p}]`));return Array.from(w.itemMap.values()).sort((T,N)=>v.indexOf(T.ref.current)-v.indexOf(N.ref.current))},[w.collectionRef,w.itemMap])}return[{Provider:o,Slot:u,ItemSlot:f},x,r]}var NA=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],$e=NA.reduce((e,t)=>{const n=lc(`Primitive.${t}`),r=b.forwardRef((i,s)=>{const{asChild:o,...l}=i,c=o?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),a.jsx(c,{...l,ref:s})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function Bb(e,t){e&&Na.flushSync(()=>e.dispatchEvent(t))}function Yr(e){const t=b.useRef(e);return b.useEffect(()=>{t.current=e}),b.useMemo(()=>(...n)=>{var r;return(r=t.current)==null?void 0:r.call(t,...n)},[])}function AA(e,t=globalThis==null?void 0:globalThis.document){const n=Yr(e);b.useEffect(()=>{const r=i=>{i.key==="Escape"&&n(i)};return t.addEventListener("keydown",r,{capture:!0}),()=>t.removeEventListener("keydown",r,{capture:!0})},[n,t])}var PA="DismissableLayer",Np="dismissableLayer.update",EA="dismissableLayer.pointerDownOutside",MA="dismissableLayer.focusOutside",hy,Gb=b.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),Sh=b.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:i,onFocusOutside:s,onInteractOutside:o,onDismiss:l,...c}=e,u=b.useContext(Gb),[d,p]=b.useState(null),h=(d==null?void 0:d.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,f]=b.useState({}),x=Gt(t,N=>p(N)),g=Array.from(u.layers),[w]=[...u.layersWithOutsidePointerEventsDisabled].slice(-1),m=g.indexOf(w),y=d?g.indexOf(d):-1,v=u.layersWithOutsidePointerEventsDisabled.size>0,k=y>=m,C=RA(N=>{const A=N.target,P=[...u.branches].some(M=>M.contains(A));!k||P||(i==null||i(N),o==null||o(N),N.defaultPrevented||l==null||l())},h),T=DA(N=>{const A=N.target;[...u.branches].some(M=>M.contains(A))||(s==null||s(N),o==null||o(N),N.defaultPrevented||l==null||l())},h);return AA(N=>{y===u.layers.size-1&&(r==null||r(N),!N.defaultPrevented&&l&&(N.preventDefault(),l()))},h),b.useEffect(()=>{if(d)return n&&(u.layersWithOutsidePointerEventsDisabled.size===0&&(hy=h.body.style.pointerEvents,h.body.style.pointerEvents="none"),u.layersWithOutsidePointerEventsDisabled.add(d)),u.layers.add(d),my(),()=>{n&&u.layersWithOutsidePointerEventsDisabled.size===1&&(h.body.style.pointerEvents=hy)}},[d,h,n,u]),b.useEffect(()=>()=>{d&&(u.layers.delete(d),u.layersWithOutsidePointerEventsDisabled.delete(d),my())},[d,u]),b.useEffect(()=>{const N=()=>f({});return document.addEventListener(Np,N),()=>document.removeEventListener(Np,N)},[]),a.jsx($e.div,{...c,ref:x,style:{pointerEvents:v?k?"auto":"none":void 0,...e.style},onFocusCapture:De(e.onFocusCapture,T.onFocusCapture),onBlurCapture:De(e.onBlurCapture,T.onBlurCapture),onPointerDownCapture:De(e.onPointerDownCapture,C.onPointerDownCapture)})});Sh.displayName=PA;var IA="DismissableLayerBranch",zb=b.forwardRef((e,t)=>{const n=b.useContext(Gb),r=b.useRef(null),i=Gt(t,r);return b.useEffect(()=>{const s=r.current;if(s)return n.branches.add(s),()=>{n.branches.delete(s)}},[n.branches]),a.jsx($e.div,{...e,ref:i})});zb.displayName=IA;function RA(e,t=globalThis==null?void 0:globalThis.document){const n=Yr(e),r=b.useRef(!1),i=b.useRef(()=>{});return b.useEffect(()=>{const s=l=>{if(l.target&&!r.current){let c=function(){Vb(EA,n,u,{discrete:!0})};const u={originalEvent:l};l.pointerType==="touch"?(t.removeEventListener("click",i.current),i.current=c,t.addEventListener("click",i.current,{once:!0})):c()}else t.removeEventListener("click",i.current);r.current=!1},o=window.setTimeout(()=>{t.addEventListener("pointerdown",s)},0);return()=>{window.clearTimeout(o),t.removeEventListener("pointerdown",s),t.removeEventListener("click",i.current)}},[t,n]),{onPointerDownCapture:()=>r.current=!0}}function DA(e,t=globalThis==null?void 0:globalThis.document){const n=Yr(e),r=b.useRef(!1);return b.useEffect(()=>{const i=s=>{s.target&&!r.current&&Vb(MA,n,{originalEvent:s},{discrete:!1})};return t.addEventListener("focusin",i),()=>t.removeEventListener("focusin",i)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function my(){const e=new CustomEvent(Np);document.dispatchEvent(e)}function Vb(e,t,n,{discrete:r}){const i=n.originalEvent.target,s=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&i.addEventListener(e,t,{once:!0}),r?Bb(i,s):i.dispatchEvent(s)}var FA=Sh,OA=zb,Vn=globalThis!=null&&globalThis.document?b.useLayoutEffect:()=>{},LA="Portal",$b=b.forwardRef((e,t)=>{var l;const{container:n,...r}=e,[i,s]=b.useState(!1);Vn(()=>s(!0),[]);const o=n||i&&((l=globalThis==null?void 0:globalThis.document)==null?void 0:l.body);return o?Nb.createPortal(a.jsx($e.div,{...r,ref:t}),o):null});$b.displayName=LA;function _A(e,t){return b.useReducer((n,r)=>t[n][r]??n,e)}var $c=e=>{const{present:t,children:n}=e,r=BA(t),i=typeof n=="function"?n({present:r.isPresent}):b.Children.only(n),s=Gt(r.ref,GA(i));return typeof n=="function"||r.isPresent?b.cloneElement(i,{ref:s}):null};$c.displayName="Presence";function BA(e){const[t,n]=b.useState(),r=b.useRef(null),i=b.useRef(e),s=b.useRef("none"),o=e?"mounted":"unmounted",[l,c]=_A(o,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return b.useEffect(()=>{const u=nl(r.current);s.current=l==="mounted"?u:"none"},[l]),Vn(()=>{const u=r.current,d=i.current;if(d!==e){const h=s.current,f=nl(u);e?c("MOUNT"):f==="none"||(u==null?void 0:u.display)==="none"?c("UNMOUNT"):c(d&&h!==f?"ANIMATION_OUT":"UNMOUNT"),i.current=e}},[e,c]),Vn(()=>{if(t){let u;const d=t.ownerDocument.defaultView??window,p=f=>{const g=nl(r.current).includes(f.animationName);if(f.target===t&&g&&(c("ANIMATION_END"),!i.current)){const w=t.style.animationFillMode;t.style.animationFillMode="forwards",u=d.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=w)})}},h=f=>{f.target===t&&(s.current=nl(r.current))};return t.addEventListener("animationstart",h),t.addEventListener("animationcancel",p),t.addEventListener("animationend",p),()=>{d.clearTimeout(u),t.removeEventListener("animationstart",h),t.removeEventListener("animationcancel",p),t.removeEventListener("animationend",p)}}else c("ANIMATION_END")},[t,c]),{isPresent:["mounted","unmountSuspended"].includes(l),ref:b.useCallback(u=>{r.current=u?getComputedStyle(u):null,n(u)},[])}}function nl(e){return(e==null?void 0:e.animationName)||"none"}function GA(e){var r,i;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(i=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:i.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var zA=Ef[" useInsertionEffect ".trim().toString()]||Vn;function Uc({prop:e,defaultProp:t,onChange:n=()=>{},caller:r}){const[i,s,o]=VA({defaultProp:t,onChange:n}),l=e!==void 0,c=l?e:i;{const d=b.useRef(e!==void 0);b.useEffect(()=>{const p=d.current;p!==l&&console.warn(`${r} is changing from ${p?"controlled":"uncontrolled"} to ${l?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),d.current=l},[l,r])}const u=b.useCallback(d=>{var p;if(l){const h=$A(d)?d(e):d;h!==e&&((p=o.current)==null||p.call(o,h))}else s(d)},[l,e,s,o]);return[c,u]}function VA({defaultProp:e,onChange:t}){const[n,r]=b.useState(e),i=b.useRef(n),s=b.useRef(t);return zA(()=>{s.current=t},[t]),b.useEffect(()=>{var o;i.current!==n&&((o=s.current)==null||o.call(s,n),i.current=n)},[n,i]),[n,r,s]}function $A(e){return typeof e=="function"}var UA=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),HA="VisuallyHidden",Hc=b.forwardRef((e,t)=>
40a.jsx($e.span,{...e,ref:t,style:{...UA,...e.style}}));Hc.displayName=HA;var WA=Hc,Th="ToastProvider",[Ch,qA,KA]=_b("Toast"),[Ub,$B]=Ks("Toast",[KA]),[YA,Wc]=Ub(Th),Hb=e=>{const{__scopeToast:t,label:n="Notification",duration:r=5e3,swipeDirection:i="right",swipeThreshold:s=50,children:o}=e,[l,c]=b.useState(null),[u,d]=b.useState(0),p=b.useRef(!1),h=b.useRef(!1);return n.trim()||console.error(`Invalid prop \`label\` supplied to \`${Th}\`. Expected non-empty \`string\`.`),a.jsx(Ch.Provider,{scope:t,children:a.jsx(YA,{scope:t,label:n,duration:r,swipeDirection:i,swipeThreshold:s,toastCount:u,viewport:l,onViewportChange:c,onToastAdd:b.useCallback(()=>d(f=>f+1),[]),onToastRemove:b.useCallback(()=>d(f=>f-1),[]),isFocusedToastEscapeKeyDownRef:p,isClosePausedRef:h,children:o})})};Hb.displayName=Th;var Wb="ToastViewport",QA=["F8"],Ap="toast.viewportPause",Pp="toast.viewportResume",qb=b.forwardRef((e,t)=>{const{__scopeToast:n,hotkey:r=QA,label:i="Notifications ({hotkey})",...s}=e,o=Wc(Wb,n),l=qA(n),c=b.useRef(null),u=b.useRef(null),d=b.useRef(null),p=b.useRef(null),h=Gt(t,p,o.onViewportChange),f=r.join("+").replace(/Key/g,"").replace(/Digit/g,""),x=o.toastCount>0;b.useEffect(()=>{const w=m=>{var v;r.length!==0&&r.every(k=>m[k]||m.code===k)&&((v=p.current)==null||v.focus())};return document.addEventListener("keydown",w),()=>document.removeEventListener("keydown",w)},[r]),b.useEffect(()=>{const w=c.current,m=p.current;if(x&&w&&m){const y=()=>{if(!o.isClosePausedRef.current){const T=new CustomEvent(Ap);m.dispatchEvent(T),o.isClosePausedRef.current=!0}},v=()=>{if(o.isClosePausedRef.current){const T=new CustomEvent(Pp);m.dispatchEvent(T),o.isClosePausedRef.current=!1}},k=T=>{!w.contains(T.relatedTarget)&&v()},C=()=>{w.contains(document.activeElement)||v()};return w.addEventListener("focusin",y),w.addEventListener("focusout",k),w.addEventListener("pointermove",y),w.addEventListener("pointerleave",C),window.addEventListener("blur",y),window.addEventListener("focus",v),()=>{w.removeEventListener("focusin",y),w.removeEventListener("focusout",k),w.removeEventListener("pointermove",y),w.removeEventListener("pointerleave",C),window.removeEventListener("blur",y),window.removeEventListener("focus",v)}}},[x,o.isClosePausedRef]);const g=b.useCallback(({tabbingDirection:w})=>{const y=l().map(v=>
40{const k=v.ref.current,C=[k,...cP(k)];return w==="forwards"?C:C.reverse()});return(w==="forwards"?y.reverse():y).flat()},[l]);return b.useEffect(()=>{const w=p.current;if(w){const m=y=>{var C,T,N;const v=y.altKey||y.ctrlKey||y.metaKey;if(y.key==="Tab"&&!v){const A=document.activeElement,P=y.shiftKey;if(y.target===w&&P){(C=u.current)==null||C.focus();return}const R=g({tabbingDirection:P?"backwards":"forwards"}),U=R.findIndex(_=>_===A);Qu(R.slice(U+1))?y.preventDefault():P?(T=u.current)==null||T.focus():(N=d.current)==null||N.focus()}};return w.addEventListener("keydown",m),()=>w.removeEventListener("keydown",m)}},[l,g]),a.jsxs(OA,{ref:c,role:"region","aria-label":i.replace("{hotkey}",f),tabIndex:-1,style:{pointerEvents:x?void 0:"none"},children:[x&&a.jsx(Ep,{ref:u,onFocusFromOutsideViewport:()=>{const w=g({tabbingDirection:"forwards"});Qu(w)}}),a.jsx(Ch.Slot,{scope:n,children:a.jsx($e.ol,{tabIndex:-1,...s,ref:h})}),x&&a.jsx(Ep,{ref:d,onFocusFromOutsideViewport:()=>{const w=g({tabbingDirection:"backwards"});Qu(w)}})]})});qb.displayName=Wb;var Kb="ToastFocusProxy",Ep=b.forwardRef((e,t)=>{const{__scopeToast:n,onFocusFromOutsideViewport:r,...i}=e,s=Wc(Kb,n);return a.jsx(Hc,{"aria-hidden":!0,tabIndex:0,...i,ref:t,style:{position:"fixed"},onFocus:o=>{var u;const l=o.relatedTarget;!((u=s.viewport)!=null&&u.contains(l))&&r()}})});Ep.displayName=Kb;var Aa="Toast",XA="toast.swipeStart",JA="toast.swipeMove",ZA="toast.swipeCancel",eP="toast.swipeEnd",Yb=b.forwardRef((e,t)=>{const{forceMount:n,open:r,defaultOpen:i,onOpenChange:s,...o}=e,[l,c]=Uc({prop:r,defaultProp:i??!0,onChange:s,caller:Aa});return a.jsx($c,{present:n||l,children:a.jsx(rP,{open:l,...o,ref:t,onClose:()=>c(!1),onPause:Yr(e.onPause),onResume:Yr(e.onResume),onSwipeStart:De(e.onSwipeStart,u=>{u.currentTarget.setAttribute("data-swipe","start")}),onSwipeMove:De(e.onSwipeMove,u=>{const{x:d,y:p}=u.detail.delta;u.currentTarget.setAttribute("data-swipe","move"),u.currentTarget.style.setProperty("--radix-toast-swipe-move-x",`${d}px`),u.currentTarget.style.setProperty("--radix-toast-swipe-move-y",`${p}px`)}),onSwipeCancel:De(e.onSwipeCancel,u=>{u.currentTarget.setAttribute("data-swipe","cancel"),u.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),u.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),u.currentTarget.style.removeProperty("--radix-toast-swipe-end-x"),u.currentTarget.style.removeProperty("--radix-toast-swipe-end-y")}),onSwipeEnd:De(e.onSwipeEnd,u=>{const{x:d,y:p}=u.detail.delta;u.currentTarget.setAttribute("data-swipe","end"),u.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),u.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),u.currentTarget.style.setProperty("--radix-toast-swipe-end-x",`${d}px`),u.currentTarget.style.setProperty("--radix-toast-swipe-end-y",`${p}px`),c(!1)})})})});Yb.displayName=Aa;var[tP,nP]=Ub(Aa,{onClose(){}}),rP=b.forwardRef((e,t)=>{const{__scopeToast:n,type:r="foreground",duration:i,open:s,onClose:o,onEscapeKeyDown:l,onPause:c,onResume:u,onSwipeStart:d,onSwipeMove:p,onSwipeCancel:h,onSwipeEnd:f,...x}=e,g=Wc(Aa,n),[w,m]=b.useState(null),y=Gt(t,_=>m(_)),v=b.useRef(null),k=b.useRef(null),C=i||g.duration,T=b.useRef(0),N=b.useRef(C),A=b.useRef(0),{onToastAdd:P,onToastRemove:M}=g,O=Yr(()=>{var $;(w==null?void 0:w.contains(document.activeElement))&&(($=g.viewport)==null||$.focus()),o()}),R=b.useCallback(_=>{!_||_===1/0||(window.clearTimeout(A.current),T.current=new Date().getTime(),A.current=window.setTimeout(O,_))},[O]);b.useEffect(()=>{const _=g.viewport;if(_){const $=()=>{R(N.current),u==null||u()},K=()=>{const V=new Date().getTime()-T.current;N.current=N.current-V,window.clearTimeout(A.current),c==null||c()};return _.addEventListener(Ap,K),_.addEventListener(Pp,$),()=>{_.removeEventListener(Ap,K),_.removeEventListener(Pp,$)}}},[g.viewport,C,c,u,R]),b.useEffect(()=>{s&&!g.isClosePausedRef.current&&R(C)},[s,C,g.isClosePausedRef,R]),b.useEffect(()=>(P(),()=>M()),[P,M]);const U=b.useMemo(()=>w?n1(w):null,[w]);return g.viewport?a.jsxs(a.Fragment,{children:[U&&a.jsx(iP,{__scopeToast:n,role:"status","aria-live":r==="foreground"?"assertive":"polite","aria-atomic":!0,children:U}),a.jsx(tP,{scope:n,onClose:O,children:Na.createPortal(a.jsx(Ch.ItemSlot,{scope:n,children:a.jsx(FA,{asChild:!0,onEscapeKeyDown:De(l,()=>{g.isFocusedToastEscapeKeyDownRef.current||O(),g.isFocusedToastEscapeKeyDownRef.current=!1}),children:a.jsx($e.li,{role:"status","aria-live":"off","aria-atomic":!0,tabIndex:0,"data-state":s?"open":"closed","data-swipe-direction":g.swipeDirection,...x,ref:y,style:{userSelect:"none",touchAction:"none",...e.style},onKeyDown:De(e.onKeyDown,_=>{_.key==="Escape"&&(l==null||l(_.nativeEvent),_.nativeEvent.defaultPrevented||(g.isFocusedToastEscapeKeyDownRef.current=!0,O()))}),onPointerDown:De(e.onPointerDown,_=>{_.button===0&&(v.current={x:_.clientX,y:_.clientY})}),onPointerMove:De(e.onPointerMove,_=>{if(!v.current)return;const $=_.clientX-v.current.x,K=_.clientY-v.current.y,V=!!k.current,E=["left","right"].includes(g.swipeDirection),D=["left","up"].includes(g.swipeDirection)?Math.min:Math.max,S=E?D(0,$):0,Q=E?0:D(0,K),Y=_.pointerType==="touch"?10:2,j={x:S,y:Q},X={originalEvent:_,delta:j};V?(k.current=j,rl(JA,p,X,{discrete:!1})):gy(j,g.swipeDirection,Y)?(k.current=j,rl(XA,d,X,{discrete:!1}),_.target.setPointerCapture(_.pointerId)):(Math.abs($)>Y||Math.abs(K)>Y)&&(v.current=null)}),onPointerUp:De(e.onPointerUp,_=>{const $=k.current,K=_.target;if(K.hasPointerCapture(_.pointerId)&&K.releasePointerCapture(_.pointerId),k.current=null,v.current=null,$){const V=_.currentTarget,E={originalEvent:_,delta:$};gy($,g.swipeDirection,g.swipeThreshold)?rl(eP,f,E,{discrete:!0}):rl(ZA,h,E,{discrete:!0}),V.addEventListener("click",D=>D.preventDefault(),{once:!0})}})})})}),g.viewport)})]}):null}),iP=e=>{const{__scopeToast:t,children:n,...r}=e,i=Wc(Aa,t),[s,o]=b.useState(!1),[l,c]=b.useState(!1);return aP(()=>o(!0)),b.useEffect(()=>{const u=window.setTimeout(()=>c(!0),1e3);return()=>window.clearTimeout(u)},[]),l?null:a.jsx($b,{asChild:!0,children:a.jsx(Hc,{...r,children:s&&a.jsxs(a.Fragment,{children:[i.label," ",n]})})})},sP="ToastTitle",Qb=b.forwardRef((e,t)=>
vendor: 4,742 bytes, lines 40-60
40{const{__scopeToast:n,...r}=e;return a.jsx($e.div,{...r,ref:t})});Qb.displayName=sP;var oP="ToastDescription",Xb=b.forwardRef((e,t)=>{const{__scopeToast:n,...r}=e;return a.jsx($e.div,{...r,ref:t})});Xb.displayName=oP;var Jb="ToastAction",Zb=b.forwardRef((e,t)=>{const{altText:n,...r}=e;return n.trim()?a.jsx(t1,{altText:n,asChild:!0,children:a.jsx(jh,{...r,ref:t})}):(console.error(`Invalid prop \`altText\` supplied to \`${Jb}\`. Expected non-empty \`string\`.`),null)});Zb.displayName=Jb;var e1="ToastClose",jh=b.forwardRef((e,t)=>{const{__scopeToast:n,...r}=e,i=nP(e1,n);return a.jsx(t1,{asChild:!0,children:a.jsx($e.button,{type:"button",...r,ref:t,onClick:De(e.onClick,i.onClose)})})});jh.displayName=e1;var t1=b.forwardRef((e,t)=>{const{__scopeToast:n,altText:r,...i}=e;return a.jsx($e.div,{"data-radix-toast-announce-exclude":"","data-radix-toast-announce-alt":r||void 0,...i,ref:t})});function n1(e){const t=[];return Array.from(e.childNodes).forEach(r=>{if(r.nodeType===r.TEXT_NODE&&r.textContent&&t.push(r.textContent),lP(r)){const i=r.ariaHidden||r.hidden||r.style.display==="none",s=r.dataset.radixToastAnnounceExclude==="";if(!i)if(s){const o=r.dataset.radixToastAnnounceAlt;o&&t.push(o)}else t.push(...n1(r))}}),t}function rl(e,t,n,{discrete:r}){const i=n.originalEvent.currentTarget,s=new CustomEvent(e,{bubbles:!0,cancelable:!0,detail:n});t&&i.addEventListener(e,t,{once:!0}),r?Bb(i,s):i.dispatchEvent(s)}var gy=(e,t,n=0)=>{const r=Math.abs(e.x),i=Math.abs(e.y),s=r>i;return t==="left"||t==="right"?s&&r>n:!s&&i>n};function aP(e=()=>{}){const t=Yr(e);Vn(()=>{let n=0,r=0;return n=window.requestAnimationFrame(()=>r=window.requestAnimationFrame(t)),()=>{window.cancelAnimationFrame(n),window.cancelAnimationFrame(r)}},[t])}function lP(e){return e.nodeType===e.ELEMENT_NODE}function cP(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const i=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||i?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function Qu(e){const t=document.activeElement;return e.some(n=>n===t?!0:(n.focus(),document.activeElement!==t))}var uP=Hb,r1=qb,i1=Yb,s1=Qb,o1=Xb,a1=Zb,l1=jh;function c1(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(n=c1(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function u1(){for(var e,t,n=0,r="",i=arguments.length;n<i;n++)(e=arguments[n])&&(t=c1(e))&&(r&&(r+=" "),r+=t);return r}const yy=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,vy=u1,d1=(e,t)=>n=>{var r;if((t==null?void 0:t.variants)==null)return vy(e,n==null?void 0:n.class,n==null?void 0:n.className);const{variants:i,defaultVariants:s}=t,o=Object.keys(i).map(u=>{const d=n==null?void 0:n[u],p=s==null?void 0:s[u];if(d===null)return null;const h=yy(d)||yy(p);return i[u][h]}),l=n&&Object.entries(n).reduce((u,d)=>{let[p,h]=d;return h===void 0||(u[p]=h),u},{}),c=t==null||(r=t.compoundVariants)===null||r===void 0?void 0:r.reduce((u,d)=>{let{class:p,className:h,...f}=d;return Object.entries(f).every(x=>{let[g,w]=x;return Array.isArray(w)?w.includes({...s,...l}[g]):{...s,...l}[g]===w})?[...u,p,h]:u},[]);return vy(e,o,c,n==null?void 0:n.class,n==null?void 0:n.className)};/**
41 * @license lucide-react v0.462.0 - ISC
42 *
43 * This source code is licensed under the ISC license.
44 * See the LICENSE file in the root directory of this source tree.
45 */const dP=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),p1=(...e)=>e.filter((t,n,r)=>!!t&&t.trim()!==""&&r.indexOf(t)===n).join(" ").trim();/**
46 * @license lucide-react v0.462.0 - ISC
47 *
48 * This source code is licensed under the ISC license.
49 * See the LICENSE file in the root directory of this source tree.
50 */var pP={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/**
51 * @license lucide-react v0.462.0 - ISC
52 *
53 * This source code is licensed under the ISC license.
54 * See the LICENSE file in the root directory of this source tree.
55 */const fP=b.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:n=2,absoluteStrokeWidth:r,className:i="",children:s,iconNode:o,...l},c)=>b.createElement("svg",{ref:c,...pP,width:t,height:t,stroke:e,strokeWidth:r?Number(n)*24/Number(t):n,className:p1("lucide",i),...l},[...o.map(([u,d])=>b.createElement(u,d)),...Array.isArray(s)?s:[s]]));/**
56 * @license lucide-react v0.462.0 - ISC
57 *
58 * This source code is licensed under the ISC license.
59 * See the LICENSE file in the root directory of this source tree.
60 */const le=(e,t)=>
60{const n=b.forwardRef(({className:r,...i},s)=>b.createElement(fP,{ref:s,iconNode:t,className:p1(`lucide-${dP(e)}`,r),...i}));return n.displayName=`${e}`,n};/**
61 * @license lucide-react v0.462.0 - ISC
62 *
63 * This source code is licensed under the ISC license.
64 * See the LICENSE file in the root directory of this source tree.
65 */const cc=le("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);/**
66 * @license lucide-react v0.462.0 - ISC
67 *
68 * This source code is licensed under the ISC license.
69 * See the LICENSE file in the root directory of this source tree.
70 */const Fn=le("ArrowRight",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);/**
71 * @license lucide-react v0.462.0 - ISC
72 *
73 * This source code is licensed under the ISC license.
74 * See the LICENSE file in the root directory of this source tree.
75 */const hP=le("Bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);/**
76 * @license lucide-react v0.462.0 - ISC
77 *
78 * This source code is licensed under the ISC license.
79 * See the LICENSE file in the root directory of this source tree.
80 */const mP=le("Brain",[["path",{d:"M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z",key:"l5xja"}],["path",{d:"M12 5a3 3 0 1 1 5.997.125 4 4 0 0 1 2.526 5.77 4 4 0 0 1-.556 6.588A4 4 0 1 1 12 18Z",key:"ep3f8r"}],["path",{d:"M15 13a4.5 4.5 0 0 1-3-4 4.5 4.5 0 0 1-3 4",key:"1p4c4q"}],["path",{d:"M17.599 6.5a3 3 0 0 0 .399-1.375",key:"tmeiqw"}],["path",{d:"M6.003 5.125A3 3 0 0 0 6.401 6.5",key:"105sqy"}],["path",{d:"M3.477 10.896a4 4 0 0 1 .585-.396",key:"ql3yin"}],["path",{d:"M19.938 10.5a4 4 0 0 1 .585.396",key:"1qfode"}],["path",{d:"M6 18a4 4 0 0 1-1.967-.516",key:"2e4loj"}],["path",{d:"M19.967 17.484A4 4 0 0 1 18 18",key:"159ez6"}]]);/**
81 * @license lucide-react v0.462.0 - ISC
82 *
83 * This source code is licensed under the ISC license.
84 * See the LICENSE file in the root directory of this source tree.
85 */const f1=le("Calendar",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]]);/**
86 * @license lucide-react v0.462.0 - ISC
87 *
88 * This source code is licensed under the ISC license.
89 * See the LICENSE file in the root directory of this source tree.
90 */const qc=le("ChartColumn",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]]);/**
91 * @license lucide-react v0.462.0 - ISC
92 *
93 * This source code is licensed under the ISC license.
94 * See the LICENSE file in the root directory of this source tree.
95 */const gP=le("ChartLine",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"m19 9-5 5-4-4-3 3",key:"2osh9i"}]]);/**
96 * @license lucide-react v0.462.0 - ISC
97 *
98 * This source code is licensed under the ISC license.
99 * See the LICENSE file in the root directory of this source tree.
100 */const _s=le("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);/**
101 * @license lucide-react v0.462.0 - ISC
102 *
103 * This source code is licensed under the ISC license.
104 * See the LICENSE file in the root directory of this source tree.
105 */const yP=le("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);/**
106 * @license lucide-react v0.462.0 - ISC
107 *
108 * This source code is licensed under the ISC license.
109 * See the LICENSE file in the root directory of this source tree.
110 */const Nh=le("CircleCheck",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);/**
111 * @license lucide-react v0.462.0 - ISC
112 *
113 * This source code is licensed under the ISC license.
114 * See the LICENSE file in the root directory of this source tree.
115 */const Ah=le("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]]);/**
116 * @license lucide-react v0.462.0 - ISC
117 *
118 * This source code is licensed under the ISC license.
119 * See the LICENSE file in the root directory of this source tree.
120 */const vP=le("CodeXml",[["path",{d:"m18 16 4-4-4-4",key:"1inbqp"}],["path",{d:"m6 8-4 4 4 4",key:"15zrgr"}],["path",{d:"m14.5 4-5 16",key:"e7oirm"}]]);/**
121 * @license lucide-react v0.462.0 - ISC
122 *
123 * This source code is licensed under the ISC license.
124 * See the LICENSE file in the root directory of this source tree.
125 */const xP=le("Cpu",[["rect",{width:"16",height:"16",x:"4",y:"4",rx:"2",key:"14l7u7"}],["rect",{width:"6",height:"6",x:"9",y:"9",rx:"1",key:"5aljv4"}],["path",{d:"M15 2v2",key:"13l42r"}],["path",{d:"M15 20v2",key:"15mkzm"}],["path",{d:"M2 15h2",key:"1gxd5l"}],["path",{d:"M2 9h2",key:"1bbxkp"}],["path",{d:"M20 15h2",key:"19e6y8"}],["path",{d:"M20 9h2",key:"19tzq7"}
125],["path",{d:"M9 2v2",key:"165o2o"}],["path",{d:"M9 20v2",key:"i2bqo8"}]]);/**
126 * @license lucide-react v0.462.0 - ISC
127 *
128 * This source code is licensed under the ISC license.
129 * See the LICENSE file in the root directory of this source tree.
130 */const wP=le("Database",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]]);/**
131 * @license lucide-react v0.462.0 - ISC
132 *
133 * This source code is licensed under the ISC license.
134 * See the LICENSE file in the root directory of this source tree.
135 */const bP=le("DollarSign",[["line",{x1:"12",x2:"12",y1:"2",y2:"22",key:"7eqyqh"}],["path",{d:"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",key:"1b0p4s"}]]);/**
136 * @license lucide-react v0.462.0 - ISC
137 *
138 * This source code is licensed under the ISC license.
139 * See the LICENSE file in the root directory of this source tree.
140 */const Bs=le("ExternalLink",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);/**
141 * @license lucide-react v0.462.0 - ISC
142 *
143 * This source code is licensed under the ISC license.
144 * See the LICENSE file in the root directory of this source tree.
145 */const kP=le("Gauge",[["path",{d:"m12 14 4-4",key:"9kzdfg"}],["path",{d:"M3.34 19a10 10 0 1 1 17.32 0",key:"19p75a"}]]);/**
146 * @license lucide-react v0.462.0 - ISC
147 *
148 * This source code is licensed under the ISC license.
149 * See the LICENSE file in the root directory of this source tree.
150 */const SP=le("Layers",[["path",{d:"m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z",key:"8b97xw"}],["path",{d:"m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65",key:"dd6zsq"}],["path",{d:"m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65",key:"ep9fru"}]]);/**
151 * @license lucide-react v0.462.0 - ISC
152 *
153 * This source code is licensed under the ISC license.
154 * See the LICENSE file in the root directory of this source tree.
155 */const h1=le("Lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]);/**
156 * @license lucide-react v0.462.0 - ISC
157 *
158 * This source code is licensed under the ISC license.
159 * See the LICENSE file in the root directory of this source tree.
160 */const m1=le("Mail",[["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}],["path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7",key:"1ocrg3"}]]);/**
161 * @license lucide-react v0.462.0 - ISC
162 *
163 * This source code is licensed under the ISC license.
164 * See the LICENSE file in the root directory of this source tree.
165 */const TP=le("Menu",[["line",{x1:"4",x2:"20",y1:"12",y2:"12",key:"1e0a9i"}],["line",{x1:"4",x2:"20",y1:"6",y2:"6",key:"1owob3"}],["line",{x1:"4",x2:"20",y1:"18",y2:"18",key:"yk5zj1"}]]);/**
166 * @license lucide-react v0.462.0 - ISC
167 *
168 * This source code is licensed under the ISC license.
169 * See the LICENSE file in the root directory of this source tree.
170 */const g1=le("MessageSquare",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}]]);/**
171 * @license lucide-react v0.462.0 - ISC
172 *
173 * This source code is licensed under the ISC license.
174 * See the LICENSE file in the root directory of this source tree.
175 */const CP=le("RotateCcw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]);/**
176 * @license lucide-react v0.462.0 - ISC
177 *
178 * This source code is licensed under the ISC license.
179 * See the LICENSE file in the root directory of this source tree.
180 */const jP=le("Send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]]);/**
181 * @license lucide-react v0.462.0 - ISC
182 *
183 * This source code is licensed under the ISC license.
184 * See the LICENSE file in the root directory of this source tree.
185 */const Ph=le("Server",[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]]);/**
186 * @license lucide-react v0.462.0 - ISC
187 *
188 * This source code is licensed under the ISC license.
189 * See the LICENSE file in the root directory of this source tree.
190 */const y1=le("ShieldCheck",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",ke
vendor: 4,670 bytes, lines 190-235
190y:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);/**
191 * @license lucide-react v0.462.0 - ISC
192 *
193 * This source code is licensed under the ISC license.
194 * See the LICENSE file in the root directory of this source tree.
195 */const v1=le("Shield",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]]);/**
196 * @license lucide-react v0.462.0 - ISC
197 *
198 * This source code is licensed under the ISC license.
199 * See the LICENSE file in the root directory of this source tree.
200 */const Mp=le("Sparkles",[["path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z",key:"4pj2yx"}],["path",{d:"M20 3v4",key:"1olli1"}],["path",{d:"M22 5h-4",key:"1gvqau"}],["path",{d:"M4 17v2",key:"vumght"}],["path",{d:"M5 18H3",key:"zchphs"}]]);/**
201 * @license lucide-react v0.462.0 - ISC
202 *
203 * This source code is licensed under the ISC license.
204 * See the LICENSE file in the root directory of this source tree.
205 */const dt=le("Star",[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]]);/**
206 * @license lucide-react v0.462.0 - ISC
207 *
208 * This source code is licensed under the ISC license.
209 * See the LICENSE file in the root directory of this source tree.
210 */const NP=le("Target",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"6",key:"1vlfrh"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]]);/**
211 * @license lucide-react v0.462.0 - ISC
212 *
213 * This source code is licensed under the ISC license.
214 * See the LICENSE file in the root directory of this source tree.
215 */const x1=le("TrendingUp",[["polyline",{points:"22 7 13.5 15.5 8.5 10.5 2 17",key:"126l90"}],["polyline",{points:"16 7 22 7 22 13",key:"kwv8wd"}]]);/**
216 * @license lucide-react v0.462.0 - ISC
217 *
218 * This source code is licensed under the ISC license.
219 * See the LICENSE file in the root directory of this source tree.
220 */const xy=le("Trophy",[["path",{d:"M6 9H4.5a2.5 2.5 0 0 1 0-5H6",key:"17hqa7"}],["path",{d:"M18 9h1.5a2.5 2.5 0 0 0 0-5H18",key:"lmptdp"}],["path",{d:"M4 22h16",key:"57wxv0"}],["path",{d:"M10 14.66V17c0 .55-.47.98-.97 1.21C7.85 18.75 7 20.24 7 22",key:"1nw9bq"}],["path",{d:"M14 14.66V17c0 .55.47.98.97 1.21C16.15 18.75 17 20.24 17 22",key:"1np0yb"}],["path",{d:"M18 2H6v7a6 6 0 0 0 12 0V2Z",key:"u46fv3"}]]);/**
221 * @license lucide-react v0.462.0 - ISC
222 *
223 * This source code is licensed under the ISC license.
224 * See the LICENSE file in the root directory of this source tree.
225 */const AP=le("Workflow",[["rect",{width:"8",height:"8",x:"3",y:"3",rx:"2",key:"by2w9f"}],["path",{d:"M7 11v4a2 2 0 0 0 2 2h4",key:"xkn7yn"}],["rect",{width:"8",height:"8",x:"13",y:"13",rx:"2",key:"1cgmvn"}]]);/**
226 * @license lucide-react v0.462.0 - ISC
227 *
228 * This source code is licensed under the ISC license.
229 * See the LICENSE file in the root directory of this source tree.
230 */const Gs=le("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);/**
231 * @license lucide-react v0.462.0 - ISC
232 *
233 * This source code is licensed under the ISC license.
234 * See the LICENSE file in the root directory of this source tree.
235 */const Kc=le("Zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]),Eh="-",PP=e=>{const t=MP(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:o=>{const l=o.split(Eh);return l[0]===""&&l.length!==1&&l.shift(),w1(l,t)||EP(o)},getConflictingClassGroupIds:(o,l)=>{const c=n[o]||[];return l&&r[o]?[...c,...r[o]]:c}}},w1=(e,t)=>{var o;if(e.length===0)return t.classGroupId;const n=e[0],r=t.nextPart.get(n),i=r?w1(e.slice(1),r):void 0;if(i)return i;if(t.validators.length===0)return;const s=e.join(Eh);return(o=t.validators.find(({validator:l})=>l(s)))==null?void 0:o.classGroupId},wy=/^\[(.+)\]$/,EP=e=>{if(wy.test(e)){const t=wy.exec(e)[1],n=t==null?void 0:t.substring(0,t.indexOf(":"));if(n)return"arbitrary.."+n}},MP=e=>{const{theme:t,prefix:n}=e,r={nextPart:new Map,validators:[]};
vendor: 5,120 bytes, line 235
235return RP(Object.entries(e.classGroups),n).forEach(([s,o])=>{Ip(o,r,s,t)}),r},Ip=(e,t,n,r)=>{e.forEach(i=>{if(typeof i=="string"){const s=i===""?t:by(t,i);s.classGroupId=n;return}if(typeof i=="function"){if(IP(i)){Ip(i(r),t,n,r);return}t.validators.push({validator:i,classGroupId:n});return}Object.entries(i).forEach(([s,o])=>{Ip(o,by(t,s),n,r)})})},by=(e,t)=>{let n=e;return t.split(Eh).forEach(r=>{n.nextPart.has(r)||n.nextPart.set(r,{nextPart:new Map,validators:[]}),n=n.nextPart.get(r)}),n},IP=e=>e.isThemeGetter,RP=(e,t)=>t?e.map(([n,r])=>{const i=r.map(s=>typeof s=="string"?t+s:typeof s=="object"?Object.fromEntries(Object.entries(s).map(([o,l])=>[t+o,l])):s);return[n,i]}):e,DP=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,n=new Map,r=new Map;const i=(s,o)=>{n.set(s,o),t++,t>e&&(t=0,r=n,n=new Map)};return{get(s){let o=n.get(s);if(o!==void 0)return o;if((o=r.get(s))!==void 0)return i(s,o),o},set(s,o){n.has(s)?n.set(s,o):i(s,o)}}},b1="!",FP=e=>{const{separator:t,experimentalParseClassName:n}=e,r=t.length===1,i=t[0],s=t.length,o=l=>{const c=[];let u=0,d=0,p;for(let w=0;w<l.length;w++){let m=l[w];if(u===0){if(m===i&&(r||l.slice(w,w+s)===t)){c.push(l.slice(d,w)),d=w+s;continue}if(m==="/"){p=w;continue}}m==="["?u++:m==="]"&&u--}const h=c.length===0?l:l.substring(d),f=h.startsWith(b1),x=f?h.substring(1):h,g=p&&p>d?p-d:void 0;return{modifiers:c,hasImportantModifier:f,baseClassName:x,maybePostfixModifierPosition:g}};return n?l=>n({className:l,parseClassName:o}):o},OP=e=>{if(e.length<=1)return e;const t=[];let n=[];return e.forEach(r=>{r[0]==="["?(t.push(...n.sort(),r),n=[]):n.push(r)}),t.push(...n.sort()),t},LP=e=>({cache:DP(e.cacheSize),parseClassName:FP(e),...PP(e)}),_P=/\s+/,BP=(e,t)=>{const{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:i}=t,s=[],o=e.trim().split(_P);let l="";for(let c=o.length-1;c>=0;c-=1){const u=o[c],{modifiers:d,hasImportantModifier:p,baseClassName:h,maybePostfixModifierPosition:f}=n(u);let x=!!f,g=r(x?h.substring(0,f):h);if(!g){if(!x){l=u+(l.length>0?" "+l:l);continue}if(g=r(h),!g){l=u+(l.length>0?" "+l:l);continue}x=!1}const w=OP(d).join(":"),m=p?w+b1:w,y=m+g;if(s.includes(y))continue;s.push(y);const v=i(g,x);for(let k=0;k<v.length;++k){const C=v[k];s.push(m+C)}l=u+(l.length>0?" "+l:l)}return l};function GP(){let e=0,t,n,r="";for(;e<arguments.length;)(t=arguments[e++])&&(n=k1(t))&&(r&&(r+=" "),r+=n);return r}const k1=e=>{if(typeof e=="string")return e;let t,n="";for(let r=0;r<e.length;r++)e[r]&&(t=k1(e[r]))&&(n&&(n+=" "),n+=t);return n};function zP(e,...t){let n,r,i,s=o;function o(c){const u=t.reduce((d,p)=>p(d),e());return n=LP(u),r=n.cache.get,i=n.cache.set,s=l,l(c)}function l(c){const u=r(c);if(u)return u;const d=BP(c,n);return i(c,d),d}return function(){return s(GP.apply(null,arguments))}}const we=e=>{const t=n=>n[e]||[];return t.isThemeGetter=!0,t},S1=/^\[(?:([a-z-]+):)?(.+)\]$/i,VP=/^\d+\/\d+$/,$P=new Set(["px","full","screen"]),UP=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,HP=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,WP=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,qP=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,KP=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Qn=e=>vs(e)||$P.has(e)||VP.test(e),wr=e=>Ys(e,"length",n2),vs=e=>!!e&&!Number.isNaN(Number(e)),Xu=e=>Ys(e,"number",vs),yo=e=>!!e&&Number.isInteger(Number(e)),YP=e=>e.endsWith("%")&&vs(e.slice(0,-1)),ne=e=>S1.test(e),br=e=>UP.test(e),QP=new Set(["length","size","percentage"]),XP=e=>Ys(e,QP,T1),JP=e=>Ys(e,"position",T1),ZP=new Set(["image","url"]),e2=e=>Ys(e,ZP,i2),t2=e=>Ys(e,"",r2),vo=()=>!0,Ys=(e,t,n)=>{const r=S1.exec(e);return r?r[1]?typeof t=="string"?r[1]===t:t.has(r[1]):n(r[2]):!1},n2=e=>HP.test(e)&&!WP.test(e),T1=()=>!1,r2=e=>qP.test(e),i2=e=>KP.test(e),s2=()=>{const e=we("colors"),t=we("spacing"),n=we("blur"),r=we("brightness"),i=we("borderColor"),s=we("borderRadius"),o=we("borderSpacing"),l=we("borderWidth"),c=we("contrast"),u=we("grayscale"),d=we("hueRotate"),p=we("invert"),h=we("gap"),f=we("gradientColorStops"),x=we("gradientColorStopPositions"),g=we("inset"),w=we("margin"),m=we("opacity"),y=we("padding"),v=we("saturate"),k=we("scale"),C=we("sepia"),T=we("skew"),N=we("space"),A=we("translate"),P=()=>["auto","contain","none"],M=()=>["auto","hidden","clip","visible","scroll"],O=()=>["auto",ne,t],R=()=>[ne,t],U=()=>["",Qn,wr],_=()=>["auto",vs,ne],$=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],K=()=>["solid","dashed","dotted","double","none"],V=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],E=()=>["start","end","center","between","around","evenly","stretch"],D=()=>["","0",ne],S=()=>["auto","avoid","all","avoid-page","page","left","right","column"],Q=()=>[vs,ne];return{cacheSize:500,separator:":",theme:{colors:[vo],spacing:[Qn,wr],blur:["none","",br,ne],brightness:Q(),borderColor:[e],borderRadius:["n
235one","","full",br,ne],borderSpacing:R(),borderWidth:U(),contrast:Q(),grayscale:D(),hueRotate:Q(),invert:D(),gap:R(),gradientColorStops:[e],gradientColorStopPositions:[YP,wr],inset:O(),margin:O(),opacity:Q(),padding:R(),saturate:Q(),scale:Q(),sepia:D(),skew:Q(),space:R(),translate:R()},classGroups:{aspect:[{aspect:["auto","square","video",ne]}],container:["container"],columns:[{columns:[br]}],"break-after":[{"break-after":S()}],"break-before":[{"break-before":S()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...$(),ne]}],overflow:[{overflow:M()}],"overflow-x":[{"overflow-x":M()}],"overflow-y":[{"overflow-y":M()}],overscroll:[{overscroll:P()}],"overscroll-x":[{"overscroll-x":P()}],"overscroll-y":[{"overscroll-y":P()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[g]}],"inset-x":[{"inset-x":[g]}],"inset-y":[{"inset-y":[g]}],start:[{start:[g]}],end:[{end:[g]}],top:[{top:[g]}],right:[{right:[g]}],bottom:[{bottom:[g]}],left:[{left:[g]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",yo,ne]}],basis:[{basis:O()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",ne]}],grow:[{grow:D()}],shrink:[{shrink:D()}],order:[{order:["first","last","none",yo,ne]}],"grid-cols":[{"grid-cols":[vo]}],"col-start-end":[{col:["auto",{span:["full",yo,ne]},ne]}],"col-start":[{"col-start":_()}],"col-end":[{"col-end":_()}],"grid-rows":[{"grid-rows":[vo]}],"row-start-end":[{row:["auto",{span:[yo,ne]},ne]}],"row-start":[{"row-start":_()}],"row-end":[{"row-end":_()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",ne]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",ne]}],gap:[{gap:[h]}],"gap-x":[{"gap-x":[h]}],"gap-y":[{"gap-y":[h]}],"justify-content":[{justify:["normal",...E()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...E(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...E(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[y]}],px:[{px:[y]}],py:[{py:[y]}],ps:[{ps:[y]}],pe:[{pe:[y]}],pt:[{pt:[y]}],pr:[{pr:[y]}],pb:[{pb:[y]}],pl:[{pl:[y]}],m:[{m:[w]}],mx:[{mx:[w]}],my:[{my:[w]}],ms:[{ms:[w]}],me:[{me:[w]}],mt:[{mt:[w]}],mr:[{mr:[w]}],mb:[{mb:[w]}],ml:[{ml:[w]}],"space-x":[{"space-x":[N]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[N]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",ne,t]}],"min-w":[{"min-w":[ne,t,"min","max","fit"]}],"max-w":[{"max-w":[ne,t,"none","full","min","max","fit","prose",{screen:[br]},br]}],h:[{h:[ne,t,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[ne,t,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[ne,t,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[ne,t,"auto","min","max","fit"]}],"font-size":[{text:["base",br,wr]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",Xu]}],"font-family":[{font:[vo]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",ne]}],"line-clamp":[{"line-clamp":["none",vs,Xu]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",Qn,ne]}],"list-image":[{"list-image":["none",ne]}],"list-style-type":[{list:["none","disc","decimal",ne]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[m]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[m]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...K(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",Qn,wr]}],"underline-offset":[{"underline-offset":["auto",Qn,ne]}],"text-decoration-color":[{decoration:[e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:R()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",ne]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",ne]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[m]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...$(),JP]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",XP]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},e2]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[x]}
vendor: 5,180 bytes, line 235
235],"gradient-via-pos":[{via:[x]}],"gradient-to-pos":[{to:[x]}],"gradient-from":[{from:[f]}],"gradient-via":[{via:[f]}],"gradient-to":[{to:[f]}],rounded:[{rounded:[s]}],"rounded-s":[{"rounded-s":[s]}],"rounded-e":[{"rounded-e":[s]}],"rounded-t":[{"rounded-t":[s]}],"rounded-r":[{"rounded-r":[s]}],"rounded-b":[{"rounded-b":[s]}],"rounded-l":[{"rounded-l":[s]}],"rounded-ss":[{"rounded-ss":[s]}],"rounded-se":[{"rounded-se":[s]}],"rounded-ee":[{"rounded-ee":[s]}],"rounded-es":[{"rounded-es":[s]}],"rounded-tl":[{"rounded-tl":[s]}],"rounded-tr":[{"rounded-tr":[s]}],"rounded-br":[{"rounded-br":[s]}],"rounded-bl":[{"rounded-bl":[s]}],"border-w":[{border:[l]}],"border-w-x":[{"border-x":[l]}],"border-w-y":[{"border-y":[l]}],"border-w-s":[{"border-s":[l]}],"border-w-e":[{"border-e":[l]}],"border-w-t":[{"border-t":[l]}],"border-w-r":[{"border-r":[l]}],"border-w-b":[{"border-b":[l]}],"border-w-l":[{"border-l":[l]}],"border-opacity":[{"border-opacity":[m]}],"border-style":[{border:[...K(),"hidden"]}],"divide-x":[{"divide-x":[l]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[l]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[m]}],"divide-style":[{divide:K()}],"border-color":[{border:[i]}],"border-color-x":[{"border-x":[i]}],"border-color-y":[{"border-y":[i]}],"border-color-s":[{"border-s":[i]}],"border-color-e":[{"border-e":[i]}],"border-color-t":[{"border-t":[i]}],"border-color-r":[{"border-r":[i]}],"border-color-b":[{"border-b":[i]}],"border-color-l":[{"border-l":[i]}],"divide-color":[{divide:[i]}],"outline-style":[{outline:["",...K()]}],"outline-offset":[{"outline-offset":[Qn,ne]}],"outline-w":[{outline:[Qn,wr]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:U()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[m]}],"ring-offset-w":[{"ring-offset":[Qn,wr]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",br,t2]}],"shadow-color":[{shadow:[vo]}],opacity:[{opacity:[m]}],"mix-blend":[{"mix-blend":[...V(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":V()}],filter:[{filter:["","none"]}],blur:[{blur:[n]}],brightness:[{brightness:[r]}],contrast:[{contrast:[c]}],"drop-shadow":[{"drop-shadow":["","none",br,ne]}],grayscale:[{grayscale:[u]}],"hue-rotate":[{"hue-rotate":[d]}],invert:[{invert:[p]}],saturate:[{saturate:[v]}],sepia:[{sepia:[C]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[n]}],"backdrop-brightness":[{"backdrop-brightness":[r]}],"backdrop-contrast":[{"backdrop-contrast":[c]}],"backdrop-grayscale":[{"backdrop-grayscale":[u]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[d]}],"backdrop-invert":[{"backdrop-invert":[p]}],"backdrop-opacity":[{"backdrop-opacity":[m]}],"backdrop-saturate":[{"backdrop-saturate":[v]}],"backdrop-sepia":[{"backdrop-sepia":[C]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[o]}],"border-spacing-x":[{"border-spacing-x":[o]}],"border-spacing-y":[{"border-spacing-y":[o]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",ne]}],duration:[{duration:Q()}],ease:[{ease:["linear","in","out","in-out",ne]}],delay:[{delay:Q()}],animate:[{animate:["none","spin","ping","pulse","bounce",ne]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[k]}],"scale-x":[{"scale-x":[k]}],"scale-y":[{"scale-y":[k]}],rotate:[{rotate:[yo,ne]}],"translate-x":[{"translate-x":[A]}],"translate-y":[{"translate-y":[A]}],"skew-x":[{"skew-x":[T]}],"skew-y":[{"skew-y":[T]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",ne]}],accent:[{accent:["auto",e]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",ne]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":R()}],"scroll-mx":[{"scroll-mx":R()}],"scroll-my":[{"scroll-my":R()}],"scroll-ms":[{"scroll-ms":R()}],"scroll-me":[{"scroll-me":R()}],"scroll-mt":[{"scroll-mt":R()}],"scroll-mr":[{"scroll-mr":R()}],"scroll-mb":[{"scroll-mb":R()}],"scroll-ml":[{"scroll-ml":R()}],"scroll-p":[{"scroll-p":R()}],"scroll-px":[{"scroll-px":R()}],"scroll-py":[{"scroll-py":R()}],"scroll-ps":[{"scroll-ps":R()}],"scroll-pe":[{"scroll-pe":R()}],"scroll-pt":[{"scroll-pt":R()}],"scroll-pr":[{"scroll-pr":R()}],"scroll-pb":[{"scroll-pb":R()}],"scroll-pl":[{"scroll-pl":R()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}
vendor: 4,647 bytes, line 235
235],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",ne]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[Qn,wr,Xu]}],stroke:[{stroke:[e,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}},o2=zP(s2);function nn(...e){return o2(u1(e))}const a2=uP,C1=b.forwardRef(({className:e,...t},n)=>a.jsx(r1,{ref:n,className:nn("fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]",e),...t}));C1.displayName=r1.displayName;const l2=d1("group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full",{variants:{variant:{default:"border bg-background text-foreground",destructive:"destructive group border-destructive bg-destructive text-destructive-foreground"}},defaultVariants:{variant:"default"}}),j1=b.forwardRef(({className:e,variant:t,...n},r)=>a.jsx(i1,{ref:r,className:nn(l2({variant:t}),e),...n}));j1.displayName=i1.displayName;const c2=b.forwardRef(({className:e,...t},n)=>a.jsx(a1,{ref:n,className:nn("inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium ring-offset-background transition-colors group-[.destructive]:border-muted/40 hover:bg-secondary group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 group-[.destructive]:focus:ring-destructive disabled:pointer-events-none disabled:opacity-50",e),...t}));c2.displayName=a1.displayName;const N1=b.forwardRef(({className:e,...t},n)=>a.jsx(l1,{ref:n,className:nn("absolute right-2 top-2 rounded-md p-1 text-foreground
235/50 opacity-0 transition-opacity group-hover:opacity-100 group-[.destructive]:text-red-300 hover:text-foreground group-[.destructive]:hover:text-red-50 focus:opacity-100 focus:outline-none focus:ring-2 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600",e),"toast-close":"",...t,children:a.jsx(Gs,{className:"h-4 w-4"})}));N1.displayName=l1.displayName;const A1=b.forwardRef(({className:e,...t},n)=>a.jsx(s1,{ref:n,className:nn("text-sm font-semibold",e),...t}));A1.displayName=s1.displayName;const P1=b.forwardRef(({className:e,...t},n)=>a.jsx(o1,{ref:n,className:nn("text-sm opacity-90",e),...t}));P1.displayName=o1.displayName;function u2(){const{toasts:e}=xA();return a.jsxs(a2,{children:[e.map(function({id:t,title:n,description:r,action:i,...s}){return a.jsxs(j1,{...s,children:[a.jsxs("div",{className:"grid gap-1",children:[n&&a.jsx(A1,{children:n}),r&&a.jsx(P1,{children:r})]}),i,a.jsx(N1,{})]},t)}),a.jsx(C1,{})]})}var ky=["light","dark"],d2="(prefers-color-scheme: dark)",p2=b.createContext(void 0),f2={setTheme:e=>{},themes:[]},h2=()=>{var e;return(e=b.useContext(p2))!=null?e:f2};b.memo(({forcedTheme:e,storageKey:t,attribute:n,enableSystem:r,enableColorScheme:i,defaultTheme:s,value:o,attrs:l,nonce:c})=>{let u=s==="system",d=n==="class"?`var d=document.documentElement,c=d.classList;${`c.remove(${l.map(x=>`'${x}'`).join(",")})`};`:`var d=document.documentElement,n='${n}',s='setAttribute';`,p=i?ky.includes(s)&&s?`if(e==='light'||e==='dark'||!e)d.style.colorScheme=e||'${s}'`:"if(e==='light'||e==='dark')d.style.colorScheme=e":"",h=(x,g=!1,w=!0)=>{let m=o?o[x]:x,y=g?x+"|| ''":`'${m}'`,v="";return i&&w&&!g&&ky.includes(x)&&(v+=`d.style.colorScheme = '${x}';`),n==="class"?g||m?v+=`c.add(${y})`:v+="null":m&&(v+=`d[s](n,${y})`),v},f=e?`!function(){${d}${h(e)}}()`:r?`!function(){try{${d}var e=localStorage.getItem('${t}');if('system'===e||(!e&&${u})){var t='${d2}',m=window.matchMedia(t);if(m.media!==t||m.matches){${h("dark")}}else{${h("light")}}}else if(e){${o?`var x=${JSON.stringify(o)};`:""}${h(o?"x[e]":"e",!0)}}${u?"":"else{"+h(s,!1,!1)+"}"}${p}}catch(e){}}()`:`!function(){try{${d}var e=localStorage.getItem('${t}');if(e){${o?`var x=${JSON.stringify(o)};`:""}${h(o?"x[e]":"e",!0)}}else{${h(s,!1,!1)};}${p}}catch(t){}}();`;return b.createElement("script",{nonce:c,dangerouslySetInnerHTML:{__html:f}})});var m2=e=>{switch(e){case"success":return v2;case"info":return w2;case"warning":return x2;case"error":return b2;default:return null}},g2=Array(12).fill(0),y2=({visible:e,className:t})=>L.createElement("div",{className:["sonner-loading-wrapper",t].filter(Boolean).join(" "),"data-visible":e},L.createElement("div",{className:"sonner-spinner"},g2.map((n,r)=>L.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${r}`})))),v2=L.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},L.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),x2=L.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},L.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),w2=L.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},L.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),b2=L.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},L.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),k2=L.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},L.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),L.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),S2=()=>{let[e,t]=L.useState(document.hidden);return L.useEffect(()=>{let n=()=>{t(document.hidden)};
235return document.addEventListener("visibilitychange",n),()=>window.removeEventListener("visibilitychange",n)},[]),e},Rp=1,T2=class{constructor(){this.subscribe=e=>(this.subscribers.push(e),()=>{let t=this.subscribers.indexOf(e);this.subscribers.splice(t,1)}),this.publish=e=>{this.subscribers.forEach(t=>t(e))},this.addToast=e=>{this.publish(e),this.toasts=[...this.toasts,e]},this.create=e=>{var t;let{message:n,...r}=e,i=typeof(e==null?void 0:e.id)=="number"||((t=e.id)==null?void 0:t.length)>0?e.id:Rp++,s=this.toasts.find(l=>l.id===i),o=e.dismissible===void 0?!0:e.dismissible;return this.dismissedToasts.has(i)&&this.dismissedToasts.delete(i),s?this.toasts=this.toasts.map(l=>l.id===i?(this.publish({...l,...e,id:i,title:n}),{...l,...e,id:i,dismissible:o,title:n}):l):this.addToast({title:n,...r,dismissible:o,id:i}),i},this.dismiss=e=>(this.dismissedToasts.add(e),e||this.toasts.forEach(t=>{this.subscribers.forEach(n=>n({id:t.id,dismiss:!0}))}),this.subscribers.forEach(t=>t({id:e,dismiss:!0})),e),this.message=(e,t)=>this.create({...t,message:e}),this.error=(e,t)=>this.create({...t,message:e,type:"error"}),this.success=(e,t)=>this.create({...t,type:"success",message:e}),this.info=(e,t)=>this.create({...t,type:"info",message:e}),this.warning=(e,t)=>this.create({...t,type:"warning",message:e}),this.loading=(e,t)=>
235this.create({...t,type:"loading",message:e}),this.promise=(e,t)=>{if(!t)return;let n;t.loading!==void 0&&(n=this.create({...t,promise:e,type:"loading",message:t.loading,description:typeof t.description!="function"?t.description:void 0}));let r=e instanceof Promise?e:e(),i=n!==void 0,s,o=r.then(async c=>{if(s=["resolve",c],L.isValidElement(c))i=!1,this.create({id:n,type:"default",message:c});else if(j2(c)&&!c.ok){i=!1;let u=typeof t.error=="function"?await t.error(`HTTP error! status: ${c.status}`):t.error,d=typeof t.description=="function"?await t.description(`HTTP error! status: ${c.status}`):t.description;this.create({id:n,type:"error",message:u,description:d})}else if(t.success!==void 0){i=!1;let u=typeof t.success=="function"?await t.success(c):t.success,d=typeof t.description=="function"?await t.description(c):t.description;this.create({id:n,type:"success",message:u,description:d})}}).catch(async c=>{if(s=["reject",c],t.error!==void 0){i=!1;let u=typeof t.error=="function"?await t.error(c):t.error,d=typeof t.description=="function"?await t.description(c):t.description;this.create({id:n,type:"error",message:u,description:d})}}).finally(()=>{var c;i&&(this.dismiss(n),n=void 0),(c=t.finally)==null||c.call(t)}),l=()=>new Promise((c,u)=>o.then(()=>s[0]==="reject"?u(s[1]):c(s[1])).catch(u));return typeof n!="string"&&typeof n!="number"?{unwrap:l}:Object.assign(n,{unwrap:l})},this.custom=(e,t)=>{let n=(t==null?void 0:t.id)||Rp++;return this.create({jsx:e(n),id:n,...t}),n},this.getActiveToasts=()=>this.toasts.filter(e=>!this.dismissedToasts.has(e.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}},bt=new T2,C2=(e,t)=>{let n=(t==null?void 0:t.id)||Rp++;return bt.addToast({title:e,...t,id:n}),n},j2=e=>e&&typeof e=="object"&&"ok"in e&&typeof e.ok=="boolean"&&"status"in e&&typeof e.status=="number",N2=C2,A2=()=>bt.toasts,P2=()=>bt.getActiveToasts();Object.assign(N2,{success:bt.success,info:bt.info,warning:bt.warning,error:bt.error,custom:bt.custom,message:bt.message,promise:bt.promise,dismiss:bt.dismiss,loading:bt.loading},{getHistory:A2,getToasts:P2});function E2(e,{insertAt:t}={}){if(typeof document>"u")return;let n=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css",t==="top"&&n.firstChild?n.insertBefore(r,n.firstChild):n.appendChild(r),r.styleSheet?r.styleSheet.cssText=e:r.appendChild(document.createTextNode(e))}E2(`:where(html[dir="ltr"]),:where([data-sonner-toaster][dir="ltr"]){--toast-icon-margin-start: -3px;--toast-icon-margin-end: 4px;--toast-svg-margin-start: -1px;--toast-svg-margin-end: 0px;--toast-button-margin-start: auto;--toast-button-margin-end: 0;--toast-close-button-start: 0;--toast-close-button-end: unset;--toast-close-button-transform: translate(-35%, -35%)}:where(html[dir="rtl"]),:where([data-sonner-toaster][dir="rtl"]){--toast-icon-margin-start: 4px;--toast-icon-margin-end: -3px;--toast-svg-margin-start: 0px;--toast-svg-margin-end: -1px;--toast-button-margin-start: 0;--toast-button-margin-end: auto;--toast-close-button-start: unset;--toast-close-button-end: 0;--toast-close-button-transform: translate(35%, -35%)}:where([data-sonner-toaster]){position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1: hsl(0, 0%, 99%);--gray2: hsl(0, 0%, 97.3%);--gray3: hsl(0, 0%, 95.1%);--gray4: hsl(0, 0%, 93%);--gray5: hsl(0, 0%, 90.9%);--gray6: hsl(0, 0%, 88.7%);--gray7: hsl(0, 0%, 85.8%);--gray8: hsl(0, 0%, 78%);--gray9: hsl(0, 0%, 56.1%);--gray10: hsl(0, 0%, 52.3%);--gray11: hsl(0, 0%, 43.5%);--gray12: hsl(0, 0%, 9%);--border-radius: 8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:none;z-index:999999999;transition:transform .4s ease}:where([data-sonner-toaster][data-lifted="true"]){transform:translateY(-10px)}@media (hover: none) and (pointer: coarse){:where([data-sonner-toaster][data-lifted="true"]){transform:none}}:where([data-sonner-toaster][data-x-position="right"]){right:var(--offset-right)}:where([data-sonner-toaster][data-x-position="left"]){left:var(--offset-left)}:where([data-sonner-toaster][data-x-position="center"]){left:50%;transform:translate(-50%)}:where([data-sonner-toaster][data-y-position="top"]){top:var(--offset-top)}:where([data-sonner-toaster][data-y-position="bottom"]){bottom:var(--offset-bottom)}:where([data-sonner-toast]){--y: translateY(100%);--lift-amount: calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);filter:blur(0);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:none;overflow-wrap:anywhere}:where([data-sonner-toast][data-styled="true"]){padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px #0000001a;width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}:where([data-sonner-toast]:focus-visible){box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast][data-y-position="top"]){top:0;--y: translateY(-100%);--lift: 1;--lift-amount: calc(1 * var(--gap))}:where([data-sonner-toast][data-y-position="bottom"]){bottom:0;--y: translateY(100%);--lift: -1;--lift-amount: calc(var(--lift) * var(--gap))}:where([data-sonner-toast]) :where([data-description]){font-weight:400;line-height:1.4;color:inherit}:where([data-sonner-toast]) :where([data-title]){font-weight:500;line-height:1.5;color:inherit}:where([data-sonner-toast]) :where([data-icon]){display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}:where([data-sonner-toast][data-promise="true"]) :where([data-icon])>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}:where([data-sonner-toast]) :where([data-icon])>*{flex-shrink:0}:where([data-sonner-toast]) :where([data-icon]) svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}:where([data-sonner-toast]) :where([data-content]){display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;cursor:pointer;outline:none;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}:where([data-sonner-toast]) :where([data-button]):focus-visible{box-shadow:0 0 0 2px #0006}:where([data-sonner-toast]) :where([data-button]):first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}:where([data-sonner-toast]) :where([data-cancel]){color:var(--normal-text);background:rgba(0,0,0,.08)}:where([data-sonner-toast][data-theme="dark"]) :where([data-cancel]){background:rgba(255,255,255,.3)}:where([data-sonner-toast]) :where([data-close-button]){position:absolute;
235left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast] [data-close-button]{background:var(--gray1)}:where([data-sonner-toast]) :where([data-close-button]):focus-visible{box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast]) :where([data-disabled="true"]){cursor:not-allowed}:where([data-sonner-toast]):hover :where([data-close-button]):hover{background:var(--gray2);border-color:var(--gray5)}:where([data-sonner-toast][data-swiping="true"]):before{content:"";position:absolute;left:-50%;right:-50%;height:100%;z-index:-1}:where([data-sonner-toast][data-y-position="top"][data-swiping="true"]):before{bottom:50%;transform:scaleY(3) translateY(50%)}:where([data-sonner-toast][data-y-position="bottom"][data-swiping="true"]):before{top:50%;transform:scaleY(3) translateY(-50%)}:where([data-sonner-toast][data-swiping="false"][data-removed="true"]):before{content:"";position:absolute;inset:0;transform:scaleY(2)}:where([data-sonner-toast]):after{content:"";position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}:where([data-sonner-toast][data-mounted="true"]){--y: translateY(0);opacity:1}:where([data-sonner-toast][data-expanded="false"][data-front="false"]){--scale: var(--toasts-before) * .05 + 1;--y: translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}:where([data-sonner-toast])>*{transition:opacity .4s}:where([data-sonner-toast][data-expanded="false"][data-front="false"][data-styled="true"])>*{opacity:0}
235:where([data-sonner-toast][data-visible="false"]){opacity:0;pointer-events:none}:where([data-sonner-toast][data-mounted="true"][data-expanded="true"]){--y: translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}:where([data-sonner-toast][data-removed="true"][data-front="true"][data-swipe-out="false"]){--y: translateY(calc(var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="true"]){--y: translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="false"]){--y: translateY(40%);opacity:0;transition:transform .5s,opacity .2s}:where([data-sonner-toast][data-removed="true"][data-front="false"]):before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y, 0px)) translate(var(--swipe-amount-x, 0px));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width: 600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-theme=light]{--normal-bg: #fff;--normal-border: var(--gray4);--normal-text: var(--gray12);--success-bg: hsl(143, 85%, 96%);--success-border: hsl(145, 92%, 91%);--success-text: hsl(140, 100%, 27%);--info-bg: hsl(208, 100%, 97%);--info-border: hsl(221, 91%, 91%);--info-text: hsl(210, 92%, 45%);--warning-bg: hsl(49, 100%, 97%);--warning-border: hsl(49, 91%, 91%);--warning-text: hsl(31, 92%, 45%);--error-bg: hsl(359, 100%, 97%);--error-border: hsl(359, 100%, 94%);--error-text: hsl(360, 100%, 45%)}[data-sonner-toaster][data-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg: #000;--normal-border: hsl(0, 0%, 20%);--normal-text: var(--gray1)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg: #fff;--normal-border: var(--gray3);--normal-text: var(--gray12)}[data-sonner-toaster][data-theme=dark]{--normal-bg: #000;--normal-bg-hover: hsl(0, 0%, 12%);--normal-border: hsl(0, 0%, 20%);--normal-border-hover: hsl(0, 0%, 25%);--normal-text: var(--gray1);--success-bg: hsl(150, 100%, 6%);--success-border: hsl(147, 100%, 12%);--success-text: hsl(150, 86%, 65%);--info-bg: hsl(215, 100%, 6%);--info-border: hsl(223, 100%, 12%);--info-text: hsl(216, 87%, 65%);--warning-bg: hsl(64, 100%, 6%);--warning-border: hsl(60, 100%, 12%);--warning-text: hsl(46, 87%, 65%);--error-bg: hsl(358, 76%, 10%);--error-border: hsl(357, 89%, 16%);
235--error-text: hsl(358, 100%, 81%)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success],[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info],[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning],[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error],[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size: 16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:nth-child(1){animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}to{opacity:.15}}@media (prefers-reduced-motion){[data-sonner-toast],[data-sonner-toast]>*,.sonner-loading-bar{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}
236`);function il(e){return e.label!==void 0}
236var M2=3,I2="32px",R2="16px",Sy=4e3,D2=356,F2=14,O2=20,L2=200;function cn(...e){return e.filter(Boolean).join(" ")}function _2(e){let[t,n]=e.split("-"),r=[];return t&&r.push(t),n&&r.push(n),r}var B2=e=>{var t,n,r,i,s,o,l,c,u,d,p;let{invert:h,toast:f,unstyled:x,interacting:g,setHeights:w,visibleToasts:m,heights:y,index:v,toasts:k,expanded:C,removeToast:T,defaultRichColors:N,closeButton:A,style:P,cancelButtonStyle:M,actionButtonStyle:O,className:R="",descriptionClassName:U="",duration:_,position:$,gap:K,loadingIcon:V,expandByDefault:E,classNames:D,icons:S,closeButtonAriaLabel:Q="Close toast",pauseWhenPageIsHidden:Y}=e,[j,X]=L.useState(null),[me,ce]=L.useState(null),[ae,st]=L.useState(!1),[ot,xt]=L.useState(!1),[Pt,fr]=L.useState(!1),[Cn,zi]=L.useState(!1),[Vi,oi]=L.useState(!1),[$i,ai]=L.useState(0),[qn,so]=L.useState(0),li=L.useRef(f.duration||_||Sy),Oa=L.useRef(null),Kn=L.useRef(null),mu=v===0,gu=v+1<=m,I=f.type,z=f.dismissible!==!1,Z=f.className||"",se=f.descriptionClassName||"",de=L.useMemo(()=>y.findIndex(ee=>ee.toastId===f.id)||0,[y,f.id]),Et=L.useMemo(()=>{var ee;return(ee=f.closeButton)!=null?ee:A},[f.closeButton,A]),jn=L.useMemo(()=>f.duration||_||Sy,[f.duration,_]),Mt=L.useRef(0),$t=L.useRef(0),hr=L.useRef(0),Oe=L.useRef(null),[mr,rn]=$.split("-"),Ym=L.useMemo(()=>y.reduce((ee,ge,Te)=>Te>=de?ee:ee+ge.height,0),[y,de]),Qm=S2(),uC=f.invert||h,yu=I==="loading";$t.current=L.useMemo(()=>de*K+Ym,[de,Ym]),L.useEffect(()=>{li.current=jn},[jn]),L.useEffect(()=>{st(!0)},[]),L.useEffect(()=>{let ee=Kn.current;if(ee){let ge=ee.getBoundingClientRect().height;return so(ge),w(Te=>[{toastId:f.id,height:ge,position:f.position},...Te]),()=>w(Te=>Te.filter(sn=>sn.toastId!==f.id))}},[w,f.id]),L.useLayoutEffect(()=>{if(!ae)return;let ee=Kn.current,ge=ee.style.height;ee.style.height="auto";let Te=ee.getBoundingClientRect().height;ee.style.height=ge,so(Te),w(sn=>sn.find(on=>on.toastId===f.id)?sn.map(on=>on.toastId===f.id?{...on,height:Te}:on):[{toastId:f.id,height:Te,position:f.position},...sn])},[ae,f.title,f.description,w,f.id]);let gr=L.useCallback(()=>{xt(!0),ai($t.current),w(ee=>ee.filter(ge=>ge.toastId!==f.id)),setTimeout(()=>{T(f)},L2)},[f,T,w,$t]);L.useEffect(()=>{if(f.promise&&I==="loading"||f.duration===1/0||f.type==="loading")return;let ee;return C||g||Y&&Qm?(()=>{if(hr.current<Mt.current){let ge=new Date().getTime()-Mt.current;li.current=li.current-ge}hr.current=new Date().getTime()})():li.current!==1/0&&(Mt.current=new Date().getTime(),ee=setTimeout(()=>{var ge;(ge=f.onAutoClose)==null||ge.call(f,f),gr()},li.current)),()=>clearTimeout(ee)},[C,g,f,I,Y,Qm,gr]),L.useEffect(()=>{f.delete&&gr()},[gr,f.delete]);function dC(){var ee,ge,Te;return S!=null&&S.loading?L.createElement("div",{className:cn(D==null?void 0:D.loader,(ee=f==null?void 0:f.classNames)==null?void 0:ee.loader,"sonner-loader"),"data-visible":I==="loading"},S.loading):V?L.createElement("div",{className:cn(D==null?void 0:D.loader,(ge=f==null?void 0:f.classNames)==null?void 0:ge.loader,"sonner-loader"),"data-visible":I==="loading"},V):L.createElement(y2,{className:cn(D==null?void 0:D.loader,(Te=f==null?void 0:f.classNames)==null?void 0:Te.loader),visible:I==="loading"})}return L.createElement("li",{tabIndex:0,ref:Kn,className:cn(R,Z,D==null?void 0:D.toast,(t=f==null?void 0:f.classNames)==null?void 0:t.toast,D==null?void 0:D.default,D==null?void 0:D[I],(n=f==null?void 0:f.classNames)==null?void 0:n[I]),"data-sonner-toast":"","data-rich-colors":(r=f.richColors)!=null?r:N,"data-styled":!(f.jsx||f.unstyled||x),"data-mounted":ae,"data-promise":!!f.promise,"data-swiped":Vi,"data-removed":ot,"data-visible":gu,"data-y-position":mr,"data-x-position":rn,"data-index":v,"data-front":mu,"data-swiping":Pt,"data-dismissible":z,"data-type":I,"data-invert":uC,"data-swipe-out":Cn,"data-swipe-direction":me,"data-expanded":!!(C||E&&ae),style:{"--index":v,"--toasts-before":v,"--z-index":k.length-v,"--offset":`${ot?$i:$t.current}px`,"--initial-height":E?"auto":`${qn}px`,...P,...f.style},onDragEnd:()=>{fr(!1),X(null),Oe.current=null},onPointerDown:ee=>{yu||!z||(Oa.current=new Date,ai($t.current),ee.target.setPointerCapture(ee.pointerId),ee.target.tagName!=="BUTTON"&&(fr(!0),Oe.current={x:ee.clientX,y:ee.clientY}))},onPointerUp:()=>{var ee,ge,Te,sn;if(Cn||!z)return;Oe.current=null;
236let on=Number(((ee=Kn.current)==null?void 0:ee.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),yr=Number(((ge=Kn.current)==null?void 0:ge.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),ci=new Date().getTime()-((Te=Oa.current)==null?void 0:Te.getTime()),an=j==="x"?on:yr,vr=Math.abs(an)/ci;if(Math.abs(an)>=O2||vr>.11){ai($t.current),(sn=f.onDismiss)==null||sn.call(f,f),ce(j==="x"?on>0?"right":"left":yr>0?"down":"up"),gr(),zi(!0),oi(!1);return}fr(!1),X(null)},onPointerMove:ee=>{var ge,Te,sn,on;if(!Oe.current||!z||((ge=window.getSelection())==null?void 0:ge.toString().length)>0)return;let yr=ee.clientY-Oe.current.y,ci=ee.clientX-Oe.current.x,an=(Te=e.swipeDirections)!=null?Te:_2($);!j&&(Math.abs(ci)>1||Math.abs(yr)>1)&&X(Math.abs(ci)>Math.abs(yr)?"x":"y");let vr={x:0,y:0};j==="y"?(an.includes("top")||an.includes("bottom"))&&(an.includes("top")&&yr<0||an.includes("bottom")&&yr>0)&&(vr.y=yr):j==="x"&&(an.includes("left")||an.includes("right"))&&(an.includes("left")&&ci<0||an.includes("right")&&ci>0)&&(vr.x=ci),(Math.abs(vr.x)>0||Math.abs(vr.y)>0)&&oi(!0),(sn=Kn.current)==null||sn.style.setProperty("--swipe-amount-x",`${vr.x}px`),(on=Kn.current)==null||on.style.setProperty("--swipe-amount-y",`${vr.y}px`)}},Et&&!f.jsx?L.createElement("button",{"aria-label":Q,"data-disabled":yu,"data-close-button":!0,onClick:yu||!z?()=>{}:()=>{var ee;gr(),(ee=f.onDismiss)==null||ee.call(f,f)},className:cn(D==null?void 0:D.closeButton,(i=f==null?void 0:f.classNames)==null?void 0:i.closeButton)},(s=S==null?void 0:S.close)!=null?s:k2):null,f.jsx||b.isValidElement(f.title)?f.jsx?f.jsx:typeof f.title=="function"?f.title():f.title:L.createElement(L.Fragment,null,I||f.icon||f.promise?L.createElement("div",{"data-icon":"",className:cn(D==null?void 0:D.icon,(o=f==null?void 0:f.classNames)==null?void 0:o.icon)},f.promise||f.type==="loading"&&!f.icon?f.icon||dC():null,f.type!=="loading"?f.icon||(S==null?void 0:S[I])||m2(I):null):null,L.createElement("div",{"data-content":"",className:cn(D==null?void 0:D.content,(l=f==null?void 0:f.classNames)==null?void 0:l.content)},L.createElement("div",{"data-title":"",className:cn(D==null?void 0:D.title,(c=f==null?void 0:f.classNames)==null?void 0:c.title)},typeof f.title=="function"?f.title():f.title),f.description?L.createElement("div",{"data-description":"",className:cn(U,se,D==null?void 0:D.description,(u=f==null?void 0:f.classNames)==null?void 0:u.description)},typeof f.description=="function"?f.description():f.description):null),b.isValidElement(f.cancel)?f.cancel:f.cancel&&il(f.cancel)?L.createElement("button",{"data-button":!0,"data-cancel":!0,style:f.cancelButtonStyle||M,onClick:ee=>{var ge,Te;il(f.cancel)&&z&&((Te=(ge=f.cancel).onClick)==null||Te.call(ge,ee),gr())},className:cn(D==null?void 0:D.cancelButton,(d=f==null?void 0:f.classNames)==null?void 0:d.cancelButton)},f.cancel.label):null,b.isValidElement(f.action)?f.action:f.action&&il(f.action)?L.createElement("button",{"data-button":!0,"data-action":!0,style:f.actionButtonStyle||O,onClick:ee=>{var ge,Te;il(f.action)&&((Te=(ge=f.action).onClick)==null||Te.call(ge,ee),!ee.defaultPrevented&&gr())},className:cn(D==null?void 0:D.actionButton,(p=f==null?void 0:f.classNames)==null?void 0:p.actionButton)},f.action.label):null))};function Ty(){if(typeof window>"u"||typeof document>"u")return"ltr";let e=document.documentElement.getAttribute("dir");return e==="auto"||!e?window.getComputedStyle(document.documentElement).direction:e}function G2(e,t){let n={};return[e,t].forEach((r,i)=>{let s=i===1,o=s?"--mobile-offset":"--offset",l=s?R2:I2;function c(u){["top","right","bottom","left"].forEach(d=>{n[`${o}-${d}`]=typeof u=="number"?`${u}px`:u})}typeof r=="number"||typeof r=="string"?c(r):typeof r=="object"?["top","right","bottom","left"].forEach(u=>{r[u]===void 0?n[`${o}-${u}`]=l:n[`${o}-${u}`]=typeof r[u]=="number"?`${r[u]}px`:r[u]}):c(l)}),n}var z2=b.forwardRef(function(e,t){let{invert:n,position:r="bottom-right",hotkey:i=["altKey","KeyT"],expand:s,closeButton:o,className:l,offset:c,mobileOffset:u,theme:d="light",richColors:p,duration:h,style:f,visibleToasts:x=M2,toastOptions:g,dir:w=Ty(),gap:m=F2,loadingIcon:y,icons:v,containerAriaLabel:k="Notifications",pauseWhenPageIsHidden:C}=e,[T,N]=L.useState([]),A=L.useMemo(()=>Array.from(new Set([r].concat(T.filter(Y=>Y.position).map(Y=>Y.position)))),[T,r]),[P,M]=L.useState([]),[O,R]=L.useState(!1),[U,_]=L.useState(!1),[$,K]=L.useState(d!=="system"?d:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dar
236k":"light"),V=L.useRef(null),E=i.join("+").replace(/Key/g,"").replace(/Digit/g,""),D=L.useRef(null),S=L.useRef(!1),Q=L.useCallback(Y=>{N(j=>{var X;return(X=j.find(me=>me.id===Y.id))!=null&&X.delete||bt.dismiss(Y.id),j.filter(({id:me})=>me!==Y.id)})},[]);return L.useEffect(()=>bt.subscribe(Y=>{if(Y.dismiss){N(j=>j.map(X=>X.id===Y.id?{...X,delete:!0}:X));return}setTimeout(()=>{Nb.flushSync(()=>{N(j=>{let X=j.findIndex(me=>me.id===Y.id);return X!==-1?[...j.slice(0,X),{...j[X],...Y},...j.slice(X+1)]:[Y,...j]})})})}),[]),L.useEffect(()=>{if(d!=="system"){K(d);return}if(d==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?K("dark"):K("light")),typeof window>"u")return;let Y=window.matchMedia("(prefers-color-scheme: dark)");try{Y.addEventListener("change",({matches:j})=>{K(j?"dark":"light")})}catch{Y.addListener(({matches:X})=>{try{K(X?"dark":"light")}catch(me){console.error(me)}})}},[d]),L.useEffect(()=>{T.length<=1&&R(!1)},[T]),L.useEffect(()=>{let Y=j=>{var X,me;i.every(ce=>j[ce]||j.code===ce)&&(R(!0),(X=V.current)==null||X.focus()),j.code==="Escape"&&(document.activeElement===V.current||(me=V.current)!=null&&me.contains(document.activeElement))&&R(!1)};return document.addEventListener("keydown",Y),()=>document.removeEventListener("keydown",Y)},[i]),L.useEffect(()=>{if(V.current)return()=>{D.current&&(D.current.focus({preventScroll:!0}),D.current=null,S.current=!1)}},[V.current]),L.createElement("section",{ref:t,"aria-label":`${k} ${E}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},A.map((Y,j)=>{var X;let[me,ce]=Y.split("-");return T.length?L.createElement("ol",{key:Y,dir:w==="auto"?Ty():w,tabIndex:-1,ref:V,className:l,"data-sonner-toaster":!0,"data-theme":$,"data-y-position":me,"data-lifted":O&&T.length>1&&!s,"data-x-position":ce,style:{"--front-toast-height":`${((X=P[0])==null?void 0:X.height)||0}px`,"--width":`${D2}px`,"--gap":`${m}px`,...f,...G2(c,u)},onBlur:ae=>{S.current&&!ae.currentTarget.contains(ae.relatedTarget)&&(S.current=!1,D.current&&(D.current.focus({preventScroll:!0}),D.current=null))},onFocus:ae=>{ae.target instanceof HTMLElement&&ae.target.dataset.dismissible==="false"||S.current||(S.current=!0,D.current=ae.relatedTarget)},onMouseEnter:()=>R(!0),onMouseMove:()=>R(!0),onMouseLeave:()=>{U||R(!1)},onDragEnd:()=>R(!1),onPointerDown:ae=>{ae.target instanceof HTMLElement&&ae.target.dataset.dismissible==="false"||_(!0)},onPointerUp:()=>_(!1)},T.filter(ae=>!ae.position&&j===0||ae.position===Y).map((ae,st)=>{var ot,xt;return L.createElement(B2,{key:ae.id,icons:v,index:st,toast:ae,defaultRichColors:p,duration:(ot=g==null?void 0:g.duration)!=null?ot:h,className:g==null?void 0:g.className,descriptionClassName:g==null?void 0:g.descriptionClassName,invert:n,visibleToasts:x,closeButton:(xt=g==null?void 0:g.closeButton)!=null?xt:o,interacting:U,position:Y,style:g==null?void 0:g.style,unstyled:g==null?void 0:g.unstyled,classNames:g==null?void 0:g.classNames,cancelButtonStyle:g==null?void 0:g.cancelButtonStyle,actionButtonStyle:g==null?void 0:g.actionButtonStyle,removeToast:Q,toasts:T.filter(Pt=>Pt.position==ae.position),heights:P.filter(Pt=>Pt.position==ae.position),setHeights:M,expandByDefault:s,gap:m,loadingIcon:y,expanded:O,pauseWhenPageIsHidden:C,swipeDirections:e.swipeDirections})})):null}))});const V2=({...e})=>{const{theme:t="system"}=h2();return a.jsx(z2,{theme:t,className:"toaster group",toastOptions:{classNames:{toast:"group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg",description:"group-[.toast]:text-muted-foreground",actionButton:"group-[.toast]:bg-primary group-[.toast]:text-primary-foreground",cancelButton:"group-[.toast]:bg-muted group-[.toast]:text-muted-foreground"}},...e})};var $2=Ef[" useId ".trim().toString()]||(()=>{}),U2=0;function E1(e){const[t,n]=b.useState($2());return Vn(()=>{n(r=>r??String(U2++))},[e]),t?`radix-${t}`:""}const H2=["top","right","bottom","left"],Qr=Math.min,Dt=Math.max,uc=Math.round,sl=Math.floor,Bn=e=>({x:e,y:e}
vendor: 24,352 bytes, line 236
236),W2={left:"right",right:"left",bottom:"top",top:"bottom"},q2={start:"end",end:"start"};function Dp(e,t,n){return Dt(e,Qr(t,n))}function lr(e,t){return typeof e=="function"?e(t):e}function cr(e){return e.split("-")[0]}function Qs(e){return e.split("-")[1]}function Mh(e){return e==="x"?"y":"x"}function Ih(e){return e==="y"?"height":"width"}const K2=new Set(["top","bottom"]);function On(e){return K2.has(cr(e))?"y":"x"}function Rh(e){return Mh(On(e))}function Y2(e,t,n){n===void 0&&(n=!1);const r=Qs(e),i=Rh(e),s=Ih(i);let o=i==="x"?r===(n?"end":"start")?"right":"left":r==="start"?"bottom":"top";return t.reference[s]>t.floating[s]&&(o=dc(o)),[o,dc(o)]}function Q2(e){const t=dc(e);return[Fp(e),t,Fp(t)]}function Fp(e){return e.replace(/start|end/g,t=>q2[t])}const Cy=["left","right"],jy=["right","left"],X2=["top","bottom"],J2=["bottom","top"];function Z2(e,t,n){switch(e){case"top":case"bottom":return n?t?jy:Cy:t?Cy:jy;case"left":case"right":return t?X2:J2;default:return[]}}function eE(e,t,n,r){const i=Qs(e);let s=Z2(cr(e),n==="start",r);return i&&(s=s.map(o=>o+"-"+i),t&&(s=s.concat(s.map(Fp)))),s}function dc(e){return e.replace(/left|right|bottom|top/g,t=>W2[t])}function tE(e){return{top:0,right:0,bottom:0,left:0,...e}}function M1(e){return typeof e!="number"?tE(e):{top:e,right:e,bottom:e,left:e}}function pc(e){const{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}function Ny(e,t,n){let{reference:r,floating:i}=e;const s=On(t),o=Rh(t),l=Ih(o),c=cr(t),u=s==="y",d=r.x+r.width/2-i.width/2,p=r.y+r.height/2-i.height/2,h=r[l]/2-i[l]/2;let f;switch(c){case"top":f={x:d,y:r.y-i.height};break;case"bottom":f={x:d,y:r.y+r.height};break;case"right":f={x:r.x+r.width,y:p};break;case"left":f={x:r.x-i.width,y:p};break;default:f={x:r.x,y:r.y}}switch(Qs(t)){case"start":f[o]-=h*(n&&u?-1:1);break;case"end":f[o]+=h*(n&&u?-1:1);break}return f}const nE=async(e,t,n)=>{const{placement:r="bottom",strategy:i="absolute",middleware:s=[],platform:o}=n,l=s.filter(Boolean),c=await(o.isRTL==null?void 0:o.isRTL(t));let u=await o.getElementRects({reference:e,floating:t,strategy:i}),{x:d,y:p}=Ny(u,r,c),h=r,f={},x=0;for(let g=0;g<l.length;g++){const{name:w,fn:m}=l[g],{x:y,y:v,data:k,reset:C}=await m({x:d,y:p,initialPlacement:r,placement:h,strategy:i,middlewareData:f,rects:u,platform:o,elements:{reference:e,floating:t}});d=y??d,p=v??p,f={...f,[w]:{...f[w],...k}},C&&x<=50&&(x++,typeof C=="object"&&(C.placement&&(h=C.placement),C.rects&&(u=C.rects===!0?await o.getElementRects({reference:e,floating:t,strategy:i}):C.rects),{x:d,y:p}=Ny(u,h,c)),g=-1)}return{x:d,y:p,placement:h,strategy:i,middlewareData:f}};async function la(e,t){var n;t===void 0&&(t={});const{x:r,y:i,platform:s,rects:o,elements:l,strategy:c}=e,{boundary:u="clippingAncestors",rootBoundary:d="viewport",elementContext:p="floating",altBoundary:h=!1,padding:f=0}=lr(t,e),x=M1(f),w=l[h?p==="floating"?"reference":"floating":p],m=pc(await s.getClippingRect({element:(n=await(s.isElement==null?void 0:s.isElement(w)))==null||n?w:w.contextElement||await(s.getDocumentElement==null?void 0:s.getDocumentElement(l.floating)),boundary:u,rootBoundary:d,strategy:c})),y=p==="floating"?{x:r,y:i,width:o.floating.width,height:o.floating.height}:o.reference,v=await(s.getOffsetParent==null?void 0:s.getOffsetParent(l.floating)),k=await(s.isElement==null?void 0:s.isElement(v))?await(s.getScale==null?void 0:s.getScale(v))||{x:1,y:1}:{x:1,y:1},C=pc(s.convertOffsetParentRelativeRectToViewportRelativeRect?await s.convertOffsetParentRelativeRectToViewportRelativeRect({elements:l,rect:y,offsetParent:v,strategy:c}):y);return{top:(m.top-C.top+x.top)/k.y,bottom:(C.bottom-m.bottom+x.bottom)/k.y,left:(m.left-C.left+x.left)/k.x,right:(C.right-m.right+x.right)/k.x}}const rE=e=>({name:"arrow",options:e,async fn(t){const{x:n,y:r,placement:i,rects:s,platform:o,elements:l,middlewareData:c}=t,{element:u,padding:d=0}=lr(e,t)||{};if(u==null)return{};const p=M1(d),h={x:n,y:r},f=Rh(i),x=Ih(f),g=await o.getDimensions(u),w=f==="y",m=w?"top":"left",y=w?"bottom":"right",v=w?"clientHeight":"clientWidth",k=s.reference[x]+s.reference[f]-h[f]-s.floating[x],C=h[f]-s.reference[f],T=await(o.getOffsetParent==null?void 0:o.getOffsetParent(u));let N=T?T[v]:0;(!N||!await(o.isElement==null?void 0:o.isElement(T)))&&(N=l.floating[v]||s.floating[x]);const A=k/2-C/2,P=N/2-g[x]/2-1,M=Qr(p[m],P),O=Qr(p[y],P),R=M,U=N-g[x]-O,_=N/2-g[x]/2+A,$=Dp(R,_,U),K=!c.arrow&&Qs(i)!=null&&_!==$&&s.reference[x]/2-(_<R?M:O)-g[x]/2<0,V=K?_<R?_-R:_-U:0;return{[f]:h[f]+V,data:{[f]:$,centerOffset:_-$-V,...K&&{alignmentOffset:V}},reset:K}}}),iE=function(e){return e===void 0&&(e={}),{name:"flip",options:e,async fn(t){var n,r;const{placement:i,middlewareData:s,rects:o,initialPlacement:l,platform:c,elements:u}=t,{mainAxis:d=!0,crossAxis:p=!0,fallbackPlacements:h,fallbackStrategy:f="bestFit",fallbackAxisSideDirection:x="none",flipAlignment:g=!0,...w}=lr(e,t);if((n=s.arrow)!=null&&n.alignmentOffset)return{};const m=cr(i),y=On(l),v=cr(l)===l,k=await(c.isRTL==null?void 0:c.isRTL(u.floating)),C=h||(v||!g?[dc(l)]:Q2(l)),T=x!=="none";!h&&T&&C.push(...eE(l,g,x,k));const N=[l,...C],A=await la(t,w),P=[];let M=((r=s.flip)==null?void 0:r.overflows)||[];if(d&&P.push(A[m]),p){const _=Y2(i,o,k);P.push(A[_[0]],A[_[1]])}if(M=[...M,{placement:i,overflows:P}],!P.every(_=>_<=0)){var O,R;const _=(((O=s.flip)==null?void 0:O.index)||0)+1,$=N[_];if($&&(!(p==="alignment"?y!==On($):!1)||M.every(E=>E.overflows[0]>0&&On(E.placement)===y)))return{data:{index:_,overflows:M},reset:{placement:$}};let K=(R=M.filter(V=>V.overflows[0]<=0).sort((V,E)=>V.overflows[1]-E.overflows[1])[0])==null?void 0:R.placement;if(!K)switch(f){case"bestFit":{var U;const V=(U=M.filter(E=>{if(T){const D=On(E.placement);return D===y||D==="y"}return!0}).map(E=>[E.placement,E.overflows.filter(D=>D>0).reduce((D,S)=>D+S,0)]).sort((E,D)=>E[1]-D[1])[0])==null?void 0:U[0];V&&(K=V);break}case"initialPlacement":K=l;break}if(i!==K)return{reset:{placement:K}}}return{}}}};function Ay(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function Py(e){return H2.some(t=>e[t]>=0)}const sE=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n}=t,{strategy:r="referenceHidden",...i}=lr(e,t);switch(r){case"referenceHidden":{const s=await la(t,{...i,elementContext:"reference"}),o=Ay(s,n.reference);return{data:{referenceHiddenOffsets:o,referenceHidden:Py(o)}}}case"escaped":{const s=await la(t,{...i,altBoundary:!0}),o=Ay(s,n.floating);return{data:{escapedOffsets:o,escaped:Py(o)}}}default:return{}}}}},I1=new Set(["left","top"]);async function oE(e,t){const{placement:n,platform:r,elements:i}=e,s=await(r.isRTL==null?void 0:r.isRTL(i.floating)),o=cr(n),l=Qs(n),c=On(n)==="y",u=I1.has(o)?-1:1,d=s&&c?-1:1,p=lr(t,e);let{mainAxis:h,crossAxis:f,alignmentAxis:x}=typeof p=="number"?{mainAxis:p,crossAxis:0,alignmentAxis:null}:{mainAxis:p.mainAxis||0,crossAxis:p.crossAxis||0,alignmentAxis:p.alignmentAxis};return l&&typeof x=="number"&&(f=l==="end"?x*-1:x),c?{x:f*d,y:h*u}:{x:h*u,y:f*d}}const aE=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var n,r;const{x:i,y:s,placement:o,middlewareData:l}=t,c=await oE(t,e);return o===((n=l.offset)==null?void 0:n.placement)&&(r=l.arrow)!=null&&r.alignmentOffset?{}:{x:i+c.x,y:s+c.y,data:{...c,placement:o}}}}},lE=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:r,placement:i}=t,{mainAxis:s=!0,crossAxis:o=!1,limiter:l={fn:w=>{let{x:m,y}=w;return{x:m,y}}},...c}=lr(e,t),u={x:n,y:r},d=await la(t,c),p=On(cr(i)),h=Mh(p);let f=u[h],x=u[p];if(s){const w=h==="y"?"top":"left",m=h==="y"?"bottom":"right",y=f+d[w],v=f-d[m];f=Dp(y,f,v)}if(o){const w=p==="y"?"top":"left",m=p==="y"?"bottom":"right",y=x+d[w],v=x-d[m];x=Dp(y,x,v)}const g=l.fn({...t,[h]:f,[p]:x});return{...g,data:{x:g.x-n,y:g.y-r,enabled:{[h]:s,[p]:o}}}}}},cE=function(e){return e===void 0&&(e={}),{options:e,fn(t){const{x:n,y:r,placement:i,rects:s,middlewareData:o}=t,{offset:l=0,mainAxis:c=!0,crossAxis:u=!0}=lr(e,t),d={x:n,y:r},p=On(i),h=Mh(p);let f=d[h],x=d[p];const g=lr(l,t),w=typeof g=="number"?{mainAxis:g,crossAxis:0}:{mainAxis:0,crossAxis:0,...g};if(c){const v=h==="y"?"height":"width",k=s.reference[h]-s.floating[v]+w.mainAxis,C=s.reference[h]+s.reference[v]-w.mainAxis;f<k?f=k:f>C&&(f=C)}if(u){var m,y;const v=h==="y"?"width":"height",k=I1.has(cr(i)),C=s.reference[p]-s.floating[v]+(k&&((m=o.offset)==null?void 0:m[p])||0)+(k?0:w.crossAxis),T=s.reference[p]+s.reference[v]+(k?0:((y=o.offset)==null?void 0:y[p])||0)-(k?w.crossAxis:0);x<C?x=C:x>T&&(x=T)}return{[h]:f,[p]:x}}}},uE=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){var n,r;const{placement:i,rects:s,platform:o,elements:l}=t,{apply:c=()=>{},...u}=lr(e,t),d=await la(t,u),p=cr(i),h=Qs(i),f=On(i)==="y",{width:x,height:g}=s.floating;let w,m;p==="top"||p==="bottom"?(w=p,m=h===(await(o.isRTL==null?void 0:o.isRTL(l.floating))?"start":"end")?"left":"right"):(m=p,w=h==="end"?"top":"bottom");const y=g-d.top-d.bottom,v=x-d.left-d.right,k=Qr(g-d[w],y),C=Qr(x-d[m],v),T=!t.middlewareData.shift;let N=k,A=C;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(A=v),(r=t.middlewareData.shift)!=null&&r.enabled.y&&(N=y),T&&!h){const M=Dt(d.left,0),O=Dt(d.right,0),R=Dt(d.top,0),U=Dt(d.bottom,0);f?A=x-2*(M!==0||O!==0?M+O:Dt(d.left,d.right)):N=g-2*(R!==0||U!==0?R+U:Dt(d.top,d.bottom))}await c({...t,availableWidth:A,availableHeight:N});const P=await o.getDimensions(l.floating);return x!==P.width||g!==P.height?{reset:{rects:!0}}:{}}}};function Yc(){return typeof window<"u"}function Xs(e){return R1(e)?(e.nodeName||"").toLowerCase():"#document"}function _t(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function Wn(e){var t;return(t=(R1(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function R1(e){return Yc()?e instanceof Node||e instanceof _t(e).Node:!1}function kn(e){return Yc()?e instanceof Element||e instanceof _t(e).Element:!1}function $n(e){return Yc()?e instanceof HTMLElement||e instanceof _t(e).HTMLElement:!1}function Ey(e){return!Yc()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof _t(e).ShadowRoot}const dE=new Set(["inline","contents"]);function Pa(e){const{overflow:t,overflowX:n,overflowY:r,display:i}=Sn(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&!dE.has(i)}const pE=new Set(["table","td","th"]);function fE(e){return pE.has(Xs(e))}const hE=[":popover-open",":modal"];function Qc(e){return hE.some(t=>{try{return e.matches(t)}catch{return!1}})}const mE=["transform","translate","scale","rotate","perspective"],gE=["transform","translate","scale","rotate","perspective","filter"],yE=["paint","layout","strict","content"];function Dh(e){const t=Fh(),n=kn(e)?Sn(e):e;return mE.some(r=>n[r]?n[r]!=="none":!1)||(n.containerType?n.containerType!=="normal":!1)||!t&&(n.backdropFilter?n.backdropFilter!=="none":!1)||!t&&(n.filter?n.filter!=="none":!1)||gE.some(r=>(n.willChange||"").includes(r))||yE.some(r=>(n.contain||"").includes(r))}function vE(e){let t=Xr(e);for(;$n(t)&&!zs(t);){if(Dh(t))return t;if(Qc(t))return null;t=Xr(t)}return null}function Fh(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const xE=new Set(["html","body","#document"]);function zs(e){return xE.has(Xs(e))}function Sn(e){return _t(e).getComputedStyle(e)}function Xc(e){return kn(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function Xr(e){if(Xs(e)==="html")return e;const t=e.assignedSlot||e.parentNode||Ey(e)&&e.host||Wn(e);return Ey(t)?t.host:t}function D1(e){const t=Xr(e);return zs(t)?e.ownerDocument?e.ownerDocument.body:e.body:$n(t)&&Pa(t)?t:D1(t)}function ca(e,t,n){var r;t===void 0&&(t=[]),n===void 0&&(n=!0);const i=D1(e),s=i===((r=e.ownerDocument)==null?void 0:r.body),o=_t(i);if(s){const l=Op(o);return t.concat(o,o.visualViewport||[],Pa(i)?i:[],l&&n?ca(l):[])}return t.concat(i,ca(i,[],n))}function Op(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function F1(e){const t=Sn(e);let n=parseFloat(t.width)||0,r=parseFloat(t.height)||0;const i=$n(e),s=i?e.offsetWidth:n,o=i?e.offsetHeight:r,l=uc(n)!==s||uc(r)!==o;return l&&(n=s,r=o),{width:n,height:r,$:l}}function Oh(e){return kn(e)?e:e.contextElement}function xs(e){const t=Oh(e);if(!$n(t))return Bn(1);const n=t.getBoundingClientRect(),{width:r,height:i,$:s}=F1(t);let o=(s?uc(n.width):n.width)/r,l=(s?uc(n.height):n.height)/i;return(!o||!Number.isFinite(o))&&(o=1),(!l||!Number.isFinite(l))&&(l=1),{x:o,y:l}}const wE=Bn(0);function O1(e){const t=_t(e);return!Fh()||!t.visualViewport?wE:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function bE(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==_t(e)?!1:t}function Fi(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);const i=e.getBoundingClientRect(),s=Oh(e);let o=Bn(1);t&&(r?kn(r)&&(o=xs(r)):o=xs(e));const l=bE(s,n,r)?O1(s):Bn(0);let c=(i.left+l.x)/o.x,u=(i.top+l.y)/o.y,d=i.width/o.x,p=i.height/o.y;if(s){const h=_t(s),f=r&&kn(r)?_t(r):r;let x=h,g=Op(x);for(;g&&r&&f!==x;){const w=xs(g),m=g.getBoundingClientRect(),y=Sn(g),v=m.left+(g.clientLeft+parseFloat(y.paddingLeft))*w.x,k=m.top+(g.clientTop+parseFloat(y.paddingTop))*w.y;c*=w.x,u*=w.y,d*=w.x,p*=w.y,c+=v,u+=k,x=_t(g),g=Op(x)}}return pc({width:d,height:p,x:c,y:u})}function Lh(e,t){const n=Xc(e).scrollLeft;return t?t.left+n:Fi(Wn(e)).left+n}function L1(e,t,n){n===void 0&&(n=!1);const r=e.getBoundingClientRect(),i=r.left+t.scrollLeft-(n?0:Lh(e,r)),s=r.top+t.scrollTop;return{x:i,y:s}}function kE(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e;const s=i==="fixed",o=Wn(r),l=t?Qc(t.floating):!1;if(r===o||l&&s)return n;let c={scrollLeft:0,scrollTop:0},u=Bn(1);const d=Bn(0),p=$n(r);if((p||!p&&!s)&&((Xs(r)!=="body"||Pa(o))&&(c=Xc(r)),$n(r))){const f=Fi(r);u=xs(r),d.x=f.x+r.clientLeft,d.y=f.y+r.clientTop}const h=o&&!p&&!s?L1(o,c,!0):Bn(0);return{width:n.width*u.x,height:n.height*u.y,x:n.x*u.x-c.scrollLeft*u.x+d.x+h.x,y:n.y*u.y-c.scrollTop*u.y+d.y+h.y}}function SE(e){return Array.from(e.getClientRects())}function TE(e){const t=Wn(e),n=Xc(e),r=e.ownerDocument.body,i=Dt(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),s=Dt(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight);let o=-n.scrollLeft+Lh(e);const l=-n.scrollTop;return Sn(r).direction==="rtl"&&(o+=Dt(t.clientWidth,r.clientWidth)-i),{width:i,height:s,x:o,y:l}}function CE(e,t){const n=_t(e),r=Wn(e),i=n.visualViewport;let s=r.clientWidth,o=r.clientHeight,l=0,c=0;if(i){s=i.width,o=i.height;const u=Fh();(!u||u&&t==="fixed")&&(l=i.offsetLeft,c=i.offsetTop)}return{width:s,height:o,x:l,y:c}}const jE=new Set(["absolute","fixed"]);function NE(e,t){const n=Fi(e,!0,t==="fixed"),r=n.top+e.clientTop,i=n.left+e.clientLeft,s=$n(e)?xs(e):Bn(1),o=e.clientWidth*s.x,l=e.clientHeight*s.y,c=i*s.x,u=r*s.y;return{width:o,height:l,x:c,y:u}}function My(e,t,n){let r;if(t==="viewport")r=CE(e,n);else if(t==="document")r=TE(Wn(e));else if(kn(t))r=NE(t,n);else{const i=O1(e);r={x:t.x-i.x,y:t.y-i.y,width:t.width,height:t.height}}return pc(r)}function _1(e,t){const n=Xr(e);return n===t||!kn(n)||zs(n)?!1:Sn(n).position==="fixed"||_1(n,t)}function AE(e,t){const n=t.get(e);if(n)return n;let r=ca(e,[],!1).filter(l=>kn(l)&&Xs(l)!=="body"),i=null;const s=Sn(e).position==="fixed";let o=s?Xr(e):e;for(;kn(o)&&!zs(o);){const l=Sn(o),c=Dh(o);!c&&l.position==="fixed"&&(i=null),(s?!c&&!i:!c&&l.position==="static"&&!!i&&jE.has(i.position)||Pa(o)&&!c&&_1(e,o))?r=r.filter(d=>d!==o):i=l,o=Xr(o)}return t.set(e,r),r}function PE(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e;const o=[...n==="clippingAncestors"?Qc(t)?[]:AE(t,this._c):[].concat(n),r],l=o[0],c=o.reduce((u,d)=>{const p=My(t,d,i);return u.top=Dt(p.top,u.top),u.right=Qr(p.right,u.right),u.bottom=Qr(p.bottom,u.bottom),u.left=Dt(p.left,u.left),u},My(t,l,i));return{width:c.right-c.left,height:c.bottom-c.top,x:c.left,y:c.top}}function EE(e){const{width:t,height:n}=F1(e);return{width:t,height:n}}function ME(e,t,n){const r=$n(t),i=Wn(t),s=n==="fixed",o=Fi(e,!0,s,t);let l={scrollLeft:0,scrollTop:0};const c=Bn(0);function u(){c.x=Lh(i)}if(r||!r&&!s)if((Xs(t)!=="body"||Pa(i))&&(l=Xc(t)),r){const f=Fi(t,!0,s,t);c.x=f.x+t.clientLeft,c.y=f.y+t.clientTop}else i&&u();s&&!r&&i&&u();const d=i&&!r&&!s?L1(i,l):Bn(0),p=o.left+l.scrollLeft-c.x-d.x,h=o.top+l.scrollTop-c.y-d.y;return{x:p,y:h,width:o.width,height:o.height}}function Ju(e){return Sn(e).position==="static"}function Iy(e,t){if(!$n(e)||Sn(e).position==="fixed")return null;if(t)return t(e);let n=e.offsetParent;return Wn(e)===n&&(n=n.ownerDocument.body),n}function B1(e,t){const n=_t(e);if(Qc(e))return n;if(!$n(e)){let i=Xr(e);for(;i&&!zs(i);){if(kn(i)&&!Ju(i))return i;i=Xr(i)}return n}let r=Iy(e,t);for(;r&&fE(r)&&Ju(r);)r=Iy(r,t);return r&&zs(r)&&Ju(r)&&!Dh(r)?n:r||vE(e)||n}const IE=async function(e){const t=this.getOffsetParent||B1,n=this.getDimensions,r=await n(e.floating);return{reference:ME(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function RE(e){return Sn(e).direction==="rtl"}const DE={convertOffsetParentRelativeRectToViewportRelativeRect:kE,getDocumentElement:Wn,getClippingRect:PE,getOffsetParent:B1,getElementRects:IE,getClientRects:SE,getDimensions:EE,getScale:xs,isElement:kn,isRTL:RE};function G1(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function FE(e,t){let n=null,r;const i=Wn(e);function s(){var l;clearTimeout(r),(l=n)==null||l.disconnect(),n=null}function o(l,c){l===void 0&&(l=!1),c===void 0&&(c=1),s();const u=e.getBoundingClientRect(),{left:d,top:p,width:h,height:f}=u;if(l||t(),!h||!f)return;const x=sl(p),g=sl(i.clientWidth-(d+h)),w=sl(i.clientHeight-(p+f)),m=sl(d),v={rootMargin:-x+"px "+-g+"px "+-w+"px "+-m+"px",threshold:Dt(0,Qr(1,c))||1};let k=!0;function C(T){const N=T[0].intersectionRatio;if(N!==c){if(!k)return o();N?o(!1,N):r=setTimeout(()=>{o(!1,1e-7)},1e3)}N===1&&!G1(u,e.getBoundingClientRect())&&o(),k=!1}try{n=new IntersectionObserver(C,{...v,root:i.ownerDocument})}catch{n=new IntersectionObserver(C,v)}n.observe(e)}return o(!0),s}function OE(e,t,n,r){r===void 0&&(r={});const{ancestorScroll:i=!0,ancestorResize:s=!0,elementResize:o=typeof ResizeObserver=="function",layoutShift:l=typeof IntersectionObserver=="function",animationFrame:c=!1}=r,u=Oh(e),d=i||s?[...u?ca(u):[],...ca(t)]:[];d.forEach(m=>{i&&m.addEventListener("scroll",n,{passive:!0}),s&&m.addEventListener("resize",n)});const p=u&&l?FE(u,n):null;let h=-1,f=null;o&&(f=new ResizeObserver(m=>{let[y]=m;y&&y.target===u&&f&&(f.unobserve(t),cancelAnimationFrame(h),h=requestAnimationFrame(()=>{var v;(v=f)==null||v.observe(t)})),n()}),u&&!c&&f.observe(u),f.observe(t));let x,g=c?Fi(e):null;c&&w();function w(){const m=Fi(e);g&&!G1(g,m)&&n(),g=m,x=requestAnimationFrame(w)}return n(),()=>{var m;d.forEach(y=>{i&&y.removeEventListener("scroll",n),s&&y.removeEventListener("resize",n)}),p==null||p(),(m=f)==null||m.disconnect(),f=null,c&&cancelAnimationFrame(x)}}const LE=aE,_E=lE,BE=iE,GE=uE,zE=sE,Ry=rE,VE=cE,$E=(e,t,n)=>{const r=new Map,i={platform:DE,...n},s={...i.platform,_c:r};return nE(e,t,{...i,platform:s})};var UE=typeof document<"u",HE=function(){},El=UE?b.useLayoutEffect:HE;function fc(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=="function"&&e.toString()===t.toString())return!0;let n,r,i;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;r--!==0;)if(!fc(e[r],t[r]))return!1;return!0}if(i=Object.keys(e),n=i.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,i[r]))return!1;for(r=n;r--!==0;){const s=i[r];if(!(s==="_owner"&&e.$$typeof)&&!fc(e[s],t[s]))return!1}return!0}return e!==e&&t!==t}function z1(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function Dy(e,t){const n=z1(e);return Math.round(t*n)/n}function Zu(e){const t=b.useRef(e);return El(()=>{t.current=e}),t}function WE(e){e===void 0&&(e={});const{placement:t="bottom",strategy:n="absolute",middleware:r=[],platform:i,elements:{reference:s,floating:o}={},transform:l=!0,whileElementsMounted:c,open:u}=e,[d,p]=b.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[h,f]=b.useState(r);fc(h,r)||f(r);const[x,g]=b.useState(null),[w,m]=b.useState(null),y=b.useCallback(E=>{E!==T.current&&(T.current=E,g(E))},[]),v=b.useCallback(E=>{E!==N.current&&(N.current=E,m(E))},[]),k=s||x,C=o||w,T=b.useRef(null),N=b.useRef(null),A=b.useRef(d),P=c!=null,M=Zu(c),O=Zu(i),R=Zu(u),U=b.useCallback(()=>{if(!T.current||!N.current)return;const E={placement:t,strategy:n,middleware:h};O.current&&(E.platform=O.current),$E(T.current,N.current,E).then(D=>{const S={...D,isPositioned:R.current!==!1};_.current&&!fc(A.current,S)&&(A.current=S,Na.flushSync(()=>{p(S)}))})},[h,t,n,O,R]);El(()=>{u===!1&&A.current.isPositioned&&(A.current.isPositioned=!1,p(E=>({...E,isPositioned:!1})))},[u]);const _=b.useRef(!1);El(()=>(_.current=!0,()=>{_.current=!1}),[]),El(()=>{if(k&&(T.current=k),C&&(N.current=C),k&&C){if(M.current)return M.current(k,C,U);U()}},[k,C,U,M,P]);const $=b.useMemo(()=>({reference:T,floating:N,setReference:y,setFloating:v}),[y,v]),K=b.useMemo(()=>({reference:k,floating:C}),[k,C]),V=b.useMemo(()=>{const E={position:n,left:0,top:0};if(!K.floating)return E;const D=Dy(K.floating,d.x),S=Dy(K.floating,d.y);return l?{...E,transform:"translate("+D+"px, "+S+"px)",...z1(K.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:D,top:S}},[n,l,K.floating,d.x,d.y]);return b.useMemo(()=>({...d,update:U,refs:$,elements:K,floatingStyles:V}),[d,U,$,K,V])}const qE=e=>{function t(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:e,fn(n){const{element:r,padding:i}=typeof e=="function"?e(n):e;return r&&t(r)?r.current!=null?Ry({element:r.current,padding:i}).fn(n):{}:r?Ry({element:r,padding:i}).fn(n):{}}}},KE=(e,t)=>({...LE(e),options:[e,t]}),YE=(e,t)=>({..._E(e),options:[e,t]}),QE=(e,t)=>({...VE(e),options:[e,t]}),XE=(e,t)=>({...BE(e),options:[e,t]}),JE=(e,t)=>({...GE(e),options:[e,t]}),ZE=(e,t)=>({...zE(e),options:[e,t]}),eM=(e,t)=>({...qE(e),options:[e,t]});var tM="Arrow",V1=b.forwardRef((e,t)=>{const{children:n,width:r=10,height:i=5,...s}=e;return a.jsx($e.svg,{...s,ref:t,width:r,height:i,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:a.jsx("polygon",{points:"0,0 30,0 15,10"})})});V1.displayName=tM;var nM=V1;function rM(e){const[t,n]=b.useState(void 0);return Vn(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const r=new ResizeObserver(i=>{if(!Array.isArray(i)||!i.length)return;const s=i[0];let o,l;if("borderBoxSize"in s){const c=s.borderBoxSize,u=Array.isArray(c)?c[0]:c;o=u.inlineSize,l=u.blockSize}else o=e.offsetWidth,l=e.offsetHeight;n({width:o,height:l})});return r.observe(e,{box:"border-box"}),()=>r.unobserve(e)}else n(void 0)},[e]),t}var $1="Popper",[U1,H1]=Ks($1),[UB,W1]=U1($1),q1="PopperAnchor",K1=b.forwardRef((e,t)=>{const{__scopePopper:n,virtualRef:r,...i}=e,s=W1(q1,n),o=b.useRef(null),l=Gt(t,o);return b.useEffect(()=>{s.onAnchorChange((r==null?void 0:r.current)||o.current)}),r?null:a.jsx($e.div,{...i,ref:l})});K1.displayName=q1;var _h="PopperContent",[iM,sM]=U1(_h),Y1=b.forwardRef((e,t)=>{var ae,st,ot,xt,Pt,fr;const{__scopePopper:n,side:r="bottom",sideOffset:i=0,align:s="center",alignOffset:o=0,arrowPadding:l=0,avoidCollisions:c=!0,collisionBoundary:u=[],collisionPadding:d=0,sticky:p="partial",hideWhenDetached:h=!1,updatePositionStrategy:f="optimized",onPlaced:x,...g}=e,w=W1(_h,n),[m,y]=b.useState(null),v=Gt(t,Cn=>y(Cn)),[k,C]=b.useState(null),T=rM(k),N=(T==null?void 0:T.width)??0,A=(T==null?void 0:T.height)??0,P=r+(s!=="center"?"-"+s:""),M=typeof d=="number"?d:{top:0,right:0,bottom:0,left:0,...d},O=Array.isArray(u)?u:[u],R=O.length>0,U={padding:M,boundary:O.filter(aM),altBoundary:R},{refs:_,floatingStyles:$,placement:K,isPositioned:V,middlewareData:E}=WE({strategy:"fixed",placement:P,whileElementsMounted:(...Cn)=>OE(...Cn,{animationFrame:f==="always"}),elements:{reference:w.anchor},middleware:[KE({mainAxis:i+A,alignmentAxis:o}),c&&YE({mainAxis:!0,crossAxis:!1,limiter:p==="partial"?QE():void 0,...U}),c&&XE({...U}),JE({...U,apply:({elements:Cn,rects:zi,availableWidth:Vi,availableHeight:oi})=>{const{width:$i,height:ai}
vendor: 8,995 bytes, line 236
236=zi.reference,qn=Cn.floating.style;qn.setProperty("--radix-popper-available-width",`${Vi}px`),qn.setProperty("--radix-popper-available-height",`${oi}px`),qn.setProperty("--radix-popper-anchor-width",`${$i}px`),qn.setProperty("--radix-popper-anchor-height",`${ai}px`)}}),k&&eM({element:k,padding:l}),lM({arrowWidth:N,arrowHeight:A}),h&&ZE({strategy:"referenceHidden",...U})]}),[D,S]=J1(K),Q=Yr(x);Vn(()=>{V&&(Q==null||Q())},[V,Q]);const Y=(ae=E.arrow)==null?void 0:ae.x,j=(st=E.arrow)==null?void 0:st.y,X=((ot=E.arrow)==null?void 0:ot.centerOffset)!==0,[me,ce]=b.useState();return Vn(()=>{m&&ce(window.getComputedStyle(m).zIndex)},[m]),a.jsx("div",{ref:_.setFloating,"data-radix-popper-content-wrapper":"",style:{...$,transform:V?$.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:me,"--radix-popper-transform-origin":[(xt=E.transformOrigin)==null?void 0:xt.x,(Pt=E.transformOrigin)==null?void 0:Pt.y].join(" "),...((fr=E.hide)==null?void 0:fr.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:a.jsx(iM,{scope:n,placedSide:D,onArrowChange:C,arrowX:Y,arrowY:j,shouldHideArrow:X,children:a.jsx($e.div,{"data-side":D,"data-align":S,...g,ref:v,style:{...g.style,animation:V?void 0:"none"}})})})});Y1.displayName=_h;var Q1="PopperArrow",oM={top:"bottom",right:"left",bottom:"top",left:"right"},X1=b.forwardRef(function(t,n){const{__scopePopper:r,...i}=t,s=sM(Q1,r),o=oM[s.placedSide];return a.jsx("span",{ref:s.onArrowChange,style:{position:"absolute",left:s.arrowX,top:s.arrowY,[o]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[s.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[s.placedSide],visibility:s.shouldHideArrow?"hidden":void 0},children:a.jsx(nM,{...i,ref:n,style:{...i.style,display:"block"}})})});X1.displayName=Q1;function aM(e){return e!==null}var lM=e=>({name:"transformOrigin",options:e,fn(t){var w,m,y;const{placement:n,rects:r,middlewareData:i}=t,o=((w=i.arrow)==null?void 0:w.centerOffset)!==0,l=o?0:e.arrowWidth,c=o?0:e.arrowHeight,[u,d]=J1(n),p={start:"0%",center:"50%",end:"100%"}[d],h=(((m=i.arrow)==null?void 0:m.x)??0)+l/2,f=(((y=i.arrow)==null?void 0:y.y)??0)+c/2;let x="",g="";return u==="bottom"?(x=o?p:`${h}px`,g=`${-c}px`):u==="top"?(x=o?p:`${h}px`,g=`${r.floating.height+c}px`):u==="right"?(x=`${-c}px`,g=o?p:`${f}px`):u==="left"&&(x=`${r.floating.width+c}px`,g=o?p:`${f}px`),{data:{x,y:g}}}});function J1(e){const[t,n="center"]=e.split("-");return[t,n]}var cM=K1,uM=Y1,dM=X1,[Jc,HB]=Ks("Tooltip",[H1]),Bh=H1(),Z1="TooltipProvider",pM=700,Fy="tooltip.open",[fM,ek]=Jc(Z1),tk=e=>{const{__scopeTooltip:t,delayDuration:n=pM,skipDelayDuration:r=300,disableHoverableContent:i=!1,children:s}=e,o=b.useRef(!0),l=b.useRef(!1),c=b.useRef(0);return b.useEffect(()=>{const u=c.current;return()=>window.clearTimeout(u)},[]),a.jsx(fM,{scope:t,isOpenDelayedRef:o,delayDuration:n,onOpen:b.useCallback(()=>{window.clearTimeout(c.current),o.current=!1},[]),onClose:b.useCallback(()=>{window.clearTimeout(c.current),c.current=window.setTimeout(()=>o.current=!0,r)},[r]),isPointerInTransitRef:l,onPointerInTransitChange:b.useCallback(u=>{l.current=u},[]),disableHoverableContent:i,children:s})};tk.displayName=Z1;var nk="Tooltip",[WB,Zc]=Jc(nk),Lp="TooltipTrigger",hM=b.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,i=Zc(Lp,n),s=ek(Lp,n),o=Bh(n),l=b.useRef(null),c=Gt(t,l,i.onTriggerChange),u=b.useRef(!1),d=b.useRef(!1),p=b.useCallback(()=>u.current=!1,[]);return b.useEffect(()=>()=>document.removeEventListener("pointerup",p),[p]),a.jsx(cM,{asChild:!0,...o,children:a.jsx($e.button,{"aria-describedby":i.open?i.contentId:void 0,"data-state":i.stateAttribute,...r,ref:c,onPointerMove:De(e.onPointerMove,h=>{h.pointerType!=="touch"&&!d.current&&!s.isPointerInTransitRef.current&&(i.onTriggerEnter(),d.current=!0)}),onPointerLeave:De(e.onPointerLeave,()=>{i.onTriggerLeave(),d.current=!1}),onPointerDown:De(e.onPointerDown,()=>{i.open&&i.onClose(),u.current=!0,document.addEventListener("pointerup",p,{once:!0})}),onFocus:De(e.onFocus,()=>{u.current||i.onOpen()}),onBlur:De(e.onBlur,i.onClose),onClick:De(e.onClick,i.onClose)})})});hM.displayName=Lp;var mM="TooltipPortal",[qB,gM]=Jc(mM,{forceMount:void 0}),Vs="TooltipContent",rk=b.forwardRef((e,t)=>{const n=gM(Vs,e.__scopeTooltip),{forceMount:r=n.forceMount,side:i="top",...s}=e,o=Zc(Vs,e.__scopeTooltip);return a.jsx($c,{present:r||o.open,children:o.disableHoverableContent?a.jsx(ik,{side:i,...s,ref:t}):a.jsx(yM,{side:i,...s,ref:t})})}),yM=b.forwardRef((e,t)=>{const n=Zc(Vs,e.__scopeTooltip),r=ek(Vs,e.__scopeTooltip),i=b.useRef(null),s=Gt(t,i),[o,l]=b.useState(null),{trigger:c,onClose:u}=n,d=i.current,{onPointerInTransitChange:p}=r,h=b.useCallback(()=>{l(null),p(!1)},[p]),f=b.useCallback((x,g)=>{const w=x.currentTarget,m={x:x.clientX,y:x.clientY},y=kM(m,w.getBoundingClientRect()),v=SM(m,y),k=TM(g.getBoundingClientRect()),C=jM([...v,...k]);l(C),p(!0)},[p]);return b.useEffect(()=>()=>h(),[h]),b.useEffect(()=>{if(c&&d){const x=w=>f(w,d),g=w=>f(w,c);return c.addEventListener("pointerleave",x),d.addEventListener("pointerleave",g),()=>{c.removeEventListener("pointerleave",x),d.removeEventListener("pointerleave",g)}}},[c,d,f,h]),b.useEffect(()=>{if(o){const x=g=>{const w=g.target,m={x:g.clientX,y:g.clientY},y=(c==null?void 0:c.contains(w))||(d==null?void 0:d.contains(w)),v=!CM(m,o);y?h():v&&(h(),u())};return document.addEventListener("pointermove",x),()=>document.removeEventListener("pointermove",x)}},[c,d,o,u,h]),a.jsx(ik,{...e,ref:s})}),[vM,xM]=Jc(nk,{isInside:!1}),wM=SA("TooltipContent"),ik=b.forwardRef((e,t)=>{const{__scopeTooltip:n,children:r,"aria-label":i,onEscapeKeyDown:s,onPointerDownOutside:o,...l}=e,c=Zc(Vs,n),u=Bh(n),{onClose:d}=c;return b.useEffect(()=>(document.addEventListener(Fy,d),()=>document.removeEventListener(Fy,d)),[d]),b.useEffect(()=>{if(c.trigger){const p=h=>{const f=h.target;f!=null&&f.contains(c.trigger)&&d()};return window.addEventListener("scroll",p,{capture:!0}),()=>window.removeEventListener("scroll",p,{capture:!0})}},[c.trigger,d]),a.jsx(Sh,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:s,onPointerDownOutside:o,onFocusOutside:p=>p.preventDefault(),onDismiss:d,children:a.jsxs(uM,{"data-state":c.stateAttribute,...u,...l,ref:t,style:{...l.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[a.jsx(wM,{children:r}),a.jsx(vM,{scope:n,isInside:!0,children:a.jsx(WA,{id:c.contentId,role:"tooltip",children:i||r})})]})})});rk.displayName=Vs;var sk="TooltipArrow",bM=b.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,i=Bh(n);return xM(sk,n).isInside?null:a.jsx(dM,{...i,...r,ref:t})});bM.displayName=sk;function kM(e,t){const n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),i=Math.abs(t.right-e.x),s=Math.abs(t.left-e.x);switch(Math.min(n,r,i,s)){case s:return"left";case i:return"right";case n:return"top";case r:return"bottom";default:throw new Error("unreachable")}}function SM(e,t,n=5){const r=[];switch(t){case"top":r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case"bottom":r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case"left":r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case"right":r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return r}function TM(e){const{top:t,right:n,bottom:r,left:i}=e;return[{x:i,y:t},{x:n,y:t},{x:n,y:r},{x:i,y:r}]}function CM(e,t){const{x:n,y:r}=e;let i=!1;for(let s=0,o=t.length-1;s<t.length;o=s++){const l=t[s],c=t[o],u=l.x,d=l.y,p=c.x,h=c.y;d>r!=h>r&&n<(p-u)*(r-d)/(h-d)+u&&(i=!i)}return i}function jM(e){const t=e.slice();return t.sort((n,r)=>n.x<r.x?-1:n.x>r.x?1:n.y<r.y?-1:n.y>r.y?1:0),NM(t)}function NM(e){if(e.length<=1)return e.slice();const t=[];for(let r=0;r<e.length;r++){const i=e[r];for(;t.length>=2;){const s=t[t.length-1],o=t[t.length-2];if((s.x-o.x)*(i.y-o.y)>=(s.y-o.y)*(i.x-o.x))t.pop();else break}t.push(i)}t.pop();const n=[];for(let r=e.length-1;r>=0;r--){const i=e[r];for(;n.length>=2;){const s=n[n.length-1],o=n[n.length-2];if((s.x-o.x)*(i.y-o.y)>=(s.y-o.y)*(i.x-o.x))n.pop();else break}n.push(i)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var AM=tk,ok=rk;const PM=AM,EM=b.forwardRef(({className:e,sideOffset:t=4,...n},r)=>a.jsx(ok,{ref:r,sideOffset:t,className:nn("z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:sli
236de-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...n}));EM.displayName=ok.displayName;var eu=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},tu=typeof window>"u"||"Deno"in globalThis;function fn(){}function MM(e,t){return typeof e=="function"?e(t):e}function IM(e){return typeof e=="number"&&e>=0&&e!==1/0}function RM(e,t){return Math.max(e+(t||0)-Date.now(),0)}function _p(e,t){return typeof e=="function"?e(t):e}function DM(e,t){return typeof e=="function"?e(t):e}function Oy(e,t){const{type:n="all",exact:r,fetchStatus:i,predicate:s,queryKey:o,stale:l}=e;if(o){if(r){if(t.queryHash!==Gh(o,t.options))return!1}else if(!da(t.queryKey,o))return!1}if(n!=="all"){const c=t.isActive();if(n==="active"&&!c||n==="inactive"&&c)return!1}return!(typeof l=="boolean"&&t.isStale()!==l||i&&i!==t.state.fetchStatus||s&&!s(t))}function Ly(e,t){const{exact:n,status:r,predicate:i,mutationKey:s}=e;if(s){if(!t.options.mutationKey)return!1;if(n){if(ua(t.options.mutationKey)!==ua(s))return!1}else if(!da(t.options.mutationKey,s))return!1}return!(r&&t.state.status!==r||i&&!i(t))}function Gh(e,t){return((t==null?void 0:t.queryKeyHashFn)||ua)(e)}function ua(e){return JSON.stringify(e,(t,n)=>Bp(n)?Object.keys(n).sort().reduce((r,i)=>(r[i]=n[i],r),{}):n)}function da(e,t){return e===t?!0:typeof e!=typeof t?!1:e&&t&&typeof e=="object"&&typeof t=="object"?Object.keys(t).every(n=>da(e[n],t[n])):!1}function ak(e,t){if(e===t)return e;const n=_y(e)&&_y(t);if(n||Bp(e)&&Bp(t)){const r=n?e:Object.keys(e),i=r.length,s=n?t:Object.keys(t),o=s.length,l=n?[]:{},c=new Set(r);let u=0;for(let d=0;d<o;d++){const p=n?d:s[d];(!n&&c.has(p)||n)&&e[p]===void 0&&t[p]===void 0?(l[p]=void 0,u++):(l[p]=ak(e[p],t[p]),l[p]===e[p]&&e[p]!==void 0&&u++)}return i===o&&u===i?e:l}return t}function _y(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function Bp(e){if(!By(e))return!1;const t=e.constructor;if(t===void 0)return!0;const n=t.prototype;return!(!By(n)||!n.hasOwnProperty("isPrototypeOf")||Object.getPrototypeOf(e)!==Object.prototype)}function By(e){return Object.prototype.toString.call(e)==="[object Object]"}function FM(e){return new Promise(t=>{setTimeout(t,e)})}function OM(e,t,n){return typeof n.structuralSharing=="function"?n.structuralSharing(e,t):n.structuralSharing!==!1?ak(e,t):t}function LM(e,t,n=0){const r=[...e,t];return n&&r.length>n?r.slice(1):r}function _M(e,t,n=0){const r=[t,...e];return n&&r.length>n?r.slice(0,-1):r}var zh=Symbol();function lk(e,t){return!e.queryFn&&(t!=null&&t.initialPromise)?()=>t.initialPromise:!e.queryFn||e.queryFn===zh?()=>Promise.reject(new Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}var bi,Pr,Ss,aw,BM=(aw=class extends eu{constructor(){super();pe(this,bi);pe(this,Pr);pe(this,Ss);te(this,Ss,t=>{if(!tu&&window.addEventListener){const n=()=>t();return window.addEventListener("visibilitychange",n,!1),()=>{window.removeEventListener("visibilitychange",n)}}})}onSubscribe(){F(this,Pr)||this.setEventListener(F(this,Ss))}onUnsubscribe(){var t;this.hasListeners()||((t=F(this,Pr))==null||t.call(this),te(this,Pr,void 0))}setEventListener(t){var n;
vendor: 5,143 bytes, line 236
236te(this,Ss,t),(n=F(this,Pr))==null||n.call(this),te(this,Pr,t(r=>{typeof r=="boolean"?this.setFocused(r):this.onFocus()}))}setFocused(t){F(this,bi)!==t&&(te(this,bi,t),this.onFocus())}onFocus(){const t=this.isFocused();this.listeners.forEach(n=>{n(t)})}isFocused(){var t;return typeof F(this,bi)=="boolean"?F(this,bi):((t=globalThis.document)==null?void 0:t.visibilityState)!=="hidden"}},bi=new WeakMap,Pr=new WeakMap,Ss=new WeakMap,aw),ck=new BM,Ts,Er,Cs,lw,GM=(lw=class extends eu{constructor(){super();pe(this,Ts,!0);pe(this,Er);pe(this,Cs);te(this,Cs,t=>{if(!tu&&window.addEventListener){const n=()=>t(!0),r=()=>t(!1);return window.addEventListener("online",n,!1),window.addEventListener("offline",r,!1),()=>{window.removeEventListener("online",n),window.removeEventListener("offline",r)}}})}onSubscribe(){F(this,Er)||this.setEventListener(F(this,Cs))}onUnsubscribe(){var t;this.hasListeners()||((t=F(this,Er))==null||t.call(this),te(this,Er,void 0))}setEventListener(t){var n;te(this,Cs,t),(n=F(this,Er))==null||n.call(this),te(this,Er,t(this.setOnline.bind(this)))}setOnline(t){F(this,Ts)!==t&&(te(this,Ts,t),this.listeners.forEach(r=>{r(t)}))}isOnline(){return F(this,Ts)}},Ts=new WeakMap,Er=new WeakMap,Cs=new WeakMap,lw),hc=new GM;function zM(){let e,t;const n=new Promise((i,s)=>{e=i,t=s});n.status="pending",n.catch(()=>{});function r(i){Object.assign(n,i),delete n.resolve,delete n.reject}return n.resolve=i=>{r({status:"fulfilled",value:i}),e(i)},n.reject=i=>{r({status:"rejected",reason:i}),t(i)},n}function VM(e){return Math.min(1e3*2**e,3e4)}function uk(e){return(e??"online")==="online"?hc.isOnline():!0}var dk=class extends Error{constructor(e){super("CancelledError"),this.revert=e==null?void 0:e.revert,this.silent=e==null?void 0:e.silent}};function ed(e){return e instanceof dk}function pk(e){let t=!1,n=0,r=!1,i;const s=zM(),o=g=>{var w;r||(h(new dk(g)),(w=e.abort)==null||w.call(e))},l=()=>{t=!0},c=()=>{t=!1},u=()=>ck.isFocused()&&(e.networkMode==="always"||hc.isOnline())&&e.canRun(),d=()=>uk(e.networkMode)&&e.canRun(),p=g=>{var w;r||(r=!0,(w=e.onSuccess)==null||w.call(e,g),i==null||i(),s.resolve(g))},h=g=>{var w;r||(r=!0,(w=e.onError)==null||w.call(e,g),i==null||i(),s.reject(g))},f=()=>new Promise(g=>{var w;i=m=>{(r||u())&&g(m)},(w=e.onPause)==null||w.call(e)}).then(()=>{var g;i=void 0,r||(g=e.onContinue)==null||g.call(e)}),x=()=>{if(r)return;let g;const w=n===0?e.initialPromise:void 0;try{g=w??e.fn()}catch(m){g=Promise.reject(m)}Promise.resolve(g).then(p).catch(m=>{var T;if(r)return;const y=e.retry??(tu?0:3),v=e.retryDelay??VM,k=typeof v=="function"?v(n,m):v,C=y===!0||typeof y=="number"&&n<y||typeof y=="function"&&y(n,m);if(t||!C){h(m);return}n++,(T=e.onFail)==null||T.call(e,n,m),FM(k).then(()=>u()?void 0:f()).then(()=>{t?h(m):x()})})};return{promise:s,cancel:o,continue:()=>(i==null||i(),s),cancelRetry:l,continueRetry:c,canStart:d,start:()=>(d()?x():f().then(x),s)}}var $M=e=>setTimeout(e,0);function UM(){let e=[],t=0,n=l=>{l()},r=l=>{l()},i=$M;const s=l=>{t?e.push(l):i(()=>{n(l)})},o=()=>{const l=e;e=[],l.length&&i(()=>{r(()=>{l.forEach(c=>{n(c)})})})};return{batch:l=>{let c;t++;try{c=l()}finally{t--,t||o()}return c},batchCalls:l=>(...c)=>{s(()=>{l(...c)})},schedule:s,setNotifyFunction:l=>{n=l},setBatchNotifyFunction:l=>{r=l},setScheduler:l=>{i=l}}}var ct=UM(),ki,cw,fk=(cw=class{constructor(){pe(this,ki)}destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),IM(this.gcTime)&&te(this,ki,setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(tu?1/0:5*60*1e3))}clearGcTimeout(){F(this,ki)&&(clearTimeout(F(this,ki)),te(this,ki,void 0))}},ki=new WeakMap,cw),js,Si,Wt,Ti,et,wa,Ci,hn,Xn,uw,HM=(uw=class extends fk{constructor(t){super();pe(this,hn);pe(this,js);pe(this,Si);pe(this,Wt);pe(this,Ti);pe(this,et);pe(this,wa);pe(this,Ci);te(this,Ci,!1),te(this,wa,t.defaultOptions),this.setOptions(t.options),this.observers=[],te(this,Ti,t.client),te(this,Wt,F(this,Ti).getQueryCache()),this.queryKey=t.queryKey,this.queryHash=t.queryHash,te(this,js,qM(this.options)),this.state=t.state??F(this,js),this.scheduleGc()}get meta(){return this.options.meta}get promise(){var t;return(t=F(this,et))==null?void 0:t.promise}setOptions(t){this.options={...F(this,wa),...t},this.updateGcTime(this.options.gcTime)}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&F(this,Wt).remove(this)}setData(t,n){const r=OM(this.state.data,t,this.options);return Xe(this,hn,Xn).call(this,{data:r,type:"success",dataUpdatedAt:n==null?void 0:n.updatedAt,manual:n==null?void 0:n.manual}),r}setState(t,n){Xe(this,hn,Xn).call(this,{type:"setState",state:t,setStateOptions:n})}cancel(t){var r,i;const n=(r=F(this,et))==null?void 0:r.promise;return(i=F(this,et))==null||i.cancel(t),n?n.then(fn).catch(fn):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}reset(){this.destroy(),this.setState(F(this,js))}isActive(){return this.observers.some(t=>DM(t.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===zh||this.state.dataUpdateCount+this.state.errorUpdate
vendor: 1,274 bytes, line 236
236Count===0}isStatic(){return this.getObserversCount()>0?this.observers.some(t=>_p(t.options.staleTime,this)==="static"):!1}isStale(){return this.getObserversCount()>0?this.observers.some(t=>t.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(t=0){return this.state.data===void 0?!0:t==="static"?!1:this.state.isInvalidated?!0:!RM(this.state.dataUpdatedAt,t)}onFocus(){var n;const t=this.observers.find(r=>r.shouldFetchOnWindowFocus());t==null||t.refetch({cancelRefetch:!1}),(n=F(this,et))==null||n.continue()}onOnline(){var n;const t=this.observers.find(r=>r.shouldFetchOnReconnect());t==null||t.refetch({cancelRefetch:!1}),(n=F(this,et))==null||n.continue()}addObserver(t){this.observers.includes(t)||(this.observers.push(t),this.clearGcTimeout(),F(this,Wt).notify({type:"observerAdded",query:this,observer:t}))}removeObserver(t){this.observers.includes(t)&&(this.observers=this.observers.filter(n=>n!==t),this.observers.length||(F(this,et)&&(F(this,Ci)?F(this,et).cancel({revert:!0}):F(this,et).cancelRetry()),this.scheduleGc()),F(this,Wt).notify({type:"observerRemoved",query:this,observer:t}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||Xe(this,hn,Xn).call(this,{type:"invalidate"})}
vendor: 13,368 bytes, line 236
236fetch(t,n){var u,d,p;if(this.state.fetchStatus!=="idle"){if(this.state.data!==void 0&&(n!=null&&n.cancelRefetch))this.cancel({silent:!0});else if(F(this,et))return F(this,et).continueRetry(),F(this,et).promise}if(t&&this.setOptions(t),!this.options.queryFn){const h=this.observers.find(f=>f.options.queryFn);h&&this.setOptions(h.options)}const r=new AbortController,i=h=>{Object.defineProperty(h,"signal",{enumerable:!0,get:()=>(te(this,Ci,!0),r.signal)})},s=()=>{const h=lk(this.options,n),x=(()=>{const g={client:F(this,Ti),queryKey:this.queryKey,meta:this.meta};return i(g),g})();return te(this,Ci,!1),this.options.persister?this.options.persister(h,x,this):h(x)},l=(()=>{const h={fetchOptions:n,options:this.options,queryKey:this.queryKey,client:F(this,Ti),state:this.state,fetchFn:s};return i(h),h})();(u=this.options.behavior)==null||u.onFetch(l,this),te(this,Si,this.state),(this.state.fetchStatus==="idle"||this.state.fetchMeta!==((d=l.fetchOptions)==null?void 0:d.meta))&&Xe(this,hn,Xn).call(this,{type:"fetch",meta:(p=l.fetchOptions)==null?void 0:p.meta});const c=h=>{var f,x,g,w;ed(h)&&h.silent||Xe(this,hn,Xn).call(this,{type:"error",error:h}),ed(h)||((x=(f=F(this,Wt).config).onError)==null||x.call(f,h,this),(w=(g=F(this,Wt).config).onSettled)==null||w.call(g,this.state.data,h,this)),this.scheduleGc()};return te(this,et,pk({initialPromise:n==null?void 0:n.initialPromise,fn:l.fetchFn,abort:r.abort.bind(r),onSuccess:h=>{var f,x,g,w;if(h===void 0){c(new Error(`${this.queryHash} data is undefined`));return}try{this.setData(h)}catch(m){c(m);return}(x=(f=F(this,Wt).config).onSuccess)==null||x.call(f,h,this),(w=(g=F(this,Wt).config).onSettled)==null||w.call(g,h,this.state.error,this),this.scheduleGc()},onError:c,onFail:(h,f)=>{Xe(this,hn,Xn).call(this,{type:"failed",failureCount:h,error:f})},onPause:()=>{Xe(this,hn,Xn).call(this,{type:"pause"})},onContinue:()=>{Xe(this,hn,Xn).call(this,{type:"continue"})},retry:l.options.retry,retryDelay:l.options.retryDelay,networkMode:l.options.networkMode,canRun:()=>!0})),F(this,et).start()}},js=new WeakMap,Si=new WeakMap,Wt=new WeakMap,Ti=new WeakMap,et=new WeakMap,wa=new WeakMap,Ci=new WeakMap,hn=new WeakSet,Xn=function(t){const n=r=>{switch(t.type){case"failed":return{...r,fetchFailureCount:t.failureCount,fetchFailureReason:t.error};case"pause":return{...r,fetchStatus:"paused"};case"continue":return{...r,fetchStatus:"fetching"};case"fetch":return{...r,...WM(r.data,this.options),fetchMeta:t.meta??null};case"success":return te(this,Si,void 0),{...r,data:t.data,dataUpdateCount:r.dataUpdateCount+1,dataUpdatedAt:t.dataUpdatedAt??Date.now(),error:null,isInvalidated:!1,status:"success",...!t.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};case"error":const i=t.error;return ed(i)&&i.revert&&F(this,Si)?{...F(this,Si),fetchStatus:"idle"}:{...r,error:i,errorUpdateCount:r.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:r.fetchFailureCount+1,fetchFailureReason:i,fetchStatus:"idle",status:"error"};case"invalidate":return{...r,isInvalidated:!0};case"setState":return{...r,...t.state}}};this.state=n(this.state),ct.batch(()=>{this.observers.forEach(r=>{r.onQueryUpdate()}),F(this,Wt).notify({query:this,type:"updated",action:t})})},uw);function WM(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:uk(t.networkMode)?"fetching":"paused",...e===void 0&&{error:null,status:"pending"}}}function qM(e){const t=typeof e.initialData=="function"?e.initialData():e.initialData,n=t!==void 0,r=n?typeof e.initialDataUpdatedAt=="function"?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:n?r??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:n?"success":"pending",fetchStatus:"idle"}}var En,dw,KM=(dw=class extends eu{constructor(t={}){super();pe(this,En);this.config=t,te(this,En,new Map)}build(t,n,r){const i=n.queryKey,s=n.queryHash??Gh(i,n);let o=this.get(s);return o||(o=new HM({client:t,queryKey:i,queryHash:s,options:t.defaultQueryOptions(n),state:r,defaultOptions:t.getQueryDefaults(i)}),this.add(o)),o}add(t){F(this,En).has(t.queryHash)||(F(this,En).set(t.queryHash,t),this.notify({type:"added",query:t}))}remove(t){const n=F(this,En).get(t.queryHash);n&&(t.destroy(),n===t&&F(this,En).delete(t.queryHash),this.notify({type:"removed",query:t}))}clear(){ct.batch(()=>{this.getAll().forEach(t=>{this.remove(t)})})}get(t){return F(this,En).get(t)}getAll(){return[...F(this,En).values()]}find(t){const n={exact:!0,...t};return this.getAll().find(r=>Oy(n,r))}findAll(t={}){const n=this.getAll();return Object.keys(t).length>0?n.filter(r=>Oy(t,r)):n}notify(t){ct.batch(()=>{this.listeners.forEach(n=>{n(t)})})}onFocus(){ct.batch(()=>{this.getAll().forEach(t=>{t.onFocus()})})}onOnline(){ct.batch(()=>{this.getAll().forEach(t=>{t.onOnline()})})}},En=new WeakMap,dw),Mn,at,ji,In,Sr,pw,YM=(pw=class extends fk{constructor(t){super();pe(this,In);pe(this,Mn);pe(this,at);pe(this,ji);this.mutationId=t.mutationId,te(this,at,t.mutationCache),te(this,Mn,[]),this.state=t.state||QM(),this.setOptions(t.options),this.scheduleGc()}setOptions(t){this.options=t,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(t){F(this,Mn).includes(t)||(F(this,Mn).push(t),this.clearGcTimeout(),F(this,at).notify({type:"observerAdded",mutation:this,observer:t}))}removeObserver(t){te(this,Mn,F(this,Mn).filter(n=>n!==t)),this.scheduleGc(),F(this,at).notify({type:"observerRemoved",mutation:this,observer:t})}optionalRemove(){F(this,Mn).length||(this.state.status==="pending"?this.scheduleGc():F(this,at).remove(this))}continue(){var t;return((t=F(this,ji))==null?void 0:t.continue())??this.execute(this.state.variables)}async execute(t){var s,o,l,c,u,d,p,h,f,x,g,w,m,y,v,k,C,T,N,A;const n=()=>{Xe(this,In,Sr).call(this,{type:"continue"})};te(this,ji,pk({fn:()=>this.options.mutationFn?this.options.mutationFn(t):Promise.reject(new Error("No mutationFn found")),onFail:(P,M)=>{Xe(this,In,Sr).call(this,{type:"failed",failureCount:P,error:M})},onPause:()=>{Xe(this,In,Sr).call(this,{type:"pause"})},onContinue:n,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>F(this,at).canRun(this)}));const r=this.state.status==="pending",i=!F(this,ji).canStart();try{if(r)n();else{Xe(this,In,Sr).call(this,{type:"pending",variables:t,isPaused:i}),await((o=(s=F(this,at).config).onMutate)==null?void 0:o.call(s,t,this));const M=await((c=(l=this.options).onMutate)==null?void 0:c.call(l,t));M!==this.state.context&&Xe(this,In,Sr).call(this,{type:"pending",context:M,variables:t,isPaused:i})}const P=await F(this,ji).start();return await((d=(u=F(this,at).config).onSuccess)==null?void 0:d.call(u,P,t,this.state.context,this)),await((h=(p=this.options).onSuccess)==null?void 0:h.call(p,P,t,this.state.context)),await((x=(f=F(this,at).config).onSettled)==null?void 0:x.call(f,P,null,this.state.variables,this.state.context,this)),await((w=(g=this.options).onSettled)==null?void 0:w.call(g,P,null,t,this.state.context)),Xe(this,In,Sr).call(this,{type:"success",data:P}),P}catch(P){try{throw await((y=(m=F(this,at).config).onError)==null?void 0:y.call(m,P,t,this.state.context,this)),await((k=(v=this.options).onError)==null?void 0:k.call(v,P,t,this.state.context)),await((T=(C=F(this,at).config).onSettled)==null?void 0:T.call(C,void 0,P,this.state.variables,this.state.context,this)),await((A=(N=this.options).onSettled)==null?void 0:A.call(N,void 0,P,t,this.state.context)),P}finally{Xe(this,In,Sr).call(this,{type:"error",error:P})}}finally{F(this,at).runNext(this)}}},Mn=new WeakMap,at=new WeakMap,ji=new WeakMap,In=new WeakSet,Sr=function(t){const n=r=>{switch(t.type){case"failed":return{...r,failureCount:t.failureCount,failureReason:t.error};case"pause":return{...r,isPaused:!0};case"continue":return{...r,isPaused:!1};case"pending":return{...r,context:t.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:t.isPaused,status:"pending",variables:t.variables,submittedAt:Date.now()};case"success":return{...r,data:t.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...r,data:void 0,error:t.error,failureCount:r.failureCount+1,failureReason:t.error,isPaused:!1,status:"error"}}};this.state=n(this.state),ct.batch(()=>{F(this,Mn).forEach(r=>{r.onMutationUpdate(t)}),F(this,at).notify({mutation:this,type:"updated",action:t})})},pw);function QM(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var er,mn,ba,fw,XM=(fw=class extends eu{constructor(t={}){super();pe(this,er);pe(this,mn);pe(this,ba);this.config=t,te(this,er,new Set),te(this,mn,new Map),te(this,ba,0)}build(t,n,r){const i=new YM({mutationCache:this,mutationId:++La(this,ba)._,options:t.defaultMutationOptions(n),state:r});return this.add(i),i}add(t){F(this,er).add(t);const n=ol(t);if(typeof n=="string"){const r=F(this,mn).get(n);r?r.push(t):F(this,mn).set(n,[t])}this.notify({type:"added",mutation:t})}remove(t){if(F(this,er).delete(t)){const n=ol(t);if(typeof n=="string"){const r=F(this,mn).get(n);if(r)if(r.length>1){const i=r.indexOf(t);i!==-1&&r.splice(i,1)}else r[0]===t&&F(this,mn).delete(n)}}this.notify({type:"removed",mutation:t})}canRun(t){const n=ol(t);if(typeof n=="string"){const r=F(this,mn).get(n),i=r==null?void 0:r.find(s=>s.state.status==="pending");return!i||i===t}else return!0}runNext(t){var r;const n=ol(t);if(typeof n=="string"){const i=(r=F(this,mn).get(n))==null?void 0:r.find(s=>s!==t&&s.state.isPaused);return(i==null?void 0:i.continue())??Promise.resolve()}else return Promise.resolve()}clear(){ct.batch(()=>{F(this,er).forEach(t=>{this.notify({type:"removed",mutation:t})}),F(this,er).clear(),F(this,mn).clear()})}getAll(){return Array.from(F(this,er))}find(t){const n={exact:!0,...t};return this.getAll().find(r=>Ly(n,r))}findAll(t={}){return this.getAll().filter(n=>Ly(t,n))}notify(t){ct.batch(()=>{this.listeners.forEach(n=>{n(t)})})}resumePausedMutations(){const t=this.getAll().filter(n=>n.state.isPaused);return ct.batch(()=>Promise.all(t.map(n=>n.continue().catch(fn))))}},er=new WeakMap,mn=new WeakMap,ba=new WeakMap,fw);function ol(e){var t;return(t=e.options.scope)==null?void 0:t.id}function Gy(e){return{onFetch:(t,n)=>{var d,p,h,f,x;const r=t.options,i=(h=(p=(d=t.fetchOptions)==null?void 0:d.meta)==null?void 0:p.fetchMore)==null?void 0:h.direction,s=((f=t.state.data)==null?void 0:f.pages)||[],o=((x=t.state.data)==null?void 0:x.pageParams)||[];let l={pages:[],pageParams:[]},c=0;const u=async()=>{let g=!1;const w=v=>{Object.defineProperty(v,"signal",{enumerable:!0,get:()=>(t.signal.aborted?g=!0:t.signal.addEventListener("abort",()=>{g=!0}),t.signal)})},m=lk(t.options,t.fetchOptions),y=async(v,k,C)=>{if(g)return Promise.reject();if(k==null&&v.pages.length)return Promise.resolve(v);const N=(()=>{const O={client:t.client,queryKey:t.queryKey,pageParam:k,direction:C?"backward":"forward",meta:t.options.meta};return w(O),O})(),A=await m(N),{maxPages:P}=t.options,M=C?_M:LM;return{pages:M(v.pages,A,P),pageParams:M(v.pageParams,k,P)}};if(i&&s.length){const v=i==="backward",k=v?JM:zy,C={pages:s,pageParams:o},T=k(r,C);l=await y(C,T,v)}else{const v=e??s.length;do{const k=c===0?o[0]??r.initialPageParam:zy(r,l);if(c>0&&k==null)break;l=await y(l,k),c++}while(c<v)}return l};t.options.persister?t.fetchFn=()=>{var g,w;return(w=(g=t.options).persister)==null?void 0:w.call(g,u,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},n)}:t.fetchFn=u}}}function zy(e,{pages:t,pageParams:n}){const r=t.length-1;return t.length>0?e.getNextPageParam(t[r],t,n[r],n):void 0}function JM(e,{pages:t,pageParams:n}){var r;return t.length>0?(r=e.getPreviousPageParam)==null?void 0:r.call(e,t[0],t,n[0],n):void 0}var Me,Mr,Ir,Ns,As,Rr,Ps,Es,hw,ZM=(hw=class{constructor(e={}){pe(this,Me);pe(this,Mr);pe(this,Ir);pe(this,Ns);pe(this,As);pe(this,Rr);pe(this,Ps);pe(this,Es);te(this,Me,e.queryCache||new KM),te(this,Mr,e.mutationCache||new XM),te(this,Ir,e.defaultOptions||{}),te(this,Ns,new Map),te(this,As,new Map),te(this,Rr,0)}mount(){La(this,Rr)._++,F(this,Rr)===1&&(te(this,Ps,ck.subscribe(async e=>{e&&(await this.resumePausedMutations(),F(this,Me).onFocus())})),te(this,Es,hc.subscribe(async e=>{e&&(await this.resumePausedMutations(),F(this,Me).onOnline())})))}unmount(){var e,t;La(this,Rr)._--,F(this,Rr)===0&&((e=F(this,Ps))==null||e.call(this),te(this,Ps,void 0),(t=F(this,Es))==null||t.call(this),te(this,Es,void 0))}isFetching(e){return F(this,Me).findAll({...e,fetchStatus:"fetching"}).length}isMutating(e){return F(this,Mr).findAll({...e,status:"pending"}).length}getQueryData(e){var n;const t=this.defaultQueryOptions({queryKey:e});return(n=F(this,Me).get(t.queryHash))==null?void 0:n.state.data}ensureQueryData(e){const t=this.defaultQueryOptions(e),n=F(this,Me).build(this,t),r=n.state.data;return r===void 0?this.fetchQuery(e):(e.revalidateIfStale&&n.isStaleByTime(_p(t.staleTime,n))&&this.prefetchQuery(t),Promise.resolve(r))}getQueriesData(e){return F(this,Me).findAll(e).map(({queryKey:t,state:n})=>{const r=n.data;return[t,r]})}setQueryData(e,t,n){const r=this.defaultQueryOptions({queryKey:e}),i=F(this,Me).get(r.queryHash),s=i==null?void 0:i.state.data,o=MM(t,
236s);if(o!==void 0)return F(this,Me).build(this,r).setData(o,{...n,manual:!0})}setQueriesData(e,t,n){return ct.batch(()=>F(this,Me).findAll(e).map(({queryKey:r})=>[r,this.setQueryData(r,t,n)]))}getQueryState(e){var n;const t=this.defaultQueryOptions({queryKey:e});return(n=F(this,Me).get(t.queryHash))==null?void 0:n.state}removeQueries(e){const t=F(this,Me);ct.batch(()=>{t.findAll(e).forEach(n=>{t.remove(n)})})}resetQueries(e,t){const n=F(this,Me);return ct.batch(()=>(n.findAll(e).forEach(r=>{r.reset()}),this.refetchQueries({type:"active",...e},t)))}cancelQueries(e,t={}){const n={revert:!0,...t},r=ct.batch(()=>F(this,Me).findAll(e).map(i=>i.cancel(n)));return Promise.all(r).then(fn).catch(fn)}invalidateQueries(e,t={}){return ct.batch(()=>(F(this,Me).findAll(e).forEach(n=>{n.invalidate()}),(e==null?void 0:e.refetchType)==="none"?Promise.resolve():this.refetchQueries({...e,type:(e==null?void 0:e.refetchType)??(e==null?void 0:e.type)??"active"},t)))}refetchQueries(e,t={}){const n={...t,cancelRefetch:t.cancelRefetch??!0},r=ct.batch(()=>F(this,Me).findAll(e).filter(i=>!i.isDisabled()&&!i.isStatic()).map(i=>{let s=i.fetch(void 0,n);return n.throwOnError||(s=s.catch(fn)),i.state.fetchStatus==="paused"?Promise.resolve():s}));return Promise.all(r).then(fn)}fetchQuery(e){const t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);const n=F(this,Me).build(this,t);return n.isStaleByTime(_p(t.staleTime,n))?n.fetch(t):Promise.resolve(n.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(fn).catch(fn)}fetchInfiniteQuery(e){return e.behavior=Gy(e.pages),this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(fn).catch(fn)}ensureInfiniteQueryData(e){return e.behavior=Gy(e.pages),this.ensureQueryData(e)}resumePausedMutations(){return hc.isOnline()?F(this,Mr).resumePausedMutations():Promise.resolve()}getQueryCache(){return F(this,Me)}getMutationCache(){return F(this,Mr)}getDefaultOptions(){return F(this,Ir)}setDefaultOptions(e){te(this,Ir,e)}setQueryDefaults(e,t){F(this,Ns).set(ua(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){const t=[...F(this,Ns).values()],n={};return t.forEach(r=>{da(e,r.queryKey)&&Object.assign(n,r.defaultOptions)}),n}setMutationDefaults(e,t){F(this,As).set(ua(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){const t=[...F(this,As).values()],n={};return t.forEach(r=>{da(e,r.mutationKey)&&Object.assign(n,r.defaultOptions)}),n}defaultQueryOptions(e){if(e._defaulted)return e;const t={...F(this,Ir).queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||(t.queryHash=Gh(t.queryKey,t)),t.refetchOnReconnect===void 0&&(t.refetchOnReconnect=t.networkMode!=="always"),t.throwOnError===void 0&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode="offlineFirst"),t.queryFn===zh&&(t.enabled=!1),t}defaultMutationOptions(e){return e!=null&&e._defaulted?e:{...F(this,Ir).mutations,...(e==null?void 0:e.mutationKey)&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){F(this,Me).clear(),F(this,Mr).clear()}},Me=new WeakMap,Mr=new WeakMap,Ir=new WeakMap,Ns=new WeakMap,As=new WeakMap,Rr=new WeakMap,Ps=new WeakMap,Es=new WeakMap,hw),eI=b.createContext(void 0),tI=({client:e,children:t})=>(b.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),a.jsx(eI.Provider,{value:e,children:t}));/**
237 * @remix-run/router v1.23.0
238 *
239 * Copyright (c) Remix Software Inc.
240 *
241 * This source code is licensed under the MIT license found in the
242 * LICENSE.md file in the root directory of this source tree.
243 *
244 * @license MIT
245 */function pa(){return pa=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},pa.apply(this,arguments)}var Or;(function(e){e.Pop="POP",e.Push="PUSH",e.Replace="REPLACE"})(Or||(Or={}));const Vy="popstate";function nI(e){e===void 0&&(e={});function t(r,i){let{pathname:s,search:o,hash:l}=r.location;return Gp("",{pathname:s,search:o,hash:l},i.state&&i.state.usr||null,i.state&&i.state.key||"default")}function n(r,i){return typeof i=="string"?i:mc(i)}return iI(t,n,null,e)}function Fe(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function hk(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function rI(){return Math.random().toString(36).substr(2,8)}function $y(e,t){return{usr:e.state,key:e.key,idx:t}}function Gp(e,t,n,r){return n===void 0&&(n=null),pa({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?Js(t):t,{state:n,key:t&&t.key||r||rI()})}function mc(e){let{pathname:t="/",search:n="",hash:r=""}=e;return n&&n!=="?"&&(t+=n.charAt(0)==="?"?n:"?"+n),r&&r!=="#"&&(t+=r.charAt(0)==="#"?r:"#"+r),t}function Js(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substr(n),e=e.substr(0,n));let r=e.indexOf("?");r>=0&&(t.search=e.substr(r),e=e.substr(0,r)),e&&(t.pathname=e)}return t}function iI(e,t,n,r){r===void 0&&(r={});let{window:i=document.defaultView,v5Compat:s=!1}=r,o=i.history,l=Or.Pop,c=null,u=d();u==null&&(u=0,o.replaceState(pa({},o.state,{idx:u}),""));function d(){return(o.state||{idx:null}).idx}function p(){l=Or.Pop;let w=d(),m=w==null?null:w-u;u=w,c&&c({action:l,location:g.location,delta:m})}function h(w,m){l=Or.Push;let y=Gp(g.location,w,m);u=d()+1;let v=$y(y,u),k=g.createHref(y);try{o.pushState(v,"",k)}catch(C){if(C instanceof DOMException&&C.name==="DataCloneError")throw C;i.location.assign(k)}s&&c&&c({action:l,location:g.location,delta:1})}function f(w,m){l=Or.Replace;let y=Gp(g.location,w,m);u=d();let v=$y(y,u),k=g.createHref(y);o.replaceState(v,"",k),s&&c&&c({action:l,location:g.location,delta:0})}function x(w){let m=i.location.origin!=="null"?i.location.origin:i.location.href,y=typeof w=="string"?w:mc(w);return y=y.replace(/ $/,"%20"),Fe(m,"No window.location.(origin|href) available to create URL for href: "+y),new URL(y,m)}let g={get action(){return l},get location(){return e(i,o)},listen(w){if(c)throw new Error("A history only accepts one active listener");return i.addEventListener(Vy,p),c=w,()=>{i.removeEventListener(Vy,p),c=null}},createHref(w){return t(i,w)},createURL:x,encodeLocation(w){let m=x(w);return{pathname:m.pathname,search:m.search,hash:m.hash}},push:h,replace:f,go(w){return o.go(w)}};return g}var Uy;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(Uy||(Uy={}));function sI(e,t,n){return n===void 0&&(n="/"),oI(e,t,n,!1)}function oI(e,t,n,r){let i=typeof t=="string"?Js(t):t,s=Vh(i.pathname||"/",n);if(s==null)return null;let o=mk(e);aI(o);let l=null;for(let c=0;l==null&&c<o.length;++c){let u=vI(s);l=gI(o[c],u,r)}return l}function mk(e,t,n,r){t===void 0&&(t=[]),n===void 0&&(n=[]),r===void 0&&(r="");let i=(s,o,l)=>{let c={relativePath:l===void 0?s.path||"":l,caseSensitive:s.caseSensitive===!0,childrenIndex:o,route:s};c.relativePath.startsWith("/")&&(Fe(c.relativePath.startsWith(r),'Absolute route path "'+c.relativePath+'" nested under path '+('"'+r+'" is not val
245id. An absolute child route path ')+"must start with the combined path of all its parent routes."),c.relativePath=c.relativePath.slice(r.length));let u=Wr([r,c.relativePath]),d=n.concat(c);s.children&&s.children.length>0&&(Fe(s.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+u+'".')),mk(s.children,t,d,u)),!(s.path==null&&!s.index)&&t.push({path:u,score:hI(u,s.index),routesMeta:d})};return e.forEach((s,o)=>{var l;if(s.path===""||!((l=s.path)!=null&&l.includes("?")))i(s,o);else for(let c of gk(s.path))i(s,o,c)}),t}function gk(e){let t=e.split("/");if(t.length===0)return[];let[n,...r]=t,i=n.endsWith("?"),s=n.replace(/\?$/,"");if(r.length===0)return i?[s,""]:[s];let o=gk(r.join("/")),l=[];return l.push(...o.map(c=>c===""?s:[s,c].join("/"))),i&&l.push(...o),l.map(c=>e.startsWith("/")&&c===""?"/":c)}function aI(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:mI(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}const lI=/^:[\w-]+$/,cI=3,uI=2,dI=1,pI=10,fI=-2,Hy=e=>e==="*";function hI(e,t){let n=e.split("/"),r=n.length;return n.some(Hy)&&(r+=fI),t&&(r+=uI),n.filter(i=>!Hy(i)).reduce((i,s)=>i+(lI.test(s)?cI:s===""?dI:pI),r)}function mI(e,t){return e.length===t.length&&e.slice(0,-1).every((r,i)=>r===t[i])?e[e.length-1]-t[t.length-1]:0}function gI(e,t,n){let{routesMeta:r}=e,i={},s="/",o=[];for(let l=0;l<r.length;++l){let c=r[l],u=l===r.length-1,d=s==="/"?t:t.slice(s.length)||"/",p=Wy({path:c.relativePath,caseSensitive:c.caseSensitive,end:u},d),h=c.route;if(!p&&u&&n&&!r[r.length-1].route.index&&(p=Wy({path:c.relativePath,caseSensitive:c.caseSensitive,end:!1},d)),!p)return null;
vendor: 13,861 bytes, lines 245-263
245Object.assign(i,p.params),o.push({params:i,pathname:Wr([s,p.pathname]),pathnameBase:kI(Wr([s,p.pathnameBase])),route:h}),p.pathnameBase!=="/"&&(s=Wr([s,p.pathnameBase]))}return o}function Wy(e,t){typeof e=="string"&&(e={path:e,caseSensitive:!1,end:!0});let[n,r]=yI(e.path,e.caseSensitive,e.end),i=t.match(n);if(!i)return null;let s=i[0],o=s.replace(/(.)\/+$/,"$1"),l=i.slice(1);return{params:r.reduce((u,d,p)=>{let{paramName:h,isOptional:f}=d;if(h==="*"){let g=l[p]||"";o=s.slice(0,s.length-g.length).replace(/(.)\/+$/,"$1")}const x=l[p];return f&&!x?u[h]=void 0:u[h]=(x||"").replace(/%2F/g,"/"),u},{}),pathname:s,pathnameBase:o,pattern:e}}function yI(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!0),hk(e==="*"||!e.endsWith("*")||e.endsWith("/*"),'Route path "'+e+'" will be treated as if it were '+('"'+e.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+e.replace(/\*$/,"/*")+'".'));let r=[],i="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(o,l,c)=>(r.push({paramName:l,isOptional:c!=null}),c?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(r.push({paramName:"*"}),i+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?i+="\\/*$":e!==""&&e!=="/"&&(i+="(?:(?=\\/|$))"),[new RegExp(i,t?void 0:"i"),r]}function vI(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return hk(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+t+").")),e}}function Vh(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,r=e.charAt(n);return r&&r!=="/"?null:e.slice(n)||"/"}function xI(e,t){t===void 0&&(t="/");let{pathname:n,search:r="",hash:i=""}=typeof e=="string"?Js(e):e;return{pathname:n?n.startsWith("/")?n:wI(n,t):t,search:SI(r),hash:TI(i)}}function wI(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(i=>{i===".."?n.length>1&&n.pop():i!=="."&&n.push(i)}),n.length>1?n.join("/"):"/"}function td(e,t,n,r){return"Cannot include a '"+e+"' character in a manually specified "+("`to."+t+"` field ["+JSON.stringify(r)+"].  Please separate it out to the ")+("`to."+n+"` field. Alternatively you may provide the full path as ")+'a string in <Link to="..."> and the router will parse it for you.'}function bI(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function $h(e,t){let n=bI(e);return t?n.map((r,i)=>i===n.length-1?r.pathname:r.pathnameBase):n.map(r=>r.pathnameBase)}function Uh(e,t,n,r){r===void 0&&(r=!1);let i;typeof e=="string"?i=Js(e):(i=pa({},e),Fe(!i.pathname||!i.pathname.includes("?"),td("?","pathname","search",i)),Fe(!i.pathname||!i.pathname.includes("#"),td("#","pathname","hash",i)),Fe(!i.search||!i.search.includes("#"),td("#","search","hash",i)));let s=e===""||i.pathname==="",o=s?"/":i.pathname,l;if(o==null)l=n;else{let p=t.length-1;if(!r&&o.startsWith("..")){let h=o.split("/");for(;h[0]==="..";)h.shift(),p-=1;i.pathname=h.join("/")}l=p>=0?t[p]:"/"}let c=xI(i,l),u=o&&o!=="/"&&o.endsWith("/"),d=(s||o===".")&&n.endsWith("/");return!c.pathname.endsWith("/")&&(u||d)&&(c.pathname+="/"),c}const Wr=e=>e.join("/").replace(/\/\/+/g,"/"),kI=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),SI=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,TI=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function CI(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const yk=["post","put","patch","delete"];new Set(yk);const jI=["get",...yk];new Set(jI);/**
246 * React Router v6.30.1
247 *
248 * Copyright (c) Remix Software Inc.
249 *
250 * This source code is licensed under the MIT license found in the
251 * LICENSE.md file in the root directory of this source tree.
252 *
253 * @license MIT
254 */function fa(){return fa=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},fa.apply(this,arguments)}const Hh=b.createContext(null),NI=b.createContext(null),ri=b.createContext(null),nu=b.createContext(null),pr=b.createContext({outlet:null,matches:[],isDataRoute:!1}),vk=b.createContext(null);function AI(e,t){let{relative:n}=t===void 0?{}:t;Zs()||Fe(!1);let{basename:r,navigator:i}=b.useContext(ri),{hash:s,pathname:o,search:l}=bk(e,{relative:n}),c=o;return r!=="/"&&(c=o==="/"?r:Wr([r,o])),i.createHref({pathname:c,search:l,hash:s})}function Zs(){return b.useContext(nu)!=null}function Bi(){return Zs()||Fe(!1),b.useContext(nu).location}function xk(e){b.useContext(ri).static||b.useLayoutEffect(e)}function wk(){let{isDataRoute:e}=b.useContext(pr);return e?zI():PI()}function PI(){Zs()||Fe(!1);let e=b.useContext(Hh),{basename:t,future:n,navigator:r}=b.useContext(ri),{matches:i}=b.useContext(pr),{pathname:s}=Bi(),o=JSON.stringify($h(i,n.v7_relativeSplatPath)),l=b.useRef(!1);return xk(()=>{l.current=!0}),b.useCallback(function(u,d){if(d===void 0&&(d={}),!l.current)return;if(typeof u=="number"){r.go(u);return}let p=Uh(u,JSON.parse(o),s,d.relative==="path");e==null&&t!=="/"&&(p.pathname=p.pathname==="/"?t:Wr([t,p.pathname])),(d.replace?r.replace:r.push)(p,d.state,d)},[t,r,o,s,e])}function Wh(){let{matches:e}=b.useContext(pr),t=e[e.length-1];return t?t.params:{}}function bk(e,t){let{relative:n}=t===void 0?{}:t,{future:r}=b.useContext(ri),{matches:i}=b.useContext(pr),{pathname:s}=Bi(),o=JSON.stringify($h(i,r.v7_relativeSplatPath));return b.useMemo(()=>Uh(e,JSON.parse(o),s,n==="path"),[e,o,s,n])}function EI(e,t){return MI(e,t)}function MI(e,t,n,r){Zs()||Fe(!1);let{navigator:i}=b.useContext(ri),{matches:s}=b.useContext(pr),o=s[s.length-1],l=o?o.params:{};o&&o.pathname;let c=o?o.pathnameBase:"/";o&&o.route;let u=Bi(),d;if(t){var p;let w=typeof t=="string"?Js(t):t;c==="/"||(p=w.pathname)!=null&&p.startsWith(c)||Fe(!1),d=w}else d=u;let h=d.pathname||"/",f=h;if(c!=="/"){let w=c.replace(/^\//,"").split("/");f="/"+h.replace(/^\//,"").split("/").slice(w.length).join("/")}let x=sI(e,{pathname:f}),g=OI(x&&x.map(w=>Object.assign({},w,{params:Object.assign({},l,w.params),pathname:Wr([c,i.encodeLocation?i.encodeLocation(w.pathname).pathname:w.pathname]),pathnameBase:w.pathnameBase==="/"?c:Wr([c,i.encodeLocation?i.encodeLocation(w.pathnameBase).pathname:w.pathnameBase])})),s,n,r);return t&&g?b.createElement(nu.Provider,{value:{location:fa({pathname:"/",search:"",hash:"",state:null,key:"default"},d),navigationType:Or.Pop}},g):g}function II(){let e=GI(),t=CI(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,i={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return b.createElement(b.Fragment,null,b.createElement("h2",null,"Unexpected Application Error!"),b.createElement("h3",{style:{fontStyle:"italic"}},t),n?b.createElement("pre",{style:i},n):null,null)}const RI=b.createElement(II,null);class DI extends b.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,n){return n.location!==t.location||n.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:n.error,location:n.location,revalidation:t.revalidation||n.revalidation}}componentDidCatch(t,n){console.error("React Router caught the following error during render",t,n)}render(){return this.state.error!==void 0?b.createElement(pr.Provider,{value:this.props.routeContext},b.createElement(vk.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function FI(e){let{routeContext:t,match:n,children:r}=e,i=b.useContext(Hh);return i&&i.static&&i.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(i.staticContext._deepestRenderedBoundaryId=n.route.id),b.createElement(pr.Provider,{value:t},r)}function OI(e,t,n,r){var i;if(t===void 0&&(t=[]),n===void 0&&(n=null),r===void 0&&(r=null),e==null){var s;if(!n)return null;if(n.errors)e=n.matches;else if((s=r)!=null&&s.v7_partialHydration&&t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let o=e,l=(i=n)==null?void 0:i.errors;if(l!=null){let d=o.findIndex(p=>p.route.id&&(l==null?void 0:l[p.route.id])!==void 0);d>=0||Fe(!1),o=o.slice(0,Math.min(o.length,d+1))}let c=!1,u=-1;if(n&&r&&r.v7_partialHydration)for(let d=0;d<o.length;d++){let p=o[d];if((p.route.HydrateFallback||p.route.hydrateFallbackElement)&&(u=d),p.route.id){let{loaderData:h,errors:f}=n,x=p.route.loader&&h[p.route.id]===void 0&&(!f||f[p.route.id]===void 0);if(p.route.lazy||x){c=!0,u>=0?o=o.slice(0,u+1):o=[o[0]];break}}}return o.reduceRight((d,p,h)=>{let f,x=!1,g=null,w=null;n&&(f=l&&p.route.id?l[p.route.id]:void 0,g=p.route.errorElement||RI,c&&(u<0&&h===0?(x=!0,w=null):u===h&&(x=!0,w=p.route.hydrateFallbackElement||null)));let m=t.concat(o.slice(0,h+1)),y=()=>{let v;return f?v=g:x?v=w:p.route.Component?v=b.createElement(p.route.Component,null):p.route.element?v=p.route.element:v=d,b.createElement(FI,{match:p,routeContext:{outlet:d,matches:m,isDataRoute:n!=null},children:v})};return n&&(p.route.ErrorBoundary||p.route.errorElement||h===0)?b.createElement(DI,{location:n.location,revalidation:n.revalidation,component:g,error:f,children:y(),routeContext:{outlet:null,matches:m,isDataRoute:!0}}):y()},null)}var kk=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(kk||{}),gc=function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e}(gc||{});function LI(e){let t=b.useContext(Hh);return t||Fe(!1),t}function _I(e){let t=b.useContext(NI);return t||Fe(!1),t}function BI(e){let t=b.useContext(pr);return t||Fe(!1),t}function Sk(e){let t=BI(),n=t.matches[t.matches.length-1];return n.route.id||Fe(!1),n.route.id}function GI(){var e;let t=b.useContext(vk),n=_I(gc.UseRouteError),r=Sk(gc.UseRouteError);return t!==void 0?t:(e=n.errors)==null?void 0:e[r]}function zI(){let{router:e}=LI(kk.UseNavigateStable),t=Sk(gc.UseNavigateStable),n=b.useRef(!1);return xk(()=>{n.current=!0}),b.useCallback(function(i,s){s===void 0&&(s={}),n.current&&(typeof i=="number"?e.navigate(i):e.navigate(i,fa({fromRouteId:t},s)))},[e,t])}function VI(e,t){e==null||e.v7_startTransition,e==null||e.v7_relativeSplatPath}function Tk(e){let{to:t,replace:n,state:r,relative:i}=e;Zs()||Fe(!1);let{future:s,static:o}=b.useContext(ri),{matches:l}=b.useContext(pr),{pathname:c}=Bi(),u=wk(),d=Uh(t,$h(l,s.v7_relativeSplatPath),c,i==="path"),p=JSON.stringify(d);return b.useEffect(()=>u(JSON.parse(p),{replace:n,state:r,relative:i}),[u,p,i,n,r]),null}function We(e){Fe(!1)}function $I(e){let{basename:t="/",children:n=null,location:r,navigationType:i=Or.Pop,navigator:s,static:o=!1,future:l}=e;Zs()&&Fe(!1);let c=t.replace(/^\/*/,"/"),u=b.useMemo(()=>({basename:c,navigator:s,static:o,future:fa({v7_relativeSplatPath:!1},l)}),[c,l,s,o]);typeof r=="string"&&(r=Js(r));let{pathname:d="/",search:p="",hash:h="",state:f=null,key:x="default"}=r,g=b.useMemo(()=>{let w=Vh(d,c);return w==null?null:{location:{pathname:w,search:p,hash:h,state:f,key:x},navigationType:i}},[c,d,p,h,f,x,i]);return g==null?null:b.createElement(ri.Provider,{value:u},b.createElement(nu.Provider,{children:n,value:g}))}function UI(e){let{children:t,location:n}=e;return EI(zp(t),n)}new Promise(()=>{});function zp(e,t){t===void 0&&(t=[]);let n=[];return b.Children.forEach(e,(r,i)=>{if(!b.isValidElement(r))return;let s=[...t,i];if(r.type===b.Fragment){n.push.apply(n,zp(r.props.children,s));return}r.type!==We&&Fe(!1),!r.props.index||!r.props.children||Fe(!1);let o={id:r.props.id||s.join("-"),caseSensitive:r.props.caseSensitive,element:r.props.element,Component:r.props.Component,index:r.props.index,path:r.props.path,loader:r.props.loader,action:r.props.action,errorElement:r.props.errorElement,ErrorBoundary:r.props.ErrorBoundary,hasErrorBoundary:r.props.ErrorBoundary!=null||r.props.errorElement!=null,shouldRevalidate:r.props.shouldRevalidate,handle:r.props.handle,lazy:r.props.lazy};r.props.children&&(o.children=zp(r.props.children,s)),n.push(o)}),n}/**
255 * React Router DOM v6.30.1
256 *
257 * Copyright (c) Remix Software Inc.
258 *
259 * This source code is licensed under the MIT license found in the
260 * LICENSE.md file in the root directory of this source tree.
261 *
262 * @license MIT
263 */function Vp(){return Vp=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Vp.apply(this,arguments)}function HI(e,t){if(e==null)return{};var n={},r=Object.keys(e),i,s;for(s=0;s<r.length;s++)i=r[s],!(t.indexOf(i)>=0)&&(n[i]=e[i]);return n}function WI(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function qI(e,t){return e.button===0&&(!t||t==="_self")&&!WI(e)}const KI=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],YI="6";try{window.__reactRouterVersion=YI}catch{}const QI="startTransition",qy=Ef[QI];function XI(e){let{basename:t,children:n,future:r,window:i}=e,s=b.useRef();s.current==null&&(s.current=nI({window:i,v5Compat:!0}));let o=s.current,[l,c]=b.useState({action:o.action,location:o.location}),{v7_startTransition:u}=r||{},d=b.useCallback(p=>{u&&qy?qy(()=>c(p)):c(p)},[c,u]);return b.useLayoutEffect(()=>o.listen(d),[o,d]),b.useEffect(()=>
263VI(r),[r]),b.createElement($I,{basename:t,children:n,location:l.location,navigationType:l.action,navigator:o,future:r})}const JI=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",ZI=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,ie=b.forwardRef(function(t,n){let{onClick:r,relative:i,reloadDocument:s,replace:o,state:l,target:c,to:u,preventScrollReset:d,viewTransition:p}=t,h=HI(t,KI),{basename:f}=b.useContext(ri),x,g=!1;if(typeof u=="string"&&ZI.test(u)&&(x=u,JI))try{let v=new URL(window.location.href),k=u.startsWith("//")?new URL(v.protocol+u):new URL(u),C=Vh(k.pathname,f);k.origin===v.origin&&C!=null?u=C+k.search+k.hash:g=!0}catch{}let w=AI(u,{relative:i}),m=eR(u,{replace:o,state:l,target:c,preventScrollReset:d,relative:i,viewTransition:p});function y(v){r&&r(v),v.defaultPrevented||m(v)}return b.createElement("a",Vp({},h,{href:x||w,onClick:g||s?r:y,ref:n,target:c}))});var Ky;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(Ky||(Ky={}));var Yy;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(Yy||(Yy={}));function eR(e,t){let{target:n,replace:r,state:i,preventScrollReset:s,relative:o,viewTransition:l}=t===void 0?{}:t,c=wk(),u=Bi(),d=bk(e,{relative:o});return b.useCallback(p=>{if(qI(p,n)){p.preventDefault();let h=r!==void 0?r:mc(u)===mc(d);c(e,{replace:h,state:i,preventScrollReset:s,relative:o,viewTransition:l})}},[u,c,d,r,i,n,e,s,o,l])}const qh=b.createContext({});function Kh(e){const t=b.useRef(null);return t.current===null&&(t.current=e()),t.current}const Ck=typeof window<"u",jk=Ck?b.useLayoutEffect:b.useEffect,ru=b.createContext(null);function Yh(e,t){e.indexOf(t)===-1&&e.push(t)}function Qh(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}const Un=(e,t,n)=>n>t?t:n<e?e:n;let iu=()=>{},$s=()=>{};const ur={},Nk=e=>/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(e);function Ak(e){return typeof e=="object"&&e!==null}const Pk=e=>/^0[^.\s]+$/u.test(e);function Xh(e){let t;return()=>(t===void 0&&(t=e()),t)}const Zt=e=>e,tR=(e,t)=>n=>t(e(n)),Ea=(...e)=>e.reduce(tR),ha=(e,t,n)=>{const r=t-e;return r===0?1:(n-e)/r};class Jh{constructor(){this.subscriptions=[]}add(t){return Yh(this.subscriptions,t),()=>Qh(this.subscriptions,t)}notify(t,n,r){const i=this.subscriptions.length;if(i)if(i===1)this.subscriptions[0](t,n,r);else for(let s=0;s<i;s++){const o=this.subscriptions[s];o&&o(t,n,r)}}getSize(){return this.subscriptions.length}clear(){this.subscriptions.length=0}}const Gn=e=>e*1e3,Xt=e=>e/1e3;function Ek(e,t){return t?e*(1e3/t):0}const Mk=(e,t,n)=>(((1-3*n+3*t)*e+(3*n-6*t))*e+3*t)*e,nR=1e-7,rR=12;function iR(e,t,n,r,i){let s,o,l=0;do o=t+(n-t)/2,s=Mk(o,r,i)-e,s>0?n=o:t=o;while(Math.abs(s)>nR&&++l<rR);return o}function Ma(e,t,n,r){if(e===t&&n===r)return Zt;const i=s=>iR(s,0,1,e,n);return s=>s===0||s===1?s:Mk(i(s),t,r)}const Ik=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,Rk=e=>t=>1-e(1-t),Dk=Ma(.33,1.53,.69,.99),Zh=Rk(Dk),Fk=Ik(Zh),Ok=e=>(e*=2)<1?.5*Zh(e):.5*(2-Math.pow(2,-10*(e-1))),em=e=>1-Math.sin(Math.acos(e)),Lk=Rk(em),_k=Ik(em),sR=Ma(.42,0,1,1),oR=Ma(0,0,.58,1),Bk=Ma(.42,0,.58,1),aR=e=>Array.isArray(e)&&typeof e[0]!="number",Gk=e=>Array.isArray(e)&&typeof e[0]=="number",Qy={linear:Zt,easeIn:sR,easeInOut:Bk,easeOut:oR,circIn:em,circInOut:_k,circOut:Lk,backIn:Zh,backInOut:Fk,backOut:Dk,anticipate:Ok},lR=e=>typeof e=="string",Xy=e=>{if(Gk(e)){$s(e.length===4,"Cubic bezier arrays must contain four numerical values.","cubic-bezier-length");const[t,n,r,i]=e;return Ma(t,n,r,i)}else if(lR(e))return $s(Qy[e]!==void 0,`Invalid easing type '${e}'`,"invalid-easing-type"),Qy[e];return e},al=["setup","read","resolveKeyframes","preUpdate","update","preRender","render","postRender"],Jy={value:null,addProjectionMetrics:null};function cR(e,t){let n=new Set,r=new Set,i=!1,s=!1;const o=new WeakSet;let l={delta:0,timestamp:0,isProcessing:!1},c=0;function u(p){o.has(p)&&(d.schedule(p),e()),c++,p(l)}const d={schedule:(p,h=!1,f=!1)=>{const g=f&&i?n:r;return h&&o.add(p),g.has(p)||g.add(p),p},cancel:p=>{r.delete(p),o.delete(p)},process:p=>{if(l=p,i){s=!0;return}
vendor: 26,491 bytes, line 263
263i=!0,[n,r]=[r,n],n.forEach(u),t&&Jy.value&&Jy.value.frameloop[t].push(c),c=0,n.clear(),i=!1,s&&(s=!1,d.process(p))}};return d}const uR=40;function zk(e,t){let n=!1,r=!0;const i={delta:0,timestamp:0,isProcessing:!1},s=()=>n=!0,o=al.reduce((v,k)=>(v[k]=cR(s,t?k:void 0),v),{}),{setup:l,read:c,resolveKeyframes:u,preUpdate:d,update:p,preRender:h,render:f,postRender:x}=o,g=()=>{const v=ur.useManualTiming?i.timestamp:performance.now();n=!1,ur.useManualTiming||(i.delta=r?1e3/60:Math.max(Math.min(v-i.timestamp,uR),1)),i.timestamp=v,i.isProcessing=!0,l.process(i),c.process(i),u.process(i),d.process(i),p.process(i),h.process(i),f.process(i),x.process(i),i.isProcessing=!1,n&&t&&(r=!1,e(g))},w=()=>{n=!0,r=!0,i.isProcessing||e(g)};return{schedule:al.reduce((v,k)=>{const C=o[k];return v[k]=(T,N=!1,A=!1)=>(n||w(),C.schedule(T,N,A)),v},{}),cancel:v=>{for(let k=0;k<al.length;k++)o[al[k]].cancel(v)},state:i,steps:o}}const{schedule:Se,cancel:Jr,state:Ke,steps:nd}=zk(typeof requestAnimationFrame<"u"?requestAnimationFrame:Zt,!0);let Ml;function dR(){Ml=void 0}const pt={now:()=>(Ml===void 0&&pt.set(Ke.isProcessing||ur.useManualTiming?Ke.timestamp:performance.now()),Ml),set:e=>{Ml=e,queueMicrotask(dR)}},Vk=e=>t=>typeof t=="string"&&t.startsWith(e),$k=Vk("--"),pR=Vk("var(--"),tm=e=>pR(e)?fR.test(e.split("/*")[0].trim()):!1,fR=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu;function Zy(e){return typeof e!="string"?!1:e.split("/*")[0].includes("var(--")}const eo={test:e=>typeof e=="number",parse:parseFloat,transform:e=>e},ma={...eo,transform:e=>Un(0,1,e)},ll={...eo,default:1},_o=e=>Math.round(e*1e5)/1e5,nm=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function hR(e){return e==null}const mR=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,rm=(e,t)=>n=>!!(typeof n=="string"&&mR.test(n)&&n.startsWith(e)||t&&!hR(n)&&Object.prototype.hasOwnProperty.call(n,t)),Uk=(e,t,n)=>r=>{if(typeof r!="string")return r;const[i,s,o,l]=r.match(nm);return{[e]:parseFloat(i),[t]:parseFloat(s),[n]:parseFloat(o),alpha:l!==void 0?parseFloat(l):1}},gR=e=>Un(0,255,e),rd={...eo,transform:e=>Math.round(gR(e))},vi={test:rm("rgb","red"),parse:Uk("red","green","blue"),transform:({red:e,green:t,blue:n,alpha:r=1})=>"rgba("+rd.transform(e)+", "+rd.transform(t)+", "+rd.transform(n)+", "+_o(ma.transform(r))+")"};function yR(e){let t="",n="",r="",i="";return e.length>5?(t=e.substring(1,3),n=e.substring(3,5),r=e.substring(5,7),i=e.substring(7,9)):(t=e.substring(1,2),n=e.substring(2,3),r=e.substring(3,4),i=e.substring(4,5),t+=t,n+=n,r+=r,i+=i),{red:parseInt(t,16),green:parseInt(n,16),blue:parseInt(r,16),alpha:i?parseInt(i,16)/255:1}}const $p={test:rm("#"),parse:yR,transform:vi.transform},Ia=e=>({test:t=>typeof t=="string"&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}),Tr=Ia("deg"),zn=Ia("%"),q=Ia("px"),vR=Ia("vh"),xR=Ia("vw"),ev={...zn,parse:e=>zn.parse(e)/100,transform:e=>zn.transform(e*100)},ss={test:rm("hsl","hue"),parse:Uk("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:n,alpha:r=1})=>"hsla("+Math.round(e)+", "+zn.transform(_o(t))+", "+zn.transform(_o(n))+", "+_o(ma.transform(r))+")"},_e={test:e=>vi.test(e)||$p.test(e)||ss.test(e),parse:e=>vi.test(e)?vi.parse(e):ss.test(e)?ss.parse(e):$p.parse(e),transform:e=>typeof e=="string"?e:e.hasOwnProperty("red")?vi.transform(e):ss.transform(e),getAnimatableNone:e=>{const t=_e.parse(e);return t.alpha=0,_e.transform(t)}},wR=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function bR(e){var t,n;return isNaN(e)&&typeof e=="string"&&(((t=e.match(nm))==null?void 0:t.length)||0)+(((n=e.match(wR))==null?void 0:n.length)||0)>0}const Hk="number",Wk="color",kR="var",SR="var(",tv="${}",TR=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function ga(e){const t=e.toString(),n=[],r={color:[],number:[],var:[]},i=[];let s=0;const l=t.replace(TR,c=>(_e.test(c)?(r.color.push(s),i.push(Wk),n.push(_e.parse(c))):c.startsWith(SR)?(r.var.push(s),i.push(kR),n.push(c)):(r.number.push(s),i.push(Hk),n.push(parseFloat(c))),++s,tv)).split(tv);return{values:n,split:l,indexes:r,types:i}}function qk(e){return ga(e).values}function Kk(e){const{split:t,types:n}=ga(e),r=t.length;return i=>{let s="";for(let o=0;o<r;o++)if(s+=t[o],i[o]!==void 0){const l=n[o];l===Hk?s+=_o(i[o]):l===Wk?s+=_e.transform(i[o]):s+=i[o]}return s}}const CR=e=>typeof e=="number"?0:_e.test(e)?_e.getAnimatableNone(e):e;function jR(e){const t=qk(e);return Kk(e)(t.map(CR))}const Zr={test:bR,parse:qk,createTransformer:Kk,getAnimatableNone:jR};function id(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function NR({hue:e,saturation:t,lightness:n,alpha:r}){e/=360,t/=100,n/=100;let i=0,s=0,o=0;if(!t)i=s=o=n;else{const l=n<.5?n*(1+t):n+t-n*t,c=2*n-l;i=id(c,l,e+1/3),s=id(c,l,e),o=id(c,l,e-1/3)}return{red:Math.round(i*255),green:Math.round(s*255),blue:Math.round(o*255),alpha:r}}function yc(e,t){return n=>n>0?t:e}const Ae=(e,t,n)=>e+(t-e)*n,sd=(e,t,n)=>{const r=e*e,i=n*(t*t-r)+r;return i<0?0:Math.sqrt(i)},AR=[$p,vi,ss],PR=e=>AR.find(t=>t.test(e));function nv(e){const t=PR(e);if(iu(!!t,`'${e}' is not an animatable color. Use the equivalent color code instead.`,"color-not-animatable"),!t)return!1;let n=t.parse(e);return t===ss&&(n=NR(n)),n}const rv=(e,t)=>{const n=nv(e),r=nv(t);if(!n||!r)return yc(e,t);const i={...n};return s=>(i.red=sd(n.red,r.red,s),i.green=sd(n.green,r.green,s),i.blue=sd(n.blue,r.blue,s),i.alpha=Ae(n.alpha,r.alpha,s),vi.transform(i))},Up=new Set(["none","hidden"]);function ER(e,t){return Up.has(e)?n=>n<=0?e:t:n=>n>=1?t:e}function MR(e,t){return n=>Ae(e,t,n)}function im(e){return typeof e=="number"?MR:typeof e=="string"?tm(e)?yc:_e.test(e)?rv:DR:Array.isArray(e)?Yk:typeof e=="object"?_e.test(e)?rv:IR:yc}function Yk(e,t){const n=[...e],r=n.length,i=e.map((s,o)=>im(s)(s,t[o]));return s=>{for(let o=0;o<r;o++)n[o]=i[o](s);return n}}function IR(e,t){const n={...e,...t},r={};for(const i in n)e[i]!==void 0&&t[i]!==void 0&&(r[i]=im(e[i])(e[i],t[i]));return i=>{for(const s in r)n[s]=r[s](i);return n}}function RR(e,t){const n=[],r={color:0,var:0,number:0};for(let i=0;i<t.values.length;i++){const s=t.types[i],o=e.indexes[s][r[s]],l=e.values[o]??0;n[i]=l,r[s]++}return n}const DR=(e,t)=>{const n=Zr.createTransformer(t),r=ga(e),i=ga(t);return r.indexes.var.length===i.indexes.var.length&&r.indexes.color.length===i.indexes.color.length&&r.indexes.number.length>=i.indexes.number.length?Up.has(e)&&!i.values.length||Up.has(t)&&!r.values.length?ER(e,t):Ea(Yk(RR(r,i),i.values),n):(iu(!0,`Complex values '${e}' and '${t}' too different to mix. Ensure all colors are of the same type, and that each contains the same quantity of number and color values. Falling back to instant transition.`,"complex-values-different"),yc(e,t))};function Qk(e,t,n){return typeof e=="number"&&typeof t=="number"&&typeof n=="number"?Ae(e,t,n):im(e)(e,t)}const FR=e=>{const t=({timestamp:n})=>e(n);return{start:(n=!0)=>Se.update(t,n),stop:()=>Jr(t),now:()=>Ke.isProcessing?Ke.timestamp:pt.now()}},Xk=(e,t,n=10)=>{let r="";const i=Math.max(Math.round(t/n),2);for(let s=0;s<i;s++)r+=Math.round(e(s/(i-1))*1e4)/1e4+", ";return`linear(${r.substring(0,r.length-2)})`},vc=2e4;function sm(e){let t=0;const n=50;let r=e.next(t);for(;!r.done&&t<vc;)t+=n,r=e.next(t);return t>=vc?1/0:t}function OR(e,t=100,n){const r=n({...e,keyframes:[0,t]}),i=Math.min(sm(r),vc);return{type:"keyframes",ease:s=>r.next(i*s).value/t,duration:Xt(i)}}const LR=5;function Jk(e,t,n){const r=Math.max(t-LR,0);return Ek(n-e(r),t-r)}const je={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1},od=.001;function _R({duration:e=je.duration,bounce:t=je.bounce,velocity:n=je.velocity,mass:r=je.mass}){let i,s;iu(e<=Gn(je.maxDuration),"Spring duration must be 10 seconds or less","spring-duration-limit");let o=1-t;o=Un(je.minDamping,je.maxDamping,o),e=Un(je.minDuration,je.maxDuration,Xt(e)),o<1?(i=u=>{const d=u*o,p=d*e,h=d-n,f=Hp(u,o),x=Math.exp(-p);return od-h/f*x},s=u=>{const p=u*o*e,h=p*n+n,f=Math.pow(o,2)*Math.pow(u,2)*e,x=Math.exp(-p),g=Hp(Math.pow(u,2),o);return(-i(u)+od>0?-1:1)*((h-f)*x)/g}):(i=u=>{const d=Math.exp(-u*e),p=(u-n)*e+1;return-od+d*p},s=u=>{const d=Math.exp(-u*e),p=(n-u)*(e*e);return d*p});const l=5/e,c=GR(i,s,l);if(e=Gn(e),isNaN(c))return{stiffness:je.stiffness,damping:je.damping,duration:e};{const u=Math.pow(c,2)*r;return{stiffness:u,damping:o*2*Math.sqrt(r*u),duration:e}}}const BR=12;function GR(e,t,n){let r=n;for(let i=1;i<BR;i++)r=r-e(r)/t(r);return r}function Hp(e,t){return e*Math.sqrt(1-t*t)}const zR=["duration","bounce"],VR=["stiffness","damping","mass"];function iv(e,t){return t.some(n=>e[n]!==void 0)}function $R(e){let t={velocity:je.velocity,stiffness:je.stiffness,damping:je.damping,mass:je.mass,isResolvedFromDuration:!1,...e};if(!iv(e,VR)&&iv(e,zR))if(e.visualDuration){const n=e.visualDuration,r=2*Math.PI/(n*1.2),i=r*r,s=2*Un(.05,1,1-(e.bounce||0))*Math.sqrt(i);t={...t,mass:je.mass,stiffness:i,damping:s}}else{const n=_R(e);t={...t,...n,mass:je.mass},t.isResolvedFromDuration=!0}return t}function xc(e=je.visualDuration,t=je.bounce){const n=typeof e!="object"?{visualDuration:e,keyframes:[0,1],bounce:t}:e;let{restSpeed:r,restDelta:i}=n;const s=n.keyframes[0],o=n.keyframes[n.keyframes.length-1],l={done:!1,value:s},{stiffness:c,damping:u,mass:d,duration:p,velocity:h,isResolvedFromDuration:f}=$R({...n,velocity:-Xt(n.velocity||0)}),x=h||0,g=u/(2*Math.sqrt(c*d)),w=o-s,m=Xt(Math.sqrt(c/d)),y=Math.abs(w)<5;r||(r=y?je.restSpeed.granular:je.restSpeed.default),i||(i=y?je.restDelta.granular:je.restDelta.default);let v;if(g<1){const C=Hp(m,g);v=T=>{const N=Math.exp(-g*m*T);return o-N*((x+g*m*w)/C*Math.sin(C*T)+w*Math.cos(C*T))}}else if(g===1)v=C=>o-Math.exp(-m*C)*(w+(x+m*w)*C);else{const C=m*Math.sqrt(g*g-1);v=T=>{const N=Math.exp(-g*m*T),A=Math.min(C*T,300);return o-N*((x+g*m*w)*Math.sinh(A)+C*w*Math.cosh(A))/C}}const k={calculatedDuration:f&&p||null,next:C=>{const T=v(C);if(f)l.done=C>=p;else{let N=C===0?x:0;g<1&&(N=C===0?Gn(x):Jk(v,C,T));const A=Math.abs(N)<=r,P=Math.abs(o-T)<=i;l.done=A&&P}return l.value=l.done?o:T,l},toString:()=>{const C=Math.min(sm(k),vc),T=Xk(N=>k.next(C*N).value,C,30);return C+"ms "+T},toTransition:()=>{}};return k}xc.applyToOptions=e=>{const t=OR(e,100,xc);return e.ease=t.ease,e.duration=Gn(t.duration),e.type="keyframes",e};function Wp({keyframes:e,velocity:t=0,power:n=.8,timeConstant:r=325,bounceDamping:i=10,bounceStiffness:s=500,modifyTarget:o,min:l,max:c,restDelta:u=.5,restSpeed:d}){const p=e[0],h={done:!1,value:p},f=A=>l!==void 0&&A<l||c!==void 0&&A>c,x=A=>l===void 0?c:c===void 0||Math.abs(l-A)<Math.abs(c-A)?l:c;let g=n*t;const w=p+g,m=o===void 0?w:o(w);m!==w&&(g=m-p);const y=A=>-g*Math.exp(-A/r),v=A=>m+y(A),k=A=>{const P=y(A),M=v(A);h.done=Math.abs(P)<=u,h.value=h.done?m:M};let C,T;const N=A=>{f(h.value)&&(C=A,T=xc({keyframes:[h.value,x(h.value)],velocity:Jk(v,A,h.value),damping:i,stiffness:s,restDelta:u,restSpeed:d}))};return N(0),{calculatedDuration:null,next:A=>{let P=!1;return!T&&C===void 0&&(P=!0,k(A),N(A)),C!==void 0&&A>=C?T.next(A-C):(!P&&k(A),h)}}}function UR(e,t,n){const r=[],i=n||ur.mix||Qk,s=e.length-1;for(let o=0;o<s;o++){let l=i(e[o],e[o+1]);if(t){const c=Array.isArray(t)?t[o]||Zt:t;l=Ea(c,l)}r.push(l)}return r}function HR(e,t,{clamp:n=!0,ease:r,mixer:i}={}){const s=e.length;if($s(s===t.length,"Both input and output ranges must be the same length","range-length"),s===1)return()=>t[0];if(s===2&&t[0]===t[1])return()=>t[1];const o=e[0]===e[1];e[0]>e[s-1]&&(e=[...e].reverse(),t=[...t].reverse());const l=UR(t,r,i),c=l.length,u=d=>{if(o&&d<e[0])return t[0];let p=0;if(c>1)for(;p<e.length-2&&!(d<e[p+1]);p++);const h=ha(e[p],e[p+1],d);return l[p](h)};return n?d=>u(Un(e[0],e[s-1],d)):u}function WR(e,t){const n=e[e.length-1];for(let r=1;r<=t;r++){const i=ha(0,t,r);e.push(Ae(n,1,i))}}function qR(e){const t=[0];return WR(t,e.length-1),t}function KR(e,t){return e.map(n=>n*t)}function YR(e,t){return e.map(()=>t||Bk).splice(0,e.length-1)}function Bo({duration:e=300,keyframes:t,times:n,ease:r="easeInOut"}){const i=aR(r)?r.map(Xy):Xy(r),s={done:!1,value:t[0]},o=KR(n&&n.length===t.length?n:qR(t),e),l=HR(o,t,{ease:Array.isArray(i)?i:YR(t,i)});return{calculatedDuration:e,next:c=>(s.value=l(c),s.done=c>=e,s)}}const QR=e=>e!==null;function om(e,{repeat:t,repeatType:n="loop"},r,i=1){const s=e.filter(QR),l=i<0||t&&n!=="loop"&&t%2===1?0:s.length-1;return!l||r===void 0?s[l]:r}const XR={decay:Wp,inertia:Wp,tween:Bo,keyframes:Bo,spring:xc};function Zk(e){typeof e.type=="string"&&(e.type=XR[e.type])}class am{constructor(){this.updateFinished()}get finished(){return this._finished}updateFinished(){this._finished=new Promise(t=>{this.resolve=t})}notifyFinished(){this.resolve()}then(t,n){return this.finished.then(t,n)}}const JR=e=>e/100;class lm extends am{constructor(t){super(),this.state="idle",this.startTime=null,this.isStopped=!1,this.currentTime=0,this.holdTime=null,this.playbackSpeed=1,this.stop=()=>{var r,i;const{motionValue:n}=this.options;n&&n.updatedAt!==pt.now()&&this.tick(pt.now()),this.isStopped=!0,this.state!=="idle"&&(this.teardown(),(i=(r=this.options).onStop)==null||i.call(r))},this.options=t,this.initAnimation(),this.play(),t.autoplay===!1&&this.pause()}initAnimation(){const{options:t}=this;Zk(t);const{type:n=Bo,repeat:r=0,repeatDelay:i=0,repeatType:s,velocity:o=0}=t;let{keyframes:l}=t;const c=n||Bo;c!==Bo&&typeof l[0]!="number"&&(this.mixKeyframes=Ea(JR,Qk(l[0],l[1])),l=[0,100]);const u=c({...t,keyframes:l});s==="mirror"&&(this.mirroredGenerator=c({...t,keyframes:[...l].reverse(),velocity:-o})),u.calculatedDuration===null&&(u.calculatedDuration=sm(u));const{calculatedDuration:d}=u;this.calculatedDuration=d,this.resolvedDuration=d+i,this.totalDuration=this.resolvedDuration*(r+1)-i,this.generator=u}updateTime(t){const n=Math.round(t-this.startTime)*this.playbackSpeed;this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=n}tick(t,n=!1){const{generator:r,totalDuration:i,mixKeyframes:s,mirroredGenerator:o,resolvedDuration:l,calculatedDuration:c}=this;if(this.startTime===null)return r.next(0);const{delay:u=0,keyframes:d,repeat:p,repeatType:h,repeatDelay:f,type:x,onUpdate:g,finalKeyframe:w}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,t):this.speed<0&&(this.startTime=Math.min(t-i/this.speed,this.startTime)),n?this.currentTime=t:this.updateTime(t);const m=this.currentTime-u*(this.playbackSpeed>=0?1:-1),y=this.playbackSpeed>=0?m<0:m>i;this.currentTime=Math.max(m,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=i);let v=this.currentTime,k=r;if(p){const A=Math.min(this.currentTime,i)/l;let P=Math.floor(A),M=A%1;!M&&A>=1&&(M=1),M===1&&P--,P=Math.min(P,p+1),!!(P%2)&&(h==="reverse"?(M=1-M,f&&(M-=f/l)):h==="mirror"&&(k=o)),v=Un(0,1,M)*l}const C=y?{done:!1,value:d[0]}:k.next(v);s&&(C.value=s(C.value));let{done:T}=C;!y&&c!==null&&(T=this.playbackSpeed>=0?this.currentTime>=i:this.currentTime<=0);const N=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&T);return N&&x!==Wp&&(C.value=om(d,this.options,w,this.speed)),g&&g(C.value),N&&this.finish(),C}then(t,n){return this.finished.then(t,n)}get duration(){return Xt(this.calculatedDuration)}get iterationDuration(){const{delay:t=0}=this.options||{};return this.duration+Xt(t)}get time(){return Xt(this.currentTime)}set time(t){var n;t=Gn(t),this.currentTime=t,this.startTime===null||this.holdTime!==null||this.playbackSpeed===0?this.holdTime=t:this.driver&&(this.startTime=this.driver.now()-t/this.playbackSpeed),(n=this.driver)==null||n.start(!1)}get speed(){return this.playbackSpeed}set speed(t){this.updateTime(pt.now());const n=this.playbackSpeed!==t;this.playbackSpeed=t,n&&(this.time=Xt(this.currentTime))}play(){var i,s;if(this.isStopped)return;const{driver:t=FR,startTime:n}=this.options;this.driver||(this.driver=t(o=>this.tick(o))),(s=(i=this.options).onPlay)==null||s.call(i);const r=this.driver.now();this.state==="finished"?(this.updateFinished(),this.startTime=r):this.holdTime!==null?this.startTime=r-this.holdTime:this.startTime||(this.startTime=n??r),this.state==="finished"&&this.speed<0&&(this.startTime+=this.calculatedDuration),this.holdTime=null,this.state="running",this.driver.start()}pause(){this.state="paused",this.updateTime(pt.now()),this.holdTime=this.currentTime}complete(){this.state!=="running"&&this.play(),this.state="finished",this.holdTime=null}finish(){var t,n;this.notifyFinished(),this.teardown(),this.state="finished",(n=(t=this.options).onComplete)==null||n.call(t)}cancel(){var t,n;this.holdTime=null,this.startTime=0,this.tick(0),this.teardown(),(n=(t=this.options).onCancel)==null||n.call(t)}teardown(){this.state="idle",this.stopDriver(),this.startTime=this.holdTime=null}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(t){return this.startTime=0,this.tick(t,!0)}attachTimeline(t){var n;return this.options.allowFlatten&&(this.options.type="keyframes",this.options.ease="linear",this.initAnimation()),(n=this.driver)==null||n.stop(),t.observe(this)}}function ZR(e){for(let t=1;t<e.length;t++)e[t]??(e[t]=e[t-1])}const xi=e=>e*180/Math.PI,qp=e=>{const t=xi(Math.atan2(e[1],e[0]));return Kp(t)},eD={x:4,y:5,translateX:4,translateY:5,scaleX:0,scaleY:3,scale:e=>(Math.abs(e[0])+Math.abs(e[3]))/2,rotate:qp,rotateZ:qp,skewX:e=>xi(Math.atan(e[1])),skewY:e=>xi(Math.atan(e[2])),skew:e=>(Math.abs(e[1])+Math.abs(e[2]))/2},Kp=e=>(e=e%360,e<0&&(e+=360),e),sv=qp,ov=e=>Math.sqrt(e[0]*e[0]+e[1]*e[1]),av=e=>Math.sqrt(e[4]*e[4]+e[5]*e[5]),tD={x:12,y:13,z:14,translateX:12,translateY:13,translateZ:14,scaleX:ov,scaleY:av,scale:e=>(ov(e)+av(e))/2,rotateX:e=>Kp(xi(Math.atan2(e[6],e[5]))),rotateY:e=>Kp(xi(Math.atan2(-e[2],e[0]))),rotateZ:sv,rotate:sv,skewX:e=>xi(Math.atan(e[4])),skewY:e=>xi(Math.atan(e[1])),skew:e=>(Math.abs(e[1])+Math.abs(e[4]))/2};function Yp(e){return e.includes("scale")?1:0}function Qp(e,t){if(!e||e==="none")return Yp(t);const n=e.match(/^matrix3d\(([-\d.e\s,]+)\)$/u);let r,i;if(n)r=tD,i=n;else{const l=e.match(/^matrix\(([-\d.e\s,]+)\)$/u);r=eD,i=l}if(!i)return Yp(t);const s=r[t],o=i[1].split(",").map(rD);return typeof s=="function"?s(o):o[s]}const nD=(e,t)=>{const{transform:n="none"}=getComputedStyle(e);return Qp(n,t)};function rD(e){return parseFloat(e.trim())}const to=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],no=new Set(to),lv=e=>e===eo||e===q,iD=new Set(["x","y","z"]),sD=to.filter(e=>!iD.has(e));function oD(e){const t=[];return sD.forEach(n=>{const r=e.getValue(n);r!==void 0&&(t.push([n,r.get()]),r.set(n.startsWith("scale")?1:0))}),t}const Lr={width:({x:e},{paddingLeft:t="0",paddingRight:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),height:({y:e},{paddingTop:t="0",paddingBottom:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),top:(e,{top:t})=>parseFloat(t),left:(e,{left:t})=>parseFloat(t),bottom:({y:e},{top:t})=>parseFloat(t)+(e.max-e.min),right:({x:e},{left:t})=>parseFloat(t)+(e.max-e.min),x:(e,{transform:t})=>Qp(t,"x"),y:(e,{transform:t})=>Qp(t,"y")};Lr.translateX=Lr.x;Lr.translateY=Lr.y;const Pi=new Set;let Xp=!1,Jp=!1,Zp=!1;function eS(){if(Jp){const e=Array.from(Pi).filter(r=>r.needsMeasurement),t=new Set(e.map(r=>r.element)),n=new Map;t.forEach(r=>{const i=oD(r);i.length&&(n.set(r,i),r.render())}),e.forEach(r=>r.measureInitialState()),t.forEach(r=>{r.render();const i=n.get(r);i&&i.forEach(([s,o])=>{var l;(l=r.getValue(s))==null||l.set(o)})}),e.forEach(r=>r.measureEndState()),e.forEach(r=>{r.suspendedScrollY!==void 0&&window.scrollTo(0,r.suspendedScrollY)})}Jp=!1,Xp=!1,Pi.forEach(e=>e.complete(Zp)),Pi.clear()}function tS(){Pi.forEach(e=>{e.readKeyframes(),e.needsMeasurement&&(Jp=!0)})}function aD(){Zp=!0,tS(),eS(),Zp=!1}class cm{constructor(t,n,r,i,s,o=!1){this.state="pending",this.isAsync=!1,this.needsMeasurement=!1,this.unresolvedKeyframes=[...t],this.onComplete=n,this.name=r,this.motionValue=i,this.element=s,this.isAsync=o}scheduleResolve(){this.state="scheduled",this.isAsync?(Pi.add(this),Xp||(Xp=!0,Se.read(tS),Se.resolveKeyframes(eS))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:t,name:n,element:r,motionValue:i}=this;if(t[0]===null){const s=i==null?void 0:i.get(),o=t[t.length-1];if(s!==void 0)t[0]=s;else if(r&&n){const l=r.readValue(n,o);l!=null&&(t[0]=l)}t[0]===void 0&&(t[0]=o),i&&s===void 0&&i.set(t[0])}ZR(t)}setFinalKeyframe(){}measureInitialState(){}renderEndStyles(){}measureEndState(){}complete(t=!1){this.state="complete",this.onComplete(this.unresolvedKeyframes,this.finalKeyframe,t),Pi.delete(this)}cancel(){this.state==="scheduled"&&(Pi.delete(this),this.state="pending")}resume(){this.state==="pending"&&this.scheduleResolve()}}const lD=e=>e.startsWith("--");function cD(e,t,n){lD(t)?e.style.setProperty(t,n):e.style[t]=n}const uD=Xh(()=>window.ScrollTimeline!==void 0),dD={};function pD(e,t){const n=Xh(e);return()=>dD[t]??n()}const nS=pD(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),jo=([e,t,n,r])=>`cubic-bezier(${e}, ${t}, ${n}, ${r})`,cv={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:jo([0,.65,.55,1]),circOut:jo([.55,0,1,.45]),backIn:jo([.31,.01,.66,-.59]),backOut:jo([.33,1.53,.69,.99])};function rS(e,t){if(e)return typeof e=="function"?nS()?Xk(e,t):"ease-out":Gk(e)?jo(e):Array.isArray(e)?e.map(n=>rS(n,t)||cv.easeOut):cv[e]}function fD(e,t,n,{delay:r=0,duration:i=300,repeat:s=0,repeatType:o="loop",ease:l="easeOut",times:c}={},u=void 0){const d={[t]:n};c&&(d.offset=c);const p=rS(l,i);Array.isArray(p)&&(d.easing=p);const h={delay:r,duration:i,easing:Array.isArray(p)?"linear":p,fill:"both",iterations:s+1,direction:o==="reverse"?"alternate":"normal"};return u&&(h.pseudoElement=u),e.animate(d,h)}function iS(e){return typeof e=="function"&&"applyToOptions"in e}function hD({type:e,...t}){return iS(e)&&nS()?e.applyToOptions(t):(t.duration??(t.duration=300),t.ease??(t.ease="easeOut"),t)}class mD extends am{constructor(t){if(super(),this.finishedTime=null,this.isStopped=!1,this.manualStartTime=null,!t)return;const{element:n,name:r,keyframes:i,pseudoElement:s,allowFlatten:o=!1,finalKeyframe:l,onComplete:c}=t;this.isPseudoElement=!!s,this.allowFlatten=o,this.options=t,$s(typeof t.type!="string",`Mini animate() doesn't support "type" as a string.`,"mini-spring");const u=hD(t);this.animation=fD(n,r,i,u,s),u.autoplay===!1&&this.animation.pause(),this.animation.onfinish=()=>{if(this.finishedTime=this.time,!s){const d=om(i,this.options,l,this.speed);this.updateMotionValue?this.updateMotionValue(d):cD(n,r,d),this.animation.cancel()}c==null||c(),this.notifyFinished()}}play(){this.isStopped||(this.manualStartTime=null,this.animation.play(),this.state==="finished"&&this.updateFinished())}pause(){this.animation.pause()}complete(){var t,n;(n=(t=this.animation).finish)==null||n.call(t)}cancel(){try{this.animation.cancel()}catch{}}stop(){if(this.isStopped)return;this.isStopped=!0;const{state:t}=this;t==="idle"||t==="finished"||(this.updateMotionValue?this.updateMotionValue():this.commitStyles(),this.isPseudoElement||this.cancel())}commitStyles(){var t,n;this.isPseudoElement||(n=(t=this.animation).commitStyles)==null||n.call(t)}get duration(){var n,r;const t=((r=(n=this.animation.effect)==null?void 0:n.getComputedTiming)==null?void 0:r.call(n).duration)||0;return Xt(Number(t))}get iterationDuration(){const{delay:t=0}=this.options||{};return this.duration+Xt(t)}get time(){return Xt(Number(this.animation.currentTime)||0)}set time(t){this.manualStartTime=null,this.finishedTime=null,this.animation.currentTime=Gn(t)}get speed(){return this.animation.playbackRate}set speed(t){t<0&&(this.finishedTime=null),this.animation.playbackRate=t}get state(){return this.finishedTime!==null?"finished":this.animation.playState}get startTime(){return this.manualStartTime??Number(this.animation.startTime)}set startTime(t){this.manualStartTime=this.animation.startTime=t}attachTimeline({timeline:t,observe:n}){var r;return this.allowFlatten&&((r=this.animation.effect)==null||r.updateTiming({easing:"linear"})),this.animation.onfinish=null,t&&uD()?(this.animation.timeline=t,Zt):n(this)}}const sS={anticipate:Ok,backInOut:Fk,circInOut:_k};function gD(e){return e in sS}function yD(e){typeof e.ease=="string"&&gD(e.ease)&&(e.ease=sS[e.ease])}const ad=10;class vD extends mD{constructor(t){yD(t),Zk(t),super(t),t.startTime!==void 0&&(this.startTime=t.startTime),this.options=t}updateMotionValue(t){const{motionValue:n,onUpdate:r,onComplete:i,element:s,...o}=this.options;if(!n)return;if(t!==void 0){n.set(t);return}const l=new lm({...o,autoplay:!1}),c=Math.max(ad,pt.now()-this.startTime),u=Un(0,ad,c-ad);n.setWithVelocity(l.sample(Math.max(0,c-u)).value,l.sample(c).value,u),l.stop()}}const uv=(e,t)=>t==="zIndex"?!1:!!(typeof e=="number"||Array.isArray(e)||typeof e=="string"&&(Zr.test(e)||e==="0")&&!e.startsWith("url("));function xD(e){const t=e[0];if(e.length===1)return!0;for(let n=0;n<e.length;n++)if(e[n]!==t)return!0}function wD(e,t,n,r){const i=e[0];if(i===null)return!1;if(t==="display"||t==="visibility")return!0;const s=e[e.length-1],o=uv(i,t),l=uv(s,t);return iu(o===l,`You are trying to animate ${t} from "${i}" to "${s}". "${o?s:i}" is not an animatable value.`,"value-not-animatable"),!o||!l?!1:xD(e)||(n==="spring"||iS(n))&&r}function ef(e){e.duration=0,e.type="keyframes"}const bD=new Set(["opacity","clipPath","filter","transform"]),kD=Xh(()=>Object.hasOwnProperty.call(Element.prototype,"animate"));function SD(e){var d;const{motionValue:t,name:n,repeatDelay:r,repeatType:i,damping:s,type:o}=e;if(!(((d=t==null?void 0:t.owner)==null?void 0:d.current)instanceof HTMLElement))return!1;const{onUpdate:c,transformTemplate:u}=t.owner.getProps();return kD()&&n&&bD.has(n)&&(n!=="transform"||!u)&&!c&&!r&&i!=="mirror"&&s!==0&&o!=="inertia"}const TD=40;class CD extends am{constructor({autoplay:t=!0,delay:n=0,type:r="keyframes",repeat:i=0,repeatDelay:s=0,repeatType:
263o="loop",keyframes:l,name:c,motionValue:u,element:d,...p}){var x;super(),this.stop=()=>{var g,w;this._animation&&(this._animation.stop(),(g=this.stopTimeline)==null||g.call(this)),(w=this.keyframeResolver)==null||w.cancel()},this.createdAt=pt.now();const h={autoplay:t,delay:n,type:r,repeat:i,repeatDelay:s,repeatType:o,name:c,motionValue:u,element:d,...p},f=(d==null?void 0:d.KeyframeResolver)||cm;this.keyframeResolver=new f(l,(g,w,m)=>this.onKeyframesResolved(g,w,h,!m),c,u,d),(x=this.keyframeResolver)==null||x.scheduleResolve()}onKeyframesResolved(t,n,r,i){var w,m;this.keyframeResolver=void 0;const{name:s,type:o,velocity:l,delay:c,isHandoff:u,onUpdate:d}=r;this.resolvedAt=pt.now(),wD(t,s,o,l)||((ur.instantAnimations||!c)&&(d==null||d(om(t,r,n))),t[0]=t[t.length-1],ef(r),r.repeat=0);const h={startTime:i?this.resolvedAt?this.resolvedAt-this.createdAt>TD?this.resolvedAt:this.createdAt:this.createdAt:void 0,finalKeyframe:n,...r,keyframes:t},f=!u&&SD(h),x=(m=(w=h.motionValue)==null?void 0:w.owner)==null?void 0:m.current,g=f?new vD({...h,element:x}):new lm(h);g.finished.then(()=>{this.notifyFinished()}).catch(Zt),this.pendingTimeline&&(this.stopTimeline=g.attachTimeline(this.pendingTimeline),this.pendingTimeline=void 0),this._animation=g}get finished(){return this._animation?this.animation.finished:this._finished}then(t,n){return this.finished.finally(t).then(()=>{})}get animation(){var t;return this._animation||((t=this.keyframeResolver)==null||t.resume(),aD()),this._animation}get duration(){return this.animation.duration}get iterationDuration(){return this.animation.iterationDuration}get time(){return this.animation.time}set time(t){this.animation.time=t}get speed(){return this.animation.speed}get state(){return this.animation.state}set speed(t){this.animation.speed=t}get startTime(){return this.animation.startTime}attachTimeline(t){return this._animation?this.stopTimeline=this.animation.attachTimeline(t):this.pendingTimeline=t,()=>this.stop()}play(){this.animation.play()}pause(){this.animation.pause()}complete(){this.animation.complete()}cancel(){var t;this._animation&&this.animation.cancel(),(t=this.keyframeResolver)==null||t.cancel()}}function oS(e,t,n,r=0,i=1){const s=Array.from(e).sort((u,d)=>u.sortNodePosition(d)).indexOf(t),o=e.size,l=(o-1)*r;return typeof n=="function"?n(s,o):i===1?s*r:l-s*r}const jD=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function ND(e){const t=jD.exec(e);if(!t)return[,];const[,n,r,i]=t;return[`--${n??r}`,i]}const AD=4;function aS(e,t,n=1){$s(n<=AD,`Max CSS variable fallback depth detected in property "${e}". This may indicate a circular fallback dependency.`,"max-css-var-depth");const[r,i]=ND(e);if(!r)return;const s=window.getComputedStyle(t).getPropertyValue(r);if(s){const o=s.trim();return Nk(o)?parseFloat(o):o}return tm(i)?aS(i,t,n+1):i}const PD={type:"spring",stiffness:500,damping:25,restSpeed:10},ED=e=>({type:"spring",stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),MD={type:"keyframes",duration:.8},ID={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},RD=(e,{keyframes:t})=>t.length>2?MD:no.has(e)?e.startsWith("scale")?ED(t[1]):PD:ID,DD=e=>e!==null;function FD(e,{repeat:t,repeatType:n="loop"},r){const i=e.filter(DD),s=t&&n!=="loop"&&t%2===1?0:i.length-1;return!s||r===void 0?i[s]:r}function um(e,t){return(e==null?void 0:e[t])??(e==null?void 0:e.default)??e}function OD({when:e,delay:t,delayChildren:n,staggerChildren:r,staggerDirection:i,repeat:s,repeatType:o,repeatDelay:l,from:c,elapsed:u,...d}){return!!Object.keys(d).length}const dm=(e,t,n,r={},i,s)=>o=>{const l=um(r,e)||{},c=l.delay||r.delay||0;let{elapsed:u=0}=r;u=u-Gn(c);const d={keyframes:Array.isArray(n)?n:[null,n],ease:"easeOut",velocity:t.getVelocity(),...l,delay:-u,onUpdate:h=>{t.set(h),l.onUpdate&&l.onUpdate(h)},onComplete:()=>{o(),l.onComplete&&l.onComplete()},name:e,motionValue:t,element:s?void 0:i};OD(l)||Object.assign(d,RD(e,d)),d.duration&&(d.duration=Gn(d.duration)),d.repeatDelay&&(d.repeatDelay=Gn(d.repeatDelay)),d.from!==void 0&&(d.keyframes[0]=d.from);let p=!1;if((d.type===!1||d.duration===0&&!d.repeatDelay)&&(ef(d),d.delay===0&&(p=!0)),(ur.instantAnimations||ur.skipAnimations)&&(p=!0,ef(d),d.delay=0),d.allowFlatten=!l.type&&!l.ease,p&&!s&&t.get()!==void 0){const h=FD(d.keyframes,l);if(h!==void 0){Se.update(()=>{d.onUpdate(h),d.onComplete()});return}}return l.isSync?new lm(d):new CD(d)};function dv(e){const t=[{},{}];
vendor: 51,077 bytes, line 263
263return e==null||e.values.forEach((n,r)=>{t[0][r]=n.get(),t[1][r]=n.getVelocity()}),t}function pm(e,t,n,r){if(typeof t=="function"){const[i,s]=dv(r);t=t(n!==void 0?n:e.custom,i,s)}if(typeof t=="string"&&(t=e.variants&&e.variants[t]),typeof t=="function"){const[i,s]=dv(r);t=t(n!==void 0?n:e.custom,i,s)}return t}function ws(e,t,n){const r=e.getProps();return pm(r,t,n!==void 0?n:r.custom,e)}const lS=new Set(["width","height","top","left","right","bottom",...to]),pv=30,LD=e=>!isNaN(parseFloat(e));class _D{constructor(t,n={}){this.canTrackVelocity=null,this.events={},this.updateAndNotify=r=>{var s;const i=pt.now();if(this.updatedAt!==i&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(r),this.current!==this.prev&&((s=this.events.change)==null||s.notify(this.current),this.dependents))for(const o of this.dependents)o.dirty()},this.hasAnimated=!1,this.setCurrent(t),this.owner=n.owner}setCurrent(t){this.current=t,this.updatedAt=pt.now(),this.canTrackVelocity===null&&t!==void 0&&(this.canTrackVelocity=LD(this.current))}setPrevFrameValue(t=this.current){this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt}onChange(t){return this.on("change",t)}on(t,n){this.events[t]||(this.events[t]=new Jh);const r=this.events[t].add(n);return t==="change"?()=>{r(),Se.read(()=>{this.events.change.getSize()||this.stop()})}:r}clearListeners(){for(const t in this.events)this.events[t].clear()}attach(t,n){this.passiveEffect=t,this.stopPassiveEffect=n}set(t){this.passiveEffect?this.passiveEffect(t,this.updateAndNotify):this.updateAndNotify(t)}setWithVelocity(t,n,r){this.set(n),this.prev=void 0,this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt-r}jump(t,n=!0){this.updateAndNotify(t),this.prev=t,this.prevUpdatedAt=this.prevFrameValue=void 0,n&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}dirty(){var t;(t=this.events.change)==null||t.notify(this.current)}addDependent(t){this.dependents||(this.dependents=new Set),this.dependents.add(t)}removeDependent(t){this.dependents&&this.dependents.delete(t)}get(){return this.current}getPrevious(){return this.prev}getVelocity(){const t=pt.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||t-this.updatedAt>pv)return 0;const n=Math.min(this.updatedAt-this.prevUpdatedAt,pv);return Ek(parseFloat(this.current)-parseFloat(this.prevFrameValue),n)}start(t){return this.stop(),new Promise(n=>{this.hasAnimated=!0,this.animation=t(n),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){var t,n;(t=this.dependents)==null||t.clear(),(n=this.events.destroy)==null||n.notify(),this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function Us(e,t){return new _D(e,t)}const tf=e=>Array.isArray(e);function BD(e,t,n){e.hasValue(t)?e.getValue(t).set(n):e.addValue(t,Us(n))}function GD(e){return tf(e)?e[e.length-1]||0:e}function zD(e,t){const n=ws(e,t);let{transitionEnd:r={},transition:i={},...s}=n||{};s={...s,...r};for(const o in s){const l=GD(s[o]);BD(e,o,l)}}const nt=e=>!!(e&&e.getVelocity);function VD(e){return!!(nt(e)&&e.add)}function nf(e,t){const n=e.getValue("willChange");if(VD(n))return n.add(t);if(!n&&ur.WillChange){const r=new ur.WillChange("auto");e.addValue("willChange",r),r.add(t)}}function fm(e){return e.replace(/([A-Z])/g,t=>`-${t.toLowerCase()}`)}const $D="framerAppearId",cS="data-"+fm($D);function uS(e){return e.props[cS]}function UD({protectedKeys:e,needsAnimating:t},n){const r=e.hasOwnProperty(n)&&t[n]!==!0;return t[n]=!1,r}function dS(e,t,{delay:n=0,transitionOverride:r,type:i}={}){let{transition:s=e.getDefaultTransition(),transitionEnd:o,...l}=t;const c=s==null?void 0:s.reduceMotion;r&&(s=r);const u=[],d=i&&e.animationState&&e.animationState.getState()[i];for(const p in l){const h=e.getValue(p,e.latestValues[p]??null),f=l[p];if(f===void 0||d&&UD(d,p))continue;const x={delay:n,...um(s||{},p)},g=h.get();if(g!==void 0&&!h.isAnimating&&!Array.isArray(f)&&f===g&&!x.velocity)continue;let w=!1;if(window.MotionHandoffAnimation){const v=uS(e);if(v){const k=window.MotionHandoffAnimation(v,p,Se);k!==null&&(x.startTime=k,w=!0)}}nf(e,p);const m=c??e.shouldReduceMotion;h.start(dm(p,h,f,m&&lS.has(p)?{type:!1}:x,e,w));const y=h.animation;y&&u.push(y)}return o&&Promise.all(u).then(()=>{Se.update(()=>{o&&zD(e,o)})}),u}function rf(e,t,n={}){var c;const r=ws(e,t,n.type==="exit"?(c=e.presenceContext)==null?void 0:c.custom:void 0);let{transition:i=e.getDefaultTransition()||{}}=r||{};n.transitionOverride&&(i=n.transitionOverride);const s=r?()=>Promise.all(dS(e,r,n)):()=>Promise.resolve(),o=e.variantChildren&&e.variantChildren.size?(u=0)=>{const{delayChildren:d=0,staggerChildren:p,staggerDirection:h}=i;return HD(e,t,u,d,p,h,n)}:()=>Promise.resolve(),{when:l}=i;if(l){const[u,d]=l==="beforeChildren"?[s,o]:[o,s];return u().then(()=>d())}else return Promise.all([s(),o(n.delay)])}function HD(e,t,n=0,r=0,i=0,s=1,o){const l=[];for(const c of e.variantChildren)c.notify("AnimationStart",t),l.push(rf(c,t,{...o,delay:n+(typeof r=="function"?0:r)+oS(e.variantChildren,c,r,i,s)}).then(()=>c.notify("AnimationComplete",t)));return Promise.all(l)}function WD(e,t,n={}){e.notify("AnimationStart",t);let r;if(Array.isArray(t)){const i=t.map(s=>rf(e,s,n));r=Promise.all(i)}else if(typeof t=="string")r=rf(e,t,n);else{const i=typeof t=="function"?ws(e,t,n.custom):t;r=Promise.all(dS(e,i,n))}return r.then(()=>{e.notify("AnimationComplete",t)})}const qD={test:e=>e==="auto",parse:e=>e},pS=e=>t=>t.test(e),fS=[eo,q,zn,Tr,xR,vR,qD],fv=e=>fS.find(pS(e));function KD(e){return typeof e=="number"?e===0:e!==null?e==="none"||e==="0"||Pk(e):!0}const YD=new Set(["brightness","contrast","saturate","opacity"]);function QD(e){const[t,n]=e.slice(0,-1).split("(");if(t==="drop-shadow")return e;const[r]=n.match(nm)||[];if(!r)return e;const i=n.replace(r,"");let s=YD.has(t)?1:0;return r!==n&&(s*=100),t+"("+s+i+")"}const XD=/\b([a-z-]*)\(.*?\)/gu,sf={...Zr,getAnimatableNone:e=>{const t=e.match(XD);return t?t.map(QD).join(" "):e}},hv={...eo,transform:Math.round},JD={rotate:Tr,rotateX:Tr,rotateY:Tr,rotateZ:Tr,scale:ll,scaleX:ll,scaleY:ll,scaleZ:ll,skew:Tr,skewX:Tr,skewY:Tr,distance:q,translateX:q,translateY:q,translateZ:q,x:q,y:q,z:q,perspective:q,transformPerspective:q,opacity:ma,originX:ev,originY:ev,originZ:q},hm={borderWidth:q,borderTopWidth:q,borderRightWidth:q,borderBottomWidth:q,borderLeftWidth:q,borderRadius:q,borderTopLeftRadius:q,borderTopRightRadius:q,borderBottomRightRadius:q,borderBottomLeftRadius:q,width:q,maxWidth:q,height:q,maxHeight:q,top:q,right:q,bottom:q,left:q,inset:q,insetBlock:q,insetBlockStart:q,insetBlockEnd:q,insetInline:q,insetInlineStart:q,insetInlineEnd:q,padding:q,paddingTop:q,paddingRight:q,paddingBottom:q,paddingLeft:q,paddingBlock:q,paddingBlockStart:q,paddingBlockEnd:q,paddingInline:q,paddingInlineStart:q,paddingInlineEnd:q,margin:q,marginTop:q,marginRight:q,marginBottom:q,marginLeft:q,marginBlock:q,marginBlockStart:q,marginBlockEnd:q,marginInline:q,marginInlineStart:q,marginInlineEnd:q,fontSize:q,backgroundPositionX:q,backgroundPositionY:q,...JD,zIndex:hv,fillOpacity:ma,strokeOpacity:ma,numOctaves:hv},ZD={...hm,color:_e,backgroundColor:_e,outlineColor:_e,fill:_e,stroke:_e,borderColor:_e,borderTopColor:_e,borderRightColor:_e,borderBottomColor:_e,borderLeftColor:_e,filter:sf,WebkitFilter:sf},hS=e=>ZD[e];function mS(e,t){let n=hS(e);return n!==sf&&(n=Zr),n.getAnimatableNone?n.getAnimatableNone(t):void 0}const e4=new Set(["auto","none","0"]);function t4(e,t,n){let r=0,i;for(;r<e.length&&!i;){const s=e[r];typeof s=="string"&&!e4.has(s)&&ga(s).values.length&&(i=e[r]),r++}if(i&&n)for(const s of t)e[s]=mS(n,i)}class n4 extends cm{constructor(t,n,r,i,s){super(t,n,r,i,s,!0)}readKeyframes(){const{unresolvedKeyframes:t,element:n,name:r}=this;if(!n||!n.current)return;super.readKeyframes();for(let d=0;d<t.length;d++){let p=t[d];if(typeof p=="string"&&(p=p.trim(),tm(p))){const h=aS(p,n.current);h!==void 0&&(t[d]=h),d===t.length-1&&(this.finalKeyframe=p)}}if(this.resolveNoneKeyframes(),!lS.has(r)||t.length!==2)return;const[i,s]=t,o=fv(i),l=fv(s),c=Zy(i),u=Zy(s);if(c!==u&&Lr[r]){this.needsMeasurement=!0;return}if(o!==l)if(lv(o)&&lv(l))for(let d=0;d<t.length;d++){const p=t[d];typeof p=="string"&&(t[d]=parseFloat(p))}else Lr[r]&&(this.needsMeasurement=!0)}resolveNoneKeyframes(){const{unresolvedKeyframes:t,name:n}=this,r=[];for(let i=0;i<t.length;i++)(t[i]===null||KD(t[i]))&&r.push(i);r.length&&t4(t,r,n)}measureInitialState(){const{element:t,unresolvedKeyframes:n,name:r}=this;if(!t||!t.current)return;r==="height"&&(this.suspendedScrollY=window.pageYOffset),this.measuredOrigin=Lr[r](t.measureViewportBox(),window.getComputedStyle(t.current)),n[0]=this.measuredOrigin;const i=n[n.length-1];i!==void 0&&t.getValue(r,i).jump(i,!1)}measureEndState(){var l;const{element:t,name:n,unresolvedKeyframes:r}=this;if(!t||!t.current)return;const i=t.getValue(n);i&&i.jump(this.measuredOrigin,!1);const s=r.length-1,o=r[s];r[s]=Lr[n](t.measureViewportBox(),window.getComputedStyle(t.current)),o!==null&&this.finalKeyframe===void 0&&(this.finalKeyframe=o),(l=this.removedTransforms)!=null&&l.length&&this.removedTransforms.forEach(([c,u])=>{t.getValue(c).set(u)}),this.resolveNoneKeyframes()}}function r4(e,t,n){if(e==null)return[];if(e instanceof EventTarget)return[e];if(typeof e=="string"){const i=document.querySelectorAll(e);return i?Array.from(i):[]}return Array.from(e).filter(r=>r!=null)}const gS=(e,t)=>t&&typeof e=="number"?t.transform(e):e;function of(e){return Ak(e)&&"offsetHeight"in e}const{schedule:mm,cancel:KB}=zk(queueMicrotask,!1),dn={x:!1,y:!1};function yS(){return dn.x||dn.y}function i4(e){return e==="x"||e==="y"?dn[e]?null:(dn[e]=!0,()=>{dn[e]=!1}):dn.x||dn.y?null:(dn.x=dn.y=!0,()=>{dn.x=dn.y=!1})}function vS(e,t){const n=r4(e),r=new AbortController,i={passive:!0,...t,signal:r.signal};return[n,i,()=>r.abort()]}function mv(e){return!(e.pointerType==="touch"||yS())}function s4(e,t,n={}){const[r,i,s]=vS(e,n),o=l=>{if(!mv(l))return;const{target:c}=l,u=t(c,l);if(typeof u!="function"||!c)return;const d=p=>{mv(p)&&(u(p),c.removeEventListener("pointerleave",d))};c.addEventListener("pointerleave",d,i)};return r.forEach(l=>{l.addEventListener("pointerenter",o,i)}),s}const xS=(e,t)=>t?e===t?!0:xS(e,t.parentElement):!1,gm=e=>e.pointerType==="mouse"?typeof e.button!="number"||e.button<=0:e.isPrimary!==!1,o4=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function wS(e){return o4.has(e.tagName)||e.isContentEditable===!0}const Il=new WeakSet;function gv(e){return t=>{t.key==="Enter"&&e(t)}}function ld(e,t){e.dispatchEvent(new PointerEvent("pointer"+t,{isPrimary:!0,bubbles:!0}))}const a4=(e,t)=>{const n=e.currentTarget;if(!n)return;const r=gv(()=>{if(Il.has(n))return;ld(n,"down");const i=gv(()=>{ld(n,"up")}),s=()=>ld(n,"cancel");n.addEventListener("keyup",i,t),n.addEventListener("blur",s,t)});n.addEventListener("keydown",r,t),n.addEventListener("blur",()=>n.removeEventListener("keydown",r),t)};function yv(e){return gm(e)&&!yS()}function l4(e,t,n={}){const[r,i,s]=vS(e,n),o=l=>{const c=l.currentTarget;if(!yv(l))return;Il.add(c);const u=t(c,l),d=(f,x)=>{window.removeEventListener("pointerup",p),window.removeEventListener("pointercancel",h),Il.has(c)&&Il.delete(c),yv(f)&&typeof u=="function"&&u(f,{success:x})},p=f=>{d(f,c===window||c===document||n.useGlobalTarget||xS(c,f.target))},h=f=>{d(f,!1)};window.addEventListener("pointerup",p,i),window.addEventListener("pointercancel",h,i)};return r.forEach(l=>{(n.useGlobalTarget?window:l).addEventListener("pointerdown",o,i),of(l)&&(l.addEventListener("focus",u=>a4(u,i)),!wS(l)&&!l.hasAttribute("tabindex")&&(l.tabIndex=0))}),s}function bS(e){return Ak(e)&&"ownerSVGElement"in e}function c4(e){return bS(e)&&e.tagName==="svg"}const u4=[...fS,_e,Zr],d4=e=>u4.find(pS(e)),vv=()=>({translate:0,scale:1,origin:0,originPoint:0}),os=()=>({x:vv(),y:vv()}),xv=()=>({min:0,max:0}),Ge=()=>({x:xv(),y:xv()}),af={current:null},kS={current:!1},p4=typeof window<"u";function f4(){if(kS.current=!0,!!p4)if(window.matchMedia){const e=window.matchMedia("(prefers-reduced-motion)"),t=()=>af.current=e.matches;e.addEventListener("change",t),t()}else af.current=!1}const h4=new WeakMap;function su(e){return e!==null&&typeof e=="object"&&typeof e.start=="function"}function ya(e){return typeof e=="string"||Array.isArray(e)}const ym=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],vm=["initial",...ym];function ou(e){return su(e.animate)||vm.some(t=>ya(e[t]))}function SS(e){return!!(ou(e)||e.variants)}function m4(e,t,n){for(const r in t){const i=t[r],s=n[r];if(nt(i))e.addValue(r,i);else if(nt(s))e.addValue(r,Us(i,{owner:e}));else if(s!==i)if(e.hasValue(r)){const o=e.getValue(r);o.liveStyle===!0?o.jump(i):o.hasAnimated||o.set(i)}else{const o=e.getStaticValue(r);e.addValue(r,Us(o!==void 0?o:i,{owner:e}))}}for(const r in n)t[r]===void 0&&e.removeValue(r);return t}const wv=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];let wc={};function TS(e){wc=e}function g4(){return wc}class y4{scrapeMotionValuesFromProps(t,n,r){return{}}constructor({parent:t,props:n,presenceContext:r,reducedMotionConfig:i,blockInitialAnimation:s,visualState:o},l={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.KeyframeResolver=cm,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{const h=pt.now();this.renderScheduledAt<h&&(this.renderScheduledAt=h,Se.render(this.render,!1,!0))};const{latestValues:c,renderState:u}=o;this.latestValues=c,this.baseTarget={...c},this.initialValues=n.initial?{...c}:{},this.renderState=u,this.parent=t,this.props=n,this.presenceContext=r,this.depth=t?t.depth+1:0,this.reducedMotionConfig=i,this.options=l,this.blockInitialAnimation=!!s,this.isControllingVariants=ou(n),this.isVariantNode=SS(n),this.isVariantNode&&(this.variantChildren=new Set),this.manuallyAnimateOnMount=!!(t&&t.current);const{willChange:d,...p}=this.scrapeMotionValuesFromProps(n,{},this);for(const h in p){const f=p[h];c[h]!==void 0&&nt(f)&&f.set(c[h])}}mount(t){var n;this.current=t,h4.set(t,this),this.projection&&!this.projection.instance&&this.projection.mount(t),this.parent&&this.isVariantNode&&!this.isControllingVariants&&(this.removeFromVariantTree=this.parent.addVariantChild(this)),this.values.forEach((r,i)=>this.bindToMotionValue(i,r)),this.reducedMotionConfig==="never"?this.shouldReduceMotion=!1:this.reducedMotionConfig==="always"?this.shouldReduceMotion=!0:(kS.current||f4(),this.shouldReduceMotion=af.current),(n=this.parent)==null||n.addChild(this),this.update(this.props,this.presenceContext)}unmount(){var t;this.projection&&this.projection.unmount(),Jr(this.notifyUpdate),Jr(this.render),this.valueSubscriptions.forEach(n=>n()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),(t=this.parent)==null||t.removeChild(this);for(const n in this.events)this.events[n].clear();for(const n in this.features){const r=this.features[n];r&&(r.unmount(),r.isMounted=!1)}this.current=null}addChild(t){this.children.add(t),this.enteringChildren??(this.enteringChildren=new Set),this.enteringChildren.add(t)}removeChild(t){this.children.delete(t),this.enteringChildren&&this.enteringChildren.delete(t)}bindToMotionValue(t,n){this.valueSubscriptions.has(t)&&this.valueSubscriptions.get(t)();const r=no.has(t);r&&this.onBindTransform&&this.onBindTransform();const i=n.on("change",o=>{this.latestValues[t]=o,this.props.onUpdate&&Se.preRender(this.notifyUpdate),r&&this.projection&&(this.projection.isTransformDirty=!0),this.scheduleRender()});let s;typeof window<"u"&&window.MotionCheckAppearSync&&(s=window.MotionCheckAppearSync(this,t,n)),this.valueSubscriptions.set(t,()=>{i(),s&&s(),n.owner&&n.stop()})}sortNodePosition(t){return!this.current||!this.sortInstanceNodePosition||this.type!==t.type?0:this.sortInstanceNodePosition(this.current,t.current)}updateFeatures(){let t="animation";for(t in wc){const n=wc[t];if(!n)continue;const{isEnabled:r,Feature:i}=n;if(!this.features[t]&&i&&r(this.props)&&(this.features[t]=new i(this)),this.features[t]){const s=this.features[t];s.isMounted?s.update():(s.mount(),s.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):Ge()}getStaticValue(t){return this.latestValues[t]}setStaticValue(t,n){this.latestValues[t]=n}update(t,n){(t.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=t,this.prevPresenceContext=this.presenceContext,this.presenceContext=n;for(let r=0;r<wv.length;r++){const i=wv[r];this.propEventSubscriptions[i]&&(this.propEventSubscriptions[i](),delete this.propEventSubscriptions[i]);const s="on"+i,o=t[s];o&&(this.propEventSubscriptions[i]=this.on(i,o))}this.prevMotionValues=m4(this,this.scrapeMotionValuesFromProps(t,this.prevProps||{},this),this.prevMotionValues),this.handleChildMotionValue&&this.handleChildMotionValue()}getProps(){return this.props}getVariant(t){return this.props.variants?this.props.variants[t]:void 0}getDefaultTransition(){return this.props.transition}getTransformPagePoint(){return this.props.transformPagePoint}getClosestVariantNode(){return this.isVariantNode?this:this.parent?this.parent.getClosestVariantNode():void 0}addVariantChild(t){const n=this.getClosestVariantNode();if(n)return n.variantChildren&&n.variantChildren.add(t),()=>n.variantChildren.delete(t)}addValue(t,n){const r=this.values.get(t);n!==r&&(r&&this.removeValue(t),this.bindToMotionValue(t,n),this.values.set(t,n),this.latestValues[t]=n.get())}removeValue(t){this.values.delete(t);const n=this.valueSubscriptions.get(t);n&&(n(),this.valueSubscriptions.delete(t)),delete this.latestValues[t],this.removeValueFromRenderState(t,this.renderState)}hasValue(t){return this.values.has(t)}getValue(t,n){if(this.props.values&&this.props.values[t])return this.props.values[t];let r=this.values.get(t);return r===void 0&&n!==void 0&&(r=Us(n===null?void 0:n,{owner:this}),this.addValue(t,r)),r}readValue(t,n){let r=this.latestValues[t]!==void 0||!this.current?this.latestValues[t]:this.getBaseTargetFromProps(this.props,t)??this.readValueFromInstance(this.current,t,this.options);return r!=null&&(typeof r=="string"&&(Nk(r)||Pk(r))?r=parseFloat(r):!d4(r)&&Zr.test(n)&&(r=mS(t,n)),this.setBaseTarget(t,nt(r)?r.get():r)),nt(r)?r.get():r}setBaseTarget(t,n){this.baseTarget[t]=n}getBaseTarget(t){var s;const{initial:n}=this.props;let r;if(typeof n=="string"||typeof n=="object"){const o=pm(this.props,n,(s=this.presenceContext)==null?void 0:s.custom);o&&(r=o[t])}if(n&&r!==void 0)return r;const i=this.getBaseTargetFromProps(this.props,t);return i!==void 0&&!nt(i)?i:this.initialValues[t]!==void 0&&r===void 0?void 0:this.baseTarget[t]}on(t,n){return this.events[t]||(this.events[t]=new Jh),this.events[t].add(n)}notify(t,...n){this.events[t]&&this.events[t].notify(...n)}scheduleRenderMicrotask(){mm.render(this.render)}}class CS extends y4{constructor(){super(...arguments),this.KeyframeResolver=n4}sortInstanceNodePosition(t,n){return t.compareDocumentPosition(n)&2?1:-1}getBaseTargetFromProps(t,n){const r=t.style;return r?r[n]:void 0}removeValueFromRenderState(t,{vars:n,style:r}){delete n[t],delete r[t]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:t}=this.props;nt(t)&&(this.childSubscription=t.on("change",n=>{this.current&&(this.current.textContent=`${n}`)}))}}class ii{constructor(t){this.isMounted=!1,this.node=t}update(){}}function jS({top:e,left:t,right:n,bottom:r}){return{x:{min:t,max:n},y:{min:e,max:r}}}function v4({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}function x4(e,t){if(!t)return e;const n=t({x:e.left,y:e.top}),r=t({x:e.right,y:e.bottom});return{top:n.y,left:n.x,bottom:r.y,right:r.x}}function cd(e){return e===void 0||e===1}function lf({scale:e,scaleX:t,scaleY:n}){return!cd(e)||!cd(t)||!cd(n)}function fi(e){return lf(e)||NS(e)||e.z||e.rotate||e.rotateX||e.rotateY||e.skewX||e.skewY}function NS(e){return bv(e.x)||bv(e.y)}function bv(e){return e&&e!=="0%"}function bc(e,t,n){const r=e-n,i=t*r;return n+i}function kv(e,t,n,r,i){return i!==void 0&&(e=bc(e,i,r)),bc(e,n,r)+t}function cf(e,t=0,n=1,r,i){e.min=kv(e.min,t,n,r,i),e.max=kv(e.max,t,n,r,i)}function AS(e,{x:t,y:n}){cf(e.x,t.translate,t.scale,t.originPoint),cf(e.y,n.translate,n.scale,n.originPoint)}const Sv=.999999999999,Tv=1.0000000000001;function w4(e,t,n,r=!1){const i=n.length;if(!i)return;t.x=t.y=1;let s,o;for(let l=0;l<i;l++){s=n[l],o=s.projectionDelta;const{visualElement:c}=s.options;c&&c.props.style&&c.props.style.display==="contents"||(r&&s.options.layoutScroll&&s.scroll&&s!==s.root&&ls(e,{x:-s.scroll.offset.x,y:-s.scroll.offset.y}),o&&(t.x*=o.x.scale,t.y*=o.y.scale,AS(e,o)),r&&fi(s.latestValues)&&ls(e,s.latestValues))}t.x<Tv&&t.x>Sv&&(t.x=1),t.y<Tv&&t.y>Sv&&(t.y=1)}function as(e,t){e.min=e.min+t,e.max=e.max+t}function Cv(e,t,n,r,i=.5){const s=Ae(e.min,e.max,i);cf(e,t,n,s,r)}function ls(e,t){Cv(e.x,t.x,t.scaleX,t.scale,t.originX),Cv(e.y,t.y,t.scaleY,t.scale,t.originY)}function PS(e,t){return jS(x4(e.getBoundingClientRect(),t))}function b4(e,t,n){const r=PS(e,n),{scroll:i}=t;return i&&(as(r.x,i.offset.x),as(r.y,i.offset.y)),r}const k4={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},S4=to.length;function T4(e,t,n){let r="",i=!0;for(let s=0;s<S4;s++){const o=to[s],l=e[o];if(l===void 0)continue;let c=!0;if(typeof l=="number")c=l===(o.startsWith("scale")?1:0);else{const u=parseFloat(l);c=o.startsWith("scale")?u===1:u===0}if(!c||n){const u=gS(l,hm[o]);if(!c){i=!1;const d=k4[o]||o;r+=`${d}(${u}) `}n&&(t[o]=u)}}return r=r.trim(),n?r=n(t,i?"":r):i&&(r="none"),r}function xm(e,t,n){const{style:r,vars:i,transformOrigin:s}=e;let o=!1,l=!1;for(const c in t){const u=t[c];if(no.has(c)){o=!0;continue}else if($k(c)){i[c]=u;continue}else{const d=gS(u,hm[c]);c.startsWith("origin")?(l=!0,s[c]=d):r[c]=d}}if(t.transform||(o||n?r.transform=T4(t,e.transform,n):r.transform&&(r.transform="none")),l){const{originX:c="50%",originY:u="50%",originZ:d=0}=s;r.transformOrigin=`${c} ${u} ${d}`}}function ES(e,{style:t,vars:n},r,i){const s=e.style;let o;for(o in t)s[o]=t[o];i==null||i.applyProjectionStyles(s,r);for(o in n)s.setProperty(o,n[o])}function jv(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}const xo={correct:(e,t)=>{if(!t.target)return e;if(typeof e=="string")if(q.test(e))e=parseFloat(e);else return e;const n=jv(e,t.target.x),r=jv(e,t.target.y);return`${n}% ${r}%`}},C4={correct:(e,{treeScale:t,projectionDelta:n})=>{const r=e,i=Zr.parse(e);if(i.length>5)return r;const s=Zr.createTransformer(e),o=typeof i[0]!="number"?1:0,l=n.x.scale*t.x,c=n.y.scale*t.y;i[0+o]/=l,i[1+o]/=c;const u=Ae(l,c,.5);return typeof i[2+o]=="number"&&(i[2+o]/=u),typeof i[3+o]=="number"&&(i[3+o]/=u),s(i)}},uf={borderRadius:{...xo,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:xo,borderTopRightRadius:xo,borderBottomLeftRadius:xo,borderBottomRightRadius:xo,boxShadow:C4};function MS(e,{layout:t,layoutId:n}){return no.has(e)||e.startsWith("origin")||(t||n!==void 0)&&(!!uf[e]||e==="opacity")}function wm(e,t,n){var o;const r=e.style,i=t==null?void 0:t.style,s={};if(!r)return s;for(const l in r)(nt(r[l])||i&&nt(i[l])||MS(l,e)||((o=n==null?void 0:n.getValue(l))==null?void 0:o.liveStyle)!==void 0)&&(s[l]=r[l]);return s}function j4(e){return window.getComputedStyle(e)}class N4 extends CS{constructor(){super(...arguments),this.type="html",this.renderInstance=ES}readValueFromInstance(t,n){var r;if(no.has(n))return(r=this.projection)!=null&&r.isProjecting?Yp(n):nD(t,n);{const i=j4(t),s=($k(n)?i.getPropertyValue(n):i[n])||0;return typeof s=="string"?s.trim():s}}measureInstanceViewportBox(t,{transformPagePoint:n}){return PS(t,n)}build(t,n,r){xm(t,n,r.transformTemplate)}scrapeMotionValuesFromProps(t,n,r){return wm(t,n,r)}}const A4={offset:"stroke-dashoffset",array:"stroke-dasharray"},P4={offset:"strokeDashoffset",array:"strokeDasharray"};function E4(e,t,n=1,r=0,i=!0){e.pathLength=1;const s=i?A4:P4;e[s.offset]=`${-r}`,e[s.array]=`${t} ${n}`}const M4=["offsetDistance","offsetPath","offsetRotate","offsetAnchor"];function IS(e,{attrX:t,attrY:n,attrScale:r,pathLength:i,pathSpacing:s=1,pathOffset:o=0,...l},c,u,d){if(xm(e,l,u),c){e.style.viewBox&&(e.attrs.viewBox=e.style.viewBox);return}e.attrs=e.style,e.style={};const{attrs:p,style:h}=e;p.transform&&(h.transform=p.transform,delete p.transform),(h.transform||p.transformOrigin)&&(h.transformOrigin=p.transformOrigin??"50% 50%",delete p.transformOrigin),h.transform&&(h.transformBox=(d==null?void 0:d.transformBox)??"fill-box",delete p.transformBox);for(const f of M4)p[f]!==void 0&&(h[f]=p[f],delete p[f]);t!==void 0&&(p.x=t),n!==void 0&&(p.y=n),r!==void 0&&(p.scale=r),i!==void 0&&E4(p,i,s,o,!1)}const RS=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]),DS=e=>typeof e=="string"&&e.toLowerCase()==="svg";function I4(e,t,n,r){ES(e,t,void 0,r);for(const i in t.attrs)e.setAttribute(RS.has(i)?i:fm(i),t.attrs[i])}function FS(e,t,n){const r=wm(e,t,n);for(const i in e)if(nt(e[i])||nt(t[i])){const s=to.indexOf(i)!==-1?"attr"+i.charAt(0).toUpperCase()+i.substring(1):i;r[s]=e[i]}return r}class R4 extends CS{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=Ge}getBaseTargetFromProps(t,n){return t[n]}readValueFromInstance(t,n){if(no.has(n)){const r=hS(n);return r&&r.default||0}return n=RS.has(n)?n:fm(n),t.getAttribute(n)}scrapeMotionValuesFromProps(t,n,r){return FS(t,n,r)}build(t,n,r){IS(t,n,this.isSVGTag,r.transformTemplate,r.style)}renderInstance(t,n,r,i){I4(t,n,r,i)}mount(t){this.isSVGTag=DS(t.tagName),super.mount(t)}}const D4=vm.length;function OS(e){if(!e)return;if(!e.isControllingVariants){const n=e.parent?OS(e.parent)||{}:{};return e.props.initial!==void 0&&(n.initial=e.props.initial),n}const t={};for(let n=0;n<D4;n++){const r=vm[n],i=e.props[r];(ya(i)||i===!1)&&(t[r]=i)}return t}function LS(e,t){if(!Array.isArray(t))return!1;const n=t.length;if(n!==e.length)return!1;for(let r=0;r<n;r++)if(t[r]!==e[r])return!1;return!0}const F4=[...ym].reverse(),O4=ym.length;function L4(e){return t=>Promise.all(t.map(({animation:n,options:r})=>WD(e,n,r)))}function _4(e){let t=L4(e),n=Nv(),r=!0;const i=c=>(u,d)=>{var h;const p=ws(e,d,c==="exit"?(h=e.presenceContext)==null?void 0:h.custom:void 0);if(p){const{transition:f,transitionEnd:x,...g}=p;u={...u,...g,...x}}return u};function s(c){t=c(e)}function o(c){const{props:u}=e,d=OS(e.parent)||{},p=[],h=new Set;let f={},x=1/0;for(let w=0;w<O4;w++){const m=F4[w],y=n[m],v=u[m]!==void 0?u[m]:d[m],k=ya(v),C=m===c?y.isActive:null;C===!1&&(x=w);let T=v===d[m]&&v!==u[m]&&k;if(T&&r&&e.manuallyAnimateOnMount&&(T=!1),y.protectedKeys={...f},!y.isActive&&C===null||!v&&!y.prevProp||su(v)||typeof v=="boolean")continue;const N=B4(y.prevProp,v);let A=N||m===c&&y.isActive&&!T&&k||w>x&&k,P=!1;const M=Array.isArray(v)?v:[v];let O=M.reduce(i(m),{});C===!1&&(O={});const{prevResolvedValues:R={}}=y,U={...R,...O},_=V=>{A=!0,h.has(V)&&(P=!0,h.delete(V)),y.needsAnimating[V]=!0;const E=e.getValue(V);E&&(E.liveStyle=!1)};for(const V in U){const E=O[V],D=R[V];if(f.hasOwnProperty(V))continue;let S=!1;tf(E)&&tf(D)?S=!LS(E,D):S=E!==D,S?E!=null?_(V):h.add(V):E!==void 0&&h.has(V)?_(V):y.protectedKeys[V]=!0}y.prevProp=v,y.prevResolvedValues=O,y.isActive&&(f={...f,...O}),r&&e.blockInitialAnimation&&(A=!1);const $=T&&N;A&&(!$||P)&&p.push(...M.map(V=>{const E={type:m};if(typeof V=="string"&&r&&!$&&e.manuallyAnimateOnMount&&e.parent){const{parent:D}=e,S=ws(D,V);if(D.enteringChildren&&S){const{delayChildren:Q}=S.transition||{};E.delay=oS(D.enteringChildren,e,Q)}}return{animation:V,options:E}}))}if(h.size){const w={};if(typeof u.initial!="boolean"){const m=ws(e,Array.isArray(u.initial)?u.initial[0]:u.initial);m&&m.transition&&(w.transition=m.transition)}h.forEach(m=>{const y=e.getBaseTarget(m),v=e.getValue(m);v&&(v.liveStyle=!0),w[m]=y??null}),p.push({animation:w})}let g=!!p.length;return r&&(u.initial===!1||u.initial===u.animate)&&!e.manuallyAnimateOnMount&&(g=!1),r=!1,g?t(p):Promise.resolve()}function l(c,u){var p;if(n[c].isActive===u)return Promise.resolve();(p=e.variantChildren)==null||p.forEach(h=>{var f;return(f=h.animationState)==null?void 0:f.setActive(c,u)}),n[c].isActive=u;const d=o(c);for(const h in n)n[h].protectedKeys={};return d}return{animateChanges:o,setActive:l,setAnimateFunction:s,getState:()=>n,reset:()=>{n=Nv()}}}function B4(e,t){return typeof t=="string"?t!==e:Array.isArray(t)?!LS(t,e):!1}function ui(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function Nv(){return{animate:ui(!0),whileInView:ui(),whileHover:ui(),whileTap:ui(),whileDrag:ui(),whileFocus:ui(),exit:ui()}}function Av(e,t){e.min=t.min,e.max=t.max}function un(e,t){Av(e.x,t.x),Av(e.y,t.y)}function Pv(e,t){e.translate=t.translate,e.scale=t.scale,e.originPoint=t.originPoint,e.origin=t.origin}const _S=1e-4,G4=1-_S,z4=1+_S,BS=.01,V4=0-BS,$4=0+BS;function ft(e){return e.max-e.min}function U4(e,t,n){return Math.abs(e-t)<=n}function Ev(e,t,n,r=.5){e.origin=r,e.originPoint=Ae(t.min,t.max,e.origin),e.scale=ft(n)/ft(t),e.translate=Ae(n.min,n.max,e.origin)-e.originPoint,(e.scale>=G4&&e.scale<=z4||isNaN(e.scale))&&(e.scale=1),(e.translate>=V4&&e.translate<=$4||isNaN(e.translate))&&(e.translate=0)}function Go(e,t,n,r){Ev(e.x,t.x,n.x,r?r.originX:void 0),Ev(e.y,t.y,n.y,r?r.originY:void 0)}function Mv(e,t,n){e.min=n.min+t.min,e.max=e.min+ft(t)}function H4(e,t,n){Mv(e.x,t.x,n.x),Mv(e.y,t.y,n.y)}function Iv(e,t,n){e.min=t.min-n.min,e.max=e.min+ft(t)}function kc(e,t,n){Iv(e.x,t.x,n.x),Iv(e.y,t.y,n.y)}function Rv(e,t,n,r,i){return e-=t,e=bc(e,1/n,r),i!==void 0&&(e=bc(e,1/i,r)),e}function W4(e,t=0,n=1,r=.5,i,s=e,o=e){if(zn.test(t)&&(t=parseFloat(t),t=Ae(o.min,o.max,t/100)-o.min),typeof t!="number")return;let l=Ae(s.min,s.max,r);e===s&&(l-=t),e.min=Rv(e.min,t,n,l,i),e.max=Rv(e.max,t,n,l,i)}function Dv(e,t,[n,r,i],s,o){W4(e,t[n],t[r],t[i],t.scale,s,o)}const q4=["x","scaleX","originX"],K4=["y","scaleY","originY"];function Fv(e,t,n,r){Dv(e.x,t,q4,n?n.x:void 0,r?r.x:void 0),Dv(e.y,t,K4,n?n.y:void 0,r?r.y:void 0)}function Ov(e){return e.translate===0&&e.scale===1}function GS(e){return Ov(e.x)&&Ov(e.y)}function Lv(e,t){return e.min===t.min&&e.max===t.max}function Y4(e,t){return Lv(e.x,t.x)&&Lv(e.y,t.y)}function _v(e,t){return Math.round(e.min)===Math.round(t.min)&&Math.round(e.max)===Math.round(t.max)}function zS(e,t){return _v(e.x,t.x)&&_v(e.y,t.y)}function Bv(e){return ft(e.x)/ft(e.y)}function Gv(e,t){return e.translate===t.translate&&e.scale===t.scale&&e.originPoint===t.originPoint}function Ut(e){return[e("x"),e("y")]}function Q4(e,t,n){let r="";const i=e.x.translate/t.x,s=e.y.translate/t.y,o=(n==null?void 0:n.z)||0;if((i||s||o)&&(r=`translate3d(${i}px, ${s}px, ${o}px) `),(t.x!==1||t.y!==1)&&(r+=`scale(${1/t.x}, ${1/t.y}) `),n){const{transformPerspective:u,rotate:d,rotateX:p,rotateY:h,skewX:f,skewY:x}=n;u&&(r=`perspective(${u}px) ${r}`),d&&(r+=`rotate(${d}deg) `),p&&(r+=`rotateX(${p}deg) `),h&&(r+=`rotateY(${h}deg) `),f&&(r+=`skewX(${f}deg) `),x&&(r+=`skewY(${x}deg) `)}const l=e.x.scale*t.x,c=e.y.scale*t.y;return(l!==1||c!==1)&&(r+=`scale(${l}, ${c})`),r||"none"}const VS=["TopLeft","TopRight","BottomLeft","BottomRight"],X4=VS.length,zv=e=>typeof e=="string"?parseFloat(e):e,Vv=e=>typeof e=="number"||q.test(e);function J4(e,t,n,r,i,s){i?(e.opacity=Ae(0,n.opacity??1,Z4(r)),e.opacityExit=Ae(t.opacity??1,0,eF(r))):s&&(e.opacity=Ae(t.opacity??1,n.opacity??1,r));for(let o=0;o<X4;o++){const l=`border${VS[o]}Radius`;let c=$v(t,l),u=$v(n,l);if(c===void 0&&u===void 0)continue;c||(c=0),u||(u=0),c===0||u===0||Vv(c)===Vv(u)?(e[l]=Math.max(Ae(zv(c),zv(u),r),0),(zn.test(u)||zn.test(c))&&(e[l]+="%")):e[l]=u}(t.rotate||n.rotate)&&(e.rotate=Ae(t.rotate||0,n.rotate||0,r))}function $v(e,t){return e[t]!==void 0?e[t]:e.borderRadius}const Z4=$S(0,.5,Lk),eF=$S(.5,.95,Zt);function $S(e,t,n){return r=>r<e?0:r>t?1:n(ha(e,t,r))}function tF(e,t,n){const r=nt(e)?e:Us(e);return r.start(dm("",r,t,n)),r.animation}function va(e,t,n,r={passive:!0}){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n)}const nF=(e,t)=>e.depth-t.depth;class rF{constructor(){this.children=[],this.isDirty=!1}add(t){Yh(this.children,t),this.isDirty=!0}remove(t){Qh(this.children,t),this.isDirty=!0}forEach(t){this.isDirty&&this.children.sort(nF),this.isDirty=!1,this.children.forEach(t)}}function iF(e,t){const n=pt.now(),r=({timestamp:i})=>{const s=i-n;s>=t&&(Jr(r),e(s-t))};return Se.setup(r,!0),()=>Jr(r)}function Rl(e){return nt(e)?e.get():e}class sF{constructor(){this.members=[]}add(t){Yh(this.members,t),t.scheduleRender()}remove(t){if(Qh(this.members,t),t===this.prevLead&&(this.prevLead=void 0),t===this.lead){const n=this.members[this.members.length-1];n&&this.promote(n)}}relegate(t){const n=this.members.findIndex(i=>t===i);if(n===0)return!1;let r;for(let i=n;i>=0;i--){const s=this.members[i];if(s.isPresent!==!1){r=s;break}}return r?(this.promote(r),!0):!1}promote(t,n){const r=this.lead;if(t!==r&&(this.prevLead=r,this.lead=t,t.show(),r)){r.instance&&r.scheduleRender(),t.scheduleRender();const i=r.options.layoutDependency,s=t.options.layoutDependency;i!==void 0&&s!==void 0&&i===s||(t.resumeFrom=r,n&&(t.resumeFrom.preserveOpacity=!0),r.snapshot&&(t.snapshot=r.snapshot,t.snapshot.latestValues=r.animationValues||r.latestValues),t.root&&t.root.isUpdating&&(t.isLayoutDirty=!0));const{crossfade:l}=t.options;l===!1&&r.hide()}}exitAnimationComplete(){this.members.forEach(t=>{const{options:n,resumingFrom:r}=t;n.onExitComplete&&n.onExitComplete(),r&&r.options.onExitComplete&&r.options.onExitComplete()})}scheduleRender(){this.members.forEach(t=>{t.instance&&t.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}const Dl={hasAnimatedSinceResize:!0,hasEverUpdated:!1},ud=["","X","Y","Z"],oF=1e3;let aF=0;function dd(e,t,n,r){const{latestValues:i}=t;i[e]&&(n[e]=i[e],t.setStaticValue(e,0),r&&(r[e]=0))}function US(e){if(e.hasCheckedOptimisedAppear=!0,e.root===e)return;const{visualElement:t}=e.options;if(!t)return;const n=uS(t);if(window.MotionHasOptimisedAnimation(n,"transform")){const{layout:i,layoutId:s}=e.options;window.MotionCancelOptimisedAnimation(n,"transform",Se,!(i||s))}const{parent:r}=e;r&&!r.hasCheckedOptimisedAppear&&US(r)}function HS({attachResizeListener:e,defaultParent:t,measureScroll:n,checkIsScrollRoot:r,resetTransform:i}){return class{constructor(o={},l=t==null?void 0:t()){this.id=aF++,this.animationId=0,this.animationCommitId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.layoutVersion=0,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,this.nodes.forEach(uF),this.nodes.forEach(hF),this.nodes.forEach(mF),this.nodes.forEach(dF)},this.resolvedRelativeTargetAt=0,this.linkedParentVersion=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=o,this.root=l?l.root||l:this,this.path=l?[...l.path,l]:[],this.parent=l,this.depth=l?l.depth+1:0;for(let c=0;c<this.path.length;c++)this.path[c].shouldResetTransform=!0;this.root===this&&(this.nodes=new rF)}addEventListener(o,l){return this.eventHandlers.has(o)||this.eventHandlers.set(o,new Jh),this.eventHandlers.get(o).add(l)}notifyListeners(o,...l){const c=this.eventHandlers.get(o);c&&c.notify(...l)}hasListeners(o){return this.eventHandlers.has(o)}mount(o){if(this.instance)return;this.isSVG=bS(o)&&!c4(o),this.instance=o;const{layoutId:l,layout:c,visualElement:u}=this.options;if(u&&!u.current&&u.mount(o),this.root.nodes.add(this),this.parent&&this.parent.children.add(this),this.root.hasTreeAnimated&&(c||l)&&(this.isLayoutDirty=!0),e){let d,p=0;const h=()=>this.root.updateBlockedByResize=!1;Se.read(()=>{p=window.innerWidth}),e(o,()=>{const f=window.innerWidth;f!==p&&(p=f,this.root.updateBlockedByResize=!0,d&&d(),d=iF(h,250),Dl.hasAnimatedSinceResize&&(Dl.hasAnimatedSinceResize=!1,this.nodes.forEach(Wv)))})}l&&this.root.registerSharedNode(l,this),this.options.animate!==!1&&u&&(l||c)&&this.addEventListener("didUpdate",({delta:d,hasLayoutChanged:p,hasRelativeLayoutChanged:h,layout:f})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const x=this.options.transition||u.getDefaultTransition()||wF,{onLayoutAnimationStart:g,onLayoutAnimationComplete:w}=u.getProps(),m=!this.targetLayout||!zS(this.targetLayout,f),y=!p&&h;if(this.options.layoutRoot||this.resumeFrom||y||p&&(m||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0);const v={...um(x,"layout"),onPlay:g,onComplete:w};(u.shouldReduceMotion||this.options.layoutRoot)&&(v.delay=0,v.type=!1),this.startAnimation(v),this.setAnimationOrigin(d,y)}else p||Wv(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=f})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const o=this.getStack();o&&o.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,this.eventHandlers.clear(),Jr(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(gF),this.animationId++)}getTransformTemplate(){const{visualElement:o}=this.options;return o&&o.getProps().transformTemplate}willUpdate(o=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&US(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let d=0;d<this.path.length;d++){const p=this.path[d];p.shouldResetTransform=!0,p.updateScroll("snapshot"),p.options.layoutRoot&&p.willUpdate(!1)}const{layoutId:l,layout:c}=this.options;if(l===void 0&&!c)return;const u=this.getTransformTemplate();this.prevTransformTemplateValue=u?u(this.latestValues,""):void 0,this.updateSnapshot(),o&&this.notifyListeners("willUpdate")}update(){if(this.updateScheduled=!1,this.isUpdateBlocked()){this.unblockUpdate(),this.clearAllSnapshots(),this.nodes.forEach(Uv);return}if(this.animationId<=this.animationCommitId){this.nodes.forEach(Hv);return}this.animationCommitId=this.animationId,this.isUpdating?(this.isUpdating=!1,this.nodes.forEach(fF),this.nodes.forEach(lF),this.nodes.forEach(cF)):this.nodes.forEach(Hv),this.clearAllSnapshots();const l=pt.now();Ke.delta=Un(0,1e3/60,l-Ke.timestamp),Ke.timestamp=l,Ke.isProcessing=!0,nd.update.process(Ke),nd.preRender.process(Ke),nd.render.process(Ke),Ke.isProcessing=!1}didUpdate(){this.updateScheduled||(this.updateScheduled=!0,mm.read(this.scheduleUpdate))}clearAllSnapshots(){this.nodes.forEach(pF),this.sharedNodes.forEach(yF)}scheduleUpdateProjection(){this.projectionUpdateScheduled||(this.projectionUpdateScheduled=!0,Se.preRender(this.updateProjection,!1,!0))}scheduleCheckAfterUnmount(){Se.postRender(()=>{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure(),this.snapshot&&!ft(this.snapshot.measuredBox.x)&&!ft(this.snapshot.measuredBox.y)&&(this.snapshot=void 0))}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let c=0;c<this.path.length;c++)this.path[c].updateScroll();const o=this.layout;this.layout=this.measure(!1),this.layoutVersion++,this.layoutCorrected=Ge(),this.isLayoutDirty=!1,this.projectionDelta=void 0,this.notifyListeners("measure",this.layout.layoutBox);const{visualElement:l}=this.options;l&&l.notify("LayoutMeasure",this.layout.layoutBox,o?o.layoutBox:void 0)}updateScroll(o="measure"){let l=!!(this.options.layoutScroll&&this.instance);if(this.scroll&&this.scroll.animationId===this.root.animationId&&this.scroll.phase===o&&(l=!1),l&&this.instance){const c=r(this.instance);this.scroll={animationId:this.root.animationId,phase:o,isRoot:c,offset:n(this.instance),wasRoot:this.scroll?this.scroll.isRoot:c}}}resetTransform(){if(!i)return;const o=this.isLayoutDirty||this.shouldResetTransform||this.options.alwaysMeasureLayout,l=this.projectionDelta&&!GS(this.projectionDelta),c=this.getTransformTemplate(),u=c?c(this.latestValues,""):void 0,d=u!==this.prevTransformTemplateValue;o&&this.instance&&(l||fi(this.latestValues)||d)&&(i(this.instance,u),this.shouldResetTransform=!1,this.scheduleRender())}measure(o=!0){const l=this.measurePageBox();let c=this.removeElementScroll(l);return o&&(c=this.removeTransform(c)),bF(c),{animationId:this.root.animationId,measuredBox:l,layoutBox:c,latestValues:{},source:this.id}}measurePageBox(){var u;const{visualElement:o}=this.options;if(!o)return Ge();const l=o.measureViewportBox();if(!(((u=this.scroll)==null?void 0:u.wasRoot)||this.path.some(kF))){const{scroll:d}=this.root;d&&(as(l.x,d.offset.x),as(l.y,d.offset.y))}return l}removeElementScroll(o){var c;const l=Ge();if(un(l,o),(c=this.scroll)!=null&&c.wasRoot)return l;for(let u=0;u<this.path.length;u++){const d=this.path[u],{scroll:p,options:h}=d;d!==this.root&&p&&h.layoutScroll&&(p.wasRoot&&un(l,o),as(l.x,p.offset.x),as(l.y,p.offset.y))}return l}applyTransform(o,l=!1){const c=Ge();un(c,o);for(let u=0;u<this.path.length;u++){const d=this.path[u];!l&&d.options.layoutScroll&&d.scroll&&d!==d.root&&ls(c,{x:-d.scroll.offset.x,y:-d.scroll.offset.y}),fi(d.latestValues)&&ls(c,d.latestValues)}return fi(this.latestValues)&&ls(c,this.latestValues),c}removeTransform(o){const l=Ge();un(l,o);for(let c=0;c<this.path.length;c++){const u=this.path[c];if(!u.instance||!fi(u.latestValues))continue;lf(u.latestValues)&&u.updateSnapshot();const d=Ge(),p=u.measurePageBox();un(d,p),Fv(l,u.latestValues,u.snapshot?u.snapshot.layoutBox:void 0,d)}return fi(this.latestValues)&&Fv(l,this.latestValues),l}setTargetDelta(o){this.targetDelta=o,this.root.scheduleUpdateProjection(),this.isProjectionDirty=!0}setOptions(o){this.options={...this.options,...o,crossfade:o.crossfade!==void 0?o.crossfade:!0}}clearMeasurements(){this.scroll=void 0,this.layout=void 0,this.snapshot=void 0,this.prevTransformTemplateValue=void 0,this.targetDelta=void 0,this.target=void 0,this.isLayoutDirty=!1}forceRelativeParentToResolveTarget(){this.relativeParent&&this.relativeParent.resolvedRelativeTargetAt!==Ke.timestamp&&this.relativeParent.resolveTargetDelta(!0)}resolveTargetDelta(o=!1){var f;const l=this.getLead();this.isProjectionDirty||(this.isProjectionDirty=l.isProjectionDirty),this.isTransformDirty||(this.isTransformDirty=l.isTransformDirty),this.isSharedProjectionDirty||(this.isSharedProjectionDirty=l.isSharedProjectionDirty);const c=!!this.resumingFrom||this!==l;if(!(o||c&&this.isSharedProjectionDirty||this.isProjectionDirty||(f=this.parent)!=null&&f.isProjectionDirty||this.attemptToResolveRelativeTarget||this.root.updateBlockedByResize))return;const{layout:d,layoutId:p}=this.options;if(!this.layout||!(d||p))return;this.resolvedRelativeTargetAt=Ke.timestamp;const h=this.getClosestProjectingParent();h&&this.linkedParentVersion!==h.layoutVersion&&!h.options.layoutRoot&&this.removeRelativeTarget(),!this.targetDelta&&!this.relativeTarget&&(h&&h.layout?this.createRelativeTarget(h,this.layout.layoutBox,h.layout.layoutBox):this.removeRelativeTarget()),!(!this.relativeTarget&&!this.targetDelta)&&(this.target||(this.target=Ge(),this.targetWithTransforms=Ge()),this.relativeTarget&&this.relativeTargetOrigin&&this.relativeParent&&this.relativeParent.target?(this.forceRelativeParentToResolveTarget(),H4(this.target,this.relativeTarget,this.relativeParent.target)):this.targetDelta?(this.resumingFrom?this.target=this.applyTransform(this.layout.layoutBox):un(this.target,this.layout.layoutBox),AS(this.target,this.targetDelta)):un(this.target,this.layout.layoutBox),this.attemptToResolveRelativeTarget&&(this.attemptToResolveRelativeTarget=!1,h&&!!h.resumingFrom==!!this.resumingFrom&&!h.options.layoutScroll&&h.target&&this.animationProgress!==1?this.createRelativeTarget(h,this.target,h.target):this.relativeParent=this.relativeTarget=void 0))}getClosestProjectingParent(){if(!(!this.parent||lf(this.parent.latestValues)||NS(this.parent.latestValues)))return this.parent.isProjecting()?this.parent:this.parent.getClosestProjectingParent()}isProjecting(){return!!((this.relativeTarget||this.targetDelta||this.options.layoutRoot)&&this.layout)}createRelativeTarget(o,l,c){this.relativeParent=o,this.linkedParentVersion=o.layoutVersion,this.forceRelativeParentToResolveTarget(),this.relativeTarget=Ge(),this.relativeTargetOrigin=Ge(),kc(this.relativeTargetOrigin,l,c),un(this.relativeTarget,this.relativeTargetOrigin)}removeRelativeTarget(){this.relativeParent=this.relativeTarget=void 0}calcProjection(){var x;const o=this.getLead(),l=!!this.resumingFrom||this!==o;let c=!0;if((this.isProjectionDirty||(x=this.parent)!=null&&x.isProjectionDirty)&&(c=!1),l&&(this.isSharedProjectionDirty||this.isTransformDirty)&&(c=!1),this.resolvedRelativeTargetAt===Ke.timestamp&&(c=!1),c)return;const{layout:u,layoutId:d}=this.options;if(this.isTreeAnimating=!!(this.parent&&this.parent.isTreeAnimating||this.currentAnimation||this.pendingAnimation),this.isTreeAnimating||(this.targetDelta=this.relativeTarget=void 0),!this.layout||!(u||d))return;un(this.layoutCorrected,this.layout.layoutBox);const p=this.treeScale.x,h=this.treeScale.y;w4(this.layoutCorrected,this.treeScale,this.path,l),o.layout&&!o.target&&(this.treeScale.x!==1||this.treeScale.y!==1)&&(o.target=o.layout.layoutBox,o.targetWithTransforms=Ge());const{target:f}=o;if(!f){this.prevProjectionDelta&&(this.createProjectionDeltas(),this.scheduleRender());return}!this.projectionDelta||!this.prevProjectionDelta?this.createProjectionDeltas():(Pv(this.prevProjectionDelta.x,this.projectionDelta.x),Pv(this.prevProjectionDelta.y,this.projectionDelta.y)),Go(this.projectionDelta,this.layoutCorrected,f,this.latestValues),(this.treeScale.x!==p||this.treeScale.y!==h||!Gv(this.projectionDelta.x,this.prevProjectionDelta.x)||!Gv(this.projectionDelta.y,this.prevProjectionDelta.y))&&(this.hasProjected=!0,this.scheduleRender(),this.notifyListeners("projectionUpdate",f))}hide(){this.isVisible=!1}show(){this.isVisible=!0}scheduleRender(o=!0){var l;if((l=this.options.visualElement)==null||l.scheduleRender(),o){const c=this.getStack();c&&c.scheduleRender()}this.resumingFrom&&!this.resumingFrom.instance&&(this.resumingFrom=void 0)}createProjectionDeltas(){this.prevProjectionDelta=os(),this.projectionDelta=os(),this.projectionDeltaWithTransform=os()}setAnimationOrigin(o,l=!1){const c=this.snapshot,u=c?c.latestValues:{},d={...this.latestValues},p=os();(!this.relativeParent||!this.relativeParent.options.layoutRoot)&&(this.relativeTarget=this.relativeTargetOrigin=void 0),this.attemptToResolveRelativeTarget=!l;const h=Ge(),f=c?c.source:void 0,x=this.layout?this.layout.source:void 0,g=f!==x,w=this.getStack(),m=!w||w.members.length<=1,y=!!(g&&!m&&this.options.crossfade===!0&&!this.path.some(xF));this.animationProgress=0;let v;this.mixTargetDelta=k=>{const C=k/1e3;qv(p.x,o.x,C),qv(p.y,o.y,C),this.setTargetDelta(p),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(kc(h,this.layout.layoutBox,this.relativeParent.layout.layoutBox),vF(this.relativeTarget,this.relativeTargetOrigin,h,C),v&&Y4(this.relativeTarget,v)&&(this.isProjectionDirty=!1),v||(v=Ge()),un(v,this.relativeTarget)),g&&(this.animationValues=d,J4(d,u,this.latestValues,C,y,m)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=C},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(o){var l,c,u;this.notifyListeners("animationStart"),(l=this.currentAnimation)==null||l.stop(),(u=(c=this.resumingFrom)==null?void 0:c.currentAnimation)==null||u.stop(),this.pendingAnimation&&(Jr(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=Se.update(()=>{Dl.hasAnimatedSinceResize=!0,this.motionValue||(this.motionValue=Us(0)),this.currentAnimation=tF(this.motionValue,[0,1e3],{...o,velocity:0,isSync:!0,onUpdate:d=>{this.mixTargetDelta(d),o.onUpdate&&o.onUpdate(d)},onStop:()=>{},onComplete:()=>{o.onComplete&&o.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const o=this.getStack();o&&o.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(oF),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const o=this.getLead();let{targetWithTransforms:l,target:c,layout:u,latestValues:d}=o;if(!(!l||!c||!u)){if(this!==o&&this.layout&&u&&WS(this.options.animationType,this.layout.layoutBox,u.layoutBox)){c=this.target||Ge();const p=ft(this.layout.layoutBox.x);
vendor: 5,324 bytes, line 263
263c.x.min=o.target.x.min,c.x.max=c.x.min+p;const h=ft(this.layout.layoutBox.y);c.y.min=o.target.y.min,c.y.max=c.y.min+h}un(l,c),ls(l,d),Go(this.projectionDeltaWithTransform,this.layoutCorrected,l,d)}}registerSharedNode(o,l){this.sharedNodes.has(o)||this.sharedNodes.set(o,new sF),this.sharedNodes.get(o).add(l);const u=l.options.initialPromotionConfig;l.promote({transition:u?u.transition:void 0,preserveFollowOpacity:u&&u.shouldPreserveFollowOpacity?u.shouldPreserveFollowOpacity(l):void 0})}isLead(){const o=this.getStack();return o?o.lead===this:!0}getLead(){var l;const{layoutId:o}=this.options;return o?((l=this.getStack())==null?void 0:l.lead)||this:this}getPrevLead(){var l;const{layoutId:o}=this.options;return o?(l=this.getStack())==null?void 0:l.prevLead:void 0}getStack(){const{layoutId:o}=this.options;if(o)return this.root.sharedNodes.get(o)}promote({needsReset:o,transition:l,preserveFollowOpacity:c}={}){const u=this.getStack();u&&u.promote(this,c),o&&(this.projectionDelta=void 0,this.needsReset=!0),l&&this.setOptions({transition:l})}relegate(){const o=this.getStack();return o?o.relegate(this):!1}resetSkewAndRotation(){const{visualElement:o}=this.options;if(!o)return;let l=!1;const{latestValues:c}=o;if((c.z||c.rotate||c.rotateX||c.rotateY||c.rotateZ||c.skewX||c.skewY)&&(l=!0),!l)return;const u={};c.z&&dd("z",o,u,this.animationValues);for(let d=0;d<ud.length;d++)dd(`rotate${ud[d]}`,o,u,this.animationValues),dd(`skew${ud[d]}`,o,u,this.animationValues);o.render();for(const d in u)o.setStaticValue(d,u[d]),this.animationValues&&(this.animationValues[d]=u[d]);o.scheduleRender()}applyProjectionStyles(o,l){if(!this.instance||this.isSVG)return;if(!this.isVisible){o.visibility="hidden";return}const c=this.getTransformTemplate();if(this.needsReset){this.needsReset=!1,o.visibility="",o.opacity="",o.pointerEvents=Rl(l==null?void 0:l.pointerEvents)||"",o.transform=c?c(this.latestValues,""):"none";return}const u=this.getLead();if(!this.projectionDelta||!this.layout||!u.target){this.options.layoutId&&(o.opacity=this.latestValues.opacity!==void 0?this.latestValues.opacity:1,o.pointerEvents=Rl(l==null?void 0:l.pointerEvents)||""),this.hasProjected&&!fi(this.latestValues)&&(o.transform=c?c({},""):"none",this.hasProjected=!1);return}o.visibility="";const d=u.animationValues||u.latestValues;this.applyTransformsToTarget();let p=Q4(this.projectionDeltaWithTransform,this.treeScale,d);c&&(p=c(d,p)),o.transform=p;const{x:h,y:f}=this.projectionDelta;o.transformOrigin=`${h.origin*100}% ${f.origin*100}% 0`,u.animationValues?o.opacity=u===this?d.opacity??this.latestValues.opacity??1:this.preserveOpacity?this.latestValues.opacity:d.opacityExit:o.opacity=u===this?d.opacity!==void 0?d.opacity:"":d.opacityExit!==void 0?d.opacityExit:0;for(const x in uf){if(d[x]===void 0)continue;const{correct:g,applyTo:w,isCSSVariable:m}=uf[x],y=p==="none"?d[x]:g(d[x],u);if(w){const v=w.length;for(let k=0;k<v;k++)o[w[k]]=y}else m?this.options.visualElement.renderState.vars[x]=y:o[x]=y}this.options.layoutId&&(o.pointerEvents=u===this?Rl(l==null?void 0:l.pointerEvents)||"":"none")}clearSnapshot(){this.resumeFrom=this.snapshot=void 0}resetTree(){this.root.nodes.forEach(o=>{var l;return(l=o.currentAnimation)==null?void 0:l.stop()}),this.root.nodes.forEach(Uv),this.root.sharedNodes.clear()}}}function lF(e){e.updateLayout()}function cF(e){var n;const t=((n=e.resumeFrom)==null?void 0:n.snapshot)||e.snapshot;if(e.isLead()&&e.layout&&t&&e.hasListeners("didUpdate")){const{layoutBox:r,measuredBox:i}=e.layout,{animationType:s}=e.options,o=t.source!==e.layout.source;s==="size"?Ut(p=>{const h=o?t.measuredBox[p]:t.layoutBox[p],f=ft(h);h.min=r[p].min,h.max=h.min+f}):WS(s,t.layoutBox,r)&&Ut(p=>{const h=o?t.measuredBox[p]:t.layoutBox[p],f=ft(r[p]);h.max=h.min+f,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[p].max=e.relativeTarget[p].min+f)});const l=os();Go(l,r,t.layoutBox);const c=os();o?Go(c,e.applyTransform(i,!0),t.measuredBox):Go(c,r,t.layoutBox);const u=!GS(l);let d=!1;if(!e.resumeFrom){const p=e.getClosestProjectingParent();if(p&&!p.resumeFrom){const{snapshot:h,layout:f}=p;if(h&&f){const x=Ge();kc(x,t.layoutBox,h.layoutBox);const g=Ge();kc(g,r,f.layoutBox),zS(x,g)||(d=!0),p.options.layoutRoot&&(e.relativeTarget=g,e.relativeTargetOrigin=x,e.relativeParent=p)}}}e.notifyListeners("didUpdate",{layout:r,snapshot:t,delta:c,layoutDelta:l,hasLayoutChanged:u,hasRelativeLayoutChanged:d})}else if(e.isLead()){const{onExitComplete:r}=e.options;r&&r()}e.options.transition=void 0}function uF(e){e.parent&&(e.isProjecting()||(e.isProjectionDirty=e.parent.isProjectionDirty),e.isSharedProjectionDirty||(e.isSharedProjectionDirty=!!(e.isProjectionDirty||e.parent.isProjectionDirty||e.parent.isSharedProjectionDirty)),e.isTransformDirty||(e.isTransformDirty=e.parent.isTransformDirty))}function dF(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function pF(e){e.clearSnapshot()}function Uv(e){e.clearMeasurements()}function Hv(e){e.isLayoutDirty=!1}function fF(e){const{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify("BeforeLayoutMeasure"),e.resetTransform()}function Wv(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function hF(e){e.resolveTargetDelta()}function mF(e){e.calcProjection()}
vendor: 29,571 bytes, lines 263-271
263function gF(e){e.resetSkewAndRotation()}function yF(e){e.removeLeadSnapshot()}function qv(e,t,n){e.translate=Ae(t.translate,0,n),e.scale=Ae(t.scale,1,n),e.origin=t.origin,e.originPoint=t.originPoint}function Kv(e,t,n,r){e.min=Ae(t.min,n.min,r),e.max=Ae(t.max,n.max,r)}function vF(e,t,n,r){Kv(e.x,t.x,n.x,r),Kv(e.y,t.y,n.y,r)}function xF(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}const wF={duration:.45,ease:[.4,0,.1,1]},Yv=e=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(e),Qv=Yv("applewebkit/")&&!Yv("chrome/")?Math.round:Zt;function Xv(e){e.min=Qv(e.min),e.max=Qv(e.max)}function bF(e){Xv(e.x),Xv(e.y)}function WS(e,t,n){return e==="position"||e==="preserve-aspect"&&!U4(Bv(t),Bv(n),.2)}function kF(e){var t;return e!==e.root&&((t=e.scroll)==null?void 0:t.wasRoot)}const SF=HS({attachResizeListener:(e,t)=>va(e,"resize",t),measureScroll:()=>{var e,t;return{x:document.documentElement.scrollLeft||((e=document.body)==null?void 0:e.scrollLeft)||0,y:document.documentElement.scrollTop||((t=document.body)==null?void 0:t.scrollTop)||0}},checkIsScrollRoot:()=>!0}),pd={current:void 0},qS=HS({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!pd.current){const e=new SF({});e.mount(window),e.setOptions({layoutScroll:!0}),pd.current=e}return pd.current},resetTransform:(e,t)=>{e.style.transform=t!==void 0?t:"none"},checkIsScrollRoot:e=>window.getComputedStyle(e).position==="fixed"}),bm=b.createContext({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"});function Jv(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function TF(...e){return t=>{let n=!1;const r=e.map(i=>{const s=Jv(i,t);return!n&&typeof s=="function"&&(n=!0),s});if(n)return()=>{for(let i=0;i<r.length;i++){const s=r[i];typeof s=="function"?s():Jv(e[i],null)}}}}function CF(...e){return b.useCallback(TF(...e),e)}class jF extends b.Component{getSnapshotBeforeUpdate(t){const n=this.props.childRef.current;if(n&&t.isPresent&&!this.props.isPresent){const r=n.offsetParent,i=of(r)&&r.offsetWidth||0,s=of(r)&&r.offsetHeight||0,o=this.props.sizeRef.current;o.height=n.offsetHeight||0,o.width=n.offsetWidth||0,o.top=n.offsetTop,o.left=n.offsetLeft,o.right=i-o.width-o.left,o.bottom=s-o.height-o.top}return null}componentDidUpdate(){}render(){return this.props.children}}function NF({children:e,isPresent:t,anchorX:n,anchorY:r,root:i}){var p;const s=b.useId(),o=b.useRef(null),l=b.useRef({width:0,height:0,top:0,left:0,right:0,bottom:0}),{nonce:c}=b.useContext(bm),u=((p=e.props)==null?void 0:p.ref)??(e==null?void 0:e.ref),d=CF(o,u);return b.useInsertionEffect(()=>{const{width:h,height:f,top:x,left:g,right:w,bottom:m}=l.current;if(t||!o.current||!h||!f)return;const y=n==="left"?`left: ${g}`:`right: ${w}`,v=r==="bottom"?`bottom: ${m}`:`top: ${x}`;o.current.dataset.motionPopId=s;const k=document.createElement("style");c&&(k.nonce=c);const C=i??document.head;return C.appendChild(k),k.sheet&&k.sheet.insertRule(`
264          [data-motion-pop-id="${s}"] {
265            position: absolute !important;
266            width: ${h}px !important;
267            height: ${f}px !important;
268            ${y}px !important;
269            ${v}px !important;
270          }
271        `),()=>{C.contains(k)&&C.removeChild(k)}},[t]),a.jsx(jF,{isPresent:t,childRef:o,sizeRef:l,children:b.cloneElement(e,{ref:d})})}const AF=({children:e,initial:t,isPresent:n,onExitComplete:r,custom:i,presenceAffectsLayout:s,mode:o,anchorX:l,anchorY:c,root:u})=>{const d=Kh(PF),p=b.useId();let h=!0,f=b.useMemo(()=>(h=!1,{id:p,initial:t,isPresent:n,custom:i,onExitComplete:x=>{d.set(x,!0);for(const g of d.values())if(!g)return;r&&r()},register:x=>(d.set(x,!1),()=>d.delete(x))}),[n,d,r]);return s&&h&&(f={...f}),b.useMemo(()=>{d.forEach((x,g)=>d.set(g,!1))},[n]),b.useEffect(()=>{!n&&!d.size&&r&&r()},[n]),o==="popLayout"&&(e=a.jsx(NF,{isPresent:n,anchorX:l,anchorY:c,root:u,children:e})),a.jsx(ru.Provider,{value:f,children:e})};function PF(){return new Map}function KS(e=!0){const t=b.useContext(ru);if(t===null)return[!0,null];const{isPresent:n,onExitComplete:r,register:i}=t,s=b.useId();b.useEffect(()=>{if(e)return i(s)},[e]);const o=b.useCallback(()=>e&&r&&r(s),[s,r,e]);return!n&&r?[!1,o]:[!0]}const cl=e=>e.key||"";function Zv(e){const t=[];return b.Children.forEach(e,n=>{b.isValidElement(n)&&t.push(n)}),t}const EF=({children:e,custom:t,initial:n=!0,onExitComplete:r,presenceAffectsLayout:i=!0,mode:s="sync",propagate:o=!1,anchorX:l="left",anchorY:c="top",root:u})=>{const[d,p]=KS(o),h=b.useMemo(()=>Zv(e),[e]),f=o&&!d?[]:h.map(cl),x=b.useRef(!0),g=b.useRef(h),w=Kh(()=>new Map),m=b.useRef(new Set),[y,v]=b.useState(h),[k,C]=b.useState(h);jk(()=>{x.current=!1,g.current=h;for(let A=0;A<k.length;A++){const P=cl(k[A]);f.includes(P)?(w.delete(P),m.current.delete(P)):w.get(P)!==!0&&w.set(P,!1)}},[k,f.length,f.join("-")]);const T=[];if(h!==y){let A=[...h];for(let P=0;P<k.length;P++){const M=k[P],O=cl(M);f.includes(O)||(A.splice(P,0,M),T.push(M))}return s==="wait"&&T.length&&(A=T),C(Zv(A)),v(h),null}const{forceRender:N}=b.useContext(qh);return a.jsx(a.Fragment,{children:k.map(A=>{const P=cl(A),M=o&&!d?!1:h===k||f.includes(P),O=()=>{if(m.current.has(P))return;if(m.current.add(P),w.has(P))w.set(P,!0);else return;let R=!0;w.forEach(U=>{U||(R=!1)}),R&&(N==null||N(),C(g.current),o&&(p==null||p()),r&&r())};return a.jsx(AF,{isPresent:M,initial:!x.current||n?void 0:!1,custom:t,presenceAffectsLayout:i,mode:s,root:u,onExitComplete:M?void 0:O,anchorX:l,anchorY:c,children:A},P)})})},YS=b.createContext({strict:!1}),ex={animation:["animate","variants","whileHover","whileTap","exit","whileInView","whileFocus","whileDrag"],exit:["exit"],drag:["drag","dragControls"],focus:["whileFocus"],hover:["whileHover","onHoverStart","onHoverEnd"],tap:["whileTap","onTap","onTapStart","onTapCancel"],pan:["onPan","onPanStart","onPanSessionStart","onPanEnd"],inView:["whileInView","onViewportEnter","onViewportLeave"],layout:["layout","layoutId"]};let tx=!1;function MF(){if(tx)return;const e={};for(const t in ex)e[t]={isEnabled:n=>ex[t].some(r=>!!n[r])};TS(e),tx=!0}function QS(){return MF(),g4()}function IF(e){const t=QS();for(const n in e)t[n]={...t[n],...e[n]};TS(t)}const RF=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","ignoreStrict","viewport"]);function Sc(e){return e.startsWith("while")||e.startsWith("drag")&&e!=="draggable"||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("onLayout")||RF.has(e)}let XS=e=>!Sc(e);function DF(e){typeof e=="function"&&(XS=t=>t.startsWith("on")?!Sc(t):e(t))}try{DF(require("@emotion/is-prop-valid").default)}catch{}function FF(e,t,n){const r={};for(const i in e)i==="values"&&typeof e.values=="object"||(XS(i)||n===!0&&Sc(i)||!t&&!Sc(i)||e.draggable&&i.startsWith("onDrag"))&&(r[i]=e[i]);return r}const au=b.createContext({});function OF(e,t){if(ou(e)){const{initial:n,animate:r}=e;return{initial:n===!1||ya(n)?n:void 0,animate:ya(r)?r:void 0}}return e.inherit!==!1?t:{}}function LF(e){const{initial:t,animate:n}=OF(e,b.useContext(au));return b.useMemo(()=>({initial:t,animate:n}),[nx(t),nx(n)])}function nx(e){return Array.isArray(e)?e.join(" "):e}const km=()=>({style:{},transform:{},transformOrigin:{},vars:{}});function JS(e,t,n){for(const r in t)!nt(t[r])&&!MS(r,n)&&(e[r]=t[r])}function _F({transformTemplate:e},t){return b.useMemo(()=>{const n=km();return xm(n,t,e),Object.assign({},n.vars,n.style)},[t])}function BF(e,t){const n=e.style||{},r={};return JS(r,n,e),Object.assign(r,_F(e,t)),r}function GF(e,t){const n={},r=BF(e,t);return e.drag&&e.dragListener!==!1&&(n.draggable=!1,r.userSelect=r.WebkitUserSelect=r.WebkitTouchCallout="none",r.touchAction=e.drag===!0?"none":`pan-${e.drag==="x"?"y":"x"}`),e.tabIndex===void 0&&(e.onTap||e.onTapStart||e.whileTap)&&(n.tabIndex=0),n.style=r,n}const ZS=()=>({...km(),attrs:{}});function zF(e,t,n,r){const i=b.useMemo(()=>{const s=ZS();return IS(s,t,DS(r),e.transformTemplate,e.style),{...s.attrs,style:{...s.style}}},[t]);if(e.style){const s={};JS(s,e.style,e),i.style={...s,...i.style}}return i}const VF=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function Sm(e){return typeof e!="string"||e.includes("-")?!1:!!(VF.indexOf(e)>-1||/[A-Z]/u.test(e))}function $F(e,t,n,{latestValues:r},i,s=!1,o){const c=(o??Sm(e)?zF:GF)(t,r,i,e),u=FF(t,typeof e=="string",s),d=e!==b.Fragment?{...u,...c,ref:n}:{},{children:p}=t,h=b.useMemo(()=>nt(p)?p.get():p,[p]);return b.createElement(e,{...d,children:h})}function UF({scrapeMotionValuesFromProps:e,createRenderState:t},n,r,i){return{latestValues:HF(n,r,i,e),renderState:t()}}function HF(e,t,n,r){const i={},s=r(e,{});for(const h in s)i[h]=Rl(s[h]);let{initial:o,animate:l}=e;const c=ou(e),u=SS(e);t&&u&&!c&&e.inherit!==!1&&(o===void 0&&(o=t.initial),l===void 0&&(l=t.animate));let d=n?n.initial===!1:!1;d=d||o===!1;const p=d?l:o;if(p&&typeof p!="boolean"&&!su(p)){const h=Array.isArray(p)?p:[p];for(let f=0;f<h.length;f++){const x=pm(e,h[f]);if(x){const{transitionEnd:g,transition:w,...m}=x;for(const y in m){let v=m[y];if(Array.isArray(v)){const k=d?v.length-1:0;v=v[k]}v!==null&&(i[y]=v)}for(const y in g)i[y]=g[y]}}}return i}const eT=e=>(t,n)=>{const r=b.useContext(au),i=b.useContext(ru),s=()=>UF(e,t,r,i);return n?s():Kh(s)},WF=eT({scrapeMotionValuesFromProps:wm,createRenderState:km}),qF=eT({scrapeMotionValuesFromProps:FS,createRenderState:ZS}),KF=Symbol.for("motionComponentSymbol");function YF(e,t,n){const r=b.useRef(n);b.useInsertionEffect(()=>{r.current=n});const i=b.useRef(null);return b.useCallback(s=>{var l;s&&((l=e.onMount)==null||l.call(e,s)),t&&(s?t.mount(s):t.unmount());const o=r.current;if(typeof o=="function")if(s){const c=o(s);typeof c=="function"&&(i.current=c)}else i.current?(i.current(),i.current=null):o(s);else o&&(o.current=s)},[t])}const tT=b.createContext({});function No(e){return e&&typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}function QF(e,t,n,r,i,s){var m,y;const{visualElement:o}=b.useContext(au),l=b.useContext(YS),c=b.useContext(ru),u=b.useContext(bm).reducedMotion,d=b.useRef(null),p=b.useRef(!1);r=r||l.renderer,!d.current&&r&&(d.current=r(e,{visualState:t,parent:o,props:n,presenceContext:c,blockInitialAnimation:c?c.initial===!1:!1,reducedMotionConfig:u,isSVG:s}),p.current&&d.current&&(d.current.manuallyAnimateOnMount=!0));const h=d.current,f=b.useContext(tT);h&&!h.projection&&i&&(h.type==="html"||h.type==="svg")&&XF(d.current,n,i,f);const x=b.useRef(!1);b.useInsertionEffect(()=>{h&&x.current&&h.update(n,c)});const g=n[cS],w=b.useRef(!!g&&!((m=window.MotionHandoffIsComplete)!=null&&m.call(window,g))&&((y=window.MotionHasOptimisedAnimation)==null?void 0:y.call(window,g)));return jk(()=>{p.current=!0,h&&(x.current=!0,window.MotionIsMounted=!0,h.updateFeatures(),h.scheduleRenderMicrotask(),w.current&&h.animationState&&h.animationState.animateChanges())}),b.useEffect(()=>{h&&(!w.current&&h.animationState&&h.animationState.animateChanges(),w.current&&(queueMicrotask(()=>{var v;(v=window.MotionHandoffMarkAsComplete)==null||v.call(window,g)}),w.current=!1),h.enteringChildren=void 0)}),h}function XF(e,t,n,r){const{layoutId:i,layout:s,drag:o,dragConstraints:l,layoutScroll:c,layoutRoot:u,layoutCrossfade:d}=t;e.projection=new n(e.latestValues,t["data-framer-portal-id"]?void 0:nT(e.parent)),e.projection.setOptions({layoutId:i,layout:s,alwaysMeasureLayout:!!o||l&&No(l),visualElement:e,animationType:typeof s=="string"?s:"both",initialPromotionConfig:r,crossfade:d,layoutScroll:c,layoutRoot:u})}function nT(e){if(e)return e.options.allowProjection!==!1?e.projection:nT(e.parent)}function fd(e,{forwardMotionProps:t=!1,type:n}={},r,i){r&&IF(r);const s=n?n==="svg":Sm(e),o=s?qF:WF;function l(u,d){let p;const h={...b.useContext(bm),...u,layoutId:JF(u)},{isStatic:f}=h,x=LF(u),g=o(u,f);if(!f&&Ck){ZF();const w=e5(h);p=w.MeasureLayout,x.visualElement=QF(e,g,h,i,w.ProjectionNode,s)}return a.jsxs(au.Provider,{value:x,children:[p&&x.visualElement?a.jsx(p,{visualElement:x.visualElement,...h}):null,$F(e,u,YF(g,x.visualElement,d),g,f,t,s)]})}l.displayName=`motion.${typeof e=="string"?e:`create(${e.displayName??e.name??""})`}`;const c=b.forwardRef(l);return c[KF]=e,c}function JF({layoutId:e}){const t=b.useContext(qh).id;return t&&e!==void 0?t+"-"+e:e}function ZF(e,t){b.useContext(YS).strict}function e5(e){const t=QS(),{drag:n,layout:r}=t;if(!n&&!r)return{};const i={...n,...r};return{MeasureLayout:n!=null&&n.isEnabled(e)||r!=null&&r.isEnabled(e)?i.MeasureLayout:void 0,ProjectionNode:i.ProjectionNode}}function t5(e,t){if(typeof Proxy>"u")return fd;const n=new Map,r=(s,o)=>fd(s,o,e,t),i=(s,o)=>r(s,o);return new Proxy(i,{get:(s,o)=>o==="create"?r:(n.has(o)||n.set(o,fd(o,void 0,e,t)),n.get(o))})}const n5=(e,t)=>t.isSVG??Sm(e)?new R4(t):new N4(t,{allowProjection:e!==b.Fragment});class r5 extends ii{constructor(t){super(t),t.animationState||(t.animationState=_4(t))}updateAnimationControlsSubscription(){const{animate:t}=this.node.getProps();su(t)&&(this.unmountControls=t.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:t}=this.node.getProps(),{animate:n}=this.node.prevProps||{};t!==n&&this.updateAnimationControlsSubscription()}unmount(){var t;this.node.animationState.reset(),(t=this.unmountControls)==null||t.call(this)}}let i5=0;class s5 extends ii{constructor(){super(...arguments),this.id=i5++}update(){if(!this.node.presenceContext)return;const{isPresent:t,onExitComplete:n}=this.node.presenceContext,{isPresent:r}=this.node.prevPresenceContext||{};if(!this.node.animationState||t===r)return;const i=this.node.animationState.setActive("exit",!t);n&&!t&&i.then(()=>{n(this.id)})}mount(){const{register:t,onExitComplete:n}=this.node.presenceContext||{};n&&n(this.id),t&&(this.unmount=t(this.id))}unmount(){}}const o5={animation:{Feature:r5},exit:{Feature:s5}};function Ra(e){return{point:{x:e.pageX,y:e.pageY}}}const a5=e=>t=>gm(t)&&e(t,Ra(t));function zo(e,t,n,r){return va(e,t,a5(n),r)}const rT=({current:e})=>e?e.ownerDocument.defaultView:null,rx=(e,t)=>Math.abs(e-t);function l5(e,t){const n=rx(e.x,t.x),r=rx(e.y,t.y);return Math.sqrt(n**2+r**2)}const ix=new Set(["auto","scroll"]);class iT{constructor(t,n,{transformPagePoint:r,contextWindow:i=window,dragSnapToOrigin:s=!1,distanceThreshold:o=3,element:l}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.scrollPositions=new Map,this.removeScrollListeners=null,this.onElementScroll=f=>{this.handleScroll(f.target)},this.onWindowScroll=()=>{this.handleScroll(window)},this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const f=md(this.lastMoveEventInfo,this.history),x=this.startEvent!==null,g=l5(f.offset,{x:0,y:0})>=this.distanceThreshold;if(!x&&!g)return;const{point:w}=f,{timestamp:m}=Ke;this.history.push({...w,timestamp:m});const{onStart:y,onMove:v}=this.handlers;x||(y&&y(this.lastMoveEvent,f),this.startEvent=this.lastMoveEvent),v&&v(this.lastMoveEvent,f)},this.handlePointerMove=(f,x)=>{this.lastMoveEvent=f,this.lastMoveEventInfo=hd(x,this.transformPagePoint),Se.update(this.updatePoint,!0)},this.handlePointerUp=(f,x)=>{this.end();const{onEnd:g,onSessionEnd:w,resumeAnimation:m}=this.handlers;if((this.dragSnapToOrigin||!this.startEvent)&&m&&m(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const y=md(f.type==="pointercancel"?this.lastMoveEventInfo:hd(x,this.transformPagePoint),this.history);this.startEvent&&g&&g(f,y),w&&w(f,y)},!gm(t))return;this.dragSnapToOrigin=s,this.handlers=n,this.transformPagePoint=r,this.distanceThreshold=o,this.contextWindow=i||window;const c=Ra(t),u=hd(c,this.transformPagePoint),{point:d}=u,{timestamp:p}=Ke;this.history=[{...d,timestamp:p}];const{onSessionStart:h}=n;h&&h(t,md(u,this.history)),this.removeListeners=Ea(zo(this.contextWindow,"pointermove",this.handlePointerMove),zo(this.contextWindow,"pointerup",this.handlePointerUp),zo(this.contextWindow,"pointercancel",this.handlePointerUp)),l&&this.startScrollTracking(l)}startScrollTracking(t){let n=t.parentElement;for(;n;){const r=getComputedStyle(n);(ix.has(r.overflowX)||ix.has(r.overflowY))&&this.scrollPositions.set(n,{x:n.scrollLeft,y:n.scrollTop}),n=n.parentElement}this.scrollPositions.set(window,{x:window.scrollX,y:window.scrollY}),window.addEventListener("scroll",this.onElementScroll,{capture:!0,passive:!0}),window.addEventListener("scroll",this.onWindowScroll,{passive:!0}),this.removeScrollListeners=()=>{window.removeEventListener("scroll",this.onElementScroll,{capture:!0}),window.removeEventListener("scroll",this.onWindowScroll)}}handleScroll(t){const n=this.scrollPositions.get(t);if(!n)return;const r=t===window,i=r?{x:window.scrollX,y:window.scrollY}:{x:t.scrollLeft,y:t.scrollTop},s={x:i.x-n.x,y:i.y-n.y};s.x===0&&s.y===0||(r?this.lastMoveEventInfo&&(this.lastMoveEventInfo.point.x+=s.x,this.lastMoveEventInfo.point.y+=s.y):this.history.length>0&&(this.history[0].x-=s.x,this.history[0].y-=s.y),this.scrollPositions.set(t,i),Se.update(this.updatePoint,!0))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),this.removeScrollListeners&&this.removeScrollListeners(),this.scrollPositions.clear(),Jr(this.updatePoint)}}function hd(e,t){return t?{point:t(e.point)}:e}function sx(e,t){return{x:e.x-t.x,y:e.y-t.y}}function md({point:e},t){return{point:e,delta:sx(e,sT(t)),offset:sx(e,c5(t)),velocity:u5(t,.1)}}function c5(e){return e[0]}function sT(e){return e[e.length-1]}function u5(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,r=null;const i=sT(e);for(;n>=0&&(r=e[n],!(i.timestamp-r.timestamp>Gn(t)));)n--;if(!r)return{x:0,y:0};const s=Xt(i.timestamp-r.timestamp);if(s===0)return{x:0,y:0};const o={x:(i.x-r.x)/s,y:(i.y-r.y)/s};return o.x===1/0&&(o.x=0),o.y===1/0&&(o.y=0),o}function d5(e,{min:t,max:n},r){return t!==void 0&&e<t?e=r?Ae(t,e,r.min):Math.max(e,t):n!==void 0&&e>n&&(e=r?Ae(n,e,r.max):Math.min(e,n)),e}function ox(e,t,n){return{min:t!==void 0?e.min+t:void 0,max:n!==void 0?e.max+n-(e.max-e.min):void 0}}function p5(e,{top:t,left:n,bottom:r,right:i}){return{x:ox(e.x,n,i),y:ox(e.y,t,r)}}function ax(e,t){let n=t.min-e.min,r=t.max-e.max;return t.max-t.min<e.max-e.min&&([n,r]=[r,n]),{min:n,max:r}}function f5(e,t){return{x:ax(e.x,t.x),y:ax(e.y,t.y)}}function h5(e,t){let n=.5;const r=ft(e),i=ft(t);return i>r?n=ha(t.min,t.max-r,e.min):r>i&&(n=ha(e.min,e.max-i,t.min)),Un(0,1,n)}function m5(e,t){const n={};return t.min!==void 0&&(n.min=t.min-e.min),t.max!==void 0&&(n.max=t.max-e.min),n}const df=.35;function g5(e=df){return e===!1?e=0:e===!0&&(e=df),{x:lx(e,"left","right"),y:lx(e,"top","bottom")}}function lx(e,t,n){return{min:cx(e,t),max:cx(e,n)}}function cx(e,t){return typeof e=="number"?e:e[t]||0}const y5=new WeakMap;class v5{constructor(t){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=Ge(),this.latestPointerEvent=null,this.latestPanInfo=null,this.visualElement=t}start(t,{snapToCursor:n=!1,distanceThreshold:r}={}){const{presenceContext:i}=this.visualElement;if(i&&i.isPresent===!1)return;const s=p=>{n?(this.stopAnimation(),this.snapToCursor(Ra(p).point)):this.pauseAnimation()},o=(p,h)=>{this.stopAnimation();const{drag:f,dragPropagation:x,onDragStart:g}=this.getProps();if(f&&!x&&(this.openDragLock&&this.openDragLock(),this.openDragLock=i4(f),!this.openDragLock))return;this.latestPointerEvent=p,this.latestPanInfo=h,this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),Ut(m=>{let y=this.getAxisMotionValue(m).get()||0;if(zn.test(y)){const{projection:v}=this.visualElement;if(v&&v.layout){const k=v.layout.layoutBox[m];k&&(y=ft(k)*(parseFloat(y)/100))}}this.originPoint[m]=y}),g&&Se.postRender(()=>g(p,h)),nf(this.visualElement,"transform");const{animationState:w}=this.visualElement;w&&w.setActive("whileDrag",!0)},l=(p,h)=>{this.latestPointerEvent=p,this.latestPanInfo=h;const{dragPropagation:f,dragDirectionLock:x,onDirectionLock:g,onDrag:w}=this.getProps();if(!f&&!this.openDragLock)return;const{offset:m}=h;if(x&&this.currentDirection===null){this.currentDirection=x5(m),this.currentDirection!==null&&g&&g(this.currentDirection);return}this.updateAxis("x",h.point,m),this.updateAxis("y",h.point,m),this.visualElement.render(),w&&w(p,h)},c=(p,h)=>{this.latestPointerEvent=p,this.latestPanInfo=h,this.stop(p,h),this.latestPointerEvent=null,this.latestPanInfo=null},u=()=>Ut(p=>{var h;return this.getAnimationState(p)==="paused"&&((h=this.getAxisMotionValue(p).animation)==null?void 0:h.play())}),{dragSnapToOrigin:d}=this.getProps();this.panSession=new iT(t,{onSessionStart:s,onStart:o,onMove:l,onSessionEnd:c,resumeAnimation:u},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:d,distanceThreshold:r,contextWindow:rT(this.visualElement),element:this.visualElement.current})}stop(t,n){const r=t||this.latestPointerEvent,i=n||this.latestPanInfo,s=this.isDragging;if(this.cancel(),!s||!i||!r)return;const{velocity:o}=i;this.startAnimation(o);const{onDragEnd:l}=this.getProps();l&&Se.postRender(()=>l(r,i))}cancel(){this.isDragging=!1;const{projection:t,animationState:n}=this.visualElement;t&&(t.isAnimationBlocked=!1),this.endPanSession();const{dragPropagation:r}=this.getProps();!r&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),n&&n.setActive("whileDrag",!1)}endPanSession(){this.panSession&&this.panSession.end(),this.panSession=void 0}updateAxis(t,n,r){const{drag:i}=this.getProps();if(!r||!ul(t,i,this.currentDirection))return;const s=this.getAxisMotionValue(t);let o=this.originPoint[t]+r[t];this.constraints&&this.constraints[t]&&(o=d5(o,this.constraints[t],this.elastic[t])),s.set(o)}resolveConstraints(){var s;const{dragConstraints:t,dragElastic:n}=this.getProps(),r=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):(s=this.visualElement.projection)==null?void 0:s.layout,i=this.constraints;t&&No(t)?this.constraints||(this.constraints=this.resolveRefConstraints()):t&&r?this.constraints=p5(r.layoutBox,t):this.constraints=!1,this.elastic=g5(n),i!==this.constraints&&r&&this.constraints&&!this.hasMutatedConstraints&&Ut(o=>{this.constraints!==!1&&this.getAxisMotionValue(o)&&(this.constraints[o]=m5(r.layoutBox[o],this.constraints[o]))})}resolveRefConstraints(){const{dragConstraints:t,onMeasureDragConstraints:n}=this.getProps();if(!t||!No(t))return!1;const r=t.current;$s(r!==null,"If `dragConstraints` is set as a React ref, that ref must be passed to another component's `ref` prop.","drag-constraints-ref");const{projection:i}=this.visualElement;if(!i||!i.layout)return!1;const s=b4(r,i.root,this.visualElement.getTransformPagePoint());let o=f5(i.layout.layoutBox,s);if(n){const l=n(v4(o));this.hasMutatedConstraints=!!l,l&&(o=jS(l))}return o}startAnimation(t){const{drag:n,dragMomentum:r,dragElastic:i,dragTransition:s,dragSnapToOrigin:o,onDragTransitionEnd:l}=this.getProps(),c=this.constraints||{},u=Ut(d=>{if(!ul(d,n,this.currentDirection))return;let p=c&&c[d]||{};o&&(p={min:0,max:0});const h=i?200:1e6,f=i?40:1e7,x={type:"inertia",velocity:r?t[d]:0,bounceStiffness:h,bounceDamping:f,timeConstant:750,restDelta:1,restSpeed:10,...s,...p};return this.startAxisValueAnimation(d,x)});return Promise.all(u).then(l)}startAxisValueAnimation(t,n){const r=this.getAxisMotionValue(t);return nf(this.visualElement,t),r.start(dm(t,r,0,n,this.visualElement,!1))}stopAnimation(){Ut(t=>this.getAxisMotionValue(t).stop())}pauseAnimation(){Ut(t=>{var n;return(n=this.getAxisMotionValue(t).animation)==null?void 0:n.pause()})}getAnimationState(t){var n;return(n=this.getAxisMotionValue(t).animation)==null?void 0:n.state}getAxisMotionValue(t){const n=`_drag${t.toUpperCase()}`,r=this.visualElement.getProps(),i=r[n];return i||this.visualElement.getValue(t,(r.initial?r.initial[t]:void 0)||0)}snapToCursor(t){Ut(n=>{const{drag:r}=this.getProps();if(!ul(n,r,this.currentDirection))return;const{projection:i}=this.visualElement,s=this.getAxisMotionValue(n);if(i&&i.layout){const{min:o,max:l}=i.layout.layoutBox[n],c=s.get()||0;s.set(t[n]-Ae(o,l,.5)+c)}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:t,dragConstraints:n}=this.getProps(),{projection:r}=this.visualElement;if(!No(n)||!r||!this.constraints)return;this.stopAnimation();const i={x:0,y:0};Ut(o=>{const l=this.getAxisMotionValue(o);if(l&&this.constraints!==!1){const c=l.get();i[o]=h5({min:c,max:c},this.constraints[o])}});const{transformTemplate:s}=this.visualElement.getProps();this.visualElement.current.style.transform=s?s({},""):"none",r.root&&r.root.updateScroll(),r.updateLayout(),this.resolveConstraints(),Ut(o=>{if(!ul(o,t,null))return;const l=this.getAxisMotionValue(o),{min:c,max:u}=this.constraints[o];l.set(Ae(c,u,i[o]))})}addListeners(){if(!this.visualElement.current)return;y5.set(this.visualElement,this);const t=this.visualElement.current,n=zo(t,"pointerdown",c=>{const{drag:u,dragListener:d=!0}=this.getProps(),p=c.target,h=p!==t&&wS(p);u&&d&&!h&&this.start(c)}),r=()=>{const{dragConstraints:c}=this.getProps();No(c)&&c.current&&(this.constraints=this.resolveRefConstraints())},{projection:i}=this.visualElement,s=i.addEventListener("measure",r);i&&!i.layout&&(i.root&&i.root.updateScroll(),i.updateLayout()),Se.read(r);const o=va(window,"resize",()=>this.scalePositionWithinConstraints()),l=i.addEventListener("didUpdate",({delta:c,hasLayoutChanged:u})=>{this.isDragging&&u&&(Ut(d=>{const p=this.getAxisMotionValue(d);p&&(this.originPoint[d]+=c[d].translate,p.set(p.get()+c[d].translate))}),this.visualElement.render())});return()=>{o(),n(),s(),l&&l()}}getProps(){const t=this.visualElement.getProps(),{drag:n=!1,dragDirectionLock:r=!1,dragPropagation:i=!1,dragConstraints:s=!1,dragElastic:o=df,dragMomentum:l=!0}=t;return{...t,drag:n,dragDirectionLock:r,dragPropagation:i,dragConstraints:s,dragElastic:o,dragMomentum:l}}}function ul(e,t,n){return(t===!0||t===e)&&(n===null||n===e)}function x5(e,t=10){let n=null;return Math.abs(e.y)>t?n="y":Math.abs(e.x)>t&&(n="x"),n}class w5 extends ii{constructor(t){super(t),this.removeGroupControls=Zt,this.removeListeners=Zt,this.controls=new v5(t)}mount(){const{dragControls:t}=this.node.getProps();t&&(this.removeGroupControls=t.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||Zt}update(){const{dragControls:t}=this.node.getProps(),{dragControls:n}=this.node.prevProps||{};t!==n&&(this.removeGroupControls(),t&&(this.removeGroupControls=t.subscribe(this.controls)))}unmount(){this.removeGroupControls(),this.removeListeners(),this.controls.isDragging||this.controls.endPanSession()}}const ux=e=>(t,n)=>{e&&Se.postRender(()=>e(t,n))};class b5 extends ii{constructor(){super(...arguments),this.removePointerDownListener=Zt}onPointerDown(t){this.session=new iT(t,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:rT(this.node)})}createPanHandlers(){const{onPanSessionStart:t,onPanStart:n,onPan:r,onPanEnd:i}=this.node.getProps();return{onSessionStart:ux(t),onStart:ux(n),onMove:r,onEnd:(s,o)=>{delete this.session,i&&Se.postRender(()=>i(s,o))}}}mount(){this.removePointerDownListener=zo(this.node.current,"pointerdown",t=>this.onPointerDown(t))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}let gd=!1;class k5 extends b.Component{componentDidMount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r,layoutId:i}=this.props,{projection:s}=t;s&&(n.group&&n.group.add(s),r&&r.register&&i&&r.register(s),gd&&s.root.didUpdate(),s.addEventListener("animationComplete",()=>{this.safeToRemove()}),s.setOptions({...s.options,layoutDependency:this.props.layoutDependency,onExitComplete:()=>this.safeToRemove()})),Dl.hasEverUpdated=!0}getSnapshotBeforeUpdate(t){const{layoutDependency:n,visualElement:r,drag:i,isPresent:s}=this.props,{projection:o}=r;return o&&(o.isPresent=s,t.layoutDependency!==n&&o.setOptions({...o.options,layoutDependency:n}),gd=!0,i||t.layoutDependency!==n||n===void 0||t.isPresent!==s?o.willUpdate():this.safeToRemove(),t.isPresent!==s&&(s?o.promote():o.relegate()||Se.postRender(()=>{const l=o.getStack();(!l||!l.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:t}=this.props.visualElement;t&&(t.root.didUpdate(),mm.postRender(()=>{!t.currentAnimation&&t.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r}=this.props,{projection:i}=t;gd=!0,i&&(i.scheduleCheckAfterUnmount(),n&&n.group&&n.group.remove(i),r&&r.deregister&&r.deregister(i))}safeToRemove(){const{safeToRemove:t}=this.props;t&&t()}render(){return null}}function oT(e){const[t,n]=KS(),r=b.useContext(qh);return a.jsx(k5,{...e,layoutGroup:r,switchLayoutGroup:b.useContext(tT),isPresent:t,safeToRemove:n})}const S5={pan:{Feature:b5},drag:{Feature:w5,ProjectionNode:qS,MeasureLayout:oT}};
vendor: 6,142 bytes, line 271
271function dx(e,t,n){const{props:r}=e;e.animationState&&r.whileHover&&e.animationState.setActive("whileHover",n==="Start");const i="onHover"+n,s=r[i];s&&Se.postRender(()=>s(t,Ra(t)))}class T5 extends ii{mount(){const{current:t}=this.node;t&&(this.unmount=s4(t,(n,r)=>(dx(this.node,r,"Start"),i=>dx(this.node,i,"End"))))}unmount(){}}class C5 extends ii{constructor(){super(...arguments),this.isActive=!1}onFocus(){let t=!1;try{t=this.node.current.matches(":focus-visible")}catch{t=!0}!t||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=Ea(va(this.node.current,"focus",()=>this.onFocus()),va(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}function px(e,t,n){const{props:r}=e;if(e.current instanceof HTMLButtonElement&&e.current.disabled)return;e.animationState&&r.whileTap&&e.animationState.setActive("whileTap",n==="Start");const i="onTap"+(n==="End"?"":n),s=r[i];s&&Se.postRender(()=>s(t,Ra(t)))}class j5 extends ii{mount(){const{current:t}=this.node;t&&(this.unmount=l4(t,(n,r)=>(px(this.node,r,"Start"),(i,{success:s})=>px(this.node,i,s?"End":"Cancel")),{useGlobalTarget:this.node.props.globalTapTarget}))}unmount(){}}const pf=new WeakMap,yd=new WeakMap,N5=e=>{const t=pf.get(e.target);t&&t(e)},A5=e=>{e.forEach(N5)};function P5({root:e,...t}){const n=e||document;yd.has(n)||yd.set(n,{});const r=yd.get(n),i=JSON.stringify(t);return r[i]||(r[i]=new IntersectionObserver(A5,{root:e,...t})),r[i]}function E5(e,t,n){const r=P5(t);return pf.set(e,n),r.observe(e),()=>{pf.delete(e),r.unobserve(e)}}const M5={some:0,all:1};class I5 extends ii{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();const{viewport:t={}}=this.node.getProps(),{root:n,margin:r,amount:i="some",once:s}=t,o={root:n?n.current:void 0,rootMargin:r,threshold:typeof i=="number"?i:M5[i]},l=c=>{const{isIntersecting:u}=c;if(this.isInView===u||(this.isInView=u,s&&!u&&this.hasEnteredView))return;u&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",u);const{onViewportEnter:d,onViewportLeave:p}=this.node.getProps(),h=u?d:p;h&&h(c)};return E5(this.node.current,o,l)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:t,prevProps:n}=this.node;["amount","margin","root"].some(R5(t,n))&&this.startObserver()}unmount(){}}function R5({viewport:e={}},{viewport:t={}}={}){return n=>e[n]!==t[n]}const D5={inView:{Feature:I5},tap:{Feature:j5},focus:{Feature:C5},hover:{Feature:T5}},F5={layout:{ProjectionNode:qS,MeasureLayout:oT}},O5={...o5,...D5,...S5,...F5},H=t5(O5,n5),L5=d1("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-lg text-sm font-medium ring-offset-background transition-all duration-300 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-border bg-transparent hover:bg-secondary hover:text-secondary-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-secondary hover:text-secondary-foreground",link:"text-primary underline-offset-4 hover:underline",hero:"bg-primary text-primary-foreground shadow-[0_4px_14px_-3px_hsl(var(--primary)/0.4)] hover:shadow-[0_0_60px_-15px_hsl(var(--primary)/0.4)] hover:scale-105 font-semibold",heroOutline:"border-2 border-primary text-primary bg-transparent hover:bg-primary/10 font-semibold",glow:"bg-gradient-to-r from-primary to-accent text-primary-foreground shadow-[0_4px_14px_-3px_hsl(var(--primary)/0.4)] hover:shadow-[0_0_60px_-15px_hsl(var(--primary)/0.4)] hover:scale-105 font-semibold"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-12 px-8 text-base",xl:"h-14 px-10 text-lg",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),ut=b.forwardRef(({className:e,variant:t,size:n,asChild:r=!1,...i},s)=>{const o=r?bA:"button";return a.jsx(o,{className:nn(L5({variant:t,size:n,className:e})),ref:s,...i})});ut.displayName="Button";const fx=[{href:"/what-is-server-side-analytics",label:"What Is SSA"},{href:"/best-server-side-analytics-tools",label:"Best Tools"},{href:"/top-server-side-tracking-tools",label:"Top 15 Ranked"},{href:"/blog",label:"Blog"},{href:"/chat",label:"AI Chat"},{href:"/contact",label:"Contact"}];function _5(){const[e,t]=b.useState(!1),n=Bi();return a.jsxs("header",{className:"fixed top-0 left-0 right-0 z-50 bg-background/80 backdrop-blur-xl border-b border-border",children:[a.jsx("div",{className:"container mx-auto px-4",children:a.jsxs("div",{className:"flex items-center justify-between h-16 md:h-20",children:[a.jsxs(ie,{to:"/",className:"flex items-center gap-2 group",children:[a.jsxs("div",{className:"relative w-10 h-10 flex items-center justify-center rounded-lg bg-primary/10 border border-primary/20 group-hover:border-primary/40 transition-colors",children:[a.jsx(qc,{className:"w-5 h-5 text-primary"}),a.jsx("div",{className:"absolute inset-0 bg-primary/20 rounded-lg blur-lg opacity-0 group-hover:opacity-100 transition-opacity"})]}),a.jsxs("span",{className:"font-display font-bold text-lg text-foreground hidden sm:block",children:["ServerSide",a.jsx("span",{className:"text-primary",children:"Analytics"})]})]}),a.jsx("nav",{className:"hidden md:flex items-center gap-1",children:fx.map(r=>a.jsx(ie,{to:r.href,className:`px-4 py-2 rounded-lg text-sm font-medium transition-colors ${n.pathname===r.href?"text-primary bg-primary/10":"text-muted-foreground hover:text-foreground hover:bg-secondary"}`,children:r.label},r.href))}),a.jsx("div",{className:"hidden md:flex items-center gap-3",children:a.jsx(ut,{variant:"hero",size:"default",asChild:!0,children:a.jsx("a",{href:"https://stape.io
271/website-tracking-checker?pt=bxprdiua&rs=site",target:"_blank",rel:"noopener noreferrer",children:"Check my Analytics"})})}),a.jsx("button",{className:"md:hidden p-2 text-foreground",onClick:()=>t(!e),"aria-label":"Toggle menu",children:e?a.jsx(Gs,{className:"w-6 h-6"}):a.jsx(TP,{className:"w-6 h-6"})})]})}),a.jsx(EF,{children:e&&a.jsx(H.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},className:"md:hidden bg-background border-b border-border overflow-hidden",children:a.jsxs("nav",{className:"container mx-auto px-4 py-4 flex flex-col gap-2",children:[fx.map(r=>a.jsx(ie,{to:r.href,onClick:()=>t(!1),className:`px-4 py-3 rounded-lg text-sm font-medium transition-colors ${n.pathname===r.href?"text-primary bg-primary/10":"text-muted-foreground hover:text-foreground hover:bg-secondary"}`,children:r.label},r.href)),a.jsx(ut,{variant:"hero",className:"mt-2 w-full",asChild:!0,children:a.jsx("a",{href:"https://stape.io/website-tracking-checker?pt=bxprdiua&rs=site",target:"_blank",rel:"noopener noreferrer",children:"Check my Analytics"})})]})})})]})}function B5(){return a.jsx("footer",{className:"bg-card border-t border-border",children:a.jsxs("div",{className:"container mx-auto px-4 py-12 md:py-16",children:[a.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-4 gap-8 md:gap-12",children:[a.jsxs("div",{className:"md:col-span-2",children:[a.jsxs(ie,{to:"/",className:"flex items-center gap-2 mb-4",children:[a.jsxs("div",{className:"relative w-10 h-10 flex items-center justify-center rounded-lg bg-primary/10 border border-primary/20",children:[a.jsx(qc,{className:"w-5 h-5 text-primary"}),a.jsx("div",{className:"absolute inset-0 bg-primary/20 rounded-lg blur-lg opacity-0 group-hover:opacity-100 transition-opacity"})]}),a.jsxs("span",{className:"font-display font-bold text-lg text-foreground",children:["ServerSide",a.jsx("span",{className:"text-primary",children:"Analytics"})]})]}),a.jsx("p",{className:"text-muted-foreground text-sm max-w-sm mb-6",children:"The leading server-side analytics tool powered by AI. Improve your tracking accuracy and gain deeper insights into your web analytics."}),a.jsx("div",{className:"flex items-center gap-4 text-sm text-muted-foreground",children:a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx(m1,{className:"w-4 h-4"}),a.jsx("a",{href:"mailto:[email protected]",className:"hover:text-primary transition-colors",children:"[email protected]"})]})})]}),a.jsxs("div",{children:[a.jsx("h4",{className:"font-display font-semibold text-foreground mb-4",children:"Product"}),a.jsxs("ul",{className:"space-y-3",children:[a.jsx("li",{children:a.jsx(ie,{to:"/chat",className:"text-sm text-muted-foreground hover:text-primary transition-colors",children:"AI Chat"})}),a.jsx("li",{children:a.jsx(ie,{to:"/blog",className:"text-sm text-muted-foreground hover:text-primary transition-colors",children:"Blog"})}),a.jsx("li",{children:a.jsx(ie,{to:"/best-server-side-tagging-providers",className:"text-sm text-muted-foreground hover:text-primary transition-colors",children:"Best Server-Side Tagging Providers"})}),a.jsx("li",{children:a.jsx(ie,{to:"/free-ai-server-side-tracking",className:"text-sm text-muted-foreground hover:text-primary transition-colors",children:"Free AI Helper"})}),a.jsx("li",{children:a.jsx(ie,{to:"/server-side-tracking-directory",className:"text-sm text-muted-foreground hover:text-primary transition-colors",children:"Tracking Directory"})})]})]}),a.jsxs("div",{children:[a.jsx("h4",{className:"font-display font-semibold text-foreground mb-4",children:"Legal"}),a.jsxs("ul",{className:"space-y-3",children:[a.jsx("li",{children:a.jsx(ie,{to:"/privacy",className:"text-sm text-muted-foreground hover:text-primary transition-colors",children:"Privacy Policy"})}),a.jsx("li",{children:a.jsx(ie,{to:"/terms",className:"text-sm text-muted-foreground hover:text-primary transition-colors",children:"Terms & Conditions"})}),a.jsx("li",{children:a.jsx(ie,{to:"/contact",className:"text-sm text-muted-foreground hover:text-primary transition-colors",children:"Contact Us"})})]})]})]}),a.jsxs("div",{className:"border-t border-border mt-12 pt-8 flex flex-col md:flex-row items-center justify-between gap-4",children:[a.jsxs("p",{className:"text-sm text-muted-foreground",children:["© ",new Date().getFullYear()," ServerSideAnalytics. All rights reserved."]}),a.jsx("p",{className:"text-sm text-muted-foreground",children:"Empowering businesses with server-side analytics"})]})]})})}function yt({children:e}){return a.jsxs("div",{className:"min-h-screen flex flex-col",children:[a.jsx(_5,{}),a.jsx("main",{className:"flex-1 pt-16 md:pt-20",children:e}),a.jsx(B5,{})]})}const vt=({title:e,description:t,path:n})=>{const r="https://serversideanalytics.ai",i=n==="/"?r:`${r}${n}`;return a.jsxs(kh,{children:[a.jsx("title",{children:e}),a.jsx("meta",{name:"description",content:t}),a.jsx("link",{rel:"canonical",href:i}),a.jsx("meta",{property:"og:title",content:e}),a.jsx("meta",{property:"og:description",content:t}),a.jsx("meta",{property:"og:url",content:i}),a.jsx("meta",{name:"twitter:title",content:e}),a.jsx("meta",{name:"twitter:description",content:t})]})};function G5(){return a.jsxs("section",{className:"relative min-h-[90vh] flex items-center overflow-hidden",children:[a.jsx("div",{className:"absolute inset-0 bg-grid-pattern opacity-50"}),a.jsx("div",{className:"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[800px] h-[800px] bg-glow animate-pulse-glow"}),a.jsx("div",{className:"absolute top-20 left-[10%] w-2 h-2 rounded-full bg-primary animate-float opacity-60"}),a.jsx("div",{className:"absolute top-40 right-[15%] w-3 h-3 rounded-full bg-accent animate-float delay-1000 opacity-60"}),a.jsx("div",{className:"absolute bottom-32 left-[20%] w-2 h-2 rounded-full bg-primary animate-float delay-500 opacity-60"}),a.jsx("div",{className:"container mx-auto px-4 relative z-10",children:a.jsxs("div",{className:"max-w-4xl mx-auto text-center",children:[a.jsxs(H.h1,{initial:{opacity:0,y:20}
271,animate:{opacity:1,y:0},transition:{duration:.5},className:"font-display text-4xl md:text-5xl lg:text-6xl font-bold text-foreground leading-tight mb-6",children:["Unlock ",a.jsx("span",{className:"text-gradient",children:"100% Accurate Data"})," with Server-Side Analytics"]}),a.jsx(H.p,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.5,delay:.1},className:"text-lg md:text-xl text-muted-foreground max-w-2xl mx-auto mb-10",children:"Stop losing up to 30% of your tracking data to ad blockers and browser restrictions. Our AI-powered server-side analytics captures every conversion, every click, and every customer interaction with precision."}),a.jsx(H.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.5,delay:.2},children:a.jsx(ut,{variant:"glow",size:"xl",asChild:!0,children:a.jsxs("a",{href:"/chat",children:["Set Up Server-Side Analytics",a.jsx(Fn,{className:"w-5 h-5"})]})})}),a.jsxs(H.div,{initial:{opacity:0},animate:{opacity:1},transition:{duration:.5,delay:.4},className:"mt-16 grid grid-cols-2 md:grid-cols-4 gap-6 text-sm text-muted-foreground",children:[a.jsxs("div",{className:"flex flex-col items-center gap-2 p-4 rounded-xl bg-secondary/30 border border-border",children:[a.jsx(x1,{className:"w-6 h-6 text-primary"}),a.jsx("span",{className:"font-medium text-foreground",children:"+30% Data Recovery"})]}),a.jsxs("div",{className:"flex flex-col items-center gap-2 p-4 rounded-xl bg-secondary/30 border border-border",children:[a.jsx(v1,{className:"w-6 h-6 text-primary"}),a.jsx("span",{className:"font-medium text-foreground",children:"GDPR Compliant"})]}),a.jsxs("div",{className:"flex flex-col items-center gap-2 p-4 rounded-xl bg-secondary/30 border border-border",children:[a.jsx(Kc,{className:"w-6 h-6 text-primary"}),a.jsx("span",{className:"font-medium text-foreground",children:"99.9% Uptime"})]}),a.jsxs("div",{className:"flex flex-col items-center gap-2 p-4 rounded-xl bg-secondary/30 border border-border",children:[a.jsx(NP,{className:"w-6 h-6 text-primary"}),a.jsx("span",{className:"font-medium text-foreground",children:"Real-Time Tracking"})]})]})]})})]})}function z5(){const e=[{icon:Ph,title:"Server-Side Processing",description:"Data is processed on your server, bypassing browser limitations and ad blockers for complete tracking coverage."},{icon:y1,title:"Enhanced Privacy",description:"Keep sensitive data on your servers while still gaining valuable analytics insights with full GDPR compliance."},{icon:Kc,title:"Faster Performance",description:"Reduce client-side scripts for faster page loads while maintaining comprehensive analytics server side tracking."},{icon:x1,title:"Accurate Data",description:"Eliminate data loss from browser restrictions and get up to 30% more accurate conversion tracking."}];return a.jsxs("section",{className:"py-20 md:py-32 relative overflow-hidden",children:[a.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-background via-secondary/20 to-background"}),a.jsxs("div",{className:"container mx-auto px-4 relative z-10",children:[a.jsxs(H.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"text-center mb-16",children:[a.jsx("span",{className:"text-primary font-medium text-sm uppercase tracking-wider",children:"Understanding Server-Side Analytics"}),a.jsxs("h2",{className:"font-display text-3xl md:text-4xl lg:text-5xl font-bold text-foreground mt-4 mb-6",children:["What is ",a.jsx("span",{className:"text-gradient",children:"Server-Side Analytics"}),"?"]}),a.jsx("p",{className:"text-muted-foreground text-lg md:text-xl max-w-3xl mx-auto",children:"Server-side analytics moves data collection from the browser to your server, giving you complete control over your web server analytics. Unlike traditional client-side tracking, server side analytics tools process data on your infrastructure, ensuring accuracy, privacy, and reliability."})]}),a.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6",children:e.map((t,n)=>a.jsxs(H.div,{initial:{opacity:0,y:30},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:n*.1},className:"group p-6 rounded-2xl card-gradient border border-border hover:border-primary/30 transition-all duration-300",children:[a.jsx("div",{className:"w-12 h-12 rounded-xl bg-primary/10 border border-primary/20 flex items-center justify-center mb-4 group-hover:scale-110 transition-transform duration-300",children:a.jsx(t.icon,{className:"w-6 h-6 text-primary"})}),a.jsx("h3",{className:"font-display text-lg font-semibold text-foreground mb-2",children:t.title}),a.jsx("p",{className:"text-muted-foreground text-sm",children:t.description})]},t.title))}),a.jsx(H.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:.4},className:"mt-16 p-8 rounded-2xl bg-primary/5 border border-primary/20 text-center",children:a.jsxs("p",{className:"text-foreground text-lg md:text-xl",children:["With ",a.jsx("strong",{className:"text-primary",children:"server-side analytics tracking"}),", you capture every interaction — even when browsers block third-party cookies or users have ad blockers enabled. This is the future of analytics implementation."]})})]})]})}
271const V5=[{icon:v1,title:"Bypass Ad Blockers",description:"Server-side analytics tools capture data that client-side trackers miss. Get complete visibility into your user journey."},{icon:Kc,title:"Real-Time Processing",description:"Our analytics server side infrastructure processes millions of events instantly, giving you up-to-the-second insights."},{icon:mP,title:"AI-Powered Insights",description:"Machine learning algorithms analyze your server side analytics data to uncover patterns and predict user behavior."},{icon:h1,title:"Privacy-First Design",description:"Full control over your data with server-side analytics tracking. Meet GDPR, CCPA, and other privacy requirements."},{icon:qc,title:"Enhanced Accuracy",description:"Analytics server side tracking eliminates data loss from browser restrictions, giving you 99%+ accuracy rates."},{icon:kP,title:"Faster Page Loads",description:"Move tracking to the server to improve your web server analytics without impacting user experience."}],$5={hidden:{opacity:0},visible:{opacity:1,transition:{staggerChildren:.1}}},U5={hidden:{opacity:0,y:20},visible:{opacity:1,y:0}};function H5(){return a.jsxs("section",{className:"py-20 md:py-32 relative",children:[a.jsx("div",{className:"absolute inset-0 bg-glow opacity-30"}),a.jsxs("div",{className:"container mx-auto px-4 relative z-10",children:[a.jsxs("div",{className:"text-center max-w-3xl mx-auto mb-16",children:[a.jsx(H.span,{initial:{opacity:0}
271,whileInView:{opacity:1},viewport:{once:!0},className:"text-primary font-medium text-sm uppercase tracking-wider",children:"Why Choose Us"}),a.jsxs(H.h2,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:.1},className:"font-display text-3xl md:text-4xl lg:text-5xl font-bold text-foreground mt-4 mb-6",children:["Why Choose Our"," ",a.jsx("span",{className:"text-gradient",children:"Server-Side Analytics"})," AI Tool?"]}),a.jsx(H.p,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:.2},className:"text-muted-foreground text-lg",children:"Discover how our server side analytics tools transform your data collection with unmatched precision and AI-powered intelligence."})]}),a.jsx(H.div,{variants:$5,initial:"hidden",whileInView:"visible",viewport:{once:!0},className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6",children:V5.map((e,t)=>a.jsxs(H.div,{variants:U5,className:"group p-6 md:p-8 rounded-2xl card-gradient border border-border hover:border-primary/30 transition-all duration-300",children:[a.jsx("div",{className:"w-12 h-12 rounded-xl bg-primary/10 border border-primary/20 flex items-center justify-center mb-6 group-hover:scale-110 transition-transform",children:a.jsx(e.icon,{className:"w-6 h-6 text-primary"})}),a.jsx("h3",{className:"font-display font-semibold text-xl text-foreground mb-3",children:e.title}),a.jsx("p",{className:"text-muted-foreground leading-relaxed",children:e.description})]},t))})]})]})}const hx=[{icon:Ph,step:"01",title:"Data Collection",description:"Your web server analytics capture every user interaction directly on your server, bypassing browser limitations and ad blockers."},{icon:xP,step:"02",title:"AI Processing",description:"Our server-side analytics AI processes and enriches your data in real-time, identifying patterns and anomalies automatically."},{icon:gP,step:"03",title:"Actionable Insights",description:"Access comprehensive dashboards with analytics server side data transformed into clear, actionable business intelligence."}];function W5(){return a.jsxs("section",{className:"py-20 md:py-32 bg-card relative overflow-hidden",children:[a.jsx("div",{className:"absolute inset-0 bg-grid-pattern opacity-30"}),a.jsxs("div",{className:"container mx-auto px-4 relative z-10",children:[a.jsxs("div",{className:"text-center max-w-3xl mx-auto mb-16",children:[a.jsx(H.span,{initial:{opacity:0}
271,whileInView:{opacity:1},viewport:{once:!0},className:"text-primary font-medium text-sm uppercase tracking-wider",children:"How It Works"}),a.jsxs(H.h2,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:.1},className:"font-display text-3xl md:text-4xl lg:text-5xl font-bold text-foreground mt-4 mb-6",children:["How Our ",a.jsx("span",{className:"text-gradient",children:"Server-Side Analytics"})," Tool Works"]}),a.jsx(H.p,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:.2},className:"text-muted-foreground text-lg",children:"Simple setup, powerful results. See how our server side analytics tracking transforms raw data into business growth."})]}),a.jsx("div",{className:"max-w-4xl mx-auto",children:hx.map((e,t)=>a.jsxs(H.div,{initial:{opacity:0,x:t%2===0?-30:30},whileInView:{opacity:1,x:0},viewport:{once:!0},transition:{delay:t*.15},className:"relative",children:[a.jsxs("div",{className:"flex items-start gap-6 md:gap-10",children:[a.jsx("div",{className:"flex-shrink-0",children:a.jsxs("div",{className:"relative",children:[a.jsx("div",{className:"w-16 h-16 md:w-20 md:h-20 rounded-2xl bg-primary/10 border border-primary/20 flex items-center justify-center shadow-glow",children:a.jsx(e.icon,{className:"w-8 h-8 md:w-10 md:h-10 text-primary"})}),a.jsx("span",{className:"absolute -top-2 -right-2 w-8 h-8 rounded-full bg-primary text-primary-foreground font-display font-bold text-sm flex items-center justify-center",children:e.step})]})}),a.jsxs("div",{className:"flex-1 pb-12 md:pb-16",children:[a.jsx("h3",{className:"font-display font-semibold text-xl md:text-2xl text-foreground mb-3",children:e.title}),a.jsx("p",{className:"text-muted-foreground leading-relaxed",children:e.description})]})]}),t<hx.length-1&&a.jsx("div",{className:"absolute left-8 md:left-10 top-20 md:top-24 w-px h-12 md:h-16 bg-gradient-to-b from-primary/50 to-transparent"})]},t))})]})]})}const q5=[{icon:Ph,title:"Stape",description:"The leading server-side tracking platform. Deploy GTM Server-Side containers in minutes with automatic scaling and global CDN.",highlight:!0},{icon:qc,title:"Google Tag Manager Server-Side",description:"Google's official server-side tagging solution. Process and route data through your own server infrastructure.",highlight:!1},{icon:SP,title:"Segment",description:"Customer data platform with server-side tracking capabilities. Unify data from multiple sources into one pipeline.",highlight:!1}];function K5(){return a.jsx("section",{className:"py-20 md:py-32 relative",children:a.jsxs("div",{className:"container mx-auto px-4",children:[a.jsxs("div",{className:"text-center max-w-3xl mx-auto mb-16",children:[a.jsx(H.span,{initial:{opacity:0}
271,whileInView:{opacity:1},viewport:{once:!0},className:"text-primary font-medium text-sm uppercase tracking-wider",children:"Complete Ecosystem"}),a.jsxs(H.h2,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:.1},className:"font-display text-3xl md:text-4xl lg:text-5xl font-bold text-foreground mt-4 mb-6",children:["Extra Tools for Your ",a.jsx("span",{className:"text-gradient",children:"Server Side Tracking"})]}),a.jsx(H.p,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:.2},className:"text-muted-foreground text-lg",children:"The best tools to set up comprehensive analytics with server side tracking. Integrate seamlessly with your existing stack."})]}),a.jsx("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-6 max-w-5xl mx-auto",children:q5.map((e,t)=>a.jsxs(H.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.1},className:`group p-6 rounded-2xl border transition-all duration-300 ${e.highlight?"bg-primary/10 border-primary/30 hover:border-primary/50":"bg-secondary/30 border-border hover:border-primary/30 hover:bg-secondary/50"}`,children:[a.jsx("div",{className:`w-12 h-12 rounded-xl flex items-center justify-center mb-4 group-hover:scale-110 transition-transform ${e.highlight?"bg-primary/20 border border-primary/30":"bg-primary/10 border border-primary/20"}`,children:a.jsx(e.icon,{className:"w-6 h-6 text-primary"})}),a.jsxs("h3",{className:"font-display font-semibold text-xl text-foreground mb-2",children:[e.title,e.highlight&&a.jsx("span",{className:"ml-2 text-xs bg-primary/20 text-primary px-2 py-1 rounded-full",children:"Recommended"})]}),a.jsx("p",{className:"text-muted-foreground",children:e.description})]},t))})]})})}const Y5=["Full audit of your current tracking implementation","Identify gaps in your analytics server side setup","Recommendations for server-side analytics improvements","Performance impact analysis","Privacy compliance review"];function Q5(){return a.jsxs("section",{className:"py-20 md:py-32 bg-card relative overflow-hidden",children:[a.jsx("div",{className:"absolute inset-0 bg-glow opacity-20"}),a.jsx("div",{className:"absolute inset-0 bg-grid-pattern opacity-30"}),a.jsx("div",{className:"container mx-auto px-4 relative z-10",children:a.jsxs("div",{className:"max-w-3xl mx-auto text-center",children:[a.jsx(H.span,{initial:{opacity:0}
271,whileInView:{opacity:1},viewport:{once:!0},className:"text-primary font-medium text-sm uppercase tracking-wider",children:"Free Analysis"}),a.jsxs(H.h2,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:.1},className:"font-display text-3xl md:text-4xl lg:text-5xl font-bold text-foreground mt-4 mb-6",children:["Check Your ",a.jsx("span",{className:"text-gradient",children:"Tracking Set Up"})," for Free"]}),a.jsx(H.p,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:.2},className:"text-muted-foreground text-lg mb-10",children:"Not sure if your web server analytics are configured correctly? Get a complimentary audit of your server side analytics tracking and discover opportunities for improvement."}),a.jsx(H.ul,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:.3},className:"space-y-4 mb-10 text-left max-w-md mx-auto",children:Y5.map((e,t)=>a.jsxs("li",{className:"flex items-start gap-3",children:[a.jsx(Nh,{className:"w-5 h-5 text-primary flex-shrink-0 mt-0.5"}),a.jsx("span",{className:"text-foreground",children:e})]},t))}),a.jsx(H.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:.4},children:a.jsx(ut,{variant:"glow",size:"lg",asChild:!0,children:a.jsxs("a",{href:"https://stape.io/website-tracking-checker?pt=bxprdiua&rs=site",target:"_blank",rel:"noopener noreferrer",children:["Get Free Analysis",a.jsx(Fn,{className:"w-5 h-5"})]})})})]})})]})}function X5(){return a.jsxs("section",{className:"py-20 md:py-32 relative overflow-hidden",children:[a.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-background via-primary/5 to-background"}),a.jsx("div",{className:"absolute inset-0 bg-grid-pattern opacity-30"}),a.jsx("div",{className:"container mx-auto px-4 relative z-10",children:a.jsxs(H.div,{initial:{opacity:0,y:30},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"max-w-4xl mx-auto text-center",children:[a.jsxs("div",{className:"inline-flex items-center gap-2 px-4 py-2 rounded-full bg-primary/10 border border-primary/20 mb-8",children:[a.jsx(Mp,{className:"w-4 h-4 text-primary"}),a.jsx("span",{className:"text-sm font-medium text-primary",children:"Get Started Today"})]}),a.jsxs("h2",{className:"font-display text-3xl md:text-4xl lg:text-5xl font-bold text-foreground mb-6",children:["Start Optimizing Your Tracking with Our"," ",a.jsx("span",{className:"text-gradient",children:"Server-Side Analytics"})," Tool Today"]}),a.jsx("p",{className:"text-muted-foreground text-lg md:text-xl max-w-2xl mx-auto mb-10",children:"Join thousands of businesses using our server-side analytics tools to unlock accurate data, powerful insights, and better marketing decisions."}),a.jsx(ut,{variant:"glow",size:"xl",asChild:!0,children:a.jsxs("a",{href:"/chat",children:["Set up Server-Side Analytics Now",a.jsx(Fn,{className:"w-5 h-5"})]})})]})})]})}const J5=()=>a.jsxs(yt,{children:[a.jsx(vt,{title:"Server-Side Analytics Tool - Improve Your Tracking With AI",description:"AI-powered server-side analytics tool that bypasses ad blockers, ensures GDPR compliance, and captures every conversion accurately.",path:"/"}),a.jsx(G5,{}),a.jsx(z5,{}),a.jsx(H5,{}),a.jsx(W5,{}),a.jsx(K5,{}),a.jsx(Q5,{}),a.jsx(X5,{})]});var lu="Collapsible",[Z5,aT]=Ks(lu),[eO,Tm]=Z5(lu),lT=b.forwardRef((e,t)=>{const{__scopeCollapsible:n,open:r,defaultOpen:i,disabled:s,onOpenChange:o,...l}=e,[c,u]=Uc({prop:r,defaultProp:i??!1,onChange:o,caller:lu});return a.jsx(eO,{scope:n,disabled:s,contentId:E1(),open:c,onOpenToggle:b.useCallback(()=>u(d=>!d),[u]),children:a.jsx($e.div,{"data-state":jm(c),"data-disabled":s?"":void 0,...l,ref:t})})});lT.displayName=lu;var cT="CollapsibleTrigger",uT=b.forwardRef((e,t)=>{const{__scopeCollapsible:n,...r}=e,i=Tm(cT,n);return a.jsx($e.button,{type:"button","aria-controls":i.contentId,"aria-expanded":i.open||!1,"data-state":jm(i.open),"data-disabled":i.disabled?"":void 0,disabled:i.disabled,...r,ref:t,onClick:De(e.onClick,i.onOpenToggle)})});uT.displayName=cT;var Cm="CollapsibleContent",dT=b.forwardRef((e,t)=>
vendor: 4,178 bytes, line 271
271{const{forceMount:n,...r}=e,i=Tm(Cm,e.__scopeCollapsible);return a.jsx($c,{present:n||i.open,children:({present:s})=>a.jsx(tO,{...r,ref:t,present:s})})});dT.displayName=Cm;var tO=b.forwardRef((e,t)=>{const{__scopeCollapsible:n,present:r,children:i,...s}=e,o=Tm(Cm,n),[l,c]=b.useState(r),u=b.useRef(null),d=Gt(t,u),p=b.useRef(0),h=p.current,f=b.useRef(0),x=f.current,g=o.open||l,w=b.useRef(g),m=b.useRef(void 0);return b.useEffect(()=>{const y=requestAnimationFrame(()=>w.current=!1);return()=>cancelAnimationFrame(y)},[]),Vn(()=>{const y=u.current;if(y){m.current=m.current||{transitionDuration:y.style.transitionDuration,animationName:y.style.animationName},y.style.transitionDuration="0s",y.style.animationName="none";const v=y.getBoundingClientRect();p.current=v.height,f.current=v.width,w.current||(y.style.transitionDuration=m.current.transitionDuration,y.style.animationName=m.current.animationName),c(r)}},[o.open,r]),a.jsx($e.div,{"data-state":jm(o.open),"data-disabled":o.disabled?"":void 0,id:o.contentId,hidden:!g,...s,ref:d,style:{"--radix-collapsible-content-height":h?`${h}px`:void 0,"--radix-collapsible-content-width":x?`${x}px`:void 0,...e.style},children:g&&i})});function jm(e){return e?"open":"closed"}var nO=lT,rO=uT,iO=dT,sO=b.createContext(void 0);function oO(e){const t=b.useContext(sO);return e||t||"ltr"}var Tn="Accordion",aO=["Home","End","ArrowDown","ArrowUp","ArrowLeft","ArrowRight"],[Nm,lO,cO]=_b(Tn),[cu,QB]=Ks(Tn,[cO,aT]),Am=aT(),pT=L.forwardRef((e,t)=>{const{type:n,...r}=e,i=r,s=r;return a.jsx(Nm.Provider,{scope:e.__scopeAccordion,children:n==="multiple"?a.jsx(fO,{...s,ref:t}):a.jsx(pO,{...i,ref:t})})});pT.displayName=Tn;var[fT,uO]=cu(Tn),[hT,dO]=cu(Tn,{collapsible:!1}),pO=L.forwardRef((e,t)=>{const{value:n,defaultValue:r,onValueChange:i=()=>{},collapsible:s=!1,...o}=e,[l,c]=Uc({prop:n,defaultProp:r??"",onChange:i,caller:Tn});return a.jsx(fT,{scope:e.__scopeAccordion,value:L.useMemo(()=>l?[l]:[],[l]),onItemOpen:c,onItemClose:L.useCallback(()=>s&&c(""),[s,c]),children:a.jsx(hT,{scope:e.__scopeAccordion,collapsible:s,children:a.jsx(mT,{...o,ref:t})})})}),fO=L.forwardRef((e,t)=>{const{value:n,defaultValue:r,onValueChange:i=()=>{},...s}=e,[o,l]=Uc({prop:n,defaultProp:r??[],onChange:i,caller:Tn}),c=L.useCallback(d=>l((p=[])=>[...p,d]),[l]),u=L.useCallback(d=>l((p=[])=>p.filter(h=>h!==d)),[l]);return a.jsx(fT,{scope:e.__scopeAccordion,value:o,onItemOpen:c,onItemClose:u,children:a.jsx(hT,{scope:e.__scopeAccordion,collapsible:!0,children:a.jsx(mT,{...s,ref:t})})})}),[hO,uu]=cu(Tn),mT=L.forwardRef((e,t)=>{const{__scopeAccordion:n,disabled:r,dir:i,orientation:s="vertical",...o}=e,l=L.useRef(null),c=Gt(l,t),u=lO(n),p=oO(i)==="ltr",h=De(e.onKeyDown,f=>{var A;if(!aO.includes(f.key))return;const x=f.target,g=u().filter(P=>{var M;return!((M=P.ref.current)!=null&&M.disabled)}),w=g.findIndex(P=>P.ref.current===x),m=g.length;if(w===-1)return;f.preventDefault();let y=w;const v=0,k=m-1,C=()=>{y=w+1,y>k&&(y=v)},T=()=>{y=w-1,y<v&&(y=k)};switch(f.key){case"Home":y=v;break;case"End":y=k;break;case"ArrowRight":s==="horizontal"&&(p?C():T());break;case"ArrowDown":s==="vertical"&&C();break;case"ArrowLeft":s==="horizontal"&&(p?T():C());break;case"ArrowUp":s==="vertical"&&T();break}const N=y%m;(A=g[N].ref.current)==null||A.focus()});return a.jsx(hO,{scope:n,disabled:r,direction:i,orientation:s,children:a.jsx(Nm.Slot,{scope:n,children:a.jsx($e.div,{...o,"data-orientation":s,ref:c,onKeyDown:r?void 0:h})})})}),Tc="AccordionItem",[mO,Pm]=cu(Tc),gT=L.forwardRef((e,t)=>{const{__scopeAccordion:n,value:r,...i}=e,s=uu(Tc,n),o=uO(Tc,n),l=Am(n),c=E1(),u=r&&o.value.includes(r)||!1,d=s.disabled||e.disabled;return a.jsx(mO,{scope:n,open:u,disabled:d,triggerId:c,children:a.jsx(nO,{"data-orientation":s.orientation,"data-state":kT(u),...l,...i,ref:t,disabled:d,open:u,onOpenChange:p=>{p?o.onItemOpen(r):o.onItemClose(r)}})})});gT.displayName=Tc;var yT="AccordionHeader",vT=L.forwardRef((e,t)=>{const{__scopeAccordion:n,...r}=e,i=uu(Tn,n),s=Pm(yT,n);return a.jsx($e.h3,{"data-orientation":i.orientation,"data-state":kT(s.open),"data-disabled":s.disabled?"":void 0,...r,ref:t})});vT.displayName=yT;var ff="AccordionTrigger",xT=L.forwardRef((e,t)=>
271{const{__scopeAccordion:n,...r}=e,i=uu(Tn,n),s=Pm(ff,n),o=dO(ff,n),l=Am(n);return a.jsx(Nm.ItemSlot,{scope:n,children:a.jsx(rO,{"aria-disabled":s.open&&!o.collapsible||void 0,"data-orientation":i.orientation,id:s.triggerId,...l,...r,ref:t})})});xT.displayName=ff;var wT="AccordionContent",bT=L.forwardRef((e,t)=>{const{__scopeAccordion:n,...r}=e,i=uu(Tn,n),s=Pm(wT,n),o=Am(n);return a.jsx(iO,{role:"region","aria-labelledby":s.triggerId,"data-orientation":i.orientation,...o,...r,ref:t,style:{"--radix-accordion-content-height":"var(--radix-collapsible-content-height)","--radix-accordion-content-width":"var(--radix-collapsible-content-width)",...e.style}})});bT.displayName=wT;function kT(e){return e?"open":"closed"}var gO=pT,yO=gT,vO=vT,ST=xT,TT=bT;const CT=gO,Em=b.forwardRef(({className:e,...t},n)=>a.jsx(yO,{ref:n,className:nn("border-b",e),...t}));Em.displayName="AccordionItem";const Mm=b.forwardRef(({className:e,children:t,...n},r)=>a.jsx(vO,{className:"flex",children:a.jsxs(ST,{ref:r,className:nn("flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180",e),...n,children:[t,a.jsx(yP,{className:"h-4 w-4 shrink-0 transition-transform duration-200"})]})}));Mm.displayName=ST.displayName;const Im=b.forwardRef(({className:e,children:t,...n},r)=>a.jsx(TT,{ref:r,className:"overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",...n,children:a.jsx("div",{className:nn("pb-4 pt-0",e),children:t})}));Im.displayName=TT.displayName;const xO=[{question:"Contact us if you need help with server-side tracking implementation",answer:"Our team can guide you through setting up server-side tracking for Google Analytics, Meta Pixel, TikTok, and other platforms. We'll help you configure your GTM server container and ensure accurate data collection."},{question:"Contact us if you're experiencing data discrepancies",answer:"We can analyze your current tracking setup, identify where data is being lost due to ad blockers or browser restrictions, and help you implement solutions to improve data accuracy by up to 30%."},{question:"Contact us if you need GDPR-compliant analytics",answer:"We'll help you set up a first-party data collection system that respects user privacy while maintaining accurate analytics. Our solutions are designed to comply with GDPR, CCPA, and other privacy regulations."},{question:"Contact us if you want to improve your ad campaign performance",answer:"By implementing server-side tracking, we can help you capture more conversion data, improve attribution accuracy, and optimize your advertising spend across all major platforms."},{question:"Contact us if you have questions about our free analytics check",answer:"Our AI-powered analytics checker can evaluate your current tracking implementation and identify potential improvements. We're happy to explain the results and discuss next steps."}],wO=()=>a.jsxs(yt,{children:[a.jsx(vt,{title:"Contact Us | Server-Side Analytics",description:"Have questions about server-side tracking? Contact our analytics experts for help with implementation, GDPR compliance, and data accuracy.",path:"/contact"}),a.jsxs("section",{className:"py-20 md:py-32 relative overflow-hidden",children:[a.jsx("div",{className:"absolute inset-0 bg-grid-pattern opacity-30"}),a.jsx("div",{className:"absolute top-1/4 left-1/4 w-96 h-96 bg-glow animate-pulse-glow"}),a.jsx("div",{className:"container mx-auto px-4 relative z-10",children:a.jsxs("div",{className:"max-w-4xl mx-auto",children:[a.jsxs(H.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},className:"text-center mb-16",children:[a.jsx("span",{className:"text-primary font-medium text-sm uppercase tracking-wider",children:"Get In Touch"}),a.jsxs("h1",{className:"font-display text-4xl md:text-5xl font-bold text-foreground mt-4 mb-6",children:["Contact ",a.jsx("span",{className:"text-gradient",children:"Us"})]}),a.jsx("p",{className:"text-muted-foreground text-lg max-w-2xl mx-auto",children:"Have questions about our server-side analytics tools? Our team is here to help you improve your tracking implementation."})]}),a.jsx(H.div,{initial:{opacity:0,y:20}
271,animate:{opacity:1,y:0},transition:{delay:.1},className:"mb-16",children:a.jsxs("div",{className:"p-8 rounded-2xl card-gradient border border-border text-center",children:[a.jsx("div",{className:"w-16 h-16 rounded-2xl bg-primary/10 border border-primary/20 flex items-center justify-center mx-auto mb-6",children:a.jsx(m1,{className:"w-8 h-8 text-primary"})}),a.jsx("h2",{className:"font-display text-2xl font-semibold text-foreground mb-3",children:"Email Us"}),a.jsx("p",{className:"text-muted-foreground mb-4",children:"For general inquiries and support, reach out to us at:"}),a.jsx("a",{href:"mailto:[email protected]",className:"text-xl text-primary hover:underline font-medium",children:"[email protected]"})]})}),a.jsxs(H.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{delay:.2},children:[a.jsx("h2",{className:"font-display text-2xl md:text-3xl font-semibold text-foreground text-center mb-8",children:"How Can We Help?"}),a.jsx(CT,{type:"single",collapsible:!0,className:"space-y-4",children:xO.map((e,t)=>a.jsxs(Em,{value:`item-${t}`,className:"rounded-xl card-gradient border border-border px-6 data-[state=open]:border-primary/30",children:[a.jsx(Mm,{className:"text-left font-medium text-foreground hover:no-underline py-5",children:e.question}),a.jsx(Im,{className:"text-muted-foreground pb-5",children:e.answer})]},t))})]})]})})]})]}),bO=()=>a.jsxs(yt,{children:[a.jsx(vt,{title:"Privacy Policy | Server-Side Analytics",description:"Learn how we protect your data. Our privacy policy covers data collection, GDPR compliance, your rights, and how we secure analytics information.",path:"/privacy"}),a.jsxs("section",{className:"py-20 md:py-32 relative overflow-hidden",children:[a.jsx("div",{className:"absolute inset-0 bg-grid-pattern opacity-20"}),a.jsx("div",{className:"container mx-auto px-4 relative z-10",children:a.jsxs("div",{className:"max-w-4xl mx-auto",children:[a.jsxs(H.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},className:"text-center mb-16",children:[a.jsx("span",{className:"text-primary font-medium text-sm uppercase tracking-wider",children:"Legal"}),a.jsxs("h1",{className:"font-display text-4xl md:text-5xl font-bold text-foreground mt-4 mb-6",children:["Privacy ",a.jsx("span",{className:"text-gradient",children:"Policy"})]}),a.jsx("p",{className:"text-muted-foreground",children:"Last updated: January 26, 2026"})]}),a.jsx(H.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{delay:.1},className:"prose prose-invert prose-lg max-w-none",children:a.jsxs("div",{className:"space-y-8",children:[a.jsxs("div",{className:"p-6 rounded-xl bg-card border border-border",children:[a.jsx("h2",{className:"font-display text-2xl font-semibold text-foreground mb-4",children:"1. Introduction"}),a.jsx("p",{className:"text-muted-foreground leading-relaxed",children:"At AnalyticsAI, we are committed to protecting your privacy and ensuring the security of your data. This Privacy Policy explains how we collect, use, disclose, and safeguard your information when you use our server-side analytics tools and services. Our server side analytics tracking is designed with privacy at its core, ensuring compliance with GDPR, CCPA, and other applicable data protection regulations."})]}),a.jsxs("div",{className:"p-6 rounded-xl bg-card border border-border",children:[a.jsx("h2",{className:"font-display text-2xl font-semibold text-foreground mb-4",children:"2. Information We Collect"}),a.jsx("p",{className:"text-muted-foreground leading-relaxed mb-4",children:"When you use our analytics server side services, we may collect the following types of information:"}),a.jsxs("ul",{className:"space-y-2 text-muted-foreground",children:[a.jsxs("li",{className:"flex items-start gap-2",children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary mt-2 flex-shrink-0"}),a.jsxs("span",{children:[a.jsx("strong",{className:"text-foreground",children:"Account Information:"})," Name, email address, company name, and billing details when you register for our services."]})]}),a.jsxs("li",{className:"flex items-start gap-2",children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary mt-2 flex-shrink-0"}),a.jsxs("span",{children:[a.jsx("strong",{className:"text-foreground",children:"Usage Data:"})," Information about how you interact with our server-side analytics platform, including feature usage and session data."]})]}),a.jsxs("li",{className:"flex items-start gap-2",children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary mt-2 flex-shrink-0"}),a.jsxs("span",{children:[a.jsx("strong",{className:"text-foreground",children:"Analytics Data:"})," Data collected through our web server analytics on behalf of our customers, processed according to their instructions."]})]}),a.jsxs("li",{className:"flex items-start gap-2",children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary mt-2 flex-shrink-0"}),a.jsxs("span",{children:[a.jsx("strong",{className:"text-foreground",children:"Technical Data:"})," IP addresses, browser type, device information, and server logs for security and performance optimization."]})]})]})]}),a.jsxs("div",{className:"p-6 rounded-xl bg-card border border-border",children:[a.jsx("h2",{className:"font-display text-2xl font-semibold text-foreground mb-4",children:"3. How We Use Your Information"}),a.jsx("p",{className:"text-muted-foreground leading-relaxed mb-4",children:"We use the information collected through our server side analytics tools to:"}),a.jsxs("ul",{className:"space-y-2 text-muted-foreground",children:[a.jsxs("li",{className:"flex items-start gap-2",children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary mt-2 flex-shrink-0"}),a.jsx("span",{children:"Provide, operate, and maintain our server-side analytics services"})]}),a.jsxs("li",{className:"flex items-start gap-2",children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary mt-2 flex-shrink-0"}),a.jsx("span",{children:"Improve, personalize, and expand our analytics server side capabilities"})]}),a.jsxs("li",{className:"flex items-start gap-2",children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary mt-2 flex-shrink-0"}),a.jsx("span",{children:"Understand and analyze how you use our platform"})]}),a.jsxs("li",{className:"flex items-start gap-2",children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary mt-2 flex-shrink-0"}),a.jsx("span",{children:"Develop new products, services, features, and functionality"})]}),a.jsxs("li",{className:"flex items-start gap-2",children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary mt-2 flex-shrink-0"}),a.jsx("span",{children:"Communicate with you about updates, security alerts, and support"})]})]})]}),a.jsxs("div",{className:"p-6 rounded-xl bg-card border border-border",children:[a.jsx("h2",{className:"font-display text-2xl font-semibold text-foreground mb-4",children:"4. Data Security"}),a.jsx("p",{className:"text-muted-foreground leading-relaxed",children:"We implement industry-standard security measures to protect your data. All data transmitted through our server side analytics tracking is encrypted using TLS 1.3. We employ strict access controls, regular security audits, and maintain SOC 2 Type II compliance. Your analytics data is stored in secure, geographically distributed data centers with 24/7 monitoring."})]}),a.jsxs("div",{className:"p-6 rounded-xl bg-card border border-border",children:[a.jsx("h2",{className:"font-display text-2xl font-semibold text-foreground mb-4",children:"5. Data Retention"}),a.jsx("p",{className:"text-muted-foreground leading-relaxed",children:"We retain your personal information only for as long as necessary to fulfill the purposes outlined in this Privacy Policy. Analytics data collected through our server-side analytics tools is retained according to your account settings, with a default retention period of 26 months. You can request data deletion at any time through your account settings or by contacting our support team."})]}),a.jsxs("div",{className:"p-6 rounded-xl bg-card border border-border",children:[a.jsx("h2",{className:"font-display text-2xl font-semibold text-foreground mb-4",children:"6. Your Rights"}),a.jsx("p",{className:"text-muted-foreground leading-relaxed mb-4",children:"Depending on your location, you may have the following rights regarding your personal data:"}),a.jsxs("ul",{className:"space-y-2 text-muted-foreground",children:[a.jsxs("li",{className:"flex items-start gap-2",children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary mt-2 flex-shrink-0"}),a.jsx("span",{children:"Right to access your personal data"})]}),a.jsxs("li",{className:"flex items-start gap-2",children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary mt-2 flex-shrink-0"}
271),a.jsx("span",{children:"Right to rectification of inaccurate data"})]}),a.jsxs("li",{className:"flex items-start gap-2",children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary mt-2 flex-shrink-0"}),a.jsx("span",{children:'Right to erasure ("right to be forgotten")'})]}),a.jsxs("li",{className:"flex items-start gap-2",children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary mt-2 flex-shrink-0"}),a.jsx("span",{children:"Right to restrict processing"})]}),a.jsxs("li",{className:"flex items-start gap-2",children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary mt-2 flex-shrink-0"}),a.jsx("span",{children:"Right to data portability"})]})]})]}),a.jsxs("div",{className:"p-6 rounded-xl bg-card border border-border",children:[a.jsx("h2",{className:"font-display text-2xl font-semibold text-foreground mb-4",children:"7. Contact Us"}),a.jsx("p",{className:"text-muted-foreground leading-relaxed",children:"If you have any questions about this Privacy Policy or our data practices, please contact us at:"}),a.jsxs("div",{className:"mt-4 p-4 rounded-lg bg-secondary/30 border border-border",children:[a.jsx("p",{className:"text-foreground font-medium",children:"ServerSideAnalytics Privacy Team"}),a.jsx("p",{className:"text-muted-foreground",children:"Email: [email protected]"})]})]})]})})]})})]})]}),kO=()=>a.jsxs(yt,{children:[a.jsx(vt,{title:"Terms of Service | Server-Side Analytics",description:"Read our terms and conditions for using server-side analytics tools, including service agreements, acceptable use, and billing policies.",path:"/terms"}),a.jsxs("section",{className:"py-20 md:py-32 relative overflow-hidden",children:[a.jsx("div",{className:"absolute inset-0 bg-grid-pattern opacity-20"}),a.jsx("div",{className:"container mx-auto px-4 relative z-10",children:a.jsxs("div",{className:"max-w-4xl mx-auto",children:[a.jsxs(H.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},className:"text-center mb-16",children:[a.jsx("span",{className:"text-primary font-medium text-sm uppercase tracking-wider",children:"Legal"}),a.jsxs("h1",{className:"font-display text-4xl md:text-5xl font-bold text-foreground mt-4 mb-6",children:["Terms & ",a.jsx("span",{className:"text-gradient",children:"Conditions"})]}),a.jsx("p",{className:"text-muted-foreground",children:"Last updated: January 26, 2026"})]}),a.jsxs(H.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{delay:.1},className:"space-y-8",children:[a.jsxs("div",{className:"p-6 rounded-xl bg-card border border-border",children:[a.jsx("h2",{className:"font-display text-2xl font-semibold text-foreground mb-4",children:"1. Acceptance of Terms"}),a.jsx("p",{className:"text-muted-foreground leading-relaxed",children:"By accessing or using AnalyticsAI's server-side analytics services, you agree to be bound by these Terms and Conditions. Our server side analytics tools are provided subject to your acceptance of these terms without modification. If you do not agree to these terms, please do not use our services."})]}),a.jsxs("div",{className:"p-6 rounded-xl bg-card border border-border",children:[a.jsx("h2",{className:"font-display text-2xl font-semibold text-foreground mb-4",children:"2. Description of Services"}),a.jsx("p",{className:"text-muted-foreground leading-relaxed mb-4",children:"AnalyticsAI provides server-side analytics tracking solutions that enable businesses to collect, process, and analyze user data. Our analytics server side platform includes:"}),a.jsxs("ul",{className:"space-y-2 text-muted-foreground",children:[a.jsxs("li",{className:"flex items-start gap-2",children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary mt-2 flex-shrink-0"}),a.jsx("span",{children:"Server-side data collection and processing infrastructure"})]}),a.jsxs("li",{className:"flex items-start gap-2",children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary mt-2 flex-shrink-0"}),a.jsx("span",{children:"AI-powered analytics and insights generation"})]}),a.jsxs("li",{className:"flex items-start gap-2",children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary mt-2 flex-shrink-0"}),a.jsx("span",{children:"Real-time dashboards and reporting tools"})]}),a.jsxs("li",{className:"flex items-start gap-2",children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary mt-2 flex-shrink-0"}),a.jsx("span",{children:"API access for web server analytics integration"})]}),a.jsxs("li",{className:"flex items-start gap-2",children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary mt-2 flex-shrink-0"}),a.jsx("span",{children:"Data export and third-party integrations"})]})]})]}),a.jsxs("div",{className:"p-6 rounded-xl bg-card border border-border",children:[a.jsx("h2",{className:"font-display text-2xl font-semibold text-foreground mb-4",children:"3. Account Registration"}),a.jsx("p",{className:"text-muted-foreground leading-relaxed",children:"To use our server side analytics services, you must create an account and provide accurate, complete, and current information. You are responsible for maintaining the confidentiality of your account credentials and for all activities that occur under your account. You agree to immediately notify us of any unauthorized use of your account."})]}),a.jsxs("div",{className:"p-6 rounded-xl bg-card border border-border",children:[a.jsx("h2",{className:"font-display text-2xl font-semibold text-foreground mb-4",children:"4. Acceptable Use"}),a.jsx("p",{className:"text-muted-foreground leading-relaxed mb-4",children:"When using our server-side analytics tools, you agree not to:"}),a.jsxs("ul",{className:"space-y-2 text-muted-foreground",children:[a.jsxs("li",{className:"flex items-start gap-2",children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary mt-2 flex-shrink-0"}),a.jsx("span",{children:"Violate any applicable laws or regulations"})]}),a.jsxs("li",{className:"flex items-start gap-2",children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary mt-2 flex-shrink-0"}),a.jsx("span",{children:"Collect personal data without proper consent or legal basis"})]}),a.jsxs("li",{className:"flex items-start gap-2",children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary mt-2 flex-shrink-0"}),a.jsx("span",{children:"Attempt to reverse engineer or compromise our infrastru
271cture"})]}),a.jsxs("li",{className:"flex items-start gap-2",children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary mt-2 flex-shrink-0"}),a.jsx("span",{children:"Use our services to track individuals without their knowledge or consent"})]}),a.jsxs("li",{className:"flex items-start gap-2",children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary mt-2 flex-shrink-0"}),a.jsx("span",{children:"Resell or redistribute our services without authorization"})]})]})]}),a.jsxs("div",{className:"p-6 rounded-xl bg-card border border-border",children:[a.jsx("h2",{className:"font-display text-2xl font-semibold text-foreground mb-4",children:"5. Payment and Billing"}),a.jsx("p",{className:"text-muted-foreground leading-relaxed",children:"Paid subscriptions to our analytics server side platform are billed in advance on a monthly or annual basis. All fees are non-refundable except as expressly stated in these terms. We reserve the right to modify our pricing with 30 days' notice. Continued use of our server-side analytics after price changes constitutes acceptance of the new pricing."})]}),a.jsxs("div",{className:"p-6 rounded-xl bg-card border border-border",children:[a.jsx("h2",{className:"font-display text-2xl font-semibold text-foreground mb-4",children:"6. Intellectual Property"}),a.jsx("p",{className:"text-muted-foreground leading-relaxed",children:"All intellectual property rights in our server side analytics tools, including software, algorithms, documentation, and branding, remain our exclusive property. You retain all rights to your data collected through our services. You grant us a limited license to process your data solely to provide our analytics services."})]}),a.jsxs("div",{className:"p-6 rounded-xl bg-card border border-border",children:[a.jsx("h2",{className:"font-display text-2xl font-semibold text-foreground mb-4",children:"7. Service Level Agreement"}),a.jsx("p",{className:"text-muted-foreground leading-relaxed",children:"We commit to providing 99.9% uptime for our server-side analytics tracking infrastructure. In the event of service disruptions exceeding our SLA commitments, eligible customers may receive service credits as specified in our SLA documentation. Scheduled maintenance windows will be communicated in advance."})]}),a.jsxs("div",{className:"p-6 rounded-xl bg-card border border-border",children:[a.jsx("h2",{className:"font-display text-2xl font-semibold text-foreground mb-4",children:"8. Limitation of Liability"}),a.jsx("p",{className:"text-muted-foreground leading-relaxed",children:"To the maximum extent permitted by law, AnalyticsAI shall not be liable for any indirect, incidental, special, consequential, or punitive damages arising from your use of our server side analytics services. Our total liability for any claims related to our services shall not exceed the amount you paid us in the twelve months preceding the claim."})]}),a.jsxs("div",{className:"p-6 rounded-xl bg-card border border-border",children:[a.jsx("h2",{className:"font-display text-2xl font-semibold text-foreground mb-4",children:"9. Termination"}),a.jsx("p",{className:"text-muted-foreground leading-relaxed",children:"Either party may terminate this agreement at any time with 30 days' written notice. We may immediately terminate or suspend your access to our server-side analytics services if you violate these terms. Upon termination, your right to use our services ceases, and we will delete your data within 90 days unless required by law to retain it."})]}),a.jsxs("div",{className:"p-6 rounded-xl bg-card border border-border",children:[a.jsx("h2",{className:"font-display text-2xl font-semibold text-foreground mb-4",children:"10. Governing Law"}),a.jsx("p",{className:"text-muted-foreground leading-relaxed",children:"These Terms and Conditions are governed by and construed in accordance with the laws of the State of California, United States. Any disputes arising from these terms shall be resolved exclusively in the state or federal courts located in San Francisco County, California."})]}),a.jsxs("div",{className:"p-6 rounded-xl bg-card border border-border",children:[a.jsx("h2",{className:"font-display text-2xl font-semibold text-foreground mb-4",children:"11. Contact Information"}),a.jsx("p",{className:"text-muted-foreground leading-relaxed",children:"For questions about these Terms and Conditions, please contact us at:"}),a.jsxs("div",{className:"mt-4 p-4 rounded-lg bg-secondary/30 border border-border",children:[a.jsx("p",{className:"text-foreground font-medium",children:"ServerSideAnalytics 
271Legal Team"}),a.jsx("p",{className:"text-muted-foreground",children:"Email: [email protected]"})]})]})]})]})})]})]}),jT=b.forwardRef(({className:e,type:t,...n},r)=>a.jsx("input",{type:t,className:nn("flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),ref:r,...n}));jT.displayName="Input";const cs={maxMessagesPerSession:20,model:"google/gemini-3-flash-preview",systemPrompt:"You are a helpful AI assistant for ServerSide Analytics. You help users understand server-side analytics, tracking implementation, and data collection best practices. Be concise, professional, and helpful.",placeholder:"Ask about server-side analytics...",welcomeMessage:"Hi! I'm your Server-Side Analytics assistant. How can I help you today?"},SO="https://nnapynzmeqaxopelkadz.supabase.co/functions/v1/chat";function TO(){const[e,t]=b.useState([]),[n,r]=b.useState(!1),[i,s]=b.useState(0),[o,l]=b.useState(null),c=cs.maxMessagesPerSession-i,u=c>0,d=b.useCallback(async h=>{var w,m,y;if(!u||!h.trim())return;l(null);const f={role:"user",content:h.trim()};t(v=>[...v,f]),s(v=>v+1),r(!0);let x="";const g=v=>{x+=v,t(k=>{const C=k[k.length-1];return(C==null?void 0:C.role)==="assistant"?k.map((T,N)=>N===k.length-1?{...T,content:x}:T):[...k,{role:"assistant",content:x}]})};try{const v=await fetch(SO,{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Im5uYXB5bnptZXFheG9wZWxrYWR6Iiwicm9sZSI6ImFub24iLCJpYXQiOjE3Njk2OTg2MTEsImV4cCI6MjA4NTI3NDYxMX0.xW6HM893tfDQECkKfySz9MH4C2JAJjSZQshtE4MPsy0"},body:JSON.stringify({messages:[...e,f],systemPrompt:cs.systemPrompt,model:cs.model})});if(!v.ok){const N=await v.json().catch(()=>({}));throw new Error(N.error||`Request failed with status ${v.status}`)}if(!v.body)throw new Error("No response body");const k=v.body.getReader(),C=new TextDecoder;let T="";for(;;){const{done:N,value:A}=await k.read();if(N)break;T+=C.decode(A,{stream:!0});let P;for(;(P=T.indexOf(`
272`))!==-1;){let M=T.slice(0,P);if(T=T.slice(P+1),M.endsWith("\r")&&(M=M.slice(0,-1)),M.startsWith(":")||M.trim()===""||!M.startsWith("data: "))continue;const O=M.slice(6).trim();if(O==="[DONE]")break;try{const U=(y=(m=(w=JSON.parse(O).choices)==null?void 0:w[0])==null?void 0:m.delta)==null?void 0:y.content;U&&g(U)}catch{T=M+`
273`+T;break}}}}catch(v){console.error("Chat error:",v),l(v instanceof Error?v.message:"Failed to send message")}finally{r(!1)}},[e,u]),p=b.useCallback(()=>{t([]),s(0),l(null)},[]);return{messages:e,isLoading:n,messageCount:i,remainingMessages:c,canSendMessage:u,error:o,sendMessage:d,resetSession:p,maxMessages:cs.maxMessagesPerSession}}function CO(e,t){const n={};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const jO=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,NO=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,AO={};function mx(e,t){return(AO.jsx?NO:jO).test(e)}const PO=/[ \t\n\f\r]/g;function EO(e){return typeof e=="object"?e.type==="text"?gx(e.value):!1:gx(e)}function gx(e){return e.replace(PO,"")===""}class Da{constructor(t,n,r){this.normal=n,this.property=t,r&&(this.space=r)}}Da.prototype.normal={};Da.prototype.property={};Da.prototype.space=void 0;function NT(e,t){const n={},r={};for(const i of e)Object.assign(n,i.property),Object.assign(r,i.normal);return new Da(n,r,t)}function hf(e){return e.toLowerCase()}class At{constructor(t,n){this.attribute=n,this.property=t}}At.prototype.attribute="";At.prototype.booleanish=!1;At.prototype.boolean=!1;At.prototype.commaOrSpaceSeparated=!1;At.prototype.commaSeparated=!1;At.prototype.defined=!1;At.prototype.mustUseProperty=!1;At.prototype.number=!1;At.prototype.overloadedBoolean=!1;At.prototype.property="";At.prototype.spaceSeparated=!1;At.prototype.space=void 0;let MO=0;const re=Gi(),Le=Gi(),mf=Gi(),G=Gi(),ye=Gi(),bs=Gi(),It=Gi();function Gi(){return 2**++MO}const gf=Object.freeze(Object.defineProperty({__proto__:null,boolean:re,booleanish:Le,commaOrSpaceSeparated:It,commaSeparated:bs,number:G,overloadedBoolean:mf,spaceSeparated:ye},Symbol.toStringTag,{value:"Module"})),vd=Object.keys(gf);class Rm extends At{constructor(t,n,r,i){let s=-1;if(super(t,n),yx(this,"space",i),typeof r=="number")for(;++s<vd.length;){const o=vd[s];yx(this,vd[s],(r&gf[o])===gf[o])}}}Rm.prototype.defined=!0;function yx(e,t,n){n&&(e[t]=n)}function ro(e){const t={},n={};for(const[r,i]of Object.entries(e.properties)){const s=new Rm(r,e.transform(e.attributes||{},r),i,e.space);e.mustUseProperty&&e.mustUseProperty.includes(r)&&(s.mustUseProperty=!0),t[r]=s,n[hf(r)]=r,n[hf(s.attribute)]=r}
vendor: 4,180 bytes, line 273
273return new Da(t,n,e.space)}const AT=ro({properties:{ariaActiveDescendant:null,ariaAtomic:Le,ariaAutoComplete:null,ariaBusy:Le,ariaChecked:Le,ariaColCount:G,ariaColIndex:G,ariaColSpan:G,ariaControls:ye,ariaCurrent:null,ariaDescribedBy:ye,ariaDetails:null,ariaDisabled:Le,ariaDropEffect:ye,ariaErrorMessage:null,ariaExpanded:Le,ariaFlowTo:ye,ariaGrabbed:Le,ariaHasPopup:null,ariaHidden:Le,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:ye,ariaLevel:G,ariaLive:null,ariaModal:Le,ariaMultiLine:Le,ariaMultiSelectable:Le,ariaOrientation:null,ariaOwns:ye,ariaPlaceholder:null,ariaPosInSet:G,ariaPressed:Le,ariaReadOnly:Le,ariaRelevant:null,ariaRequired:Le,ariaRoleDescription:ye,ariaRowCount:G,ariaRowIndex:G,ariaRowSpan:G,ariaSelected:Le,ariaSetSize:G,ariaSort:null,ariaValueMax:G,ariaValueMin:G,ariaValueNow:G,ariaValueText:null,role:null},transform(e,t){return t==="role"?t:"aria-"+t.slice(4).toLowerCase()}});function PT(e,t){return t in e?e[t]:t}function ET(e,t){return PT(e,t.toLowerCase())}const IO=ro({attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:bs,acceptCharset:ye,accessKey:ye,action:null,allow:null,allowFullScreen:re,allowPaymentRequest:re,allowUserMedia:re,alt:null,as:null,async:re,autoCapitalize:null,autoComplete:ye,autoFocus:re,autoPlay:re,blocking:ye,capture:null,charSet:null,checked:re,cite:null,className:ye,cols:G,colSpan:null,content:null,contentEditable:Le,controls:re,controlsList:ye,coords:G|bs,crossOrigin:null,data:null,dateTime:null,decoding:null,default:re,defer:re,dir:null,dirName:null,disabled:re,download:mf,draggable:Le,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:re,formTarget:null,headers:ye,height:G,hidden:mf,high:G,href:null,hrefLang:null,htmlFor:ye,httpEquiv:ye,id:null,imageSizes:null,imageSrcSet:null,inert:re,inputMode:null,integrity:null,is:null,isMap:re,itemId:null,itemProp:ye,itemRef:ye,itemScope:re,itemType:ye,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:re,low:G,manifest:null,max:null,maxLength:G,media:null,method:null,min:null,minLength:G,multiple:re,muted:re,name:null,nonce:null,noModule:re,noValidate:re,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforeMatch:null,onBeforePrint:null,onBeforeToggle:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextLost:null,onContextMenu:null,onContextRestored:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onScrollEnd:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:re,optimum:G,pattern:null,ping:ye,placeholder:null,playsInline:re,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:re,referrerPolicy:null,rel:ye,required:re,reversed:re,rows:G,rowSpan:G,sandbox:ye,scope:null,scoped:re,seamless:re,selected:re,shadowRootClonable:re,shadowRootDelegatesFocus:re,shadowRootMode:null,shape:null,size:G,sizes:null,slot:null,span:G,spellCheck:Le,src:null,
273srcDoc:null,srcLang:null,srcSet:null,start:G,step:null,style:null,tabIndex:G,target:null,title:null,translate:null,type:null,typeMustMatch:re,useMap:null,value:Le,width:G,wrap:null,writingSuggestions:null,align:null,aLink:null,archive:ye,axis:null,background:null,bgColor:null,border:G,borderColor:null,bottomMargin:G,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:re,declare:re,event:null,face:null,frame:null,frameBorder:null,hSpace:G,leftMargin:G,link:null,longDesc:null,lowSrc:null,marginHeight:G,marginWidth:G,noResize:re,noHref:re,noShade:re,noWrap:re,object:null,profile:null,prompt:null,rev:null,rightMargin:G,rules:null,scheme:null,scrolling:Le,standby:null,summary:null,text:null,topMargin:G,valueType:null,version:null,vAlign:null,vLink:null,vSpace:G,allowTransparency:null,autoCorrect:null,autoSave:null,disablePictureInPicture:re,disableRemotePlayback:re,prefix:null,property:null,results:G,security:null,unselectable:null},space:"html",transform:ET}),RO=ro({attributes:{accentHeight:"accent-height",alignmentBaseline:"alignment-baseline",arabicForm:"arabic-form",baselineShift:"baseline-shift",capHeight:"cap-height",className:"class",clipPath:"clip-path",clipRule:"clip-rule",colorInterpolation:"color-interpolation",colorInterpolationFilters:"color-interpolation-filters",colorProfile:"color-profile",colorRendering:"color-rendering",crossOrigin:"crossorigin",dataType:"datatype",dominantBaseline:"dominant-baseline",enableBackground:"enable-background",fillOpacity:"fill-opacity",fillRule:"fill-rule",floodColor:"flood-color",floodOpacity:"flood-opacity",fontFamily:"font-family",fontSize:"font-size",fontSizeAdjust:"font-size-adjust",fontStretch:"font-stretch",fontStyle:"font-style",fontVariant:"font-variant",fontWeight:"font-weight",glyphName:"glyph-name",glyphOrientationHorizontal:"glyph-orientation-horizontal",glyphOrientationVertical:"glyph-orientation-vertical",hrefLang:"hreflang",horizAdvX:"horiz-adv-x",horizOriginX:"horiz-origin-x",horizOriginY:"horiz-origin-y",imageRendering:"image-rendering",letterSpacing:"letter-spacing",lightingColor:"lighting-color",markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",navDown:"nav-down",navDownLeft:"nav-down-left",navDownRight:"nav-down-right",navLeft:"nav-left",navNext:"nav-next",navPrev:"nav-prev",navRight:"nav-right",navUp:"nav-up",navUpLeft:"nav
273-up-left",navUpRight:"nav-up-right",onAbort:"onabort",onActivate:"onactivate",onAfterPrint:"onafterprint",onBeforePrint:"onbeforeprint",onBegin:"onbegin",onCancel:"oncancel",onCanPlay:"oncanplay",onCanPlayThrough:"oncanplaythrough",onChange:"onchange",onClick:"onclick",onClose:"onclose",onCopy:"oncopy",onCueChange:"oncuechange",onCut:"oncut",onDblClick:"ondblclick",onDrag:"ondrag",onDragEnd:"ondragend",onDragEnter:"ondragenter",onDragExit:"ondragexit",onDragLeave:"ondragleave",onDragOver:"ondragover",onDragStart:"ondragstart",onDrop:"ondrop",onDurationChange:"ondurationchange",onEmptied:"onemptied",onEnd:"onend",onEnded:"onended",onError:"onerror",onFocus:"onfocus",onFocusIn:"onfocusin",onFocusOut:"onfocusout",onHashChange:"onhashchange",onInput:"oninput",onInvalid:"oninvalid",onKeyDown:"onkeydown",onKeyPress:"onkeypress",onKeyUp:"onkeyup",onLoad:"onload",onLoadedData:"onloadeddata",onLoadedMetadata:"onloadedmetadata",onLoadStart:"onloadstart",onMessage:"onmessage",onMouseDown:"onmousedown",onMouseEnter:"onmouseenter",onMouseLeave:"onmouseleave",onMouseMove:"onmousemove",onMouseOut:"onmouseout",onMouseOver:"onmouseover",onMouseUp:"onmouseup",onMouseWheel:"onmousewheel",onOffline:"onoffline",onOnline:"ononline",onPageHide:"onpagehide",onPageShow:"onpageshow",onPaste:"onpaste",onPause:"onpause",onPlay:"onplay",onPlaying:"onplaying",onPopState:"onpopstate",onProgress:"onprogress",onRateChange:"onratechange",onRepeat:"onrepeat",onReset:"onreset",onResize:"onresize",onScroll:"onscroll",onSeeked:"onseeked",onSeeking:"onseeking",onSelect:"onselect",onShow:"onshow",onStalled:"onstalled",onStorage:"onstorage",onSubmit:"onsubmit",onSuspend:"onsuspend",onTimeUpdate:"ontimeupdate",onToggle:"ontoggle",onUnload:"onunload",onVolumeChange:"onvolumechange",onWaiting:"onwaiting",onZoom:"onzoom",overlinePosition:"overline-position",overlineThickness:"overline-thickness",paintOrder:"paint-order",panose1:"panose-1",pointerEvents:"pointer-events",referrerPolicy:"referrerpolicy",renderingIntent:"rendering-intent",shapeRendering:"shape-rendering",stopColor:"stop-color",stopOpacity:"stop-opacity",strikethroughPosition:"strikethrough-position",strikethroughThickness:"strikethrough-thickness",strokeDashArray:"stroke-dasharray",strokeDashOffset:"stroke-dashoffset",strokeLineCap:"stroke-linecap",strokeLineJoin:"stroke-linejoin",strokeMiterLimit:"stroke-miterlimit",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",tabIndex:"tabindex",textAnchor:"text-anchor",textDecoration:"text-decoration",textRendering:"text-rendering",transformOrigin:"transform-origin",typeOf:"typeof",underlinePosition:"underline-position",underlineThickness:"underline-thickness",unicodeBidi:"unicode-bidi",unicodeRange:"unicode-range",unitsPerEm:"units-per-em",vAlphabetic:"v-alphabetic",vHanging:"v-hanging",vIdeographic:"v-ideographic",vMathematical:"v-mathematical",vectorEffect:"vector-effect",vertAdvY:"vert-adv-y",vertOriginX:"vert-origin-x",vertOriginY:"vert-origin-y",wordSpacing:"word-spacing",writingMode:"writing-mode",xHeight:"x-height",playbackOrder:"playbackorder",timelineBegin:"timelinebegin"},properties:{about:It,accentHeight:G,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:G,amplitude:G,arabicForm:null,ascent:G,attributeName:null,attributeType:null,azimuth:G,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:G,by:null,calcMode:null,capHeight:G,className:ye,clip:null,clipPath:null,clipPathUnits:null,clipRule:null,color:null,colorInterpolation:null,colorInterpolationFilters:null,colorProfile:null,colorRendering:null,content:null,contentScriptType:null,contentStyleType:null,crossOrigin:null,cursor:null,cx:null,cy:null,d:null,dataType:null,defaultAction:null,descent:G,diffuseConstant:G,direction:null,display:null,dur:null,divisor:G,dominantBaseline:null,download:re,dx:null,dy:null,edgeMode:null,editable:null,elevation:G,enableBackground:null,end:null,event:null,exponent:G,externalResourcesRequired:null,fill:null,fillOpacity:G,fillRule:null,filter:null,filterRes:null,filterUnits:null,floodColor:null,floodOpacity:null,focusable:null,focusHighlight:null,fontFamily:null,fontSize:null,fontSizeAdjust:null,fontStretch:null,fontStyle:null,fontVariant:null,fontWeight:null,format:null,fr:null,from:null,fx:null,fy:null,g1:bs,g2:bs,glyphName:bs,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:G,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:G,horizOriginX:G,horizOriginY:G,id:null,ideographic:G,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:G,k:G,k1:G,k2:G,k3:G,k4:G,kernelMatrix:It,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:G,local:null,markerEnd:null,markerMid:null,markerStart:null,markerHeight:null,markerUnits:null,markerWidth:null,mask:null,maskContentUnits:null,maskUnits:null,mathematical:null,max:null,media:null,mediaCharacterEncoding:null,mediaContentEncodings:null,mediaSize:G,mediaTime:null,method:null,min:null,mode:null,name:null,navDown:null,navDownLeft:null,navDownRight:null,navLeft:null,navNext:null,navPrev:null,navRight:null,navUp:null,navUpLeft:null,navUpRight:null,numOctaves:null,observer:null,offset:null,onAbort:null,onActivate:null,onAfterPrint:null,onBeforePrint:null,onBegin:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnd:null,onEnded:null,onError:null,onFocus:null,onFocusIn:null,onFocusOut:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadStart:null,onMessage:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onMouseWheel:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRepeat:null,onReset:null,onResize:null,onScroll:null,onSeeked:null,onSeeking:null,onSelect:null,onShow:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnload:null,onVolumeChange:null,onWaiting:null,on
vendor: 5,275 bytes, lines 273-274
273Zoom:null,opacity:null,operator:null,order:null,orient:null,orientation:null,origin:null,overflow:null,overlay:null,overlinePosition:G,overlineThickness:G,paintOrder:null,panose1:null,path:null,pathLength:G,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:ye,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:G,pointsAtY:G,pointsAtZ:G,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:It,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:It,rev:It,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:It,requiredFeatures:It,requiredFonts:It,requiredFormats:It,resource:null,restart:null,result:null,rotate:null,rx:null,ry:null,scale:null,seed:null,shapeRendering:null,side:null,slope:null,snapshotTime:null,specularConstant:G,specularExponent:G,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:G,strikethroughThickness:G,string:null,stroke:null,strokeDashArray:It,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:G,strokeOpacity:G,strokeWidth:null,style:null,surfaceScale:G,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:It,tabIndex:G,tableValues:null,target:null,targetX:G,targetY:G,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:It,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:G,underlineThickness:G,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:G,values:null,vAlphabetic:G,vMathematical:G,vectorEffect:null,vHanging:G,vIdeographic:G,version:null,vertAdvY:G,vertOriginX:G,vertOriginY:G,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:G,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null},space:"svg",transform:PT}),MT=ro({properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null},space:"xlink",transform(e,t){return"xlink:"+t.slice(5).toLowerCase()}}),IT=ro({attributes:{xmlnsxlink:"xmlns:xlink"},properties:{xmlnsXLink:null,xmlns:null},space:"xmlns",transform:ET}),RT=ro({properties:{xmlBase:null,xmlLang:null,xmlSpace:null},space:"xml",transform(e,t){return"xml:"+t.slice(3).toLowerCase()}}),DO={classId:"classID",dataType:"datatype",itemId:"itemID",strokeDashArray:"strokeDasharray",strokeDashOffset:"strokeDashoffset",strokeLineCap:"strokeLinecap",strokeLineJoin:"strokeLinejoin",strokeMiterLimit:"strokeMiterlimit",typeOf:"typeof",xLinkActuate:"xlinkActuate",xLinkArcRole:"xlinkArcrole",xLinkHref:"xlinkHref",xLinkRole:"xlinkRole",xLinkShow:"xlinkShow",xLinkTitle:"xlinkTitle",xLinkType:"xlinkType",xmlnsXLink:"xmlnsXlink"},FO=/[A-Z]/g,vx=/-[a-z]/g,OO=/^data[-\w.:]+$/i;function LO(e,t){const n=hf(t);let r=t,i=At;if(n in e.normal)return e.property[e.normal[n]];if(n.length>4&&n.slice(0,4)==="data"&&OO.test(t)){if(t.charAt(4)==="-"){const s=t.slice(5).replace(vx,BO);r="data"+s.charAt(0).toUpperCase()+s.slice(1)}else{const s=t.slice(4);if(!vx.test(s)){let o=s.replace(FO,_O);o.charAt(0)!=="-"&&(o="-"+o),t="data"+o}}i=Rm}return new i(r,t)}function _O(e){return"-"+e.toLowerCase()}function BO(e){return e.charAt(1).toUpperCase()}const GO=NT([AT,IO,MT,IT,RT],"html"),Dm=NT([AT,RO,MT,IT,RT],"svg");function zO(e){return e.join(" ").trim()}var Fm={},xx=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,VO=/\n/g,$O=/^\s*/,UO=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,HO=/^:\s*/,WO=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,qO=/^[;\s]*/,KO=/^\s+|\s+$/g,YO=`
274`,wx="/",bx="*",hi="",QO="comment",XO="declaration";function JO(e,t){if(typeof e!="string")throw new TypeError("First argument must be a string");if(!e)return[];t=t||{};var n=1,r=1;function i(x){var g=x.match(VO);g&&(n+=g.length);var w=x.lastIndexOf(YO);r=~w?x.length-w:r+x.length}function s(){var x={line:n,column:r};return function(g){return g.position=new o(x),u(),g}}function o(x){this.start=x,this.end={line:n,column:r},this.source=t.source}o.prototype.content=e;function l(x){var g=new Error(t.source+":"+n+":"+r+": "+x);if(g.reason=x,g.filename=t.source,g.line=n,g.column=r,g.source=e,!t.silent)throw g}function c(x){var g=x.exec(e);if(g){var w=g[0];return i(w),e=e.slice(w.length),g}}function u(){c($O)}function d(x){var g;for(x=x||[];g=p();)g!==!1&&x.push(g);return x}function p(){var x=s();if(!(wx!=e.charAt(0)||bx!=e.charAt(1))){for(var g=2;hi!=e.charAt(g)&&(bx!=e.charAt(g)||wx!=e.charAt(g+1));)++g;if(g+=2,hi===e.charAt(g-1))return l("End of comment missing");var w=e.slice(2,g-2);return r+=2,i(w),e=e.slice(g),r+=2,x({type:QO,comment:w})}}function h(){var x=s(),g=c(UO);if(g){if(p(),!c(HO))return l("property missing ':'");var w=c(WO),m=x({type:XO,property:kx(g[0].replace(xx,hi)),value:w?kx(w[0].replace(xx,hi)):hi});return c(qO),m}}function f(){var x=[];d(x);for(var g;g=h();)g!==!1&&(x.push(g),d(x));return x}return u(),f()}function kx(e){return e?e.replace(KO,hi):hi}var ZO=JO,eL=Ll&&Ll.__importDefault||function(e){return e&&e.__esMo
vendor: 3,641 bytes, line 274
274dule?e:{default:e}};Object.defineProperty(Fm,"__esModule",{value:!0});Fm.default=nL;const tL=eL(ZO);function nL(e,t){let n=null;if(!e||typeof e!="string")return n;const r=(0,tL.default)(e),i=typeof t=="function";return r.forEach(s=>{if(s.type!=="declaration")return;const{property:o,value:l}=s;i?t(o,l,s):l&&(n=n||{},n[o]=l)}),n}var du={};Object.defineProperty(du,"__esModule",{value:!0});du.camelCase=void 0;var rL=/^--[a-zA-Z0-9_-]+$/,iL=/-([a-z])/g,sL=/^[^-]+$/,oL=/^-(webkit|moz|ms|o|khtml)-/,aL=/^-(ms)-/,lL=function(e){return!e||sL.test(e)||rL.test(e)},cL=function(e,t){return t.toUpperCase()},Sx=function(e,t){return"".concat(t,"-")},uL=function(e,t){return t===void 0&&(t={}),lL(e)?e:(e=e.toLowerCase(),t.reactCompat?e=e.replace(aL,Sx):e=e.replace(oL,Sx),e.replace(iL,cL))};du.camelCase=uL;var dL=Ll&&Ll.__importDefault||function(e){return e&&e.__esModule?e:{default:e}},pL=dL(Fm),fL=du;function yf(e,t){var n={};return!e||typeof e!="string"||(0,pL.default)(e,function(r,i){r&&i&&(n[(0,fL.camelCase)(r,t)]=i)}),n}yf.default=yf;var hL=yf;const mL=Oi(hL),DT=FT("end"),Om=FT("start");function FT(e){return t;function t(n){const r=n&&n.position&&n.position[e]||{};if(typeof r.line=="number"&&r.line>0&&typeof r.column=="number"&&r.column>0)return{line:r.line,column:r.column,offset:typeof r.offset=="number"&&r.offset>-1?r.offset:void 0}}}function gL(e){const t=Om(e),n=DT(e);if(t&&n)return{start:t,end:n}}function Vo(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?Tx(e.position):"start"in e||"end"in e?Tx(e):"line"in e||"column"in e?vf(e):""}function vf(e){return Cx(e&&e.line)+":"+Cx(e&&e.column)}function Tx(e){return vf(e&&e.start)+"-"+vf(e&&e.end)}function Cx(e){return e&&typeof e=="number"?e:1}class it extends Error{constructor(t,n,r){super(),typeof n=="string"&&(r=n,n=void 0);let i="",s={},o=!1;if(n&&("line"in n&&"column"in n?s={place:n}:"start"in n&&"end"in n?s={place:n}:"type"in n?s={ancestors:[n],place:n.position}:s={...n}),typeof t=="string"?i=t:!s.cause&&t&&(o=!0,i=t.message,s.cause=t),!s.ruleId&&!s.source&&typeof r=="string"){const c=r.indexOf(":");c===-1?s.ruleId=r:(s.source=r.slice(0,c),s.ruleId=r.slice(c+1))}if(!s.place&&s.ancestors&&s.ancestors){const c=s.ancestors[s.ancestors.length-1];c&&(s.place=c.position)}const l=s.place&&"start"in s.place?s.place.start:s.place;this.ancestors=s.ancestors||void 0,this.cause=s.cause||void 0,this.column=l?l.column:void 0,this.fatal=void 0,this.file="",this.message=i,this.line=l?l.line:void 0,this.name=Vo(s.place)||"1:1",this.place=s.place||void 0,this.reason=this.message,this.ruleId=s.ruleId||void 0,this.source=s.source||void 0,this.stack=o&&s.cause&&typeof s.cause.stack=="string"?s.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}it.prototype.file="";it.prototype.name="";it.prototype.reason="";it.prototype.message="";it.prototype.stack="";it.prototype.column=void 0;it.prototype.line=void 0;it.prototype.ancestors=void 0;it.prototype.cause=void 0;it.prototype.fatal=void 0;it.prototype.place=void 0;it.prototype.ruleId=void 0;it.prototype.source=void 0;const Lm={}.hasOwnProperty,yL=new Map,vL=/[A-Z]/g,xL=new Set(["table","tbody","thead","tfoot","tr"]),wL=new Set(["td","th"]),OT="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function bL(e,t){if(!t||t.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const n=t.filePath||void 0;let r;if(t.development){if(typeof t.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");r=PL(n,t.jsxDEV)}else{if(typeof t.jsx!="function")throw new TypeError("Expected `jsx` in production options");
vendor: 6,302 bytes, line 274
274if(typeof t.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");r=AL(n,t.jsx,t.jsxs)}const i={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:r,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space==="svg"?Dm:GO,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},s=LT(i,e,void 0);return s&&typeof s!="string"?s:i.create(e,i.Fragment,{children:s||void 0},void 0)}function LT(e,t,n){if(t.type==="element")return kL(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return SL(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return CL(e,t,n);if(t.type==="mdxjsEsm")return TL(e,t);if(t.type==="root")return jL(e,t,n);if(t.type==="text")return NL(e,t)}function kL(e,t,n){const r=e.schema;let i=r;t.tagName.toLowerCase()==="svg"&&r.space==="html"&&(i=Dm,e.schema=i),e.ancestors.push(t);const s=BT(e,t.tagName,!1),o=EL(e,t);let l=Bm(e,t);return xL.has(t.tagName)&&(l=l.filter(function(c){return typeof c=="string"?!EO(c):!0})),_T(e,o,s,t),_m(o,l),e.ancestors.pop(),e.schema=r,e.create(t,s,o,n)}function SL(e,t){if(t.data&&t.data.estree&&e.evaluater){const r=t.data.estree.body[0];return r.type,e.evaluater.evaluateExpression(r.expression)}xa(e,t.position)}function TL(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);xa(e,t.position)}function CL(e,t,n){const r=e.schema;let i=r;t.name==="svg"&&r.space==="html"&&(i=Dm,e.schema=i),e.ancestors.push(t);const s=t.name===null?e.Fragment:BT(e,t.name,!0),o=ML(e,t),l=Bm(e,t);return _T(e,o,s,t),_m(o,l),e.ancestors.pop(),e.schema=r,e.create(t,s,o,n)}function jL(e,t,n){const r={};return _m(r,Bm(e,t)),e.create(t,e.Fragment,r,n)}function NL(e,t){return t.value}function _T(e,t,n,r){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=r)}function _m(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function AL(e,t,n){return r;function r(i,s,o,l){const u=Array.isArray(o.children)?n:t;return l?u(s,o,l):u(s,o)}}function PL(e,t){return n;function n(r,i,s,o){const l=Array.isArray(s.children),c=Om(r);return t(i,s,o,l,{columnNumber:c?c.column-1:void 0,fileName:e,lineNumber:c?c.line:void 0},void 0)}}function EL(e,t){const n={};let r,i;for(i in t.properties)if(i!=="children"&&Lm.call(t.properties,i)){const s=IL(e,i,t.properties[i]);if(s){const[o,l]=s;e.tableCellAlignToStyle&&o==="align"&&typeof l=="string"&&wL.has(t.tagName)?r=l:n[o]=l}}if(r){const s=n.style||(n.style={});s[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=r}return n}function ML(e,t){const n={};for(const r of t.attributes)if(r.type==="mdxJsxExpressionAttribute")if(r.data&&r.data.estree&&e.evaluater){const s=r.data.estree.body[0];s.type;const o=s.expression;o.type;const l=o.properties[0];l.type,Object.assign(n,e.evaluater.evaluateExpression(l.argument))}else xa(e,t.position);else{const i=r.name;let s;if(r.value&&typeof r.value=="object")if(r.value.data&&r.value.data.estree&&e.evaluater){const l=r.value.data.estree.body[0];l.type,s=e.evaluater.evaluateExpression(l.expression)}else xa(e,t.position);else s=r.value===null?!0:r.value;n[i]=s}return n}function Bm(e,t){const n=[];let r=-1;const i=e.passKeys?new Map:yL;for(;++r<t.children.length;){const s=t.children[r];let o;if(e.passKeys){const c=s.type==="element"?s.tagName:s.type==="mdxJsxFlowElement"||s.type==="mdxJsxTextElement"?s.name:void 0;if(c){const u=i.get(c)||0;o=c+"-"+u,i.set(c,u+1)}}const l=LT(e,s,o);l!==void 0&&n.push(l)}return n}function IL(e,t,n){const r=LO(e.schema,t);if(!(n==null||typeof n=="number"&&Number.isNaN(n))){if(Array.isArray(n)&&(n=r.commaSeparated?CO(n):zO(n)),r.property==="style"){let i=typeof n=="object"?n:RL(e,String(n));return e.stylePropertyNameCase==="css"&&(i=DL(i)),["style",i]}return[e.elementAttributeNameCase==="react"&&r.space?DO[r.property]||r.property:r.attribute,n]}}function RL(e,t){try{return mL(t,{reactCompat:!0})}catch(n){if(e.ignoreInvalidStyle)return{};const r=n,i=new it("Cannot parse `style` attribute",{ancestors:e.ancestors,cause:r,ruleId:"style",source:"hast-util-to-jsx-runtime"});throw i.file=e.filePath||void 0,i.url=OT+"#cannot-parse-style-attribute",i}}function BT(e,t,n){let r;if(!n)r={type:"Literal",value:t};else if(t.includes(".")){const i=t.split(".");let s=-1,o;for(;++s<i.length;){const l=mx(i[s])?{type:"Identifier",name:i[s]}:{type:"Literal",value:i[s]};o=o?{type:"MemberExpression",object:o,property:l,computed:!!(s&&l.type==="Literal"),optional:!1}:l}r=o}else r=mx(t)&&!/^[a-z]/.test(t)?{type:"Identifier",name:t}:{type:"Literal",value:t};if(r.type==="Literal"){const i=r.value;return Lm.call(e.components,i)?e.components[i]:i}if(e.evaluater)return e.evaluater.evaluateExpression(r);xa(e)}function xa(e,t){const n=new it("Cannot handle MDX estrees without `createEvaluater`",{ancestors:e.ancestors,place:t,ruleId:"mdx-estree",source:"hast-util-to-jsx-runtime"});throw n.file=e.filePath||void 0,n.url=OT+"#cannot-handle-mdx-estrees-without-createevaluater",n}function DL(e){const t={};let n;for(n in e)Lm.call(e,n)&&(t[FL(n)]=e[n]);return t}function FL(e){let t=e.replace(vL,OL);return t.slice(0,3)==="ms-"&&(t="-"+t),t}function OL(e){return"-"+e.toLowerCase()}const xd={action:["form"],cite:["blockquote","del","ins","q"],data:["object"],formAction:["button","input"],href:["a","area","base","link"],icon:["menuitem"],itemId:null,manifest:["html"],ping:["a","area"],poster:["video"],src:["audio","embed","iframe","img","input","script","source","track","video"]},LL={};function _L(e,t){const n=LL,r=typeof n.includeImageAlt=="boolean"?n.includeImageAlt:!0,i=typeof n.includeHtml=="boolean"?n.includeHtml:!0;return GT(e,r,i)}function GT(e,t,n){if(BL(e)){if("value"in e)return e.type==="html"&&!n?"":e.value;if(t&&"alt"in e&&e.alt)return e.alt;if("children"in e)return jx(e.children,t,n)}return Array.isArray(e)?jx(e,t,n):""}function jx(e,t,n){const r=[];let i=-1;for(;++i<e.length;)r[i]=GT(e[i],t,n);return r.join("")}function BL(e){return!!(e&&typeof e=="object")}const Nx=document.createElement("i");function Gm(e){const t="&"+e+";";Nx.innerHTML=t;const n=Nx.textContent;
vendor: 10,876 bytes, line 274
274return n.charCodeAt(n.length-1)===59&&e!=="semi"||n===t?!1:n}function Hn(e,t,n,r){const i=e.length;let s=0,o;if(t<0?t=-t>i?0:i+t:t=t>i?i:t,n=n>0?n:0,r.length<1e4)o=Array.from(r),o.unshift(t,n),e.splice(...o);else for(n&&e.splice(t,n);s<r.length;)o=r.slice(s,s+1e4),o.unshift(t,0),e.splice(...o),s+=1e4,t+=1e4}function Yt(e,t){return e.length>0?(Hn(e,e.length,0,t),e):t}const Ax={}.hasOwnProperty;function GL(e){const t={};let n=-1;for(;++n<e.length;)zL(t,e[n]);return t}function zL(e,t){let n;for(n in t){const i=(Ax.call(e,n)?e[n]:void 0)||(e[n]={}),s=t[n];let o;if(s)for(o in s){Ax.call(i,o)||(i[o]=[]);const l=s[o];VL(i[o],Array.isArray(l)?l:l?[l]:[])}}}function VL(e,t){let n=-1;const r=[];for(;++n<t.length;)(t[n].add==="after"?e:r).push(t[n]);Hn(e,0,0,r)}function zT(e,t){const n=Number.parseInt(e,t);return n<9||n===11||n>13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)===65535||(n&65535)===65534||n>1114111?"�":String.fromCodePoint(n)}function ks(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const Dn=si(/[A-Za-z]/),Ot=si(/[\dA-Za-z]/),$L=si(/[#-'*+\--9=?A-Z^-~]/);function xf(e){return e!==null&&(e<32||e===127)}const wf=si(/\d/),UL=si(/[\dA-Fa-f]/),HL=si(/[!-/:-@[-`{-~]/);function J(e){return e!==null&&e<-2}function Nt(e){return e!==null&&(e<0||e===32)}function fe(e){return e===-2||e===-1||e===32}const WL=si(new RegExp("\\p{P}|\\p{S}","u")),qL=si(/\s/);function si(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function io(e){const t=[];let n=-1,r=0,i=0;for(;++n<e.length;){const s=e.charCodeAt(n);let o="";if(s===37&&Ot(e.charCodeAt(n+1))&&Ot(e.charCodeAt(n+2)))i=2;else if(s<128)/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(s))||(o=String.fromCharCode(s));else if(s>55295&&s<57344){const l=e.charCodeAt(n+1);s<56320&&l>56319&&l<57344?(o=String.fromCharCode(s,l),i=1):o="�"}else o=String.fromCharCode(s);o&&(t.push(e.slice(r,n),encodeURIComponent(o)),r=n+i+1,o=""),i&&(n+=i,i=0)}return t.join("")+e.slice(r)}function xe(e,t,n,r){const i=r?r-1:Number.POSITIVE_INFINITY;let s=0;return o;function o(c){return fe(c)?(e.enter(n),l(c)):t(c)}function l(c){return fe(c)&&s++<i?(e.consume(c),l):(e.exit(n),t(c))}}const KL={tokenize:YL};function YL(e){const t=e.attempt(this.parser.constructs.contentInitial,r,i);let n;return t;function r(l){if(l===null){e.consume(l);return}return e.enter("lineEnding"),e.consume(l),e.exit("lineEnding"),xe(e,t,"linePrefix")}function i(l){return e.enter("paragraph"),s(l)}function s(l){const c=e.enter("chunkText",{contentType:"text",previous:n});return n&&(n.next=c),n=c,o(l)}function o(l){if(l===null){e.exit("chunkText"),e.exit("paragraph"),e.consume(l);return}return J(l)?(e.consume(l),e.exit("chunkText"),s):(e.consume(l),o)}}const QL={tokenize:XL},Px={tokenize:JL};function XL(e){const t=this,n=[];let r=0,i,s,o;return l;function l(v){if(r<n.length){const k=n[r];return t.containerState=k[1],e.attempt(k[0].continuation,c,u)(v)}return u(v)}function c(v){if(r++,t.containerState._closeFlow){t.containerState._closeFlow=void 0,i&&y();const k=t.events.length;let C=k,T;for(;C--;)if(t.events[C][0]==="exit"&&t.events[C][1].type==="chunkFlow"){T=t.events[C][1].end;break}m(r);let N=k;for(;N<t.events.length;)t.events[N][1].end={...T},N++;return Hn(t.events,C+1,0,t.events.slice(k)),t.events.length=N,u(v)}return l(v)}function u(v){if(r===n.length){if(!i)return h(v);if(i.currentConstruct&&i.currentConstruct.concrete)return x(v);t.interrupt=!!(i.currentConstruct&&!i._gfmTableDynamicInterruptHack)}return t.containerState={},e.check(Px,d,p)(v)}function d(v){return i&&y(),m(r),h(v)}function p(v){return t.parser.lazy[t.now().line]=r!==n.length,o=t.now().offset,x(v)}function h(v){return t.containerState={},e.attempt(Px,f,x)(v)}function f(v){return r++,n.push([t.currentConstruct,t.containerState]),h(v)}function x(v){if(v===null){i&&y(),m(0),e.consume(v);return}return i=i||t.parser.flow(t.now()),e.enter("chunkFlow",{_tokenizer:i,contentType:"flow",previous:s}),g(v)}function g(v){if(v===null){w(e.exit("chunkFlow"),!0),m(0),e.consume(v);return}return J(v)?(e.consume(v),w(e.exit("chunkFlow")),r=0,t.interrupt=void 0,l):(e.consume(v),g)}function w(v,k){const C=t.sliceStream(v);if(k&&C.push(null),v.previous=s,s&&(s.next=v),s=v,i.defineSkip(v.start),i.write(C),t.parser.lazy[v.start.line]){let T=i.events.length;for(;T--;)if(i.events[T][1].start.offset<o&&(!i.events[T][1].end||i.events[T][1].end.offset>o))return;const N=t.events.length;let A=N,P,M;for(;A--;)if(t.events[A][0]==="exit"&&t.events[A][1].type==="chunkFlow"){if(P){M=t.events[A][1].end;break}P=!0}for(m(r),T=N;T<t.events.length;)t.events[T][1].end={...M},T++;Hn(t.events,A+1,0,t.events.slice(N)),t.events.length=T}}function m(v){let k=n.length;for(;k-- >v;){const C=n[k];t.containerState=C[1],C[0].exit.call(t,e)}n.length=v}function y(){i.write([null]),s=void 0,i=void 0,t.containerState._closeFlow=void 0}}function JL(e,t,n){return xe(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function Ex(e){if(e===null||Nt(e)||qL(e))return 1;if(WL(e))return 2}function zm(e,t,n){const r=[];let i=-1;for(;++i<e.length;){const s=e[i].resolveAll;s&&!r.includes(s)&&(t=s(t,n),r.push(s))}return t}const bf={name:"attention",resolveAll:ZL,tokenize:e3};function ZL(e,t){let n=-1,r,i,s,o,l,c,u,d;for(;++n<e.length;)if(e[n][0]==="enter"&&e[n][1].type==="attentionSequence"&&e[n][1]._close){for(r=n;r--;)if(e[r][0]==="exit"&&e[r][1].type==="attentionSequence"&&e[r][1]._open&&t.sliceSerialize(e[r][1]).charCodeAt(0)===t.sliceSerialize(e[n][1]).charCodeAt(0)){if((e[r][1]._close||e[n][1]._open)&&(e[n][1].end.offset-e[n][1].start.offset)%3&&!((e[r][1].end.offset-e[r][1].start.offset+e[n][1].end.offset-e[n][1].start.offset)%3))continue;c=e[r][1].end.offset-e[r][1].start.offset>1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;const p={...e[r][1].end},h={...e[n][1].start};Mx(p,-c),Mx(h,c),o={type:c>1?"strongSequence":"emphasisSequence",start:p,end:{...e[r][1].end}},l={type:c>1?"strongSequence":"emphasisSequence",start:{...e[n][1].start},end:h},s={type:c>1?"strongText":"emphasisText",start:{...e[r][1].end},end:{...e[n][1].start}},i={type:c>1?"strong":"emphasis",start:{...o.start},end:{...l.end}},e[r][1].end={...o.start},e[n][1].start={...l.end},u=[],e[r][1].end.offset-e[r][1].start.offset&&(u=Yt(u,[["enter",e[r][1],t],["exit",e[r][1],t]])),u=Yt(u,[["enter",i,t],["enter",o,t],["exit",o,t],["enter",s,t]]),u=Yt(u,zm(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),u=Yt(u,[["exit",s,t],["enter",l,t],["exit",l,t],["exit",i,t]]),e[n][1].end.offset-e[n][1].start.offset?(d=2,u=Yt(u,[["enter",e[n][1],t],["exit",e[n][1],t]])):d=0,Hn(e,r-1,n-r+3,u),n=r+u.length-d-2;break}}for(n=-1;++n<e.length;)e[n][1].type==="attentionSequence"&&(e[n][1].type="data");return e}function e3(e,t){const n=this.parser.constructs.attentionMarkers.null,r=this.previous,i=Ex(r);let s;return o;function o(c){return s=c,e.enter("attentionSequence"),l(c)}function l(c){if(c===s)return e.consume(c),l;const u=e.exit("attentionSequence"),d=Ex(c),p=!d||d===2&&i||n.includes(c),h=!i||i===2&&d||n.includes(r);return u._open=!!(s===42?p:p&&(i||!h)),u._close=!!(s===42?h:h&&(d||!p)),t(c)}}function Mx(e,t){e.column+=t,e.offset+=t,e._bufferIndex+=t}const t3={name:"autolink",tokenize:n3};function n3(e,t,n){let r=0;return i;function i(f){return e.enter("autolink"),e.enter("autolinkMarker"),e.consume(f),e.exit("autolinkMarker"),e.enter("autolinkProtocol"),s}function s(f){return Dn(f)?(e.consume(f),o):f===64?n(f):u(f)}function o(f){return f===43||f===45||f===46||Ot(f)?(r=1,l(f)):u(f)}function l(f){return f===58?(e.consume(f),r=0,c):(f===43||f===45||f===46||Ot(f))&&r++<32?(e.consume(f),l):(r=0,u(f))}function c(f){return f===62?(e.exit("autolinkProtocol"),e.enter("autolinkMarker"),e.consume(f),e.exit("autolinkMarker"),e.exit("autolink"),t):f===null||f===32||f===60||xf(f)?n(f):(e.consume(f),c)}function u(f){return f===64?(e.consume(f),d):$L(f)?(e.consume(f),u):n(f)}function d(f){return Ot(f)?p(f):n(f)}function p(f){return f===46?(e.consume(f),r=0,d):f===62?(e.exit("autolinkProtocol").type="autolinkEmail",e.enter("autolinkMarker"),e.consume(f),e.exit("autolinkMarker"),e.exit("autolink"),t):h(f)}function h(f){if((f===45||Ot(f))&&r++<63){const x=f===45?h:p;return e.consume(f),x}return n(f)}}const pu={partial:!0,tokenize:r3};function r3(e,t,n){return r;function r(s){return fe(s)?xe(e,i,"linePrefix")(s):i(s)}function i(s){return s===null||J(s)?t(s):n(s)}}const VT={continuation:{tokenize:s3},exit:o3,name:"blockQuote",tokenize:i3};function i3(e,t,n){const r=this;return i;function i(o){if(o===62){const l=r.containerState;return l.open||(e.enter("blockQuote",{_container:!0}),l.open=!0),e.enter("blockQuotePrefix"),e.enter("blockQuoteMarker"),e.consume(o),e.exit("blockQuoteMarker"),s}return n(o)}function s(o){return fe(o)?(e.enter("blockQuotePrefixWhitespace"),e.consume(o),e.exit("blockQuotePrefixWhitespace"),e.exit("blockQuotePrefix"),t):(e.exit("blockQuotePrefix"),t(o))}}function s3(e,t,n){const r=this;return i;function i(o){return fe(o)?xe(e,s,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(o):s(o)}function s(o){return e.attempt(VT,t,n)(o)}}function o3(e){e.exit("blockQuote")}const $T={name:"characterEscape",tokenize:a3};function a3(e,t,n){return r;function r(s){return e.enter("characterEscape"),e.enter("escapeMarker"),e.consume(s),e.exit("escapeMarker"),i}function i(s){return HL(s)?(e.enter("characterEscapeValue"),e.consume(s),e.exit("characterEscapeValue"),e.exit("characterEscape"),t):n(s)}}const UT={name:"characterReference",tokenize:l3};function l3(e,t,n){const r=this;let i=0,s,o;return l;function l(p){return e.enter("characterReference"),e.enter("characterReferenceMarker"),e.consume(p),e.exit("characterReferenceMarker"),c}function c(p){return p===35?(e.enter("characterReferenceMarkerNumeric"),e.consume(p),e.exit("characterReferenceMarkerNumeric"),u):(e.enter("characterReferenceValue"),s=31,o=Ot,d(p))}function u(p){return p===88||p===120?(e.enter("characterReferenceMarkerHexadecimal"),e.consume(p),e.exit("characterReferenceMarkerHexadecimal"),e.enter("characterReferenceValue"),s=6,o=UL,d):(e.enter("characterReferenceValue"),s=7,o=wf,d(p))}function d(p){if(p===59&&i){const h=e.exit("characterReferenceValue");return o===Ot&&!Gm(r.sliceSerialize(h))?n(p):(e.enter("characterReferenceMarker"),e.consume(p),e.exit("characterReferenceMarker"),e.exit("characterReference"),t)}return o(p)&&i++<s?(e.consume(p),d):n(p)}}const Ix={partial:!0,tokenize:u3},Rx={concrete:!0,name:"codeFenced",tokenize:c3};function c3(e,t,n){const r=this,i={partial:!0,tokenize:C};let s=0,o=0,l;return c;function c(T){return u(T)}function u(T){const N=r.events[r.events.length-1];return s=N&&N[1].type==="linePrefix"?N[2].sliceSerialize(N[1],!0).length:0,l=T,e.enter("co
274deFenced"),e.enter("codeFencedFence"),e.enter("codeFencedFenceSequence"),d(T)}function d(T){return T===l?(o++,e.consume(T),d):o<3?n(T):(e.exit("codeFencedFenceSequence"),fe(T)?xe(e,p,"whitespace")(T):p(T))}function p(T){return T===null||J(T)?(e.exit("codeFencedFence"),r.interrupt?t(T):e.check(Ix,g,k)(T)):(e.enter("codeFencedFenceInfo"),e.enter("chunkString",{contentType:"string"}),h(T))}function h(T){return T===null||J(T)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),p(T)):fe(T)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),xe(e,f,"whitespace")(T)):T===96&&T===l?n(T):(e.consume(T),h)}function f(T){return T===null||J(T)?p(T):(e.enter("codeFencedFenceMeta"),e.enter("chunkString",{contentType:"string"}),x(T))}function x(T){return T===null||J(T)?(e.exit("chunkString"),e.exit("codeFencedFenceMeta"),p(T)):T===96&&T===l?n(T):(e.consume(T),x)}function g(T){return e.attempt(i,k,w)(T)}function w(T){return e.enter("lineEnding"),e.consume(T),e.exit("lineEnding"),m}function m(T){return s>0&&fe(T)?xe(e,y,"linePrefix",s+1)(T):y(T)}function y(T){return T===null||J(T)?e.check(Ix,g,k)(T):(e.enter("codeFlowValue"),v(T))}function v(T){return T===null||J(T)?(e.exit("codeFlowValue"),y(T)):(e.consume(T),v)}function k(T){return e.exit("codeFenced"),t(T)}function C(T,N,A){let P=0;return M;function M($){return T.enter("lineEnding"),T.consume($),T.exit("lineEnding"),O}function O($){return T.enter("codeFencedFence"),fe($)?xe(T,R,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)($):R($)}function R($){return $===l?(T.enter("codeFencedFenceSequence"),U($)):A($)}function U($){return $===l?(P++,T.consume($),U):P>=o?(T.exit("codeFencedFenceSequence"),fe($)?xe(T,_,"whitespace")($):_($)):A($)}function _($){return $===null||J($)?(T.exit("codeFencedFence"),N($)):A($)}}}function u3(e,t,n){const r=this;return i;function i(o){return o===null?n(o):(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),s)}function s(o){return r.parser.lazy[r.now().line]?n(o):t(o)}}const wd={name:"codeIndented",tokenize:p3},d3={partial:!0,tokenize:f3};function p3(e,t,n){const r=this;return i;function i(u){return e.enter("codeIndented"),xe(e,s,"linePrefix",5)(u)}function s(u){const d=r.events[r.events.length-1];return d&&d[1].type==="linePrefix"&&d[2].sliceSerialize(d[1],!0).length>=4?o(u):n(u)}function o(u){return u===null?c(u):J(u)?e.attempt(d3,o,c)(u):(e.enter("codeFlowValue"),l(u))}function l(u){return u===null||J(u)?(e.exit("codeFlowValue"),o(u)):(e.consume(u),l)}function c(u){return e.exit("codeIndented"),t(u)}}function f3(e,t,n){const r=this;return i;function i(o){return r.parser.lazy[r.now().line]?n(o):J(o)?(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),i):xe(e,s,"linePrefix",5)(o)}function s(o){const l=r.events[r.events.length-1];return l&&l[1].type==="linePrefix"&&l[2].sliceSerialize(l[1],!0).length>=4?t(o):J(o)?i(o):n(o)}}const h3={name:"codeText",previous:g3,resolve:m3,tokenize:y3};function m3(e){let t=e.length-4,n=3,r,i;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(r=n;++r<t;)if(e[r][1].type==="codeTextData"){e[n][1].type="codeTextPadding",e[t][1].type="codeTextPadding",n+=2,t-=2;break}}for(r=n-1,t++;++r<=t;)i===void 0?r!==t&&e[r][1].type!=="lineEnding"&&(i=r):(r===t||e[r][1].type==="lineEnding")&&(e[i][1].type="codeTextData",r!==i+2&&(e[i][1].end=e[r-1][1].end,e.splice(i+2,r-i-2),t-=r-i-2,r=i+2),i=void 0);return e}function g3(e){return e!==96||this.events[this.events.length-1][1].type==="characterEscape"}function y3(e,t,n){let r=0,i,s;return o;function o(p){return e.enter("codeText"),e.enter("codeTextSequence"),l(p)}function l(p){return p===96?(e.consume(p),r++,l):(e.exit("codeTextSequence"),c(p))}function c(p){return p===null?n(p):p===32?(e.enter("space"),e.consume(p),e.exit("space"),c):p===96?(s=e.enter("codeTextSequence"),i=0,d(p)):J(p)?(e.enter("lineEnding"),e.consume(p),e.exit("lineEnding"),c):(e.enter("codeTextData"),u(p))}function u(p){return p===null||p===32||p===96||J(p)?(e.exit("codeTextData"),c(p)):(e.consume(p),u)}function d(p){return p===96?(e.consume(p),i++,d):i===r?(e.exit("codeTextSequence"),e.exit("codeText"),t(p)):(s.type="codeTextData",u(p))}}class v3{constructor(t){this.left=t?[...t]:[],this.right=[]}get(t){if(t<0||t>=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+t+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return t<this.left.length?this.left[t]:this.right[this.right.length-t+this.left.length-1]}get length(){return this.left.length+this.right.length}shift(){return this.setCursor(0),this.right.pop()}slice(t,n){const r=n??Number.POSITIVE_INFINITY;return r<this.left.length?this.left.slice(t,r):t>this.left.length?this.right.slice(this.right.length-r+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-r+this.left.length).reverse())}splice(t,n,r){const i=n||0;this.setCursor(Math.trunc(t));const s=this.right.splice(this.right.length-i,Number.POSITIVE_INFINITY);return r&&wo(this.left,r),s.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(t){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(t)}pushMany(t){this.setCursor(Number.POSITIVE_INFINITY),wo(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),wo(this.right,t.reverse())}setCursor(t){if(!(t===this.left.length||t>this.left.length&&this.right.length===0||t<0&&this.left.length===0))if(t<this.left.length){const n=this.left.splice(t,Number.POSITIVE_INFINITY);wo(this.right,n.reverse())}else{const n=this.right.splice(this.left.length+this.right.length-t,Number.POSITIVE_INFINITY);wo(this.left,n.reverse())}}}function wo(e,t){let n=0;if(t.length<1e4)e.push(...t);else for(;n<t.length;)e.push(...t.slice(n,n+1e4)),n+=1e4}function HT(e){const t={};let n=-1,r,i,s,o,l,c,u;const d=new v3(e);for(;++n<d.length;){for(;n in t;)n=t[n];if(r=d.get(n),n&&r[1].type==="chunkFlow"&&d.get(n-1)[1].type==="listItemPrefix"&&(c=r[1]._tokenizer.events,s=0,s<c.length&&c[s][1].type==="lineEndingBlank"&&(s+=2),s<c.length&&c[s][1].type==="content"))for(;++s<c.length&&c[s][1].type!=="content";)c[s][1].type==="chunkText"&&(c[s][1]._isInFirstContentOfListItem=!0,s++);if(r[0]==="enter")r[1].contentType&&(Object.assign(t,x3(d,n)),n=t[n],u=!0);else if(r[1]._container){for(s=n,i=void 0;s--;)if(o=d.get(s),o[1].type==="lineEnding"||o[1].type==="lineEndingBlank")o[0]==="enter"&&(i&&(d.get(i)[1].type="lineEndingBlank"),o[1].type="lineEnding",i=s);else if(!(o[1].type==="linePrefix"||o[1].type==="listItemIndent"))break;i&&(r[1].end={...d.get(i)[1].start},l=d.slice(i,n),l.unshift(r),d.splice(i,n-i+1,l))}}return Hn(e,0,Number.POSITIVE_INFINITY,d.slice(0)),!u}function x3(e,t){const n=e.get(t)[1],r=e.get(t)[2];let i=t-1;const s=[];let o=n._tokenizer;o||(o=r.parser[n.contentType](n.start),n._contentTypeTextTrailing&&(o._contentTypeTextTrailing=!0));const l=o.events,c=[],u={};let d,p,h=-1,f=n,x=0,g=0;const w=[g];for(;f;){for(;e.get(++i)[1]!==f;);s.push(i),f._tokenizer||(d=r.sliceStream(f),f.next||d.push(null),p&&o.defineSki
vendor: 18,523 bytes, line 274
274p(f.start),f._isInFirstContentOfListItem&&(o._gfmTasklistFirstContentOfListItem=!0),o.write(d),f._isInFirstContentOfListItem&&(o._gfmTasklistFirstContentOfListItem=void 0)),p=f,f=f.next}for(f=n;++h<l.length;)l[h][0]==="exit"&&l[h-1][0]==="enter"&&l[h][1].type===l[h-1][1].type&&l[h][1].start.line!==l[h][1].end.line&&(g=h+1,w.push(g),f._tokenizer=void 0,f.previous=void 0,f=f.next);for(o.events=[],f?(f._tokenizer=void 0,f.previous=void 0):w.pop(),h=w.length;h--;){const m=l.slice(w[h],w[h+1]),y=s.pop();c.push([y,y+m.length-1]),e.splice(y,2,m)}for(c.reverse(),h=-1;++h<c.length;)u[x+c[h][0]]=x+c[h][1],x+=c[h][1]-c[h][0]-1;return u}const w3={resolve:k3,tokenize:S3},b3={partial:!0,tokenize:T3};function k3(e){return HT(e),e}function S3(e,t){let n;return r;function r(l){return e.enter("content"),n=e.enter("chunkContent",{contentType:"content"}),i(l)}function i(l){return l===null?s(l):J(l)?e.check(b3,o,s)(l):(e.consume(l),i)}function s(l){return e.exit("chunkContent"),e.exit("content"),t(l)}function o(l){return e.consume(l),e.exit("chunkContent"),n.next=e.enter("chunkContent",{contentType:"content",previous:n}),n=n.next,i}}function T3(e,t,n){const r=this;return i;function i(o){return e.exit("chunkContent"),e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),xe(e,s,"linePrefix")}function s(o){if(o===null||J(o))return n(o);const l=r.events[r.events.length-1];return!r.parser.constructs.disable.null.includes("codeIndented")&&l&&l[1].type==="linePrefix"&&l[2].sliceSerialize(l[1],!0).length>=4?t(o):e.interrupt(r.parser.constructs.flow,n,t)(o)}}function WT(e,t,n,r,i,s,o,l,c){const u=c||Number.POSITIVE_INFINITY;let d=0;return p;function p(m){return m===60?(e.enter(r),e.enter(i),e.enter(s),e.consume(m),e.exit(s),h):m===null||m===32||m===41||xf(m)?n(m):(e.enter(r),e.enter(o),e.enter(l),e.enter("chunkString",{contentType:"string"}),g(m))}function h(m){return m===62?(e.enter(s),e.consume(m),e.exit(s),e.exit(i),e.exit(r),t):(e.enter(l),e.enter("chunkString",{contentType:"string"}),f(m))}function f(m){return m===62?(e.exit("chunkString"),e.exit(l),h(m)):m===null||m===60||J(m)?n(m):(e.consume(m),m===92?x:f)}function x(m){return m===60||m===62||m===92?(e.consume(m),f):f(m)}function g(m){return!d&&(m===null||m===41||Nt(m))?(e.exit("chunkString"),e.exit(l),e.exit(o),e.exit(r),t(m)):d<u&&m===40?(e.consume(m),d++,g):m===41?(e.consume(m),d--,g):m===null||m===32||m===40||xf(m)?n(m):(e.consume(m),m===92?w:g)}function w(m){return m===40||m===41||m===92?(e.consume(m),g):g(m)}}function qT(e,t,n,r,i,s){const o=this;let l=0,c;return u;function u(f){return e.enter(r),e.enter(i),e.consume(f),e.exit(i),e.enter(s),d}function d(f){return l>999||f===null||f===91||f===93&&!c||f===94&&!l&&"_hiddenFootnoteSupport"in o.parser.constructs?n(f):f===93?(e.exit(s),e.enter(i),e.consume(f),e.exit(i),e.exit(r),t):J(f)?(e.enter("lineEnding"),e.consume(f),e.exit("lineEnding"),d):(e.enter("chunkString",{contentType:"string"}),p(f))}function p(f){return f===null||f===91||f===93||J(f)||l++>999?(e.exit("chunkString"),d(f)):(e.consume(f),c||(c=!fe(f)),f===92?h:p)}function h(f){return f===91||f===92||f===93?(e.consume(f),l++,p):p(f)}}function KT(e,t,n,r,i,s){let o;return l;function l(h){return h===34||h===39||h===40?(e.enter(r),e.enter(i),e.consume(h),e.exit(i),o=h===40?41:h,c):n(h)}function c(h){return h===o?(e.enter(i),e.consume(h),e.exit(i),e.exit(r),t):(e.enter(s),u(h))}function u(h){return h===o?(e.exit(s),c(o)):h===null?n(h):J(h)?(e.enter("lineEnding"),e.consume(h),e.exit("lineEnding"),xe(e,u,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),d(h))}function d(h){return h===o||h===null||J(h)?(e.exit("chunkString"),u(h)):(e.consume(h),h===92?p:d)}function p(h){return h===o||h===92?(e.consume(h),d):d(h)}}function $o(e,t){let n;return r;function r(i){return J(i)?(e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),n=!0,r):fe(i)?xe(e,r,n?"linePrefix":"lineSuffix")(i):t(i)}}const C3={name:"definition",tokenize:N3},j3={partial:!0,tokenize:A3};function N3(e,t,n){const r=this;let i;return s;function s(f){return e.enter("definition"),o(f)}function o(f){return qT.call(r,e,l,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(f)}function l(f){return i=ks(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),f===58?(e.enter("definitionMarker"),e.consume(f),e.exit("definitionMarker"),c):n(f)}function c(f){return Nt(f)?$o(e,u)(f):u(f)}function u(f){return WT(e,d,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(f)}function d(f){return e.attempt(j3,p,p)(f)}function p(f){return fe(f)?xe(e,h,"whitespace")(f):h(f)}function h(f){return f===null||J(f)?(e.exit("definition"),r.parser.defined.push(i),t(f)):n(f)}}function A3(e,t,n){return r;function r(l){return Nt(l)?$o(e,i)(l):n(l)}function i(l){return KT(e,s,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(l)}function s(l){return fe(l)?xe(e,o,"whitespace")(l):o(l)}function o(l){return l===null||J(l)?t(l):n(l)}}const P3={name:"hardBreakEscape",tokenize:E3};function E3(e,t,n){return r;function r(s){return e.enter("hardBreakEscape"),e.consume(s),i}function i(s){return J(s)?(e.exit("hardBreakEscape"),t(s)):n(s)}}const M3={name:"headingAtx",resolve:I3,tokenize:R3};function I3(e,t){let n=e.length-2,r=3,i,s;return e[r][1].type==="whitespace"&&(r+=2),n-2>r&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(r===n-1||n-4>r&&e[n-2][1].type==="whitespace")&&(n-=r+1===n?2:4),n>r&&(i={type:"atxHeadingText",start:e[r][1].start,end:e[n][1].end},s={type:"chunkText",start:e[r][1].start,end:e[n][1].end,contentType:"text"},Hn(e,r,n-r+1,[["enter",i,t],["enter",s,t],["exit",s,t],["exit",i,t]])),e}function R3(e,t,n){let r=0;return i;function i(d){return e.enter("atxHeading"),s(d)}function s(d){return e.enter("atxHeadingSequence"),o(d)}function o(d){return d===35&&r++<6?(e.consume(d),o):d===null||Nt(d)?(e.exit("atxHeadingSequence"),l(d)):n(d)}function l(d){return d===35?(e.enter("atxHeadingSequence"),c(d)):d===null||J(d)?(e.exit("atxHeading"),t(d)):fe(d)?xe(e,l,"whitespace")(d):(e.enter("atxHeadingText"),u(d))}function c(d){return d===35?(e.consume(d),c):(e.exit("atxHeadingSequence"),l(d))}function u(d){return d===null||d===35||Nt(d)?(e.exit("atxHeadingText"),l(d)):(e.consume(d),u)}}const D3=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],Dx=["pre","script","style","textarea"],F3={concrete:!0,name:"htmlFlow",resolveTo:_3,tokenize:B3},O3={partial:!0,tokenize:z3},L3={partial:!0,tokenize:G3};function _3(e){let t=e.length;for(;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function B3(e,t,n){const r=this;let i,s,o,l,c;return u;function u(j){return d(j)}function d(j){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(j),p}function p(j){return j===33?(e.consume(j),h):j===47?(e.consume(j),s=!0,g):j===63?(e.consume(j),i=3,r.interrupt?t:S):Dn(j)?(e.consume(j),o=String.fromCharCode(j),w):n(j)}function h(j){return j===45?(e.consume(j),i=2,f):j===91?(e.consume(j),i=5,l=0,x):Dn(j)?(e.consume(j),i=4,r.interrupt?t:S):n(j)}function f(j){return j===45?(e.consume(j),r.interrupt?t:S):n(j)}function x(j){const X="CDATA[";return j===X.charCodeAt(l++)?(e.consume(j),l===X.length?r.interrupt?t:R:x):n(j)}function g(j){return Dn(j)?(e.consume(j),o=String.fromCharCode(j),w):n(j)}function w(j){if(j===null||j===47||j===62||Nt(j)){const X=j===47,me=o.toLowerCase();return!X&&!s&&Dx.includes(me)?(i=1,r.interrupt?t(j):R(j)):D3.includes(o.toLowerCase())?(i=6,X?(e.consume(j),m):r.interrupt?t(j):R(j)):(i=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(j):s?y(j):v(j))}return j===45||Ot(j)?(e.consume(j),o+=String.fromCharCode(j),w):n(j)}function m(j){return j===62?(e.consume(j),r.interrupt?t:R):n(j)}function y(j){return fe(j)?(e.consume(j),y):M(j)}function v(j){return j===47?(e.consume(j),M):j===58||j===95||Dn(j)?(e.consume(j),k):fe(j)?(e.consume(j),v):M(j)}function k(j){return j===45||j===46||j===58||j===95||Ot(j)?(e.consume(j),k):C(j)}function C(j){return j===61?(e.consume(j),T):fe(j)?(e.consume(j),C):v(j)}function T(j){return j===null||j===60||j===61||j===62||j===96?n(j):j===34||j===39?(e.consume(j),c=j,N):fe(j)?(e.consume(j),T):A(j)}function N(j){return j===c?(e.consume(j),c=null,P):j===null||J(j)?n(j):(e.consume(j),N)}function A(j){return j===null||j===34||j===39||j===47||j===60||j===61||j===62||j===96||Nt(j)?C(j):(e.consume(j),A)}function P(j){return j===47||j===62||fe(j)?v(j):n(j)}function M(j){return j===62?(e.consume(j),O):n(j)}function O(j){return j===null||J(j)?R(j):fe(j)?(e.consume(j),O):n(j)}function R(j){return j===45&&i===2?(e.consume(j),K):j===60&&i===1?(e.consume(j),V):j===62&&i===4?(e.consume(j),Q):j===63&&i===3?(e.consume(j),S):j===93&&i===5?(e.consume(j),D):J(j)&&(i===6||i===7)?(e.exit("htmlFlowData"),e.check(O3,Y,U)(j)):j===null||J(j)?(e.exit("htmlFlowData"),U(j)):(e.consume(j),R)}function U(j){return e.check(L3,_,Y)(j)}function _(j){return e.enter("lineEnding"),e.consume(j),e.exit("lineEnding"),$}function $(j){return j===null||J(j)?U(j):(e.enter("htmlFlowData"),R(j))}function K(j){return j===45?(e.consume(j),S):R(j)}function V(j){return j===47?(e.consume(j),o="",E):R(j)}function E(j){if(j===62){const X=o.toLowerCase();return Dx.includes(X)?(e.consume(j),Q):R(j)}return Dn(j)&&o.length<8?(e.consume(j),o+=String.fromCharCode(j),E):R(j)}function D(j){return j===93?(e.consume(j),S):R(j)}function S(j){return j===62?(e.consume(j),Q):j===45&&i===2?(e.consume(j),S):R(j)}function Q(j){return j===null||J(j)?(e.exit("htmlFlowData"),Y(j)):(e.consume(j),Q)}function Y(j){return e.exit("htmlFlow"),t(j)}}function G3(e,t,n){const r=this;return i;function i(o){return J(o)?(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),s):n(o)}function s(o){return r.parser.lazy[r.now().line]?n(o):t(o)}}function z3(e,t,n){return r;function r(i){return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),e.attempt(pu,t,n)}}const V3={name:"htmlText",tokenize:$3};function $3(e,t,n){const r=this;let i,s,o;return l;function l(S){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(S),c}function c(S){return S===33?(e.consume(S),u):S===47?(e.consume(S),C):S===63?(e.consume(S),v):Dn(S)?(e.consume(S),A):n(S)}function u(S){return S===45?(e.consume(S),d):S===91?(e.consume(S),s=0,x):Dn(S)?(e.consume(S),y):n(S)}function d(S){return S===45?(e.consume(S),f):n(S)}function p(S){return S===null?n(S):S===45?(e.consume(S),h):J(S)?(o=p,V(S)):(e.consume(S),p)}function h(S){return S===45?(e.consume(S),f):p(S)}function f(S){return S===62?K(S):S===45?h(S):p(S)}function x(S){const Q="CDATA[";return S===Q.charCodeAt(s++)?(e.consume(S),s===Q.length?g:x):n(S)}function g(S){return S===null?n(S):S===93?(e.consume(S),w):J(S)?(o=g,V(S)):(e.consume(S),g)}function w(S){return S===93?(e.consume(S),m):g(S)}function m(S){return S===62?K(S):S===93?(e.consume(S),m):g(S)}function y(S){return S===null||S===62?K(S):J(S)?(o=y,V(S)):(e.consume(S),y)}function v(S){return S===null?n(S):S===63?(e.consume(S),k):J(S)?(o=v,V(S)):(e.consume(S),v)}function k(S){return S===62?K(S):v(S)}function C(S){return Dn(S)?(e.consume(S),T):n(S)}function T(S){return S===45||Ot(S)?(e.consume(S),T):N(S)}function N(S){return J(S)?(o=N,V(S)):fe(S)?(e.consume(S),N):K(S)}function A(S){return S===45||Ot(S)?(e.consume(S),A):S===47||S===62||Nt(S)?P(S):n(S)}function P(S){return S===47?(e.consume(S),K):S===58||S===95||Dn(S)?(e.consume(S),M):J(S)?(o=P,V(S)):fe(S)?(e.consume(S),P):K(S)}function M(S){return S===45||S===46||S===58||S===95||Ot(S)?(e.consume(S),M):O(S)}function O(S){return S===61?(e.consume(S),R):J(S)?(o=O,V(S)):fe(S)?(e.consume(S),O):P(S)}function R(S){return S===null||S===60||S===61||S===62||S===96?n(S):S===34||S===39?(e.consume(S),i=S,U):J(S)?(o=R,V(S)):fe(S)?(e.consume(S),R):(e.consume(S),_)}function U(S){return S===i?(e.consume(S),i=void 0,$):S===null?n(S):J(S)?(o=U,V(S)):(e.consume(S),U)}function _(S){return S===null||S===34||S===39||S===60||S===61||S===96?n(S):S===47||S===62||Nt(S)?P(S):(e.consume(S),_)}function $(S){return S===47||S===62||Nt(S)?P(S):n(S)}function K(S){return S===62?(e.consume(S),e.exit("htmlTextData"),e.exit("htmlText"),t):n(S)}function V(S){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(S),e.exit("lineEnding"),E}function E(S){return fe(S)?xe(e,D,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(S):D(S)}function D(S){return e.enter("htmlTextData"),o(S)}}const Vm={name:"labelEnd",resolveAll:q3,resolveTo:K3,tokenize:Y3},U3={tokenize:Q3},H3={tokenize:X3},W3={tokenize:J3};function q3(e){let t=-1;const n=[];for(;++t<e.length;){const r=e[t][1];if(n.push(e[t]),r.type==="labelImage"||r.type==="labelLink"||r.type==="labelEnd"){const i=r.type==="labelImage"?4:2;r.type="data",t+=i}}return e.length!==n.length&&Hn(e,0,e.length,n),e}function K3(e,t){let n=e.length,r=0,i,s,o,l;for(;n--;)if(i=e[n][1],s){if(i.type==="link"||i.type==="labelLink"&&i._inactive)break;e[n][0]==="enter"&&i.type==="labelLink"&&(i._inactive=!0)}else if(o){if(e[n][0]==="enter"&&(i.type==="labelImage"||i.type==="labelLink")&&!i._balanced&&(s=n,i.type!=="labelLink")){r=2;break}}else i.type==="labelEnd"&&(o=n);const c={type:e[s][1].type==="labelLink"?"link":"image",start:{...e[s][1].start},end:{...e[e.length-1][1].end}},u={type:"label",start:{...e[s][1].start},end:{...e[o][1].end}},d={type:"labelText",start:{...e[s+r+2][1].end},end:{...e[o-2][1].start}};return l=[["enter",c,t],["enter",u,t]],l=Yt(l,e.slice(s+1,s+r+3)),l=Yt(l,[["enter",d,t]]),l=Yt(l,zm(t.parser.constructs.insideSpan.null,e.slice(s+r+4,o-3),t)),l=Yt(l,[["exit",d,t],e[o-2],e[o-1],["exit",u,t]]),l=Yt(l,e.slice(o+1)),l=Yt(l,[["exit",c,t]]),Hn(e,s,e.length,l),e}function Y3(e,t,n){const r=this;let i=r.events.length,s,o;for(;i--;)if((r.events[i][1].type==="labelImage"||r.events[i][1].type==="labelLink")&&!r.events[i][1]._balanced){s=r.events[i][1];break}return l;function l(h){return s?s._inactive?p(h):(o=r.parser.defined.includes(ks(r.sliceSerialize({start:s.end,end:r.now()}))),e.enter("labelEnd"),e.enter("labelMarker"),e.consume(h),e.exit("labelMarker"),e.exit("labelEnd"),c):n(h)}function c(h){return h===40?e.attempt(U3,d,o?d:p)(h):h===91?e.attempt(H3,d,o?u:p)(h):o?d(h):p(h)}function u(h){return e.attempt(W3,d,p)(h)}function d(h){return t(h)}function p(h){return s._balanced=!0,n(h)}}function Q3(e,t,n){return r;function r(p){return e.enter("resource"),e.enter("resourceMarker"),e.consume(p),e.exit("resourceMarker"),i}function i(p){return Nt(p)?$o(e,s)(p):s(p)}function s(p){return p===41?d(p):WT(e,o,l,"resourceDestination","resourceDestinationLiteral","resourceDestinationLiteralMarker","resourceDestinationRaw","resourceDestinationString",32)(p)}function o(p){return Nt(p)?$o(e,c)(p):d(p)}function l(p){return n(p)}function c(p){return p===34||p===39||p===40?KT(e,u,n,"resourceTitle","resourceTitleMarker","resourceTitleString")(p):d(p)}function u(p){return Nt(p)?$o(e,d)(p):d(p)}function d(p){return p===41?(e.enter("resourceMarker"),e.consume(p),e.exit("resourceMarker"),e.exit("resource"),t):n(p)}}function X3(e,t,n){const r=this;return i;function i(l){return qT.call(r,e,s,o,"reference","referenceMarker","referenceString")(l)}function s(l){return r.parser.defined.includes(ks(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)))?t(l):n(l)}function o(l){return n(l)}}function J3(e,t,n){return r;function r(s){return e.enter("reference"),e.enter("referenceMarker"),e.consume(s),e.exit("referenceMarker"),i}function i(s){return s===93?(e.enter("referenceMarker"),e.consume(s),e.exit("referenceMarker"),e.exit("reference"),t):n(s)}}const Z3={name:"labelStartImage",resolveAll:Vm.resolveAll,tokenize:e_};function e_(e,t,n){const r=this;return i;function i(l){return e.enter("labelImage"),e.enter("labelImageMarker"),e.consume(l),e.exit("labelImageMarker"),s}function s(l){return l===91?(e.enter("labelMarker"),e.consume(l),e.exit("labelMarker"),e.exit("labelImage"),o):n(l)}function o(l){return l===94&&"_hiddenFootnoteSupport"in r.parser.constructs?n(l):t(l)}}const t_={name:"labelStartLink",resolveAll:Vm.resolveAll,tokenize:n_};function n_(e,t,n){const r=this;return i;function i(o){return e.enter("labelLink"),e.enter("labelMarker"),e.consume(o),e.exit("labelMarker"),e.exit("labelLink"),s}function s(o){return o===94&&"_hiddenFootnoteSupport"in r.parser.constructs?n(o):t(o)}}const bd={name:"lineEnding",tokenize:r_};function r_(e,t){return n;function n(r){return e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),xe(e,t,"linePrefix")}}const Fl={name:"thematicBreak",tokenize:i_};function i_(e,t,n){let r=0,i;return s;function s(u){return e.enter("thematicBreak"),o(u)}function o(u){return i=u,l(u)}function l(u){return u===i?(e.enter("thematicBreakSequence"),c(u)):r>=3&&(u===null||J(u))?(e.exit("thematicBreak"),t(u)):n(u)}function c(u){return u===i?(e.consume(u),r++,c):(e.exit("thematicBreakSequence"),fe(u)?xe(e,l,"whitespace")(u):l(u))}}const wt={continuation:{tokenize:l_},exit:u_,name:"list",tokenize:a_},s_={partial:!0,tokenize:d_},o_={partial:!0,tokenize:c_};function a_(e,t,n){const r=this,i=r.events[r.events.length-1];let s=i&&i[1].type==="linePrefix"?i[2].sliceSerialize(i[1],!0).length:0,o=0;return l;function l(f){const x=r.containerState.type||(f===42||f===43||f===45?"listUnordered":"listOrdered");if(x==="listUnordered"?!r.containerState.marker||f===r.containerState.marker:wf(f)){if(r.containerState.type||(r.containerState.type=x,e.enter(x,{_container:!0})),x==="listUnordered")return e.enter("listItemPrefix"),f===42||f===45?e.check(Fl,n,u)(f):u(f);if(!r.interrupt||f===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),c(f)}return n(f)}function c(f){return wf(f)&&++o<10?(e.consume(f),c):(!r.interrupt||o<2)&&(r.containerState.marker?f===r.containerState.marker:f===41||f===46)?(e.exit("listItemValue"),u(f)):n(f)}function u(f){return e.enter("listItemMarker"),e.consume(f),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||f,e.check(pu,r.interrupt?n:d,e.attempt(s_,h,p))}
vendor: 5,358 bytes, line 274
274function d(f){return r.containerState.initialBlankLine=!0,s++,h(f)}function p(f){return fe(f)?(e.enter("listItemPrefixWhitespace"),e.consume(f),e.exit("listItemPrefixWhitespace"),h):n(f)}function h(f){return r.containerState.size=s+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(f)}}function l_(e,t,n){const r=this;return r.containerState._closeFlow=void 0,e.check(pu,i,s);function i(l){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,xe(e,t,"listItemIndent",r.containerState.size+1)(l)}function s(l){return r.containerState.furtherBlankLines||!fe(l)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,o(l)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(o_,t,o)(l))}function o(l){return r.containerState._closeFlow=!0,r.interrupt=void 0,xe(e,e.attempt(wt,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(l)}}function c_(e,t,n){const r=this;return xe(e,i,"listItemIndent",r.containerState.size+1);function i(s){const o=r.events[r.events.length-1];return o&&o[1].type==="listItemIndent"&&o[2].sliceSerialize(o[1],!0).length===r.containerState.size?t(s):n(s)}}function u_(e){e.exit(this.containerState.type)}function d_(e,t,n){const r=this;return xe(e,i,"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function i(s){const o=r.events[r.events.length-1];return!fe(s)&&o&&o[1].type==="listItemPrefixWhitespace"?t(s):n(s)}}const Fx={name:"setextUnderline",resolveTo:p_,tokenize:f_};function p_(e,t){let n=e.length,r,i,s;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){r=n;break}e[n][1].type==="paragraph"&&(i=n)}else e[n][1].type==="content"&&e.splice(n,1),!s&&e[n][1].type==="definition"&&(s=n);const o={type:"setextHeading",start:{...e[r][1].start},end:{...e[e.length-1][1].end}};return e[i][1].type="setextHeadingText",s?(e.splice(i,0,["enter",o,t]),e.splice(s+1,0,["exit",e[r][1],t]),e[r][1].end={...e[s][1].end}):e[r][1]=o,e.push(["exit",o,t]),e}function f_(e,t,n){const r=this;let i;return s;function s(u){let d=r.events.length,p;for(;d--;)if(r.events[d][1].type!=="lineEnding"&&r.events[d][1].type!=="linePrefix"&&r.events[d][1].type!=="content"){p=r.events[d][1].type==="paragraph";break}return!r.parser.lazy[r.now().line]&&(r.interrupt||p)?(e.enter("setextHeadingLine"),i=u,o(u)):n(u)}function o(u){return e.enter("setextHeadingLineSequence"),l(u)}function l(u){return u===i?(e.consume(u),l):(e.exit("setextHeadingLineSequence"),fe(u)?xe(e,c,"lineSuffix")(u):c(u))}function c(u){return u===null||J(u)?(e.exit("setextHeadingLine"),t(u)):n(u)}}const h_={tokenize:m_};function m_(e){const t=this,n=e.attempt(pu,r,e.attempt(this.parser.constructs.flowInitial,i,xe(e,e.attempt(this.parser.constructs.flow,i,e.attempt(w3,i)),"linePrefix")));return n;function r(s){if(s===null){e.consume(s);return}return e.enter("lineEndingBlank"),e.consume(s),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function i(s){if(s===null){e.consume(s);return}return e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),t.currentConstruct=void 0,n}}const g_={resolveAll:QT()},y_=YT("string"),v_=YT("text");function YT(e){return{resolveAll:QT(e==="text"?x_:void 0),tokenize:t};function t(n){const r=this,i=this.parser.constructs[e],s=n.attempt(i,o,l);return o;function o(d){return u(d)?s(d):l(d)}function l(d){if(d===null){n.consume(d);return}return n.enter("data"),n.consume(d),c}function c(d){return u(d)?(n.exit("data"),s(d)):(n.consume(d),c)}function u(d){if(d===null)return!0;const p=i[d];let h=-1;if(p)for(;++h<p.length;){const f=p[h];if(!f.previous||f.previous.call(r,r.previous))return!0}return!1}}}function QT(e){return t;function t(n,r){let i=-1,s;for(;++i<=n.length;)s===void 0?n[i]&&n[i][1].type==="data"&&(s=i,i++):(!n[i]||n[i][1].type!=="data")&&(i!==s+2&&(n[s][1].end=n[i-1][1].end,n.splice(s+2,i-s-2),i=s+2),s=void 0);return e?e(n,r):n}}function x_(e,t){let n=0;for(;++n<=e.length;)if((n===e.length||e[n][1].type==="lineEnding")&&e[n-1][1].type==="data"){const r=e[n-1][1],i=t.sliceStream(r);let s=i.length,o=-1,l=0,c;for(;s--;){const u=i[s];if(typeof u=="string"){for(o=u.length;u.charCodeAt(o-1)===32;)l++,o--;if(o)break;o=-1}else if(u===-2)c=!0,l++;else if(u!==-1){s++;break}}if(t._contentTypeTextTrailing&&n===e.length&&(l=0),l){const u={type:n===e.length||c||l<2?"lineSuffix":"hardBreakTrailing",start:{_bufferIndex:s?o:r.start._bufferIndex+o,_index:r.start._index+s,line:r.end.line,column:r.end.column-l,offset:r.end.offset-l},end:{...r.end}};r.end={...u.start},r.start.offset===r.end.offset?Object.assign(r,u):(e.splice(n,0,["enter",u,t],["exit",u,t]),n+=2)}n++}return e}const w_={42:wt,43:wt,45:wt,48:wt,49:wt,50:wt,51:wt,52:wt,53:wt,54:wt,55:wt,56:wt,57:wt,62:VT},b_={91:C3},k_={[-2]:wd,[-1]:wd,32:wd},S_={35:M3,42:Fl,45:[Fx,Fl],60:F3,61:Fx,95:Fl,96:Rx,126:Rx},T_={38:UT,92:$T},C_={[-5]:bd,[-4]:bd,[-3]:bd,33:Z3,38:UT,42:bf,60:[t3,V3],91:t_,92:[P3,$T],93:Vm,95:bf,96:h3},j_={null:[bf,g_]},N_={null:[42,95]},A_={null:[]},P_=Object.freeze(Object.defineProperty({__proto__:null,attentionMarkers:N_,contentInitial:b_,disable:A_,document:w_,flow:S_,flowInitial:k_,insideSpan:j_,string:T_,text:C_},Symbol.toStringTag,{value:"Module"}));function E_(e,t,n){let r={_bufferIndex:-1,_index:0,line:n&&n.line||1,c
vendor: 13,064 bytes, lines 274-276
274olumn:n&&n.column||1,offset:n&&n.offset||0};const i={},s=[];let o=[],l=[];const c={attempt:N(C),check:N(T),consume:y,enter:v,exit:k,interrupt:N(T,{interrupt:!0})},u={code:null,containerState:{},defineSkip:g,events:[],now:x,parser:e,previous:null,sliceSerialize:h,sliceStream:f,write:p};let d=t.tokenize.call(u,c);return t.resolveAll&&s.push(t),u;function p(O){return o=Yt(o,O),w(),o[o.length-1]!==null?[]:(A(t,0),u.events=zm(s,u.events,u),u.events)}function h(O,R){return I_(f(O),R)}function f(O){return M_(o,O)}function x(){const{_bufferIndex:O,_index:R,line:U,column:_,offset:$}=r;return{_bufferIndex:O,_index:R,line:U,column:_,offset:$}}function g(O){i[O.line]=O.column,M()}function w(){let O;for(;r._index<o.length;){const R=o[r._index];if(typeof R=="string")for(O=r._index,r._bufferIndex<0&&(r._bufferIndex=0);r._index===O&&r._bufferIndex<R.length;)m(R.charCodeAt(r._bufferIndex));else m(R)}}function m(O){d=d(O)}function y(O){J(O)?(r.line++,r.column=1,r.offset+=O===-3?2:1,M()):O!==-1&&(r.column++,r.offset++),r._bufferIndex<0?r._index++:(r._bufferIndex++,r._bufferIndex===o[r._index].length&&(r._bufferIndex=-1,r._index++)),u.previous=O}function v(O,R){const U=R||{};return U.type=O,U.start=x(),u.events.push(["enter",U,u]),l.push(U),U}function k(O){const R=l.pop();return R.end=x(),u.events.push(["exit",R,u]),R}function C(O,R){A(O,R.from)}function T(O,R){R.restore()}function N(O,R){return U;function U(_,$,K){let V,E,D,S;return Array.isArray(_)?Y(_):"tokenize"in _?Y([_]):Q(_);function Q(ce){return ae;function ae(st){const ot=st!==null&&ce[st],xt=st!==null&&ce.null,Pt=[...Array.isArray(ot)?ot:ot?[ot]:[],...Array.isArray(xt)?xt:xt?[xt]:[]];return Y(Pt)(st)}}function Y(ce){return V=ce,E=0,ce.length===0?K:j(ce[E])}function j(ce){return ae;function ae(st){return S=P(),D=ce,ce.partial||(u.currentConstruct=ce),ce.name&&u.parser.constructs.disable.null.includes(ce.name)?me():ce.tokenize.call(R?Object.assign(Object.create(u),R):u,c,X,me)(st)}}function X(ce){return O(D,S),$}function me(ce){return S.restore(),++E<V.length?j(V[E]):K}}}function A(O,R){O.resolveAll&&!s.includes(O)&&s.push(O),O.resolve&&Hn(u.events,R,u.events.length-R,O.resolve(u.events.slice(R),u)),O.resolveTo&&(u.events=O.resolveTo(u.events,u))}function P(){const O=x(),R=u.previous,U=u.currentConstruct,_=u.events.length,$=Array.from(l);return{from:_,restore:K};function K(){r=O,u.previous=R,u.currentConstruct=U,u.events.length=_,l=$,M()}}function M(){r.line in i&&r.column<2&&(r.column=i[r.line],r.offset+=i[r.line]-1)}}function M_(e,t){const n=t.start._index,r=t.start._bufferIndex,i=t.end._index,s=t.end._bufferIndex;let o;if(n===i)o=[e[n].slice(r,s)];else{if(o=e.slice(n,i),r>-1){const l=o[0];typeof l=="string"?o[0]=l.slice(r):o.shift()}s>0&&o.push(e[i].slice(0,s))}return o}function I_(e,t){let n=-1;const r=[];let i;for(;++n<e.length;){const s=e[n];let o;if(typeof s=="string")o=s;else switch(s){case-5:{o="\r";break}case-4:{o=`
275`;break}case-3:{o=`\r
276`;break}case-2:{o=t?" ":"	";break}case-1:{if(!t&&i)continue;o=" ";break}default:o=String.fromCharCode(s)}i=s===-2,r.push(o)}return r.join("")}function R_(e){const r={constructs:GL([P_,...(e||{}).extensions||[]]),content:i(KL),defined:[],document:i(QL),flow:i(h_),lazy:{},string:i(y_),text:i(v_)};return r;function i(s){return o;function o(l){return E_(r,s,l)}}}function D_(e){for(;!HT(e););return e}const Ox=/[\0\t\n\r]/g;function F_(){let e=1,t="",n=!0,r;return i;function i(s,o,l){const c=[];let u,d,p,h,f;for(s=t+(typeof s=="string"?s.toString():new TextDecoder(o||void 0).decode(s)),p=0,t="",n&&(s.charCodeAt(0)===65279&&p++,n=void 0);p<s.length;){if(Ox.lastIndex=p,u=Ox.exec(s),h=u&&u.index!==void 0?u.index:s.length,f=s.charCodeAt(h),!u){t=s.slice(p);break}if(f===10&&p===h&&r)c.push(-3),r=void 0;else switch(r&&(c.push(-5),r=void 0),p<h&&(c.push(s.slice(p,h)),e+=h-p),f){case 0:{c.push(65533),e++;break}case 9:{for(d=Math.ceil(e/4)*4,c.push(-2);e++<d;)c.push(-1);break}case 10:{c.push(-4),e=1;break}default:r=!0,e=1}p=h+1}return l&&(r&&c.push(-5),t&&c.push(t),c.push(null)),c}}const O_=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function L_(e){return e.replace(O_,__)}function __(e,t,n){if(t)return t;if(n.charCodeAt(0)===35){const i=n.charCodeAt(1),s=i===120||i===88;return zT(n.slice(s?2:1),s?16:10)}return Gm(n)||e}const XT={}.hasOwnProperty;function B_(e,t,n){return typeof t!="string"&&(n=t,t=void 0),G_(n)(D_(R_(n).document().write(F_()(e,t,!0))))}function G_(e){const t={transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:s(qn),autolinkProtocol:P,autolinkEmail:P,atxHeading:s(Vi),blockQuote:s(xt),characterEscape:P,characterReference:P,codeFenced:s(Pt),codeFencedFenceInfo:o,codeFencedFenceMeta:o,codeIndented:s(Pt,o),codeText:s(fr,o),codeTextData:P,data:P,codeFlowValue:P,definition:s(Cn),definitionDestinationString:o,definitionLabelString:o,definitionTitleString:o,emphasis:s(zi),hardBreakEscape:s(oi),hardBreakTrailing:s(oi),htmlFlow:s($i,o),htmlFlowData:P,htmlText:s($i,o),htmlTextData:P,image:s(ai),label:o,link:s(qn),listItem:s(li),listItemValue:h,listOrdered:s(so,p),listUnordered:s(so),paragraph:s(Oa),reference:j,referenceString:o,resourceDestinationString:o,resourceTitleString:o,setextHeading:s(Vi),strong:s(Kn),thematicBreak:s(gu)},exit:{atxHeading:c(),atxHeadingSequence:C,autolink:c(),autolinkEmail:ot,autolinkProtocol:st,blockQuote:c(),characterEscapeValue:M,characterReferenceMarkerHexadecimal:me,characterReferenceMarkerNumeric:me,characterReferenceValue:ce,characterReference:ae,codeFenced:c(w),codeFencedFence:g,codeFencedFenceInfo:f,codeFencedFenceMeta:x,codeFlowValue:M,codeIndented:c(m),codeText:c($),codeTextData:M,data:M,definition:c(),definitionDestinationString:k,definitionLabelString:y,definitionTitleString:v,emphasis:c(),hardBreakEscape:c(R),hardBreakTrailing:c(R),htmlFlow:c(U),htmlFlowData:M,htmlText:c(_),htmlTextData:M,image:c(V),label:D,labelText:E,lineEnding:O,link:c(K),listItem:c(),listOrdered:c(),listUnordered:c(),paragraph:c(),referenceString:X,resourceDestinationString:S,resourceTitleString:Q,resource:Y,setextHeading:c(A),setextHeadingLineSequence:N,setextHeadingText:T,strong:c(),thematicBreak:c()}};JT(t,(e||{}).mdastExtensions||[]);const n={};return r;function r(I){let z={type:"root",children:[]};const Z={stack:[z],tokenStack:[],config:t,enter:l,exit:u,buffer:o,resume:d,data:n},se=[];let de=-1;for(;++de<I.length;)if(I[de][1].type==="listOrdered"||I[de][1].type==="listUnordered")if(I[de][0]==="enter")se.push(de);else{const Et=se.pop();de=i(I,Et,de)}for(de=-1;++de<I.length;){const Et=t[I[de][0]];XT.call(Et,I[de][1].type)&&Et[I[de][1].type].call(Object.assign({sliceSerialize:I[de][2].sliceSerialize},Z),I[de][1])}if(Z.tokenStack.length>0){const Et=Z.tokenStack[Z.tokenStack.length-1];(Et[1]||Lx).call(Z,void 0,Et[0])}for(z.position={start:kr(I.length>0?I[0][1].start:{line:1,column:1,offset:0}),end:kr(I.length>0?I[I.length-2][1].end:{line:1,column:1,offset:0})},de=-1;++de<t.transforms.length;)z=t.transforms[de](z)||z;return z}function i(I,z,Z){let se=z-1,de=-1,Et=!1,jn,Mt,$t,hr;for(;++se<=Z;){const Oe=I[se];switch(Oe[1].type){case"listUnordered":case"listOrdered":case"blockQuote":{Oe[0]==="enter"?de++:de--,hr=void 0;break}case"lineEndingBlank":{Oe[0]==="enter"&&(jn&&!hr&&!de&&!$t&&($t=se),hr=void 0);break}case"linePrefix":case"listItemValue":case"listItemMarker":case"listItemPrefix":case"listItemPrefixWhitespace":break;default:hr=void 0}if(!de&&Oe[0]==="enter"&&Oe[1].type==="listItemPrefix"||de===-1&&Oe[0]==="exit"&&(Oe[1].type==="listUnordered"||Oe[1].type==="listOrdered")){if(jn){let mr=se;for(Mt=void 0;mr--;){const rn=I[mr];if(rn[1].type==="lineEnding"||rn[1].type==="lineEndingBlank"){if(rn[0]==="exit")continue;Mt&&(I[Mt][1].type="lineEndingBlank",Et=!0),rn[1].type="lineEnding",Mt=mr}else if(!(rn[1].type==="linePrefix"||rn[1].type==="blockQuotePrefix"||rn[1].type==="blockQuotePrefixWhitespace"||rn[1].type==="blockQuoteMarker"||rn[1].type==="listItemIndent"))break}$t&&(!Mt||$t<Mt)&&(jn._spread=!0),jn.end=Object.assign({},Mt?I[Mt][1].start:Oe[1].end),I.splice(Mt||se,0,["exit",jn,Oe[2]]),se++,Z++}if(Oe[1].type==="listItemPrefix"){const mr={type:"listItem",_spread:!1,start:Object.assign({},Oe[1].start),end:void 0};jn=mr,I.splice(se,0,["enter",mr,Oe[2]]),se++,Z++,$t=void 0,hr=!0}}}return I[z][1]._spread=Et,Z}function s(I,z){return Z;function Z(se){l.call(this,I(se),se),z&&z.call(this,se)}}function o(){this.stack.push({type:"fragment",children:[]})}function l(I,z,Z){this.stack[this.stack.length-1].children.push(I),this.stack.push(I),this.tokenStack.push([z,Z||void 0]),I.position={start:kr(z.start),end:void 0}}function c(I){return z;function z(Z){I&&I.call(this,Z),u.call(this,Z)}}function u(I,z){const Z=this.stack.pop(),se=this.tokenStack.pop();if(se)se[0].type!==I.type&&(z?z.call(this,I,se[0]):(se[1]||Lx).call(this,I,se[0]));else throw new Error("Cannot close `"+I.type+"` ("+Vo({start:I.start,end:I.end})+"): it’s not open");Z.position.end=kr(I.end)}function d(){return _L(this.stack.pop())}function p(){this.data.expectingFirstListItemValue=!0}function h(I){if(this.data.expectingFirstListItemValue){const z=this.stack[this.stack.length-2];z.start=Number.parseInt(this.sliceSerialize(I),10),this.data.expectingFirstListItemValue=void 0}}function f(){const I=this.resume(),z=this.stack[this.stack.length-1];z.lang=I}function x(){const I=this.resume(),z=this.stack[this.stack.length-1];z.meta=I}function g(){this.data.flowCodeInside||(this.buffer(),this.data.flowCodeInside=!0)}function w(){const I=this.resume(),z=this.stack[this.stack.length-1];z.value=I.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g,""),this.data.flowCodeInside=void 0}function m(){const I=this.resume(),z=this.stack[this.stack.length-1];z.value=I.replace(/(\r?\n|\r)$/g,"")}function y(I){const z=this.resume(),Z=this.stack[this.stack.length-1];Z.label=z,Z.identifier=ks(this.sliceSerialize(I)).toLowerCase()}function v(){const I=this.resume(),z=this.stack[this.stack.length-1];z.title=I}function k(){const I=this.resume(),z=this.stack[this.stack.length-1];z.url=I}function C(I){const z=this.stack[this.stack.length-1];if(!z.depth){const Z=this.sliceSerialize(I).length;z.depth=Z}}function T(){this.data.setextHeadingSlurpLineEnding=!0}function N(I){const z=this.stack[this.stack.length-1];z.depth=this.sliceSerialize(I).codePointAt(0)===61?1:2}function A(){this.data.setextHeadingSlurpLineEnding=void 0}function P(I){const Z=this.stack[this.stack.length-1].children;let se=Z[Z.length-1];(!se||se.type!=="text")&&(se=mu(),se.position={start:kr(I.start),end:void 0},Z.push(se)),this.stack.push(se)}function M(I){const z=this.stack.pop();z.value+=this.sliceSerialize(I),z.position.end=kr(I.end)}function O(I){const z=this.stack[this.stack.length-1];if(this.data.atHardBreak){const Z=z.children[z.children.length-1];Z.position.end=kr(I.end),this.data.atHardBreak=void 0;return}!this.data.setextHeadingSlurpLineEnding&&t.canContainEols.includes(z.type)&&(P.call(this,I),M.call(this,I))}function R(){this.data.atHardBreak=!0}function U(){const I=this.resume(),z=this.stack[this.stack.length-1];z.value=I}function _(){const I=this.resume(),z=this.stack[this.stack.length-1];z.value=I}function $(){const I=this.resume(),z=this.stack[this.stack.length-1];z.value=I}function K(){const I=this.stack[this.stack.length-1];if(this.data.inReference){const z=this.data.referenceType||"shortcut";I.type+="Reference",I.referenceType=z,delete I.url,delete I.title}else delete I.identifier,delete I.label;this.data.referenceType=void 0}function V(){const I=this.stack[this.stack.length-1];if(this.data.inReference){const z=this.data.referenceType||"shortcut";I.type+="Reference",I.referenceType=z,delete I.url,delete I.title}else delete I.identifier,delete I.label;this.data.referenceType=void 0}function E(I){const z=this.sliceSerialize(I),Z=this.stack[this.stack.length-2];Z.label=L_(z),Z.identifier=ks(z).toLowerCase()}function D(){const I=this.stack[this.stack.length-1],z=this.resume(),Z=this.stack[this.stack.length-1];if(this.data.inReference=!0,Z.type==="link"){const se=I.children;Z.children=se}else Z.alt=z}function S(){const I=this.resume(),z=this.stack[this.stack.length-1];z.url=I}function Q(){const I=this.resume(),z=this.stack[this.stack.length-1];z.title=I}function Y(){this.data.inReference=void 0}function j(){this.data.referenceType="collapsed"}function X(I){const z=this.resume(),Z=this.stack[this.stack.length-1];Z.label=z,Z.identifier=ks(this.sliceSerialize(I)).toLowerCase(),this.data.referenceType="full"}function me(I){this.data.characterReferenceType=I.type}function ce(I){const z=this.sliceSerialize(I),Z=this.data.characterReferenceType;let se;Z?(se=zT(z,Z==="characterReferenceMarkerNumeric"?10:16),this.data.characterReferenceType=void 0):se=Gm(z);const de=this.stack[this.stack.length-1];de.value+=se}function ae(I){const z=this.stack.pop();z.position.end=kr(I.end)}function st(I){M.call(this,I);const z=this.stack[this.stack.length-1];z.url=this.sliceSerialize(I)}function ot(I){M.call(this,I);const z=this.stack[this.stack.length-1];z.url="mailto:"+this.sliceSerialize(I)}
vendor: 10,576 bytes, lines 276-280
276function xt(){return{type:"blockquote",children:[]}}function Pt(){return{type:"code",lang:null,meta:null,value:""}}function fr(){return{type:"inlineCode",value:""}}function Cn(){return{type:"definition",identifier:"",label:null,title:null,url:""}}function zi(){return{type:"emphasis",children:[]}}function Vi(){return{type:"heading",depth:0,children:[]}}function oi(){return{type:"break"}}function $i(){return{type:"html",value:""}}function ai(){return{type:"image",title:null,url:"",alt:null}}function qn(){return{type:"link",title:null,url:"",children:[]}}function so(I){return{type:"list",ordered:I.type==="listOrdered",start:null,spread:I._spread,children:[]}}function li(I){return{type:"listItem",spread:I._spread,checked:null,children:[]}}function Oa(){return{type:"paragraph",children:[]}}function Kn(){return{type:"strong",children:[]}}function mu(){return{type:"text",value:""}}function gu(){return{type:"thematicBreak"}}}function kr(e){return{line:e.line,column:e.column,offset:e.offset}}function JT(e,t){let n=-1;for(;++n<t.length;){const r=t[n];Array.isArray(r)?JT(e,r):z_(e,r)}}function z_(e,t){let n;for(n in t)if(XT.call(t,n))switch(n){case"canContainEols":{const r=t[n];r&&e[n].push(...r);break}case"transforms":{const r=t[n];r&&e[n].push(...r);break}case"enter":case"exit":{const r=t[n];r&&Object.assign(e[n],r);break}}}function Lx(e,t){throw e?new Error("Cannot close `"+e.type+"` ("+Vo({start:e.start,end:e.end})+"): a different token (`"+t.type+"`, "+Vo({start:t.start,end:t.end})+") is open"):new Error("Cannot close document, a token (`"+t.type+"`, "+Vo({start:t.start,end:t.end})+") is still open")}function V_(e){const t=this;t.parser=n;function n(r){return B_(r,{...t.data("settings"),...e,extensions:t.data("micromarkExtensions")||[],mdastExtensions:t.data("fromMarkdownExtensions")||[]})}}function $_(e,t){const n={type:"element",tagName:"blockquote",properties:{},children:e.wrap(e.all(t),!0)};return e.patch(t,n),e.applyData(t,n)}function U_(e,t){const n={type:"element",tagName:"br",properties:{},children:[]};return e.patch(t,n),[e.applyData(t,n),{type:"text",value:`
277`}]}function H_(e,t){const n=t.value?t.value+`
278`:"",r={},i=t.lang?t.lang.split(/\s+/):[];i.length>0&&(r.className=["language-"+i[0]]);let s={type:"element",tagName:"code",properties:r,children:[{type:"text",value:n}]};return t.meta&&(s.data={meta:t.meta}),e.patch(t,s),s=e.applyData(t,s),s={type:"element",tagName:"pre",properties:{},children:[s]},e.patch(t,s),s}function W_(e,t){const n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function q_(e,t){const n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function K_(e,t){const n=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",r=String(t.identifier).toUpperCase(),i=io(r.toLowerCase()),s=e.footnoteOrder.indexOf(r);let o,l=e.footnoteCounts.get(r);l===void 0?(l=0,e.footnoteOrder.push(r),o=e.footnoteOrder.length):o=s+1,l+=1,e.footnoteCounts.set(r,l);const c={type:"element",tagName:"a",properties:{href:"#"+n+"fn-"+i,id:n+"fnref-"+i+(l>1?"-"+l:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(o)}]};e.patch(t,c);const u={type:"element",tagName:"sup",properties:{},children:[c]};return e.patch(t,u),e.applyData(t,u)}function Y_(e,t){const n={type:"element",tagName:"h"+t.depth,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function Q_(e,t){if(e.options.allowDangerousHtml){const n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}}function ZT(e,t){const n=t.referenceType;let r="]";if(n==="collapsed"?r+="[]":n==="full"&&(r+="["+(t.label||t.identifier)+"]"),t.type==="imageReference")return[{type:"text",value:"!["+t.alt+r}];const i=e.all(t),s=i[0];s&&s.type==="text"?s.value="["+s.value:i.unshift({type:"text",value:"["});const o=i[i.length-1];return o&&o.type==="text"?o.value+=r:i.push({type:"text",value:r}),i}function X_(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return ZT(e,t);const i={src:io(r.url||""),alt:t.alt};r.title!==null&&r.title!==void 0&&(i.title=r.title);const s={type:"element",tagName:"img",properties:i,children:[]};return e.patch(t,s),e.applyData(t,s)}function J_(e,t){const n={src:io(t.url)};t.alt!==null&&t.alt!==void 0&&(n.alt=t.alt),t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"img",properties:n,children:[]};return e.patch(t,r),e.applyData(t,r)}function Z_(e,t){const n={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,n);const r={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(t,r),e.applyData(t,r)}function e6(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return ZT(e,t);const i={href:io(r.url||"")};r.title!==null&&r.title!==void 0&&(i.title=r.title);const s={type:"element",tagName:"a",properties:i,children:e.all(t)};return e.patch(t,s),e.applyData(t,s)}function t6(e,t){const n={href:io(t.url)};t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"a",properties:n,children:e.all(t)};return e.patch(t,r),e.applyData(t,r)}function n6(e,t,n){const r=e.all(t),i=n?r6(n):eC(t),s={},o=[];if(typeof t.checked=="boolean"){const d=r[0];let p;d&&d.type==="element"&&d.tagName==="p"?p=d:(p={type:"element",tagName:"p",properties:{},children:[]},r.unshift(p)),p.children.length>0&&p.children.unshift({type:"text",value:" "}),p.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:t.checked,disabled:!0},children:[]}),s.className=["task-list-item"]}let l=-1;for(;++l<r.length;){const d=r[l];(i||l!==0||d.type!=="element"||d.tagName!=="p")&&o.push({type:"text",value:`
279`}),d.type==="element"&&d.tagName==="p"&&!i?o.push(...d.children):o.push(d)}const c=r[r.length-1];c&&(i||c.type!=="element"||c.tagName!=="p")&&o.push({type:"text",value:`
280`});const u={type:"element",tagName:"li",properties:s,children:o};return e.patch(t,u),e.applyData(t,u)}function r6(e){let t=!1;if(e.type==="list"){t=e.spread||!1;const n=e.children;let r=-1;for(;!t&&++r<n.length;)t=eC(n[r])}return t}function eC(e){const t=e.spread;return t??e.children.length>1}function i6(e,t){const n={},r=e.all(t);let i=-1;for(typeof t.start=="number"&&t.start!==1&&(n.start=t.start);++i<r.length;){const o=r[i];if(o.type==="element"&&o.tagName==="li"&&o.properties&&Array.isArray(o.properties.className)&&o.properties.className.includes("task-list-item")){n.className=["contains-task-list"];break}}const s={type:"element",tagName:t.ordered?"ol":"ul",properties:n,children:e.wrap(r,!0)};return e.patch(t,s),e.applyData(t,s)}function s6(e,t){const n={type:"element",tagName:"p",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function o6(e,t){const n={type:"root",children:e.wrap(e.all(t))};return e.patch(t,n),e.applyData(t,n)}function a6(e,t){const n={type:"element",tagName:"strong",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function l6(e,t){const n=e.all(t),r=n.shift(),i=[];if(r){const o={type:"element",tagName:"thead",properties:{},children:e.wrap([r],!0)};e.patch(t.children[0],o),i.push(o)}if(n.length>0){const o={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},l=Om(t.children[1]),c=DT(t.children[t.children.length-1]);l&&c&&(o.position={start:l,end:c}),i.push(o)}const s={type:"element",tagName:"table",properties:{},children:e.wrap(i,!0)};return e.patch(t,s),e.applyData(t,s)}function c6(e,t,n){const r=n?n.children:void 0,s=(r?r.indexOf(t):1)===0?"th":"td",o=n&&n.type==="table"?n.align:void 0,l=o?o.length:t.children.length;let c=-1;const u=[];for(;++c<l;){const p=t.children[c],h={},f=o?o[c]:void 0;f&&(h.align=f);let x={type:"element",tagName:s,properties:h,children:[]};p&&(x.children=e.all(p),e.patch(p,x),x=e.applyData(p,x)),u.push(x)}const d={type:"element",tagName:"tr",properties:{},children:e.wrap(u,!0)};return e.patch(t,d),e.applyData(t,d)}function u6(e,t){const n={type:"element",tagName:"td",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}const _x=9,Bx=32;function d6(e){const t=String(e),n=/\r?\n|\r/g;let r=n.exec(t),i=0;const s=[];for(;r;)s.push(Gx(t.slice(i,r.index),i>0,!0),r[0]),i=r.index+r[0].length,r=n.exec(t);return s.push(Gx(t.slice(i),i>0,!1)),s.join("")}function Gx(e,t,n){let r=0,i=e.length;if(t){let s=e.codePointAt(r);for(;s===_x||s===Bx;)r++,s=e.codePointAt(r)}if(n){let s=e.codePointAt(i-1);for(;s===_x||s===Bx;)i--,s=e.codePointAt(i-1)}return i>r?e.slice(r,i):""}function p6(e,t){const n={type:"text",value:d6(String(t.value))};return e.patch(t,n),e.applyData(t,n)}function f6(e,t){const n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)}const h6={blockquote:$_,break:U_,code:H_,delete:W_,emphasis:q_,footnoteReference:K_,heading:Y_,html:Q_,imageReference:X_,image:J_,inlineCode:Z_,linkReference:e6,link:t6,listItem:n6,list:i6,paragraph:s6,root:o6,strong:a6,table:l6,tableCell:u6,tableRow:c6,text:p6,thematicBreak:f6,toml:dl,yaml:dl,definition:dl,footnoteDefinition:dl};function dl(){}const tC=-1,fu=0,Uo=1,Cc=2,$m=3,Um=4,Hm=5,Wm=6,nC=7,rC=8,zx=typeof self=="object"?self:globalThis,m6=(e,t)=>{const n=(i,s)=>(e.set(s,i),i),r=i=>{if(e.has(i))return e.get(i);const[s,o]=t[i];switch(s){case fu:case tC:return n(o,i);case Uo:{const l=n([],i);for(const c of o)l.push(r(c));return l}case Cc:{const l=n({},i);for(const[c,u]of o)l[r(c)]=r(u);return l}case $m:return n(new Date(o),i);case Um:{const{source:l,flags:c}=o;return n(new RegExp(l,c),i)}case Hm:{const l=n(new Map,i);for(const[c,u]of o)l.set(r(c),r(u));return l}case Wm:{const l=n(new Set,i);for(const c of o)l.add(r(c));return l}case nC:{const{name:l,message:c}=o;return n(new zx[l](c),i)}case rC:return n(BigInt(o),i);case"BigInt":return n(Object(BigInt(o)),i);case"ArrayBuffer":return n(new Uint8Array(o).buffer,o);case"DataView":{const{buffer:l}=new Uint8Array(o);return n(new DataView(l),o)}}return n(new zx[s](o),i)};return r},Vx=e=>m6(new Map,e)(0),Wi="",{toString:g6}={},{keys:y6}=Object,bo=e=>{const t=typeof e;if(t!=="object"||!e)return[fu,t];const n=g6.call(e).slice(8,-1);switch(n){case"Array":return[Uo,Wi];case"Object":return[Cc,Wi];case"Date":return[$m,Wi];case"RegExp":return[Um,Wi];case"Map":return[Hm,Wi];case"Set":return[Wm,Wi];case"DataView":return[Uo,n]}return n.includes("Array")?[Uo,n]:n.includes("Error")?[nC,n]:[Cc,n]},pl=([e,t])=>e===fu&&(t==="function"||t==="symbol"),v6=(e,t,n,r)=>{const i=(o,l)=>{const c=r.push(o)-1;return n.set(l,c),c},s=o=>
vendor: 4,097 bytes, lines 280-282
280{if(n.has(o))return n.get(o);let[l,c]=bo(o);switch(l){case fu:{let d=o;switch(c){case"bigint":l=rC,d=o.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+c);d=null;break;case"undefined":return i([tC],o)}return i([l,d],o)}case Uo:{if(c){let h=o;return c==="DataView"?h=new Uint8Array(o.buffer):c==="ArrayBuffer"&&(h=new Uint8Array(o)),i([c,[...h]],o)}const d=[],p=i([l,d],o);for(const h of o)d.push(s(h));return p}case Cc:{if(c)switch(c){case"BigInt":return i([c,o.toString()],o);case"Boolean":case"Number":case"String":return i([c,o.valueOf()],o)}if(t&&"toJSON"in o)return s(o.toJSON());const d=[],p=i([l,d],o);for(const h of y6(o))(e||!pl(bo(o[h])))&&d.push([s(h),s(o[h])]);return p}case $m:return i([l,o.toISOString()],o);case Um:{const{source:d,flags:p}=o;return i([l,{source:d,flags:p}],o)}case Hm:{const d=[],p=i([l,d],o);for(const[h,f]of o)(e||!(pl(bo(h))||pl(bo(f))))&&d.push([s(h),s(f)]);return p}case Wm:{const d=[],p=i([l,d],o);for(const h of o)(e||!pl(bo(h)))&&d.push(s(h));return p}}const{message:u}=o;return i([l,{name:c,message:u}],o)};return s},$x=(e,{json:t,lossy:n}={})=>{const r=[];return v6(!(t||n),!!t,new Map,r)(e),r},jc=typeof structuredClone=="function"?(e,t)=>t&&("json"in t||"lossy"in t)?Vx($x(e,t)):structuredClone(e):(e,t)=>Vx($x(e,t));function x6(e,t){const n=[{type:"text",value:"↩"}];return t>1&&n.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(t)}]}),n}function w6(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}function b6(e){const t=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",n=e.options.footnoteBackContent||x6,r=e.options.footnoteBackLabel||w6,i=e.options.footnoteLabel||"Footnotes",s=e.options.footnoteLabelTagName||"h2",o=e.options.footnoteLabelProperties||{className:["sr-only"]},l=[];let c=-1;for(;++c<e.footnoteOrder.length;){const u=e.footnoteById.get(e.footnoteOrder[c]);if(!u)continue;const d=e.all(u),p=String(u.identifier).toUpperCase(),h=io(p.toLowerCase());let f=0;const x=[],g=e.footnoteCounts.get(p);for(;g!==void 0&&++f<=g;){x.length>0&&x.push({type:"text",value:" "});let y=typeof n=="string"?n:n(c,f);typeof y=="string"&&(y={type:"text",value:y}),x.push({type:"element",tagName:"a",properties:{href:"#"+t+"fnref-"+h+(f>1?"-"+f:""),dataFootnoteBackref:"",ariaLabel:typeof r=="string"?r:r(c,f),className:["data-footnote-backref"]},children:Array.isArray(y)?y:[y]})}const w=d[d.length-1];if(w&&w.type==="element"&&w.tagName==="p"){const y=w.children[w.children.length-1];y&&y.type==="text"?y.value+=" ":w.children.push({type:"text",value:" "}),w.children.push(...x)}else d.push(...x);const m={type:"element",tagName:"li",properties:{id:t+"fn-"+h},children:e.wrap(d,!0)};e.patch(u,m),l.push(m)}if(l.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:s,properties:{...jc(o),id:"footnote-label"},children:[{type:"text",value:i}]},{type:"text",value:`
281`},{type:"element",tagName:"ol",properties:{},children:e.wrap(l,!0)},{type:"text",value:`
282`}]}}const iC=function(e){if(e==null)return C6;if(typeof e=="function")return hu(e);if(typeof e=="object")return Array.isArray(e)?k6(e):S6(e);if(typeof e=="string")return T6(e);throw new Error("Expected function, string, or object as test")};function k6(e){const t=[];let n=-1;for(;++n<e.length;)t[n]=iC(e[n]);return hu(r);function r(...i){let s=-1;for(;++s<t.length;)if(t[s].apply(this,i))return!0;return!1}}function S6(e){const t=e;return hu(n);function n(r){const i=r;let s;for(s in e)if(i[s]!==t[s])return!1;return!0}}function T6(e){return hu(t);function t(n){return n&&n.type===e}}function hu(e){return t;function t(n,r,i){return!!(j6(n)&&e.call(this,n,typeof r=="number"?r:void 0,i||void 0))}}function C6(){return!0}function j6(e){return e!==null&&typeof e=="object"&&"type"in e}const sC=[],N6=!0,Ux=!1,A6="skip";function P6(e,t,n,r){let i;typeof t=="function"&&typeof n!="function"?(r=n,n=t):i=t;const s=iC(i),o=r?-1:1;l(e,void 0,[])();function l(c,u,d){const p=c&&typeof c=="object"?c:{};
vendor: 13,952 bytes, lines 282-286
282if(typeof p.type=="string"){const f=typeof p.tagName=="string"?p.tagName:typeof p.name=="string"?p.name:void 0;Object.defineProperty(h,"name",{value:"node ("+(c.type+(f?"<"+f+">":""))+")"})}return h;function h(){let f=sC,x,g,w;if((!t||s(c,u,d[d.length-1]||void 0))&&(f=E6(n(c,d)),f[0]===Ux))return f;if("children"in c&&c.children){const m=c;if(m.children&&f[0]!==A6)for(g=(r?m.children.length:-1)+o,w=d.concat(m);g>-1&&g<m.children.length;){const y=m.children[g];if(x=l(y,g,w)(),x[0]===Ux)return x;g=typeof x[1]=="number"?x[1]:g+o}}return f}}}function E6(e){return Array.isArray(e)?e:typeof e=="number"?[N6,e]:e==null?sC:[e]}function oC(e,t,n,r){let i,s,o;typeof t=="function"&&typeof n!="function"?(s=void 0,o=t,i=n):(s=t,o=n,i=r),P6(e,s,l,i);function l(c,u){const d=u[u.length-1],p=d?d.children.indexOf(c):void 0;return o(c,p,d)}}const kf={}.hasOwnProperty,M6={};function I6(e,t){const n=t||M6,r=new Map,i=new Map,s=new Map,o={...h6,...n.handlers},l={all:u,applyData:D6,definitionById:r,footnoteById:i,footnoteCounts:s,footnoteOrder:[],handlers:o,one:c,options:n,patch:R6,wrap:O6};return oC(e,function(d){if(d.type==="definition"||d.type==="footnoteDefinition"){const p=d.type==="definition"?r:i,h=String(d.identifier).toUpperCase();p.has(h)||p.set(h,d)}}),l;function c(d,p){const h=d.type,f=l.handlers[h];if(kf.call(l.handlers,h)&&f)return f(l,d,p);if(l.options.passThrough&&l.options.passThrough.includes(h)){if("children"in d){const{children:g,...w}=d,m=jc(w);return m.children=l.all(d),m}return jc(d)}return(l.options.unknownHandler||F6)(l,d,p)}function u(d){const p=[];if("children"in d){const h=d.children;let f=-1;for(;++f<h.length;){const x=l.one(h[f],d);if(x){if(f&&h[f-1].type==="break"&&(!Array.isArray(x)&&x.type==="text"&&(x.value=Hx(x.value)),!Array.isArray(x)&&x.type==="element")){const g=x.children[0];g&&g.type==="text"&&(g.value=Hx(g.value))}Array.isArray(x)?p.push(...x):p.push(x)}}}return p}}function R6(e,t){e.position&&(t.position=gL(e))}function D6(e,t){let n=t;if(e&&e.data){const r=e.data.hName,i=e.data.hChildren,s=e.data.hProperties;if(typeof r=="string")if(n.type==="element")n.tagName=r;else{const o="children"in n?n.children:[n];n={type:"element",tagName:r,properties:{},children:o}}n.type==="element"&&s&&Object.assign(n.properties,jc(s)),"children"in n&&n.children&&i!==null&&i!==void 0&&(n.children=i)}return n}function F6(e,t){const n=t.data||{},r="value"in t&&!(kf.call(n,"hProperties")||kf.call(n,"hChildren"))?{type:"text",value:t.value}:{type:"element",tagName:"div",properties:{},children:e.all(t)};return e.patch(t,r),e.applyData(t,r)}function O6(e,t){const n=[];let r=-1;for(t&&n.push({type:"text",value:`
283`});++r<e.length;)r&&n.push({type:"text",value:`
284`}),n.push(e[r]);return t&&e.length>0&&n.push({type:"text",value:`
285`}),n}function Hx(e){let t=0,n=e.charCodeAt(t);for(;n===9||n===32;)t++,n=e.charCodeAt(t);return e.slice(t)}function Wx(e,t){const n=I6(e,t),r=n.one(e,void 0),i=b6(n),s=Array.isArray(r)?{type:"root",children:r}:r||{type:"root",children:[]};return i&&s.children.push({type:"text",value:`
286`},i),s}function L6(e,t){return e&&"run"in e?async function(n,r){const i=Wx(n,{file:r,...t});await e.run(i,r)}:function(n,r){return Wx(n,{file:r,...e||t})}}function qx(e){if(e)throw e}var Ol=Object.prototype.hasOwnProperty,aC=Object.prototype.toString,Kx=Object.defineProperty,Yx=Object.getOwnPropertyDescriptor,Qx=function(t){return typeof Array.isArray=="function"?Array.isArray(t):aC.call(t)==="[object Array]"},Xx=function(t){if(!t||aC.call(t)!=="[object Object]")return!1;var n=Ol.call(t,"constructor"),r=t.constructor&&t.constructor.prototype&&Ol.call(t.constructor.prototype,"isPrototypeOf");if(t.constructor&&!n&&!r)return!1;var i;for(i in t);return typeof i>"u"||Ol.call(t,i)},Jx=function(t,n){Kx&&n.name==="__proto__"?Kx(t,n.name,{enumerable:!0,configurable:!0,value:n.newValue,writable:!0}):t[n.name]=n.newValue},Zx=function(t,n){if(n==="__proto__")if(Ol.call(t,n)){if(Yx)return Yx(t,n).value}else return;return t[n]},_6=function e(){var t,n,r,i,s,o,l=arguments[0],c=1,u=arguments.length,d=!1;for(typeof l=="boolean"&&(d=l,l=arguments[1]||{},c=2),(l==null||typeof l!="object"&&typeof l!="function")&&(l={});c<u;++c)if(t=arguments[c],t!=null)for(n in t)r=Zx(l,n),i=Zx(t,n),l!==i&&(d&&i&&(Xx(i)||(s=Qx(i)))?(s?(s=!1,o=r&&Qx(r)?r:[]):o=r&&Xx(r)?r:{},Jx(l,{name:n,newValue:e(d,o,i)})):typeof i<"u"&&Jx(l,{name:n,newValue:i}));return l};const kd=Oi(_6);function Sf(e){if(typeof e!="object"||e===null)return!1;const t=Object.getPrototypeOf(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}function B6(){const e=[],t={run:n,use:r};return t;function n(...i){let s=-1;const o=i.pop();if(typeof o!="function")throw new TypeError("Expected function as last argument, not "+o);l(null,...i);function l(c,...u){const d=e[++s];let p=-1;if(c){o(c);return}for(;++p<i.length;)(u[p]===null||u[p]===void 0)&&(u[p]=i[p]);i=u,d?G6(d,l)(...u):o(null,...u)}}function r(i){if(typeof i!="function")throw new TypeError("Expected `middelware` to be a function, not "+i);return e.push(i),t}}function G6(e,t){let n;return r;function r(...o){const l=e.length>o.length;let c;l&&o.push(i);try{c=e.apply(this,o)}catch(u){const d=u;if(l&&n)throw d;return i(d)}l||(c&&c.then&&typeof c.then=="function"?c.then(s,i):c instanceof Error?i(c):s(c))}function i(o,...l){n||(n=!0,t(o,...l))}function s(o){i(null,o)}}const Pn={basename:z6,dirname:V6,extname:$6,join:U6,sep:"/"};function z6(e,t){if(t!==void 0&&typeof t!="string")throw new TypeError('"ext" argument must be a string');Fa(e);let n=0,r=-1,i=e.length,s;if(t===void 0||t.length===0||t.length>e.length){for(;i--;)if(e.codePointAt(i)===47){if(s){n=i+1;break}}else r<0&&(s=!0,r=i+1);return r<0?"":e.slice(n,r)}if(t===e)return"";let o=-1,l=t.length-1;for(;i--;)if(e.codePointAt(i)===47){if(s){n=i+1;break}}else o<0&&(s=!0,o=i+1),l>-1&&(e.codePointAt(i)===t.codePointAt(l--)?l<0&&(r=i):(l=-1,r=o));return n===r?r=o:r<0&&(r=e.length),e.slice(n,r)}function V6(e){if(Fa(e),e.length===0)return".";let t=-1,n=e.length,r;for(;--n;)if(e.codePointAt(n)===47){if(r){t=n;break}}else r||(r=!0);return t<0?e.codePointAt(0)===47?"/":".":t===1&&e.codePointAt(0)===47?"//":e.slice(0,t)}function $6(e){Fa(e);let t=e.length,n=-1,r=0,i=-1,s=0,o;for(;t--;){const l=e.codePointAt(t);if(l===47){if(o){r=t+1;break}continue}n<0&&(o=!0,n=t+1),l===46?i<0?i=t:s!==1&&(s=1):i>-1&&(s=-1)}return i<0||n<0||s===0||s===1&&i===n-1&&i===r+1?"":e.slice(i,n)}function U6(...e){let t=-1,n;for(;++t<e.length;)Fa(e[t]),e[t]&&(n=n===void 0?e[t]:n+"/"+e[t]);return n===void 0?".":H6(n)}function H6(e){Fa(e);const t=e.codePointAt(0)===47;let n=W6(e,!t);return n.length===0&&!t&&(n="."),n.length>0&&e.codePointAt(e.length-1)===47&&(n+="/"),t?"/"+n:n}function W6(e,t){let n="",r=0,i=-1,s=0,o=-1,l,c;for(;++o<=e.length;){if(o<e.length)l=e.codePointAt(o);else{if(l===47)break;l=47}if(l===47){if(!(i===o-1||s===1))if(i!==o-1&&s===2){if(n.length<2||r!==2||n.codePointAt(n.length-1)!==46||n.codePointAt(n.length-2)!==46){if(n.length>2){if(c=n.lastIndexOf("/"),c!==n.length-1){c<0?(n="",r=0):(n=n.slice(0,c),r=n.length-1-n.lastIndexOf("/")),i=o,s=0;continue}}else if(n.length>0){n="",r=0,i=o,s=0;continue}}t&&(n=n.length>0?n+"/..":"..",r=2)}else n.length>0?n+="/"+e.slice(i+1,o):n=e.slice(i+1,o),r=o-i-1;i=o,s=0}else l===46&&s>-1?s++:s=-1}return n}function Fa(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const q6={cwd:K6};function K6(){return"/"}function Tf(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function Y6(e){if(typeof e=="string")e=new URL(e);else if(!Tf(e)){const t=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code="ERR_INVALID_ARG_TYPE",t}if(e.protocol!=="file:"){const t=new TypeError("The URL must be of scheme file");throw t.code="ERR_INVALID_URL_SCHEME",t}return Q6(e)}function Q6(e){if(e.hostname!==""){const r=new TypeError('File URL host must be "localhost" or empty on darwin');throw r.code="ERR_INVALID_FILE_URL_HOST",r}const t=e.pathname;let n=-1;for(;++n<t.length;)if(t.codePointAt(n)===37&&t.codePointAt(n+1)===50){const r=t.codePointAt(n+2);if(r===70||r===102){const i=new TypeError("File URL path must not include encoded / characters");throw i.code="ERR_INVALID_FILE_URL_PATH",i}}return decodeURIComponent(t)}const Sd=["history","path","basename","stem","extname","dirname"];class lC{constructor(t){let n;t?Tf(t)?n={path:t}:typeof t=="string"||X6(t)?n={value:t}:n=t:n={},this.cwd="cwd"in n?"":q6.cwd(),this.data={},this.history=[],this.messages=[],this.value,this.map,this.result,this.stored;let r=-1;for(;++r<Sd.length;){const s=Sd[r];s in n&&n[s]!==void 0&&n[s]!==null&&(this[s]=s==="history"?[...n[s]]:n[s])}let i;for(i in n)Sd.includes(i)||(this[i]=n[i])}get basename(){return typeof this.path=="string"?Pn.basename(this.path):void 0}set basename(t){Cd(t,"basename"),Td(t,"basename"),this.path=Pn.join(this.dirname||"",t)}get dirname(){return typeof this.path=="string"?Pn.dirname(this.path):void 0}set dirname(t){ew(this.basename,"dirname"),this.path=Pn.join(t||"",this.basename)}get extname(){return typeof this.path=="string"?Pn.extname(this.path):void 0}set extname(t){if(Td(t,"extname"),ew(this.dirname,"extname"),t){if(t.codePointAt(0)!==46)throw new Error("`extname` must start with `.`");if(t.includes(".",1))throw new Error("`extname` cannot contain multiple dots")}this.path=Pn.join(this.dirname,this.stem+(t||""))}get path(){return this.history[this.history.length-1]}set path(t){Tf(t)&&(t=Y6(t)),Cd(t,"path"),this.path!==t&&this.history.push(t)}get stem(){return typeof this.path=="string"?Pn.basename(this.path,this.extname):void 0}set stem(t){Cd(t,"stem"),Td(t,"stem"),this.path=Pn.join(this.dirname||"",t+(this.extname||""))}fail(t,n,r){const i=this.message(t,n,r);throw i.fatal=!0,i}info(t,n,r){const i=this.message(t,n,r);return i.fatal=void 0,i}message(t,n,r){const i=new it(t,n,r);return this.path&&(i.name=this.path+":"+i.name,i.file=this.path),i.fatal=!1,this.messages.push(i),i}toString(t){return this.value===void 0?"":typeof this.value=="string"?this.value:new TextDecoder(t||void 0).decode(this.value)}}function Td(e,t){if(e&&e.includes(Pn.sep))throw new Error("`"+t+"` cannot be a path: did not expect `"+Pn.sep+"`")}function Cd(e,t){if(!e)throw new Error("`"+t+"` cannot be empty")}function ew(e,t){if(!e)throw new Error("Setting `"+t+"` requires `path` to be set too")}function X6(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const J6=function(e){const r=this.constructor.prototype,i=r[e],s=function(){return i.apply(s,arguments)};return Object.setPrototypeOf(s,r),s},Z6={}.hasOwnProperty;class qm extends J6{constructor(){super("copy"),this.Compiler=void 0,this.Parser=void 0,this.attachers=[],this.compiler=void 0,this.freezeIndex=-1,this.frozen=void 0,this.namespace={},this.parser=void 0,this.transformers=B6()}copy(){const t=new qm;let n=-1;for(;++n<this.attachers.length;){const r=this.attachers[n];t.use(...r)}return t.data(kd(!0,{},this.namespace)),t}data(t,n){return typeof t=="string"?arguments.length===2?(Ad("data",this.frozen),this.namespace[t]=n,this):Z6.call(this.namespace,t)&&this.namespace[t]||void 0:t?(Ad("data",this.frozen),this.namespace=t,this):this.namespace}freeze(){if(this.frozen)return this;const t=this;for(;++this.freezeIndex<this.attachers.length;){const[n,...r]=this.attachers[this.freezeIndex];if(r[0]===!1)continue;r[0]===!0&&(r[0]=void 0);const i=n.call(t,...r);typeof i=="function"&&this.transformers.use(i)}return this.frozen=!0,this.freezeIndex=Number.POSITIVE_INFINITY,this}parse(t){this.freeze();const n=fl(t),r=this.parser||this.Parser;return jd("parse",r),r(String(n),n)}process(t,n){const r=this;return this.freeze(),jd("process",this.parser||this.Parser),Nd("process",this.compiler||this.Compiler),n?i(void 0,n):new Promise(i);function i(s,o){const l=fl(t),c=r.parse(l);r.run(c,l,function(d,p,h){if(d||!p||!h)return u(d);const f=p,x=r.stringify(f,h);nB(x)?h.value=x:h.result=x,u(d,h)});function u(d,p){d||!p?o(d):s?s(p):n(void 0,p)}}}processSync(t){let n=!1,r;return this.freeze(),jd("processSync",this.parser||this.Parser),Nd("processSync",this.compiler||this.Compiler),this.process(t,i),nw("processSync","process",n),r;function i(s,o){n=!0,qx(s),r=o}}run(t,n,r){tw(t),this.freeze();const i=this.transformers;return!r&&typeof n=="function"&&(r=n,n=void 0),r?s(void 0,r):new Promise(s);function s(o,l){const c=fl(n);i.run(t,c,u);function u(d,p,h){const f=p||t;d?l(d):o?o(f):r(void 0,f,h)}}}runSync(t,n){let r=!1,i;return this.run(t,n,s),nw("runSync","run",r),i;function s(o,l){qx(o),i=l,r=!0}}stringify(t,n){this.freeze();const r=fl(n),i=this.compiler||this.Compiler;return Nd("stringify",i),tw(t),i(t,r)}use(t,...n){const r=this.attachers,i=this.namespace;if(Ad("use",this.frozen),t!=null)if(typeof t=="function")c(t,n);else if(typeof t=="object")Array.isArray(t)?l(t):o(t);else throw new TypeError("Expected usable value, not `"+t+"`");return this;function s(u){if(typeof u=="function")c(u,[]);else if(typeof u=="object")if(Array.isArray(u)){const[d,...p]=u;c(d,p)}else o(u);else throw new TypeError("Expected usable value, not `"+u+"`")}function o(u){if(!("plugins"in u)&&!("settings"in u))throw new Error("Expected usable value but received an empty preset, which is probably a mistake: presets typically come with `plugins` and sometimes with `settings`, but this has neither");l(u.plugins),u.settings&&(i.settings=kd(!0,i.settings,u.settings))}function l(u){let d=-1;if(u!=null)if(Array.isArray(u))for(;++d<u.length;){const p=u[d];s(p)}else throw new TypeError("Expected a list of plugins, not `"+u+"`")}function c(u,d){let p=-1,h=-1;for(;++p<r.length;)if(r[p][0]===u){h=p;break}if(h===-1)r.push([u,...d]);else if(d.length>0){let[f,...x]=d;const g=r[h][1];Sf(g)&&Sf(f)&&(f=kd(!0,g,f)),r[h]=[u,f,...x]}}}}const eB=new qm().freeze();
286function jd(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function Nd(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function Ad(e,t){if(t)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function tw(e){if(!Sf(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function nw(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function fl(e){return tB(e)?e:new lC(e)}function tB(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function nB(e){return typeof e=="string"||rB(e)}function rB(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const iB="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",rw=[],iw={allowDangerousHtml:!0},sB=/^(https?|ircs?|mailto|xmpp)$/i,oB=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"className",id:"remove-classname"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function aB(e){const t=lB(e),n=cB(e);return uB(t.runSync(t.parse(n),n),e)}function lB(e){const t=e.rehypePlugins||rw,n=e.remarkPlugins||rw,r=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...iw}:iw;return eB().use(V_).use(n).use(L6,r).use(t)}function cB(e){const t=e.children||"",n=new lC;return typeof t=="string"&&(n.value=t),n}function uB(e,t){const n=t.allowedElements,r=t.allowElement,i=t.components,s=t.disallowedElements,o=t.skipHtml,l=t.unwrapDisallowed,c=t.urlTransform||dB;for(const d of oB)Object.hasOwn(t,d.from)&&(""+d.from+(d.to?"use `"+d.to+"` instead":"remove it")+iB+d.id,void 0);return oC(e,u),bL(e,{Fragment:a.Fragment,components:i,ignoreInvalidStyle:!0,jsx:a.jsx,jsxs:a.jsxs,passKeys:!0,passNode:!0});function u(d,p,h){if(d.type==="raw"&&h&&typeof p=="number")return o?h.children.splice(p,1):h.children[p]={type:"text",value:d.value},p;if(d.type==="element"){let f;for(f in xd)if(Object.hasOwn(xd,f)&&Object.hasOwn(d.properties,f)){const x=d.properties[f],g=xd[f];(g===null||g.includes(d.tagName))&&(d.properties[f]=c(String(x||""),f,d))}}if(d.type==="element"){let f=n?!n.includes(d.tagName):s?s.includes(d.tagName):!1;if(!f&&r&&typeof p=="number"&&(f=!r(d,p,h)),f&&h&&typeof p=="number")return l&&d.children?h.children.splice(p,1,...d.children):h.children.splice(p,1),p}}}function dB(e){const t=e.indexOf(":"),n=e.indexOf("?"),r=e.indexOf("#"),i=e.indexOf("/");return t===-1||i!==-1&&t>i||n!==-1&&t>n||r!==-1&&t>r||sB.test(e.slice(0,t))?e:""}const pB=()=>{var h;const[e,t]=b.useState(""),n=b.useRef(null),{messages:r,isLoading:i,remainingMessages:s,canSendMessage:o,error:l,sendMessage:c,resetSession:u,maxMessages:d}=TO();b.useEffect(()=>{var f;(f=n.current)==null||f.scrollIntoView({behavior:"smooth"})},[r]);const p=f=>{f.preventDefault(),e.trim()&&o&&!i&&(c(e),t(""))};return a.jsxs(yt,{children:[a.jsx(vt,{title:"AI Analytics Assistant | Server-Side Analytics",description:"Ask our AI assistant about server-side tracking setup, GTM implementation, ad blocker bypass solutions, and analytics best practices.",path:"/chat"}),a.jsx("section",{className:"py-12 md:py-20",children:a.jsxs("div",{className:"container mx-auto px-4 max-w-4xl",children:[a.jsxs("div",{className:"text-center mb-8",children:[a.jsxs("h1",{className:"text-3xl md:text-4xl font-display font-bold text-foreground mb-4",children:["Server-Side Analytics ",a.jsx("span",{className:"text-primary",children:"AI Assistant"})]}),a.jsx("p",{className:"text-muted-foreground max-w-2xl mx-auto",children:"Get instant answers about server-side analytics, tracking implementation, and data collection best practices."})]}),a.jsxs("div",{className:"bg-card border border-border rounded-2xl shadow-xl overflow-hidden",children:[a.jsxs("div",{className:"p-4 border-b border-border bg-secondary/50 flex items-center justify-between",children:[a.jsx("div",{children:a.jsxs("p",{className:"text-sm text-muted-foreground",children:[a.jsx("span",{className:"font-medium text-foreground",children:s})," of ",d," messages remaining this session"]})}),a.jsxs(ut,{variant:"ghost",size:"sm",onClick:u,className:"gap-2",children:[a.jsx(CP,{className:"w-4 h-4"}),"Reset"]})]}),a.jsxs("div",{className:"h-[400px] md:h-[500px] overflow-y-auto p-6 space-y-4",children:[r.length===0&&a.jsxs("div",{className:"text-center text-muted-foreground py-16",children:[a.jsx("p",{className:"text-lg mb-2",children:cs.welcomeMessage}),a.jsx("p",{className:"text-sm",children:"Ask me anything about server-side analytics!"})]}),r.map((f,x)=>a.jsx("div",{className:`flex ${f.role==="user"?"justify-end":"justify-start"}`,children:a.jsx("div",{className:`max-w-[80%] rounded-2xl px-5 py-3 ${f.role==="user"?"bg-primary text-primary-foreground":"bg-secondary text-secondary-foreground"}`,children:f.role==="assistant"?a.jsx("div",{className:"prose prose-sm dark:prose-invert max-w-none",children:a.jsx(aB,{children:f.content||"..."})}):a.jsx("p",{children:f.content})})},x)),i&&((h=r[r.length-1])==null?void 0:h.role)!=="assistant"&&a.jsx("div",{className:"flex justify-start",children:a.jsx("div",{className:"bg-secondary text-secondary-foreground rounded-2xl px-5 py-3",children:a.jsxs("div",{className:"flex gap-1",children:[a.jsx("span",{className:"w-2 h-2 bg-muted-foreground rounded-full animate-bounce",style:{animationDelay:"0ms"}}),a.jsx("span",{className:"w-2 h-2 bg-muted-foreground rounded-full animate-bounce",style:{animationDelay:"150ms"}}),a.jsx("span",{className:"w-2 h-2 bg-muted-foreground rounded-full animate-bounce",style:{animationDelay:"300ms"}})]})})}),l&&a.jsx("div",{className:"text-center text-destructive py-2",children:l}),a.jsx("div",{ref:n})]}),a.jsx("form",{onSubmit:p,className:"p-4 border-t border-border bg-secondary/30",children:o?a.jsxs("div",{className:"flex gap-3",children:[a.jsx(jT,{value:e,onCh
286ange:f=>t(f.target.value),placeholder:cs.placeholder,disabled:i,className:"flex-1 h-12"}),a.jsx(ut,{type:"submit",size:"lg",disabled:!e.trim()||i,className:"px-6",children:a.jsx(jP,{className:"w-5 h-5"})})]}):a.jsxs("div",{className:"text-center py-2",children:[a.jsxs("p",{className:"text-muted-foreground mb-3",children:["You've reached the session limit of ",d," messages."]}),a.jsx(ut,{variant:"outline",onClick:u,children:"Start New Session"})]})})]})]})})]})},fB=()=>a.jsxs(yt,{children:[a.jsx(vt,{title:"What Is Server-Side Analytics? | Server-Side Analytics",description:"Learn what server-side analytics is, how it works, and why businesses are switching from client-side tracking for better data accuracy and privacy.",path:"/what-is-server-side-analytics"}),a.jsx("article",{className:"py-16 md:py-24",children:a.jsxs("div",{className:"container mx-auto px-4 max-w-3xl",children:[a.jsxs(H.header,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},className:"mb-12",children:[a.jsx("p",{className:"text-primary text-sm font-medium uppercase tracking-wider mb-4",children:"Guide"}),a.jsx("h1",{className:"font-display text-3xl md:text-4xl lg:text-5xl font-bold text-foreground mb-6 leading-tight",children:"What Is Server-Side Analytics and Tracking?"}),a.jsx("p",{className:"text-muted-foreground text-lg leading-relaxed",children:"A straightforward explanation of how server-side analytics works, why it matters, and what makes it different from the tracking you're probably using today."})]}),a.jsxs(H.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{delay:.1},className:"prose prose-invert max-w-none",children:[a.jsxs("section",{className:"mb-12",children:[a.jsx("p",{className:"text-foreground/90 text-base leading-relaxed mb-4",children:"If you've ever looked at your analytics dashboard and felt like the numbers don't quite add up, you're not alone. Many businesses notice gaps between what they expect and what their analytics tools report. A big reason for this is how traditional tracking works — and it's starting to show its age."}),a.jsx("p",{className:"text-foreground/90 text-base leading-relaxed",children:"Server-side analytics is an approach that moves data collection from the user's browser to your server. Instead of relying on JavaScript tags running in someone's browser, your server handles the tracking directly. This simple shift solves a lot of the problems that have been building up over the last few years."})]}),a.jsxs("section",{className:"mb-12",children:[a.jsx("h2",{className:"font-display text-2xl font-bold text-foreground mb-4",children:"How Traditional (Client-Side) Tracking Works"}),a.jsx("p",{className:"text-foreground/90 text-base leading-relaxed mb-4",children:"Most websites today use client-side tracking. When someone visits your site, a small piece of JavaScript code runs in their browser. This code collects information — which pages they visit, what buttons they click, whether they make a purchase — and sends it directly to analytics platforms like Google Analytics or Facebook."}),a.jsx("p",{className:"text-foreground/90 text-base leading-relaxed mb-4",children:"This worked well for a long time, but the landscape has changed:"}),a.jsxs("ul",{className:"space-y-3 mb-4 pl-0",children:[a.jsxs("li",{className:"flex items-start gap-3 text-foreground/90",children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary mt-2.5 shrink-0"}),a.jsxs("span",{children:[a.jsx("strong",{className:"text-foreground",children:"Ad blockers"})," — roughly 30-40% of internet users now block tracking scripts, which means a significant portion of your visitors are invisible to your analytics."]})]}),a.jsxs("li",{className:"flex items-start gap-3 text-foreground/90",children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary mt-2.5 shrink-0"}),a.jsxs("span",{children:[a.jsx("strong",{className:"text-foreground",children:"Browser restrictions"})," — Safari, Firefox, and increasingly Chrome are limiting third-party cookies and tracking capabilities."]})]}),a.jsxs("li",{className:"flex items-start gap-3 text-foreground
286/90",children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary mt-2.5 shrink-0"}),a.jsxs("span",{children:[a.jsx("strong",{className:"text-foreground",children:"Slow page loads"})," — every tracking script you add takes time to load, making your site slower."]})]}),a.jsxs("li",{className:"flex items-start gap-3 text-foreground/90",children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary mt-2.5 shrink-0"}),a.jsxs("span",{children:[a.jsx("strong",{className:"text-foreground",children:"Privacy regulations"})," — GDPR, CCPA, and similar laws make it harder to justify sending user data directly from browsers to third-party servers."]})]})]})]}),a.jsxs("section",{className:"mb-12",children:[a.jsx("h2",{className:"font-display text-2xl font-bold text-foreground mb-4",children:"How Server-Side Tracking Is Different"}),a.jsxs("p",{className:"text-foreground/90 text-base leading-relaxed mb-4",children:["With server-side tracking, the data flow changes. Instead of the browser sending data directly to Google, Facebook, or other platforms, it sends data to ",a.jsx("em",{children:"your"})," server first. Your server then decides what to forward, where to send it, and what to keep private."]}),a.jsx("p",{className:"text-foreground/90 text-base leading-relaxed mb-4",children:"Think of it like this:"}),a.jsxs("div",{className:"p-6 rounded-2xl bg-secondary/30 border border-border mb-6",children:[a.jsxs("p",{className:"text-foreground/90 text-sm mb-3",children:[a.jsx("strong",{className:"text-foreground",children:"Client-side:"})," User's browser → Analytics platform (e.g., Google Analytics)"]}),a.jsxs("p",{className:"text-foreground/90 text-sm",children:[a.jsx("strong",{className:"text-foreground",children:"Server-side:"})," User's browser → Your server → Analytics platform"]})]}),a.jsx("p",{className:"text-foreground/90 text-base leading-relaxed",children:"That extra step through your server might seem small, but it changes everything. Your server isn't affected by ad blockers, browser restrictions, or cookie limitations. It processes data reliably every single time."})]}),a.jsxs("section",{className:"mb-12",children:[a.jsx("h2",{className:"font-display text-2xl font-bold text-foreground mb-4",children:"Why Does This Matter?"}),a.jsx("h3",{className:"font-display text-lg font-semibold text-foreground mt-6 mb-3",children:"1. More Accurate Data"}),a.jsx("p",{className:"text-foreground/90 text-base leading-relaxed mb-4",children:"Because server-side tracking bypasses ad blockers and browser restrictions, you capture data from visitors who would otherwise be invisible. Many businesses see a 20-30% increase in tracked events after switching to server-side."}),a.jsx("h3",{className:"font-display text-lg font-semibold text-foreground mt-6 mb-3",children:"2. Better Privacy Control"}),a.jsx("p",{className:"text-foreground/90 text-base leading-relaxed mb-4",children:"When data goes through your server, you control exactly what gets sent to third parties. You can strip out personal information, anonymize IP addresses, or filter out sensitive data before it leaves your infrastructure. This makes compliance with GDPR and other privacy laws much more straightforward."}),a.jsx("h3",{className:"font-display text-lg font-semibold text-foreground mt-6 mb-3",children:"3. Faster Websites"}),a.jsx("p",{className:"text-foreground/90 text-base leading-relaxed mb-4",children:"Fewer JavaScript tags in the browser means faster page loads. Every tracking pixel and script you move to the server side is one less thing the browser has to download and execute. This directly improves user experience and can even help with SEO."}),a.jsx("h3",{className:"font-display text-lg font-semibold text-foreground mt-6 mb-3",children:"4. More Reliable Conversion Tracking"}),a.jsx("p",{className:"text-foreground/90 text-base leading-relaxed",children:"If you're running paid ads, inaccurate conversion data means wasted budget. Server-side tracking ensures that conversions are captured and attributed correctly, even when cookies are blocked or users switch between devices."})]}),a.jsxs("section",{className:"mb-12",children:[a.jsx("h2",{className:"font-display text-2xl font-bold text-foreground mb-4",children:"Common Misconceptions"}),a.jsxs("div",{className:"space-y-6",children:[a.jsxs("div",{className:"p-5 rounded-xl bg-card border border-border",children:[a.jsx("p",{className:"text-foreground font-medium mb-2",children:`"It's only for large enterprises"`}),a.jsx("p",{className:"text-muted-foreground text-sm",children:"Not anymore. Tools like Google Tag Manager Server-Side and various cloud providers have made it accessible to businesses of all sizes. You don't need a dedicated engineering team to get started."})]}),a.jsxs("div",{className:"p-5 rounded-xl bg-card border border-border",children:[a.jsx("p",{className:"text-foreground font-medium mb-2",children:'"It replaces client-side tracking entirely"'}),a.jsx("p",{className:"text-muted-foreground text-sm",children:"In practice, most setups use a hybrid approach. Some basic client-side tracking remains for immediate user interactions, while the heavy lifting (conversion tracking, data enrichment, third-party integrations) moves to the server."})]}),a.jsxs("div",{className:"p-5 rounded-xl bg-card border border-border",children:[a.jsx("p",{className:"text-foreground font-medium mb-2",children:`"It's too technical to set up"`}),a.jsx("p",{className:"text-muted-foreground text-sm",children:"While it does require more initial configuration than dropping a script tag on your site, there are plenty of platforms and tools that simplify the process significantly. The investment in setup pays off quickly in data quality."})]})]})]}),a.jsxs("section",{className:"mb-12",children:[a.jsx("h2",{className:"font-display text-2xl font-bold text-foreground mb-4",children:"Who Should Consider Server-Side Analytics?"}
286),a.jsx("p",{className:"text-foreground/90 text-base leading-relaxed mb-4",children:"Server-side tracking is worth exploring if:"}),a.jsxs("ul",{className:"space-y-3 mb-4 pl-0",children:[a.jsxs("li",{className:"flex items-start gap-3 text-foreground/90",children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary mt-2.5 shrink-0"}),a.jsx("span",{children:"You run paid advertising and need accurate conversion data"})]}),a.jsxs("li",{className:"flex items-start gap-3 text-foreground/90",children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary mt-2.5 shrink-0"}),a.jsx("span",{children:"You operate in a region with strict privacy regulations"})]}),a.jsxs("li",{className:"flex items-start gap-3 text-foreground/90",children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary mt-2.5 shrink-0"}),a.jsx("span",{children:"Your audience is likely to use ad blockers (tech-savvy demographics, for example)"})]}),a.jsxs("li",{className:"flex items-start gap-3 text-foreground/90",children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary mt-2.5 shrink-0"}),a.jsx("span",{children:"You want more control over what data leaves your infrastructure"})]}),a.jsxs("li",{className:"flex items-start gap-3 text-foreground/90",children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary mt-2.5 shrink-0"}),a.jsx("span",{children:"Page speed is important to your business (e-commerce, publishing, SaaS)"})]})]})]}),a.jsxs("section",{className:"mb-12",children:[a.jsx("h2",{className:"font-display text-2xl font-bold text-foreground mb-4",children:"Getting Started"}),a.jsx("p",{className:"text-foreground/90 text-base leading-relaxed mb-4",children:"The first step is understanding your current tracking setup and identifying where the gaps are. Many businesses don't realize how much data they're missing until they compare their server logs with their analytics reports."}),a.jsxs("p",{className:"text-foreground/90 text-base leading-relaxed",children:["If you're curious about how your current setup stacks up, you can"," ",a.jsx("a",{href:"https://stape.io/website-tracking-checker?pt=bxprdiua&rs=site",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:"run a free tracking check"})," ","to see where you might be losing data. Or if you have specific questions,"," ",a.jsx(ie,{to:"/chat",className:"text-primary hover:underline",children:"chat with our AI assistant"})," ","— it's trained specifically on server-side analytics topics and can help point you in the right direction."]})]}),a.jsxs("section",{className:"p-6 md:p-8 rounded-2xl bg-primary/5 border border-primary/20",children:[a.jsx("h2",{className:"font-display text-xl font-bold text-foreground mb-3",children:"Key Takeaways"}),a.jsxs("ul",{className:"space-y-2 pl-0",children:[a.jsxs("li",{className:"flex items-start gap-3 text-foreground/90 text-sm",children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary mt-2 shrink-0"}),a.jsx("span",{children:"Server-side analytics moves data collection from the browser to your server"})]}),a.jsxs("li",{className:"flex items-start gap-3 text-foreground/90 text-sm",children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary mt-2 shrink-0"}),a.jsx("span",{children:"It bypasses ad blockers and browser restrictions for more complete data"})]}),a.jsxs("li",{className:"flex items-start gap-3 text-foreground/90 text-sm",children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary mt-2 shrink-0"}),a.jsx("span",{children:"You get better privacy control since data passes through your infrastructure first"})]}),a.jsxs("li",{className:"flex items-start gap-3 text-foreground/90 text-sm",children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary mt-2 shrink-0"}),a.jsx("span",{children:"Most implementations use a hybrid approach, combining client-side and server-side"})]}),a.jsxs("li",{className:"flex items-start gap-3 text-foreground/90 text-sm",children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary mt-2 shrink-0"}),a.jsx("span",{children:"It's accessible to businesses of all sizes, not just enterprises"})]})]})]})]})]})})]}
286),hB=[{name:"Stape",url:"https://stape.io/",category:"Server-Side Tag Management Platform",description:"Stape is the leading platform for deploying and managing server-side Google Tag Manager containers. Rather than requiring you to spin up your own cloud infrastructure, Stape provides a fully managed hosting environment for your sGTM container — meaning you can get started in minutes instead of spending hours configuring servers.",whyRequired:"For most businesses getting into server-side analytics, Stape is the easiest and most cost-effective entry point. It removes the complexity of infrastructure management and lets you focus on what matters: configuring your tracking. Stape handles server uptime, scaling, custom domains, and even provides built-in tools for monitoring your data flow. If you're running Google Tag Manager (which most businesses do), Stape is essentially the bridge between your existing client-side setup and a proper server-side implementation.",keyFeatures:["Managed sGTM container hosting with auto-scaling","Custom domain setup for first-party data collection","Built-in monitoring and logging dashboard","Support for multiple cloud regions (EU, US, Asia)","Pay-as-you-go pricing that scales with your traffic"]},{name:"Google Tag Manager Server-Side (sGTM)",url:"https://tagmanager.google.com/",category:"Tag Management",description:"Google Tag Manager Server-Side is Google's official solution for processing tags on a server rather than in the browser. It works as a server-side container that receives data from your website, processes it, and then sends it to the analytics and advertising platforms you use. Think of it as the central hub where all your tracking data flows through before being distributed.",whyRequired:"sGTM is the foundation of most server-side analytics setups. It's where you configure which data gets sent where, apply transformations, enrich events with additional information, and control what reaches third-party platforms. Because it's built by Google and integrates natively with Google Analytics 4, Google Ads, and other Google products, it's the natural choice for any business already in the Google ecosystem. It also supports custom tags for non-Google platforms like Meta, TikTok, and others.",keyFeatures:["Native integration with all Google marketing products","Familiar interface if you already use GTM","Custom tag templates for any platform","Data transformation and enrichment capabilities","First-party cookie management"]},{name:"Google Analytics 4 (GA4)",url:"https://analytics.google.com/",category:"Web Analytics",description:"Google Analytics 4 is Google's current analytics platform, built from the ground up with an event-based data model. Unlike its predecessor Universal Analytics, GA4 was designed with privacy changes and server-side data collection in mind. When combined with a server-side GTM setup, GA4 receives cleaner, more complete data than it would from browser-only tracking.",whyRequired:"GA4 is where most businesses actually analyse their data — it's the reporting layer. When you pair it with server-side tracking, GA4 gets access to events and conversions that would otherwise be blocked by ad blockers or lost due to cookie restrictions. Server-side GA4 tracking also allows you to set first-party cookies with longer lifespans, improving user recognition across sessions. If you want to understand how people interact with your website, GA4 with server-side data collection gives you the most complete picture available.",keyFeatures:["Event-based tracking model for flexible data collection","Built-in machine learning for predictive insights","Cross-platform tracking (web and app)","Enhanced e-commerce reporting","Audience building for Google Ads remarketing"]},{name:"Meta Conversions API (CAPI)",url:"https://developers.facebook.com/docs/marketing-api/conversions-api",category:"Advertising & Conversion Tracking",description:`Meta's Conversions API allows you to send web events from your server directly to Meta's servers, rather than relying solely on the Meta Pixel in the browser. This server-to-server connection ensures that conversion events (purchases, sign-ups, add-to-carts) are captured even when browser-based tracking fails. It works alongside the pixel in a setup Meta calls "redundant event handling."`,whyRequired:"If you run Facebook or Instagram ads, accurate conversion tracking directly impacts how well Meta's algorithm optimises your campaigns. With iOS privacy changes and increasing ad blocker usage, the browser-based Meta Pixel misses a significant chunk of conversions. The Conversions API fills those gaps, sending conversion data server-side so Meta's machine learning has complete information to work with. The result is typically better ad targeting, lower cost per acquisition, and more accurate reporting in Ads Manager.",keyFeatures:["Server-to-server event delivery bypassing browser limitations","Event deduplication with the Meta Pixel","Custom data parameters for richer conversion data","Event quality scoring to improve signal strength","Support for offline conversions and CRM data"]},{name:"Segment",url:"https://segment.com/",category:"Customer Data Platform (CDP)",description:"Segment is a customer data platform that acts as a single collection point for all your analytics data. You send data to Segment once, and it routes that data to hundreds of downstream tools — analytics platforms, email marketing tools, CRMs, data warehouses, and more. With its server-side libraries, you can collect and route data entirely from your backend without any browser dependencies.",whyRequired:"As your analytics stack grows, managing individual server-side integrations for every tool be
286comes complex. Segment solves this by providing a unified API: you instrument your tracking once, and Segment handles the formatting and delivery for each destination. Its server-side sources (Node.js, Python, Ruby, etc.) let you track events from your application backend, ensuring data is captured regardless of what happens in the browser. For businesses using multiple analytics and marketing tools, Segment prevents vendor lock-in and simplifies data governance.",keyFeatures:["Single API for sending data to 300+ integrations","Server-side libraries in all major programming languages","Real-time data routing and transformation","Identity resolution across devices and channels","Built-in data quality and schema enforcement"]},{name:"Snowplow Analytics",url:"https://snowplow.io/",category:"Behavioural Data Platform",description:"Snowplow is an open-source behavioural data platform that gives you complete ownership of your analytics data pipeline. Unlike hosted analytics solutions where data lives on someone else's servers, Snowplow runs on your infrastructure (or your chosen cloud provider) and delivers raw, granular event data directly to your data warehouse. It's built for organisations that need full control over their data.",whyRequired:"For companies that take data ownership seriously, Snowplow provides something no SaaS analytics tool can: complete control. Every event is captured with rich context, validated against schemas you define, and stored in your own data warehouse in its raw form. There's no sampling, no data retention limits, and no dependency on a third party's data processing. Server-side tracking with Snowplow means you collect first-party data that you truly own, which is increasingly important as privacy regulations tighten and third-party data becomes less available.",keyFeatures:["Full data ownership — everything lives in your warehouse","Schema-driven data collection with validation","No sampling — every single event is captured","Real-time and batch processing pipelines","Open-source core with commercial support available"]},{name:"TikTok Events API",url:"https://business-api.tiktok.com/portal/docs",category:"Advertising & Conversion Tracking",description:"TikTok's Events API is the server-side counterpart to the TikTok Pixel. It allows you to send user actions and conversion events directly from your server to TikTok's advertising platform. Similar to Meta's Conversions API, it ensures that TikTok's ad algorithm has access to complete conversion data for campaign optimisation, even when browser tracking is limited.",whyRequired:"TikTok advertising is growing rapidly, and like all major ad platforms, it relies on accurate conversion data to optimise campaigns. Browser-based tracking through the TikTok Pixel faces the same challenges as other pixels — ad blockers, cookie restrictions, and browser privacy features all reduce the data TikTok receives. The Events API provides a reliable server-side channel that maintains data quality. If you're investing in TikTok ads, having the Events API configured through your server-side setup is essential for getting the best return on your ad spend.",keyFeatures:["Server-to-server conversion tracking","Event deduplication with the TikTok Pixel","Support for custom and standard events","Enhanced match quality for better attribution","Integration with sGTM via community tag templates"]}],mB=()=>a.jsxs(yt,{children:[a.jsx(vt,{title:"Best Server-Side Analytics Tools | Server-Side Analytics",description:"A detailed review of the best server-side analytics tools including Stape, GTM Server-Side, GA4, Meta CAPI, Segment, Snowplow, and TikTok Events API.",path:"/best-server-side-analytics-tools"}),a.jsx("article",{className:"py-16 md:py-24",children:a.jsxs("div",{className:"container mx-auto px-4 max-w-4xl",children:[a.jsxs(H.header,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},className:"mb-12",children:[a.jsx("p",{className:"text-primary text-sm font-medium uppercase tracking-wider mb-4",children:"Tools Review"}),a.jsx("h1",{className:"font-display text-3xl md:text-4xl lg:text-5xl font-bold text-foreground mb-6 leading-tight",children:"Best Server-Side Analytics Tools in 2026"}),a.jsx("p",{className:"text-muted-foreground text-lg leading-relaxed",children:"A practical look at the tools that make server-side analytics work. Each one plays a different role in your tracking stack — here's what they do, how they fit together, and why they matter."})]}),a.jsx(H.div,{initial:{opacity:0,y:20}
286,animate:{opacity:1,y:0},transition:{delay:.1},className:"mb-16",children:a.jsxs("p",{className:"text-foreground/90 text-base leading-relaxed mb-4",children:["If you're new to"," ",a.jsx(ie,{to:"/what-is-server-side-analytics",className:"text-primary hover:underline",children:"server-side analytics and tracking"}),", the number of tools involved can feel overwhelming. The truth is, most server-side setups use a combination of tools, each handling a specific part of the data pipeline. Below is a breakdown of the most important ones, starting with the platform that makes getting started the easiest."]})}),a.jsx("div",{className:"space-y-12",children:hB.map((e,t)=>a.jsxs(H.section,{initial:{opacity:0,y:30},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.05},className:"p-6 md:p-8 rounded-2xl bg-card border border-border",children:[a.jsxs("div",{className:"flex items-start justify-between gap-2 flex-wrap mb-6",children:[a.jsxs("div",{children:[a.jsx("h2",{className:"font-display text-xl md:text-2xl font-bold text-foreground",children:e.name}),a.jsx("p",{className:"text-primary text-sm font-medium mt-1",children:e.category})]}),a.jsxs("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1.5 text-sm text-muted-foreground hover:text-primary transition-colors shrink-0",children:["Visit ",a.jsx(Bs,{className:"w-3.5 h-3.5"})]})]}),a.jsx("div",{className:"space-y-4 mb-6",children:a.jsx("p",{className:"text-foreground/90 text-base leading-relaxed",children:e.description})}),a.jsxs("div",{className:"mb-6",children:[a.jsx("h3",{className:"font-display text-lg font-semibold text-foreground mb-3",children:"Why it's essential for server-side analytics"}),a.jsx("p",{className:"text-foreground/90 text-base leading-relaxed",children:e.whyRequired})]}),a.jsxs("div",{children:[a.jsx("h3",{className:"font-display text-sm font-semibold text-muted-foreground uppercase tracking-wider mb-3",children:"Key Features"}),a.jsx("ul",{className:"grid grid-cols-1 md:grid-cols-2 gap-2",children:e.keyFeatures.map(n=>a.jsxs("li",{className:"flex items-start gap-2 text-foreground/80 text-sm",children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary mt-2 shrink-0"}),a.jsx("span",{children:n})]},n))})]})]},e.name))}),a.jsxs(H.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mt-16 p-6 md:p-8 rounded-2xl bg-primary/5 border border-primary/20",children:[a.jsx("h2",{className:"font-display text-xl font-bold text-foreground mb-3",children:"How These Tools Work Together"}),a.jsx("p",{className:"text-foreground/90 text-base leading-relaxed mb-4",children:"A typical server-side analytics setup connects these tools in a pipeline: your website sends data to an sGTM container (hosted on Stape), which then routes events to GA4 for reporting, Meta CAPI and TikTok Events API for ad optimisation, and optionally through Segment or Snowplow for broader data distribution and warehousing."}),a.jsxs("p",{className:"text-foreground/90 text-base leading-relaxed",children:["Not every business needs all of these tools. Start with Stape + sGTM + GA4 as your foundation, then add advertising APIs and data platforms as your needs grow. If you're unsure where to begin, you can"," ",a.jsx("a",{href:"https://stape.io/website-tracking-checker",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:"check your current tracking setup"})," ","to see where the biggest gaps are."]})]})]})})]}),gB=[{rank:1,name:"Stape",url:"https://stape.io/",slug:"stape-review",description:"The leading managed platform for server-side Google Tag Manager hosting. Simplifies deployment with auto-scaling, custom domains, and monitoring — no DevOps needed.",score:9.5,keyServices:["Managed sGTM hosting","Custom domain setup","Auto-scaling infrastructure","Data monitoring dashboard"],pros:["Easiest way to get started with server-side tracking","Excellent documentation and support","Pay-as-you-go pricing","Multi-region cloud support"],cons:["Tied to Google Tag Manager ecosystem","Advanced customisation requires sGTM knowledge"]},{rank:2,name:"Google Tag Manager Server-Side",url:"https://tagmanager.google.com/",slug:"google-tag-manager-server-side-review",description:"Google's official server-side container for processing tags on a server instead of the browser. The central hub for routing, transforming, and distributing tracking data.",score:9,keyServices:["Server-side tag processing","Custom tag templates","Data transformation","First-party cookie management"],pros:["Native integration with Google products","Familiar GTM interface","Large community and template gallery","Free to use (infrastru
286cture costs only)"],cons:["Requires hosting infrastructure (or a provider like Stape)","Steeper learning curve than client-side GTM"]},{rank:3,name:"Segment",url:"https://segment.com/",slug:"segment-review",description:"A customer data platform that acts as a single collection point, routing data to 300+ downstream tools from one unified API.",score:8.8,keyServices:["Unified data collection API","300+ integrations","Identity resolution","Data governance & schema enforcement"],pros:["Instrument once, send everywhere","Server-side libraries in all major languages","Strong identity resolution","Reduces vendor lock-in"],cons:["Expensive at scale","Can be overkill for small setups"]},{rank:4,name:"Google Analytics 4",url:"https://analytics.google.com/",slug:"google-analytics-4-review",description:"Google's event-based analytics platform designed for privacy-first data collection. When paired with server-side tracking, GA4 captures a more complete picture of user behaviour.",score:8.5,keyServices:["Event-based analytics","Cross-platform tracking","Predictive insights (ML)","Audience building for Google Ads"],pros:["Free for most businesses","Deep integration with Google Ads","Built-in machine learning","Strong e-commerce reporting"],cons:["Complex interface for beginners","Data sampling on free tier","Limited data retention on free plan"]},{rank:5,name:"Snowplow Analytics",url:"https://snowplow.io/",slug:"snowplow-analytics-review",description:"An open-source behavioural data platform giving full ownership of your analytics pipeline. Every event is captured, validated, and stored in your own data warehouse.",score:8.5,keyServices:["Full data ownership","Schema-driven collection","Real-time & batch pipelines","Data warehouse delivery"],pros:["No sampling — every event captured","Complete data ownership","Open-source core","Highly customisable schemas"],cons:["Requires significant technical expertise","Higher setup and maintenance costs"]},{rank:6,name:"Elevar",url:"https://www.getelevar.com/",slug:"elevar-review",description:"A server-side tracking solution built specifically for Shopify stores. Automates data layer setup, conversion tracking, and server-side event routing to ad platforms.",score:8.3,keyServices:["Shopify-native tracking","Automated data layer","Server-side event routing","Conversion accuracy monitoring"],pros:["Purpose-built for Shopify and e-commerce","Minimal technical setup required","Automatic data layer configuration","Strong support for ad platform APIs"],cons:["Only works with Shopify","Premium pricing for smaller stores"]},{rank:7,name:"TAGGRS",url:"https://taggrs.io/",slug:"taggrs-review",description:"A European managed server-side GTM hosting provider with a strong focus on GDPR compliance and ease of use. Offers one-click sGTM deployment with EU-based infrastructure.",score:8,keyServices:["Managed sGTM hosting","EU-based infrastructure","One-click deployment","GDPR-compliant setup"],pros:["Simple setup with no DevOps needed","EU data residency by default","Competitive pricing","Good documentation and onboarding"],cons:["Smaller feature set than Stape","Less global infrastructure coverage"]},{rank:8,name:"Rudderstack",url:"https://www.rudderstack.com/",slug:"rudderstack-review",description:"An open-source customer data platform built for developers. Collects, routes, and transforms event data with a warehouse-first approach.",score:8,keyServices:["Event streaming","Warehouse-first architecture","Transformations engine","Reverse ETL"],pros:["Open-source and developer-friendly","Warehouse-native approach","Competitive pricing vs Segment","Strong transformation capabilities"],cons:["Smaller integration library than Segment","Requires developer resources to manage"]},{rank:9,name:"Tracklution",url:"https://tracklution.com/",slug:"tracklution-review",description:"A server-side tracking platform that simplifies first-party data collection and conversion tracking without relying on third-party cookies or browser-side scripts.",score:7.8,keyServices:["First-party data collection","Server-side conversion tracking","Cookie-less tracking","Multi-platform event delivery"],pros:["Easy to implement for non-technical users","Strong first-party data approach","Works across multiple ad platforms","No depen
286dency on browser cookies"],cons:["Newer platform with smaller community","Limited integrations compared to larger CDPs"]},{rank:10,name:"Tracedock",url:"https://www.tracedock.com/",slug:"tracedock-review",description:"A first-party data collection platform that uses server-side infrastructure to capture marketing data through your own domain, bypassing ad blockers and cookie restrictions.",score:7.5,keyServices:["First-party data collection","Custom domain tracking","Ad blocker bypass","Marketing data enrichment"],pros:["Strong first-party tracking approach","Easy integration with existing marketing stack","Improves data accuracy for ad platforms","No sGTM knowledge required"],cons:["Primarily focused on marketing data","Smaller feature set than full CDPs"]},{rank:11,name:"Addingwell",url:"https://www.addingwell.com/",slug:"addingwell-review",description:"A French managed sGTM hosting provider offering high-performance server-side tagging infrastructure with custom domain support and real-time monitoring.",score:7.3,keyServices:["Managed sGTM hosting","Custom domain support","Real-time monitoring","Auto-scaling servers"],pros:["High-performance EU infrastructure","Transparent and predictable pricing","Good customer support","Easy migration from other hosts"],cons:["Primarily focused on EU market","Fewer advanced features than Stape"]},{rank:12,name:"Matomo",url:"https://matomo.org/",slug:"matomo-review",description:"A privacy-focused open-source analytics platform. Can be self-hosted for full data ownership with server-side tracking capabilities via its APIs.",score:7,keyServices:["Privacy-first analytics","Self-hosted option","Server-side tracking API","GDPR compliance built-in"],pros:["Full data ownership when self-hosted","No data sampling","GDPR-compliant by design","Google Analytics import tool"],cons:["Self-hosting requires maintenance","Smaller ecosystem than GA4"]},{rank:13,name:"Measurekit",url:"https://measurekit.com/",slug:"measurekit-review",description:"A server-side tracking tool for iOS apps and websites that helps recover attribution data lost to Apple's App Tracking Transparency and browser privacy restrictions.",score:6.8,keyServices:["iOS attribution recovery","Server-side event tracking","ATT bypass solutions","Multi-channel attribution"],pros:["Solves iOS tracking challenges","Recovers lost attribution data","Works with major ad platforms","Simple integration process"],cons:["Niche focus on iOS attribution","Relatively new in the market"]},{rank:14,name:"Mixpanel",url:"https://mixpanel.com/",slug:"mixpanel-review",description:"A product analytics platform focused on user behaviour analysis. Offers server-side SDKs for reliable event tracking without browser dependencies.",score:6.5,keyServices:["Product analytics","Funnel & retention analysis","A/B testing integration","Server-side SDKs"],pros:["Excellent product analytics features","Intuitive query builder","Generous free tier","Strong cohort analysis"],cons:["Not a full CDP solution","Can get expensive with high event volumes"]},{rank:15,name:"Piwik PRO",url:"https://piwikpro.com/",slug:"piwik-pro-review",description:"An enterprise analytics suite with a strong focus on privacy and compliance. Includes a built-in tag manager, CDP, and consent management with server-side data collection.",score:6.3,keyServices:["Enterprise analytics","Built-in tag manager","Consent management","Customer data platform"],pros:["All-in-one privacy-focused suite","Strong EU compliance features","Built-in consent manager","Private cloud hosting options"],cons:["Enterprise pricing","Smaller community than open-source alternatives"]}];function yB({score:e}){const t=Math.floor(e/2),n=e%2>=1,r=5-t-(n?1:0);return a.jsxs("div",{className:"flex items-center gap-1.5",children:[a.jsxs("div",{className:"flex items-center gap-0.5",children:[Array.from({length:t}).map((i,s)=>a.jsx(dt,{className:"w-4 h-4 fill-primary text-primary"},`full-${s}`)),n&&a.jsxs("div",{className:"relative w-4 h-4",children:[a.jsx(dt,{className:"w-4 h-4 text-muted-foreground/30 absolute"}),a.jsx("div",{className:"overflow-hidden w-1/2 absolute",children:a.jsx(dt,{className:"w-4 h-4 fill-primary text-primary"})})]}),Array.from({length:r}).map((i,s)=>
286a.jsx(dt,{className:"w-4 h-4 text-muted-foreground/30"},`empty-${s}`))]}),a.jsxs("span",{className:"text-sm font-semibold text-foreground",children:[e,"/10"]})]})}const vB=()=>a.jsxs(yt,{children:[a.jsx(vt,{title:"Top 15 Server-Side Tracking Tools Ranked | 2026",description:"Ranked list of the 15 best server-side tracking tools in 2026. Compare scores, key services, pros and cons to find the right tool for your analytics stack.",path:"/top-server-side-tracking-tools"}),a.jsx("article",{className:"py-16 md:py-24",children:a.jsxs("div",{className:"container mx-auto px-4 max-w-4xl",children:[a.jsxs(H.header,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},className:"mb-12",children:[a.jsx("p",{className:"text-primary text-sm font-medium uppercase tracking-wider mb-4",children:"2026 Rankings"}),a.jsx("h1",{className:"font-display text-3xl md:text-4xl lg:text-5xl font-bold text-foreground mb-6 leading-tight",children:"Top 15 Server-Side Tracking Tools"}),a.jsx("p",{className:"text-muted-foreground text-lg leading-relaxed",children:"We ranked the most important server-side tracking tools based on features, ease of use, ecosystem support, and value. Find the right fit for your analytics stack."})]}),a.jsx("div",{className:"space-y-6",children:gB.map((e,t)=>a.jsxs(H.div,{initial:{opacity:0,y:30},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.03},className:"relative p-6 md:p-8 rounded-2xl bg-card border border-border hover:border-primary/30 transition-colors",children:[a.jsx("div",{className:"absolute -top-3 -left-3 w-10 h-10 rounded-full bg-primary text-primary-foreground flex items-center justify-center font-display font-bold text-sm shadow-lg",children:e.rank}),a.jsxs("div",{className:"flex items-start justify-between gap-4 flex-wrap mb-4 pl-4",children:[a.jsxs("div",{children:[a.jsx("h2",{className:"font-display text-xl md:text-2xl font-bold text-foreground",children:e.name}),a.jsx(yB,{score:e.score})]}),a.jsxs("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1.5 text-sm text-muted-foreground hover:text-primary transition-colors shrink-0",children:["Visit site ",a.jsx(Bs,{className:"w-3.5 h-3.5"})]})]}),a.jsx("p",{className:"text-foreground/90 text-base leading-relaxed mb-5",children:e.description}),a.jsxs("div",{className:"mb-5",children:[a.jsx("h3",{className:"text-sm font-semibold text-muted-foreground uppercase tracking-wider mb-2",children:"Key Services"}),a.jsx("div",{className:"flex flex-wrap gap-2",children:e.keyServices.map(n=>a.jsx("span",{className:"px-3 py-1 rounded-full bg-secondary text-secondary-foreground text-xs font-medium",children:n},n))})]}),a.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[a.jsxs("div",{children:[a.jsx("h3",{className:"text-sm font-semibold text-muted-foreground uppercase tracking-wider mb-2",children:"Pros"}),a.jsx("ul",{className:"space-y-1.5",children:e.pros.map(n=>a.jsxs("li",{className:"flex items-start gap-2 text-sm text-foreground/80",children:[a.jsx(_s,{className:"w-4 h-4 text-green-500 mt-0.5 shrink-0"}),a.jsx("span",{children:n})]},n))})]}),a.jsxs("div",{children:[a.jsx("h3",{className:"text-sm font-semibold text-muted-foreground uppercase tracking-wider mb-2",children:"Cons"}),a.jsx("ul",{className:"space-y-1.5",children:e.cons.map(n=>a.jsxs("li",{className:"flex items-start gap-2 text-sm text-foreground/80",children:[a.jsx(Gs,{className:"w-4 h-4 text-red-500 mt-0.5 shrink-0"}),a.jsx("span",{children:n})]},n))})]})]}),a.jsx("div",{className:"mt-5 pt-4 border-t border-border",children:a.jsxs(ie,{to:`/review/${e.slug}`,className:"inline-flex items-center gap-1.5 text-sm font-medium text-primary hover:underline",children:["Read full review ",a.jsx(Fn,{className:"w-3.5 h-3.5"})]})})]},e.name))})]})})]}),Km=()=>{const e=Bi();return b.useEffect(()=>{console.error("404 Error: User attempted to access non-existent route:",e.pathname)},[e.pathname]),a.jsxs(a.Fragment,{children:[a.jsx(vt,{title:"Page Not Found | Server-Side Analytics",description:"This page does not exist. Head back to our homepage to explore server-side analytics tools, tracking guides, and implementation resources.",path:"/404"}),a.jsx("div",{className:"flex min-h-screen items-center justify-center bg-muted",children:a.jsxs("div",{className:"text-center",children:[a.jsx("h1",{className:"mb-4 text-4xl font-bold",children:"404"}),a.jsx("p",{className:"mb-4 text-xl text-muted-foreground",children:"Oops! Page not found"}),a.jsx("a",{href:"/",className:"text-primary underline hover:text-primary/90",children:"Return to Home"})]})})]})}
286,xB=[{slug:"stape-review",name:"Stape",url:"https://stape.io/",category:"Server-Side Tag Management Platform",score:9.5,rank:1,metaTitle:"Stape Review 2026: #1 Server-Side GTM Hosting Platform",metaDescription:"In-depth Stape review covering pricing, features, and performance. The top-rated server-side GTM hosting platform for 2026.",heroSubtitle:"The #1 managed server-side GTM hosting platform that makes server-side tracking accessible to every business.",overview:["Stape has established itself as the undisputed leader in managed server-side Google Tag Manager hosting. Founded in 2020, the company has grown rapidly to become the go-to platform for businesses looking to move their tracking server-side without dealing with complex cloud infrastructure.","What sets Stape apart from competitors is its relentless focus on simplicity. While other providers require you to understand cloud architecture, DNS configuration, and server management, Stape abstracts all of that away. You sign up, connect your GTM container, set up a custom domain, and you're running server-side tracking within minutes.","Stape serves over 30,000 websites globally and processes billions of events per month. Their infrastructure spans multiple cloud regions including the EU, US, and Asia, ensuring low latency regardless of where your users are located. The platform also includes a suite of additional tools — a data monitoring dashboard, built-in tag templates, and a website tracking checker — that go beyond simple hosting."],pricing:{summary:"Stape uses a pay-as-you-go model based on the number of server-side requests your container processes. This makes it accessible for small sites while scaling predictably for enterprise traffic.",tiers:[{name:"Free",price:"$0/month",details:"Up to 10,000 server-side requests per month. Perfect for testing and development."},{name:"Pro",price:"From $20/month",details:"Starts at 500,000 requests/month. Includes custom domain, auto-scaling, monitoring dashboard, and priority support."},{name:"Business",price:"From $100/month",details:"Higher request volumes with dedicated infrastructure, SLA guarantees, and advanced monitoring."},{name:"Enterprise",price:"Custom pricing",details:"Unlimited scaling, dedicated account manager, custom SLA, and premium support."}],note:"All paid plans include a 14-day free trial. Pricing is significantly cheaper than self-hosting on Google Cloud Platform or AWS for most businesses."},keyFeatures:[{title:"One-Click sGTM Deployment",description:"Deploy a fully configured server-side GTM container in under 5 minutes. No cloud console, no terminal commands, no DevOps."},{title:"Custom Domain Setup",description:"Route tracking through your own domain (e.g., data.yourdomain.com) for first-party data collection. This is critical for bypassing ad blockers and extending cookie lifespans."},{title:"Auto-Scaling Infrastructure",description:"Stape automatically scales your server capacity based on traffic. No manual intervention needed during traffic spikes like Black Friday or product launches."},{title:"Real-Time Monitoring Dashboard",description:"Monitor request volumes, response times, and error rates in real-time. Quickly identify tracking issues before they impact your data."},{title:"Multi-Region Support",description:"Choose from cloud regions in Europe, the United States, and Asia to ensure data residency compliance and low-latency event delivery."},{title:"Built-In Tag Templates",description:"Stape maintains a library of custom tag templates for popular platforms including Meta CAPI, TikTok Events API, and more — saving you development time."}],pros:["Fastest time-to-value — go from zero to live server-side tracking in minutes","No technical infrastructure knowledge required","Excellent documentation with step-by-step guides and video tutorials","Competitive pricing that undercuts self-hosting for most use cases","Responsive customer support with fast resolution times","Regular platform updates with new features and tag templates","Free tier available for testing before committing","Strong community with active forums and knowledge base"],cons:["Tied to the Google Tag Manager ecosystem — not suitable if you don't use GTM","Advanced server-side configurations still require sGTM expertise","Some enterprise features like dedicated IP addresses require higher-tier plans"],bestFor:"Any business that uses Google Tag Manager and wants to move to server-side tracking without hiring a DevOps team. Particularly strong for e-commerce, media, and SaaS companies running paid advertising.",externalFeedback:[{quote:"Stape made server-side tagging accessible to our team. We had sGTM running in production within an hour, which would have taken days with manual cloud setup.",s
286ource:"G2 Review — Marketing Director at a mid-market e-commerce brand"},{quote:"The cost savings compared to self-hosting on GCP are significant. We were spending 3x more before switching to Stape.",source:"Reddit r/analytics — Senior Analytics Engineer"},{quote:"Support is excellent. Every time we've had an issue, the team has responded within hours with a detailed solution.",source:"Trustpilot Review — Digital Analytics Consultant"}],verdict:"Stape is the clear #1 choice for server-side GTM hosting in 2026. It combines ease of use, competitive pricing, and robust infrastructure in a way no other provider matches. Whether you're a small business just getting started with server-side tracking or an enterprise processing millions of events, Stape scales to meet your needs. The free tier makes it risk-free to try, and the migration path from self-hosted sGTM is straightforward. If you use Google Tag Manager, start here."},{slug:"google-tag-manager-server-side-review",name:"Google Tag Manager Server-Side",url:"https://tagmanager.google.com/",category:"Tag Management",score:9,rank:2,metaTitle:"Google Tag Manager Server-Side Review 2026 | sGTM Guide",metaDescription:"Complete sGTM review with setup guide, pricing breakdown, and real-world performance data. Essential for any server-side tracking stack.",heroSubtitle:"Google's official server-side container — the foundation of most modern tracking implementations.",overview:["Google Tag Manager Server-Side (sGTM) is the cornerstone of server-side analytics. Released in 2020, it extends the familiar GTM interface to process tags on a server rather than in the user's browser, giving you control over data before it reaches third-party platforms.","The concept is straightforward: instead of loading dozens of tracking scripts in the browser (which slows down your site and exposes data to ad blockers), you send a single data stream to your server-side container. The container then processes, transforms, and routes that data to Google Analytics 4, Google Ads, Meta, TikTok, and any other platform you use.","sGTM has become the industry standard because it's built by Google, integrates natively with the Google ecosystem, and supports custom tags for virtually any platform through its template gallery. The community has built hundreds of tag templates, making it possible to route data to nearly any marketing or analytics tool."],pricing:{summary:"Google Tag Manager Server-Side is free to use. However, it requires server infrastructure to run, which is where costs come in.",tiers:[{name:"GTM Software",price:"Free",details:"The sGTM container software itself costs nothing. Google provides it as part of the GTM platform."},{name:"Self-Hosted (GCP)",price:"$50–$500+/month",details:"Running on Google Cloud Platform's App Engine or Cloud Run. Costs depend on traffic volume and region."},{name:"Managed Hosting (Stape)",price:"From $20/month",details:"Third-party managed hosting removes infrastructure complexity. Generally cheaper than self-hosting for most traffic levels."}],note:"For most businesses, using a managed provider like Stape is more cost-effective than self-hosting, unless you have an in-house DevOps team already managing cloud infrastructure."},keyFeatures:[{title:"Familiar GTM Interface",description:"If you've used client-side GTM, the server-side version uses the same interface for tags, triggers, and variables — reducing the learning curve."},{title:"Native Google Integration",description:"First-class support for GA4, Google Ads, and other Google products. Server-side GA4 tracking is a single tag away."},{title:"Custom Tag Templates",description:"A growing gallery of community-built templates for Meta CAPI, TikTok Events API, Pinterest, Snapchat, and hundreds more."},{title:"Data Transformation",description:"Modify, enrich, or redact data before it leaves your server. Add user data, remove PII, or restructure events."},{title:"First-Party Cookie Management",description:"Set cookies from your own domain with extended lifespans, improving user recognition and attribution accuracy."},{title:"Preview & Debug Mode",description:"Test your server-side tags in real-time before publishing, just like client-side GTM."}],pros:["Industry standard with the largest community and template ecosystem","Free software — you only pay for hosting","Native integration with all Google marketing products","Familiar interface for existing GTM users","Extensive documentation and tutorials available","Active community building new tag templates regularly"],cons:["Requires hosting infrastru
286cture (not a turnkey solution)","Steeper learning curve than client-side GTM","Self-hosting on GCP requires DevOps knowledge","Debugging server-side issues is more complex than client-side","Some advanced use cases require custom JavaScript knowledge"],bestFor:"Any business already using Google Tag Manager that wants to improve data quality, site speed, and tracking resilience. Essential for companies running Google Ads, GA4, and other Google marketing tools.",externalFeedback:[{quote:"sGTM is non-negotiable in 2026. If you're doing any kind of paid media, you need server-side tracking, and sGTM is the hub everything connects to.",source:"Simo Ahava — Analytics Expert & sGTM Pioneer"},{quote:"The learning curve is real, but once you understand the client-server model, it clicks. The template gallery saves enormous amounts of development time.",source:"Measure Slack Community — Senior Tag Manager"},{quote:"Moving to sGTM improved our GA4 data quality by roughly 15-20%. Events that were previously blocked by ad blockers now flow through reliably.",source:"Analytics Mania Blog — Case Study"}],verdict:"Google Tag Manager Server-Side is the foundation that most server-side tracking stacks are built on. While it's not a plug-and-play solution (you need hosting), pairing it with a managed provider like Stape makes it accessible. The combination of a free, powerful tag management platform with native Google integrations and a massive community makes sGTM the obvious choice for the processing layer of your server-side setup."},{slug:"segment-review",name:"Segment",url:"https://segment.com/",category:"Customer Data Platform (CDP)",score:8.8,rank:3,metaTitle:"Segment Review 2026: CDP for Server-Side Analytics",metaDescription:"Detailed Segment review with pricing, features, and alternatives. Is this CDP worth the cost for server-side data routing?",heroSubtitle:"The leading customer data platform that unifies data collection and routes events to 300+ destinations from a single API.",overview:["Segment, now owned by Twilio, is a customer data platform (CDP) that acts as a central hub for all your analytics and marketing data. Instead of integrating each tool individually, you send data to Segment once and it handles the formatting, routing, and delivery to every destination in your stack.","For server-side analytics, Segment's value is in its server-side libraries. Available in Node.js, Python, Ruby, Go, Java, and more, these libraries let you track events directly from your application backend — completely independent of the browser. This means no ad blockers, no cookie restrictions, and no client-side performance impact.","Segment also provides identity resolution, data governance, and schema enforcement — features that become critical as your data volume and team size grow. It's the glue that holds complex analytics stacks together."],pricing:{summary:"Segment offers a free tier for startups and scales to enterprise pricing. The cost is based on Monthly Tracked Users (MTUs) — unique users whose data passes through Segment.",tiers:[{name:"Free",price:"$0/month",details:"Up to 1,000 MTUs, 2 sources, and unlimited destinations. Good for testing and small projects."},{name:"Team",price:"From $120/month",details:"Up to 10,000 MTUs with additional sources, computed traits, and email support."},{name:"Business",price:"Custom pricing (typically $1,000+/month)",details:"Advanced features including data governance, audiences, Protocols, and dedicated support."}],note:"Segment is one of the more expensive tools in the analytics stack. For smaller businesses, the free tier is useful but you'll quickly outgrow it. Consider whether you truly need a CDP or if direct integrations would suffice."},keyFeatures:[{title:"Unified API",description:"A single tracking API that sends data to 300+ integrations. Instrument once, send everywhere."},{title:"Server-Side Sources",description:"Libraries in all major programming languages for tracking events from your backend, ensuring reliable data collection."},{title:"Identity Resolution",description:"Automatically merge anonymous and known user profiles across devices and sessions."},{title:"Protocols (Schema Enforcement)",description:"Define your tracking plan as a schema. Segment validates incoming data and blocks malformed events."},{title:"Computed Traits & Audiences",description:"Build user segments and compute traits in real-time for personalisation and targeting."},{title:"Reverse ETL",description:"Sync data from your warehouse back to marketing and sales tools."}],pros:["Reduces integration complexity dramatically","Server-side libraries ensure reliable data collection","Strong identity resolution across platforms","Prevents vendor lock-in — switch destinations without re-instrumentation","Data governance features prevent tracking plan drift","Large integration catalog covers nearly every marketing tool"],cons:["Expensive at scale — costs can grow quickly with MTU volume","Can be overkill for businesses with fewer than 5 destinations","Free tier is very limited","Some destinations have latency compared to direct integrations","Complex initial setup for enterprise deployments"],bestFor:"Mid-to-large businesses using 5+ analytics and marketing tools that need a single source of truth for customer data. Especially valuable for product-led growth companies and e-commerce brands with complex multi-channel attribution needs.",externalFeedback:[{quote:"Segment saved us months of engineering time. Adding a new anal
286ytics destination takes minutes instead of sprints.",source:"G2 Review — VP of Engineering at a SaaS startup"},{quote:"The pricing is the main drawback. Once you exceed the free tier, costs jump significantly. But the time savings justify it for most teams.",source:"Reddit r/analytics — Data Team Lead"},{quote:"Identity resolution across web, mobile, and backend events is where Segment really shines. Nothing else does it as cleanly.",source:"Product Analytics Weekly Newsletter"}],verdict:"Segment is the gold standard for customer data platforms and a powerful tool for server-side analytics. Its server-side libraries, identity resolution, and massive integration catalog make it invaluable for businesses managing complex data stacks. The main barrier is cost — Segment isn't cheap, and smaller businesses should carefully evaluate whether they need a CDP or if direct integrations would be sufficient. For those who do need it, Segment pays for itself in engineering time saved."},{slug:"google-analytics-4-review",name:"Google Analytics 4",url:"https://analytics.google.com/",category:"Web Analytics",score:8.5,rank:4,metaTitle:"Google Analytics 4 Review 2026: Server-Side GA4 Guide",metaDescription:"GA4 review covering server-side tracking setup, pricing, limitations, and how it fits into a modern analytics stack.",heroSubtitle:"Google's event-based analytics platform — more powerful and accurate when paired with server-side data collection.",overview:["Google Analytics 4 is Google's current analytics platform and the successor to Universal Analytics. Built from scratch with an event-based data model, GA4 was designed for a privacy-first world where cookies are declining and cross-device tracking is increasingly complex.","While GA4 works fine with client-side tracking alone, it truly shines when paired with server-side data collection through sGTM. Server-side GA4 tracking bypasses ad blockers, sets first-party cookies with longer lifespans, and gives you a more complete and accurate picture of user behaviour.","GA4's machine learning capabilities, including predictive audiences and anomaly detection, become significantly more effective when fed with higher-quality server-side data. For businesses running Google Ads, the improved data quality translates directly into better campaign optimisation and ROAS."],pricing:{summary:"GA4 has a free tier that covers most businesses, with a paid enterprise tier (GA4 360) for large organisations needing advanced features.",tiers:[{name:"GA4 Free",price:"$0/month",details:"Full analytics platform with event tracking, machine learning insights, and Google Ads integration. Subject to data sampling on large queries."},{name:"GA4 360",price:"From ~$50,000/year",details:"Unsampled data, higher data limits, SLA support, BigQuery export enhancements, and dedicated account management."}],note:"The free tier is sufficient for most small-to-medium businesses. GA4 360 is aimed at enterprise organisations with high traffic volumes and complex reporting needs."},keyFeatures:[{title:"Event-Based Data Model",description:"Every interaction is an event, giving you flexible, granular tracking without the rigid pageview/session model of Universal Analytics."},{title:"Machine Learning Insights",description:"Predictive metrics (purchase probability, churn probability), anomaly detection, and AI-powered insights surface trends automatically."},{title:"Cross-Platform Tracking",description:"Track users across web and mobile apps in a single property, with unified reporting."},{title:"BigQuery Export",description:"Export raw event data to BigQuery for advanced analysis, custom models, and data warehousing."},{title:"Enhanced E-Commerce",description:"Comprehensive e-commerce tracking with product impressions, cart actions, checkout funnels, and revenue attribution."},{title:"Audience Builder for Google Ads",description:"Build remarketing audiences directly from GA4 data and push them to Google Ads for targeting."}],pros:["Free for most businesses","Deep integration with Google Ads and the Google ecosystem","Server-side tracking improves data accuracy by 15-30%","Powerful machine learning features","BigQuery exp
286ort enables advanced custom analysis","Active development with regular feature updates"],cons:["Interface is complex and unintuitive for beginners","Data sampling on the free tier can affect large-scale reporting","Limited data retention (14 months max on free tier)","Reporting customisation is less flexible than Universal Analytics","Privacy concerns for EU businesses depending on implementation"],bestFor:"Any business that needs web analytics and is already in the Google ecosystem. Particularly valuable when paired with server-side tracking for improved data quality and Google Ads optimisation.",externalFeedback:[{quote:"GA4 with server-side tracking is a game-changer. We saw a 22% increase in tracked conversions after moving from client-side to sGTM-powered GA4.",source:"CXL Blog — Conversion Rate Optimisation Study"},{quote:"The learning curve from Universal Analytics to GA4 is steep, but once you adapt, the event-based model is far more powerful.",source:"Analytics Mania — GA4 Migration Guide"},{quote:"BigQuery export is the killer feature. Being able to query raw event data opens up analysis that's impossible in the GA4 interface.",source:"Reddit r/BigQuery — Data Analyst"}],verdict:"GA4 is the reporting and analysis layer of most server-side analytics stacks. While it works on its own, pairing it with server-side tracking through sGTM dramatically improves data quality and completeness. The free tier is generous enough for most businesses, and the Google Ads integration makes it essential for anyone running paid search or display campaigns. Its main weaknesses are the steep learning curve and limited data retention on the free plan."},{slug:"snowplow-analytics-review",name:"Snowplow Analytics",url:"https://snowplow.io/",category:"Behavioural Data Platform",score:8.5,rank:5,metaTitle:"Snowplow Analytics Review 2026: Full Data Ownership",metaDescription:"Snowplow review covering self-hosted analytics, pricing, and data pipeline setup. Ideal for teams that need full data ownership.",heroSubtitle:"The open-source behavioural data platform for organisations that demand full ownership and control of their analytics pipeline.",overview:["Snowplow is fundamentally different from every other tool on this list. While most analytics platforms process and store your data on their servers, Snowplow runs entirely on your infrastructure. Every event is captured, validated against schemas you define, and delivered to your data warehouse in its raw form.","This warehouse-first approach means you own your data completely — there's no vendor lock-in, no data retention limits, and no sampling. Snowplow is built for data teams that want to build their own analytics layer on top of raw event data, using tools like dbt, Looker, or custom Python/SQL analysis.","Snowplow offers both an open-source community edition and a managed commercial product (Snowplow BDP). The open-source version can be self-hosted on AWS, GCP, or Azure, while the managed version handles infrastructure for you."],pricing:{summary:"Snowplow has an open-source option and a managed commercial product. Costs vary significantly based on deployment model and data volume.",tiers:[{name:"Open Source",price:"Free (infrastructure costs only)",details:"Self-hosted on your cloud provider. You manage the pipeline, enrichments, and warehouse loading. Cloud costs typically $200-2,000+/month."},{name:"Snowplow BDP (Cloud)",price:"From ~$1,500/month",details:"Fully managed pipeline with real-time and batch loading, schema management, and support."},{name:"Snowplow BDP (Enterprise)",price:"Custom pricing",details:"Dedicated infrastructure, custom SLAs, premium support, and advanced features."}],note:"Snowplow is a significant investment in both cost and technical resources. It's designed for organisations with dedicated data engineering teams."},keyFeatures:[{title:"Full Data Ownership",description:"All data lives in your warehouse. No third-party processing, no vendor lock-in, no retention limits."},{title:"Schema Registry",description:"Define event schemas upfront. Snowplow validates every event against its schema, ensuring data quality at collection time."},{title:"Zero Sampling",description:"Every single event is captured and stored. No statistical sampling, no data loss."},{title:"Real-Time Pipeline",description:"Events are processed and available in your warehouse in near real-time, enabling live dashboards and real-time personalisation."},{title:"Enrichment Pipeline",description:"Add context to events during processing — IP-to-geolocation, campaign attribution, user agent parsing, and custom enrichments."},{title:"Multi-Cloud Support",description:"Deploy on AWS, GCP, or Azure. Use any data warehouse: Redshift, BigQuery, Snowflake, or Databricks."}
286],pros:["Complete data ownership — no vendor dependency","No sampling means perfect data fidelity","Schema validation ensures consistent, high-quality data","Flexible deployment across cloud providers","Active open-source community","Integrates with modern data stack tools (dbt, Looker, etc.)"],cons:["Requires significant technical expertise to deploy and maintain","High total cost of ownership (infrastructure + engineering time)","No built-in reporting UI — you need a separate BI tool","Open-source version requires dedicated DevOps resources","Overkill for businesses without a data engineering team"],bestFor:"Data-mature organisations with dedicated data engineering teams that need complete ownership of their behavioural data pipeline. Common in fintech, media, e-commerce, and enterprise SaaS.",externalFeedback:[{quote:"Snowplow gives us what no SaaS analytics tool can: raw, unsampled, validated event data in our own warehouse. It's the foundation of our entire analytics stack.",source:"dbt Community Slack — Head of Data at a fintech company"},{quote:"The setup cost is real — expect to dedicate an engineer for several weeks to get it production-ready. But the data quality payoff is enormous.",source:"Data Engineering Weekly — Snowplow Deployment Guide"},{quote:"If you have the team to support it, Snowplow is the best analytics investment you can make. If you don't, you'll struggle.",source:"Reddit r/dataengineering — Staff Data Engineer"}],verdict:"Snowplow is the gold standard for data ownership in analytics. If your organisation has a data engineering team and wants complete control over its behavioural data pipeline, Snowplow delivers capabilities that no SaaS analytics tool can match. However, it's not for everyone — the technical requirements and costs mean it's best suited for data-mature organisations that have outgrown hosted analytics platforms."},{slug:"elevar-review",name:"Elevar",url:"https://www.getelevar.com/",category:"Shopify Server-Side Tracking",score:8.3,rank:6,metaTitle:"Elevar Review 2026: Best Server-Side Tracking for Shopify",metaDescription:"Elevar review with pricing, Shopify integration details, and conversion tracking accuracy data. Built specifically for e-commerce.",heroSubtitle:"The server-side tracking solution purpose-built for Shopify stores that want accurate conversion data without technical complexity.",overview:["Elevar is a server-side tracking platform designed exclusively for Shopify. While most tools on this list require manual configuration of data layers, tags, and server containers, Elevar automates the entire process for Shopify merchants. It connects to your Shopify store, automatically configures your data layer, and routes events server-side to ad platforms like Google, Meta, TikTok, and Pinterest.","The platform was born out of a real problem: Shopify stores were losing 20-40% of their conversion data due to ad blockers, ITP restrictions, and incomplete data layer implementations. Elevar solves this by providing a managed, pre-configured server-side tracking setup that just works.","Elevar has become particularly popular among direct-to-consumer (DTC) brands running significant paid advertising budgets, where accurate conversion data directly impacts ad spend efficiency and ROAS."],pricing:{summary:"Elevar offers tiered pricing based on Shopify store order volume. All plans include server-side tracking and data layer management.",tiers:[{name:"Essentials",price:"From $150/month",details:"Server-side tracking for stores with up to 1,000 orders/month. Includes GA4, Google Ads, and Meta CAPI."},{name:"Growth",price:"From $300/month",details:"Up to 5,000 orders/month. Adds TikTok, Pinterest, Snapchat, and additional ad platforms."},{name:"Premium",price:"From $500/month",details:"Higher order volumes with priority support, advanced attribution, and custom integrations."}],note:"Elevar's pricing is higher than some alternatives, but the time savings and conversion data accuracy improvements often deliver significant ROI for stores with meaningful ad spend."},keyFeatures:[{title:"Automated Shopify Data Layer",description:"Automatically configures a comprehensive e-commerce data layer on your Shopify store — no manual coding required."},{title:"Server-Side Event Routing",description:"Routes conversion events server-side to Google, Meta, TikTok, Pinterest, Snapchat, and other ad platforms."},{title:"Conversion Accuracy Monitoring",description:"Dashboard showing the difference between client-side and server-side tracked conversions, so you can see exactly how much data you're recovering."},{title:"Consent Mode Integration",description:"Works with Google Consent Mode and other consent management platforms for GDPR/privacy compliance."},{title:"Pre-Built Shopify Integration",description:"No custom development needed. Install the Shopify app, connect your accounts, and tracking is live."},{title:"Event Deduplication",description:"Automatically deduplicates events between client-side and server-side to prevent inflated conversion counts."}],pros:["Zero-code setup for Shopify stores","Recovers 20-40% of lost conversion data on average","Automated data layer eliminates manual tracking errors","Supports all major ad platforms out of the box","Conversion accuracy dashboard shows real ROI","Regular updates for Shopify platform changes"],cons:["Only works with Shopify — not available for other platforms","Premium pricing compared to DIY server-side setups","Less customisation flexibility than a raw sGTM implementation","Some advanced tracking scenarios still require manual GTM work"],bestFor:"Shopify stores spending $5,000+/month on paid advertising that need accurate conversion tracking without dedicated analytics engineering resources.",externalFeedback:[{quote:"Elevar recovered 31% more conversions for our Google Ads campaigns. Our ROAS improved by 18% within the first month.",source:"Shopify App Store Review — DTC Fashion Brand"},{quote:"The setup was genuinely painless. We went from zero server-side tracking to fully live in under 2 hours.",source:"eCommerceFuel Community — 7-Figure Store Owner"},{quote:"If you're a Shopify store and not using Elevar, you're flying blind on your ad performance.",source:"Twitter/X — E-Commerce Analytics Consultant"}],verdict:"Elevar is the best server-side tracking solution for Shopify stores. Its automated setup, comprehensive ad platform support, and conversion accuracy monitoring make it a no-brainer for DTC brands running paid advertising. The pricing is higher than DIY alternatives, but the time savings and data quality improvements deliver clear ROI. If you're on Shopify and spending meaningfully on ads, Elevar should be at the top of your list."},{slug:"taggrs-review",name:"TAGGRS",url:"https://taggrs.io/",category:"Server-Side GTM Hosting",score:8,rank:7,metaTitle:"TAGGRS Review 2026: EU-Based sGTM Hosting Platform",metaDescription:"TAGGRS review covering EU-focused server-side GTM hosting, GDPR compliance, pricing, and comparison with Stape.",heroSubtitle:"A European-focused managed sGTM hosting provider built around GDPR compliance and data residency.",overview:["TAGGRS is a managed server-side GTM hosting provider based in the Netherlands, with a strong focus on European data residency and GDPR compliance. For businesses that need to ensure their tracking data never leaves the EU, TAGGRS provides a compelling alternative to global providers.","The platform offers one-click sGTM deployment with EU-based infrastru
286cture, custom domain setup, and real-time monitoring. TAGGRS has positioned itself as the European champion in the sGTM hosting space, particularly popular among Dutch, German, and French businesses with strict data protection requirements.","While TAGGRS offers fewer global regions than Stape, its focus on the European market means its EU infrastructure is well-optimised with low latency and strong data residency guarantees."],pricing:{summary:"TAGGRS uses tiered pricing based on monthly server-side requests, with competitive rates for the EU market.",tiers:[{name:"Starter",price:"From €15/month",details:"Basic sGTM hosting with limited requests. Good for low-traffic sites and testing."},{name:"Growth",price:"From €50/month",details:"Higher request volumes with custom domain, monitoring dashboard, and email support."},{name:"Professional",price:"From €150/month",details:"Advanced features, priority support, and higher scalability."},{name:"Enterprise",price:"Custom pricing",details:"Dedicated infrastructure, SLA guarantees, and account management."}],note:"TAGGRS pricing is competitive with Stape for EU-based deployments. The main differentiator is the EU-first infrastru
286cture and compliance positioning."},keyFeatures:[{title:"EU-Based Infrastructure",description:"All servers are located in the European Union, ensuring data never leaves EU jurisdiction."},{title:"One-Click Deployment",description:"Deploy your sGTM container with a single click — no cloud configuration required."},{title:"GDPR-Compliant Setup",description:"Built with GDPR compliance as a core feature, including data processing agreements and documentation."},{title:"Custom Domain Support",description:"Set up first-party tracking domains for improved data collection and ad blocker bypass."},{title:"Real-Time Monitoring",description:"Monitor container performance, request volumes, and errors in real-time."},{title:"Dutch Support",description:"Native Dutch and English language support — a differentiator for Benelux businesses."}],pros:["Strong EU data residency guarantees","GDPR compliance built into the platform","Simple setup with no DevOps knowledge required","Competitive pricing for EU-based hosting","Good documentation and onboarding experience","Local language support (Dutch, English)"],cons:["Smaller global infrastructure footprint than Stape","Fewer advanced features and integrations","Less mature platform — smaller community and fewer resources","Limited cloud regions outside of Europe"],bestFor:"European businesses with strict data residency requirements that need GDPR-compliant server-side GTM hosting. Particularly strong for Benelux, DACH, and French markets.",externalFeedback:[{quote:"For our German clients, TAGGRS ticks every compliance box. EU data residency is a hard requirement for many of them, and TAGGRS delivers.",source:"LinkedIn — Digital Analytics Agency Owner, Germany"},{quote:"Setup was straightforward. We had our sGTM container live on EU infrastructure within 30 minutes.",source:"Trustpilot Review — E-Commerce Manager, Netherlands"},{quote:"Good alternative to Stape if EU data residency is a priority. Feature set is more limited but covers the essentials well.",source:"Server-Side Tracking Community Forum"}],verdict:"TAGGRS is a solid choice for European businesses that prioritise data residency and GDPR compliance in their server-side tracking setup. While it doesn't match Stape's feature depth or global reach, it excels in its niche — providing reliable, EU-based sGTM hosting with a simple setup process. If keeping data within EU borders is a hard requirement, TAGGRS deserves serious consideration."},{slug:"rudderstack-review",name:"Rudderstack",url:"https://www.rudderstack.com/",category:"Customer Data Platform (CDP)",score:8,rank:8,metaTitle:"Rudderstack Review 2026: Open-Source CDP Alternative",metaDescription:"Rudderstack review with pricing, warehouse-first features, and comparison to Segment. A developer-friendly open-source CDP.",heroSubtitle:"The open-source, warehouse-first customer data platform built for developers who want control without the Segment price tag.",overview:["Rudderstack is an open-source customer data platform that takes a warehouse-first approach to event data. Unlike Segment, which routes data through its own servers, Rudderstack is designed to send data directly to your data warehouse and then sync it to downstream tools — giving you complete control over your data pipeline.","Built by engineers for engineers, Rudderstack offers SDKs in all major languages, a powerful transformations engine, and Reverse ETL capabilities. It's positioned as the developer-friendly, cost-effective alternative to Segment for teams that want CDP functionality without the enterprise price tag.","The open-source core means you can self-host Rudderstack entirely, or use the managed cloud version for convenience. Either way, your warehouse remains the source of truth."],pricing:{summary:"Rudderstack offers a generous free tier and competitive paid plans, significantly undercutting Segment on pricing.",tiers:[{name:"Free",price:"$0/month",details:"Up to 500,000 events/month with core event streaming, transformations, and warehouse destinations."},{name:"Starter",price:"From $75/month",details:"Up to 5 million events/month with additional destinations, Rever
286se ETL, and email support."},{name:"Growth",price:"From $450/month",details:"Higher event volumes, SSO, dedicated support, and advanced features."},{name:"Enterprise",price:"Custom pricing",details:"Unlimited events, data governance, dedicated infrastructure, and premium support."}],note:"Rudderstack's event-based pricing is generally 50-70% cheaper than Segment's MTU-based model for equivalent data volumes."},keyFeatures:[{title:"Warehouse-First Architecture",description:"Your data warehouse is the single source of truth. Rudderstack loads data there first, then syncs to tools."},{title:"Event Streaming",description:"Real-time event routing to 200+ destinations including analytics, marketing, and CRM tools."},{title:"Transformations Engine",description:"Write custom JavaScript transformations to modify, filter, or enrich events before they reach destinations."},{title:"Reverse ETL",description:"Sync computed data from your warehouse back to marketing tools, CRMs, and ad platforms."},{title:"Open-Source Core",description:"Full access to the source code. Self-host for complete control or use the managed cloud."},{title:"Server-Side SDKs",description:"SDKs in Node.js, Python, Go, Ruby, Java, and more for reliable backend event tracking."}],pros:["50-70% cheaper than Segment for most use cases","Open-source with self-hosting option","Warehouse-first approach ensures data ownership","Powerful transformations engine","Developer-friendly with excellent documentation","Generous free tier (500K events/month)"],cons:["Smaller integration catalog than Segment (200 vs 300+)","Less mature identity resolution features","Self-hosted version requires engineering resources","Smaller community and fewer third-party resources","UI/dashboard is less polished than Segment"],bestFor:"Developer-led teams that want CDP functionality with a warehouse-first approach and lower costs than Segment. Ideal for startups and mid-market companies with data engineering capability.",externalFeedback:[{quote:"We switched from Segment to Rudderstack and cut our CDP costs by 60% while gaining more control over our data pipeline.",source:"Hacker News — CTO at a Series B startup"},{quote:"The warehouse-first approach aligned perfectly with our dbt-based analytics stack. Data flows into Snowflake first, then everywhere else.",source:"dbt Community Slack — Analytics Engineer"},{quote:"Documentation is excellent, but the integration ecosystem is still catching up to Segment. Check that your specific tools are supported before switching.",source:"Reddit r/dataengineering — Senior Data Engineer"}],verdict:"Rudderstack is the best Segment alternative for developer-led teams that prioritise cost efficiency, data ownership, and a warehouse-first architecture. It's not yet at feature parity with Segment (particularly on identity resolution and the integration catalog), but it's closing the gap rapidly while costing significantly less. If your team is technical and price-conscious, Rudderstack is a compelling choice."},{slug:"tracklution-review",name:"Tracklution",url:"https://tracklution.com/",category:"Server-Side Tracking Platform",score:7.8,rank:9,metaTitle:"Tracklution Review 2026: Cookie-Less Server-Side Tracking",metaDescription:"Tracklution review covering first-party tracking, cookie-less solutions, pricing, and how it compares to sGTM-based setups.",heroSubtitle:"A server-side tracking platform focused on first-party data collection without relying on third-party cookies or browser scripts.",overview:["Tracklution takes a different approach to server-side tracking. Rather than building on top of Google Tag Manager, Tracklution provides its own server-side infrastructure that collects first-party data and routes it to ad platforms and analytics tools without relying on third-party cookies or browser-side tracking scripts.","The platform is designed for businesses that want a simpler alternative to the sGTM stack. There's no need to learn GTM server-side, configure containers, or manage tag templates. Tracklution handles the data collection, processing, and delivery in a more opinionated, streamlined way.","Tracklution is particularly focused on solving the cookie deprecation problem, offering tracking methods that work regardless of browser privacy restrictions."],pricing:{summary:"Tracklution offers straightforward pricing based on monthly pageviews, making costs predictable.",tiers:[{name:"Starter",price:"From €49/month",details:"Up to 100,000 pageviews/month with core tracking features and standard integrations."}
286,{name:"Professional",price:"From €149/month",details:"Up to 500,000 pageviews with advanced features, priority support, and additional platform integrations."},{name:"Enterprise",price:"Custom pricing",details:"Unlimited pageviews, dedicated infrastructure, and custom integrations."}],note:"Pricing is competitive for the features offered, though the per-pageview model can be expensive for high-traffic sites compared to sGTM-based solutions."},keyFeatures:[{title:"Cookie-Less Tracking",description:"Track user behaviour without relying on third-party cookies, using server-side methods that respect privacy."},{title:"First-Party Data Collection",description:"All data is collected through your own domain, ensuring it's classified as first-party data."},{title:"Multi-Platform Event Delivery",description:"Route conversion events to Google, Meta, TikTok, and other ad platforms server-side."},{title:"No GTM Dependency",description:"Works independently of Google Tag Manager — a standalone server-side tracking solution."},{title:"Simplified Setup",description:"Designed for marketers, not engineers. Get started without learning sGTM configuration."},{title:"Privacy-First Architecture",description:"Built with GDPR and ePrivacy compliance as core design principles."}],pros:["Simpler than sGTM-based setups for non-technical users","No dependency on Google Tag Manager","Strong first-party data approach for cookie-less future","Works across multiple ad platforms","Privacy-focused design","Quick setup process"],cons:["Newer platform with a smaller community","Limited integrations compared to sGTM ecosystem","Less flexibility and customisation than raw sGTM","Documentation could be more comprehensive","Pageview-based pricing can be expensive at scale"],bestFor:"Businesses that want server-side tracking without the complexity of the GTM ecosystem. Good fit for marketers who need a simpler, privacy-first tracking solution.",externalFeedback:[{quote:"Tracklution was the easiest server-side tracking tool we've tried. No GTM expertise needed, which was a huge plus for our marketing team.",source:"Capterra Review — Marketing Manager"},{quote:"The cookie-less approach is forward-thinking. As third-party cookies disappear, having this capability built-in is valuable.",source:"MarTech Today — Product Review"},{quote:"Feature set is more limited than Stape + sGTM, but if simplicity is your priority, it's a solid choice.",source:"LinkedIn — Digital Analytics Consultant"}],verdict:"Tracklution offers a refreshing alternative to the sGTM-centric server-side tracking world. Its simplified, marketer-friendly approach makes server-side tracking accessible without requiring GTM expertise. However, the trade-off is less flexibility and a smaller ecosystem. It's best suited for businesses that value simplicity over customisation and want a privacy-first approach to tracking."},{slug:"tracedock-review",name:"Tracedock",url:"https://www.tracedock.com/",category:"First-Party Data Platform",score:7.5,rank:10,metaTitle:"Tracedock Review 2026: First-Party Data Collection Platform",metaDescription:"Tracedock review covering first-party tracking, ad blocker bypass, pricing, and marketing data recovery capabilities.",heroSubtitle:"A first-party data collection platform that recovers marketing data lost to ad blockers and cookie restrictions.",overview:["Tracedock is a first-party data collection platform based in the Netherlands that focuses on recovering marketing data that's lost to ad blockers, cookie restrictions, and browser privacy features. Rather than replacing your existing analytics setup, Tracedock sits alongside it, ensuring your marketing platforms receive complete conversion data.","The platform works by routing tracking requests through your own domain, making them appear as first-party requests that ad blockers don't block. This approach recovers an average of 20-30% of lost marketing data, directly improving ad platform optimisation and reporting accuracy.","Tracedock is particularly popular among European e-commerce businesses that need to maintain accurate conversion tracking while complying with GDPR and other privacy regulations."],pricing:{summary:"Tracedock offers tiered pricing based on monthly requests, with plans designed for different business sizes.",tiers:[{name:"Starter",price:"From €79/month",details:"Up to 500,000 requests/month with core first-party tracking features."}
286,{name:"Professional",price:"From €199/month",details:"Higher request volumes with advanced features and priority support."},{name:"Enterprise",price:"Custom pricing",details:"Unlimited requests, dedicated infrastructure, and custom integrations."}],note:"Pricing is reasonable for the data recovery value provided. Most businesses see ROI within the first month through improved ad performance."},keyFeatures:[{title:"First-Party Domain Routing",description:"Track through your own domain so requests are classified as first-party, bypassing ad blockers."},{title:"Marketing Data Recovery",description:"Recover 20-30% of conversion data lost to ad blockers and browser privacy restrictions."},{title:"No sGTM Required",description:"Works independently — no need for Google Tag Manager server-side setup."},{title:"Multi-Platform Support",description:"Recovers data for Google Analytics, Meta Pixel, Google Ads, and other marketing platforms."},{title:"GDPR Compliant",description:"EU-based infrastructure with full GDPR compliance and data processing agreements."},{title:"Easy Integration",description:"Simple DNS and script changes — typically live within an hour."}],pros:["Recovers significant lost marketing data (20-30%)","Simple integration without sGTM complexity","EU-based with strong GDPR compliance","Works alongside existing tracking setups","Quick time-to-value — results visible immediately","No technical expertise required for setup"],cons:["Primarily focused on marketing data recovery — not a full analytics solution","Doesn't replace the need for a proper server-side tracking setup","Limited to first-party routing — no data transformation capabilities","Smaller feature set compared to full sGTM deployments"],bestFor:"E-commerce businesses and advertisers who want to quickly recover lost marketing data without the complexity of a full server-side tracking migration. Ideal as a complementary tool alongside existing analytics.",externalFeedback:[{quote:"Tracedock recovered 27% more conversions for our Meta campaigns. The ROI was immediate — our CPA dropped by 15% in the first week.",source:"Case Study — Dutch E-Commerce Brand"},{quote:"The simplest way to improve your tracking data without touching GTM. DNS change, script update, done.",source:"LinkedIn — Performance Marketing Manager"},{quote:"Good as a quick fix, but eventually you'll want a proper server-side setup. Tracedock buys you time.",source:"Analytics Subreddit — Digital Analyst"}],verdict:"Tracedock is an excellent quick-win tool for businesses losing marketing data to ad blockers and cookie restrictions. Its simplicity and fast setup make it ideal for teams that want immediate improvements without the complexity of a full server-side migration. However, it's best viewed as a complementary tool rather than a complete server-side tracking solution — eventually, you'll want a proper sGTM setup for full control over your data pipeline."},{slug:"addingwell-review",name:"Addingwell",url:"https://www.addingwell.com/",category:"Server-Side GTM Hosting",score:7.3,rank:11,metaTitle:"Addingwell Review 2026: French sGTM Hosting Provider",metaDescription:"Addingwell review covering managed sGTM hosting, EU infrastructure, pricing, and comparison with Stape and TAGGRS.",heroSubtitle:"A French managed sGTM hosting provider offering high-performance European infrastructure for server-side tag management.",overview:["Addingwell is a managed server-side GTM hosting provider based in France. It competes with Stape and TAGGRS by offering high-performance sGTM container hosting with a focus on the European market and transparent, predictable pricing.","The platform provides custom domain support, auto-scaling servers, and real-time monitoring — the core features needed for reliable server-side tag management. Addingwell differentiates itself with its French-based support team and strong presence in the French digital marketing community.","While Addingwell doesn't have the global reach of Stape, it's a solid option for businesses that prefer a European provider with responsive support and competitive pricing."],pricing:{summary:"Addingwell offers straightforward pricing based on server-side requests, with transparent tiers.",tiers:[{name:"Starter",price:"From €30/month",details:"Core sGTM hosting with limited requests. Suitable for small sites."}
286,{name:"Business",price:"From €100/month",details:"Higher request volumes with custom domains, monitoring, and email support."},{name:"Enterprise",price:"Custom pricing",details:"Dedicated infrastructure, premium support, and SLA guarantees."}],note:"Pricing is competitive with Stape and TAGGRS for European deployments. Transparent pricing with no hidden fees."},keyFeatures:[{title:"Managed sGTM Hosting",description:"Fully managed server-side GTM container hosting with no infrastructure management required."},{title:"EU Infrastructure",description:"Servers based in Europe for data residency compliance and low-latency tracking."},{title:"Custom Domain Support",description:"Configure first-party tracking domains for improved data collection."},{title:"Auto-Scaling",description:"Servers scale automatically based on traffic — no manual intervention during spikes."},{title:"Real-Time Monitoring",description:"Dashboard for monitoring container health, request volumes, and error rates."},{title:"French Support",description:"Native French and English support team — a differentiator for francophone markets."}],pros:["Reliable EU-based sGTM hosting","Transparent and predictable pricing","Good customer support with French language option","Easy migration from other sGTM hosts","Strong reputation in French digital marketing community","Auto-scaling handles traffic spikes well"],cons:["Fewer features and integrations than Stape","Smaller global infrastructure footprint","Less mature platform with fewer resources and tutorials","Community and ecosystem smaller than competitors"],bestFor:"French and European businesses looking for a reliable, locally-supported sGTM hosting provider with transparent pricing.",externalFeedback:[{quote:"Addingwell has been rock-solid for our sGTM hosting. French support is a real advantage for our team in Paris.",source:"LinkedIn — Head of Digital, French Retail Brand"},{quote:"Competitive pricing and reliable uptime. Less feature-rich than Stape but covers all the essentials.",source:"French Digital Marketing Forum"},{quote:"Good option for agencies managing French clients who need EU-hosted sGTM with local language support.",source:"Agency Review — Digital Analytics Agency, Lyon"}],verdict:"Addingwell is a reliable sGTM hosting option for European businesses, particularly those in the French market who value local support and transparent pricing. While it doesn't match Stape's feature depth or global reach, it delivers on the core promise of managed server-side GTM hosting with solid EU infrastructure. It's worth considering if local support and European focus are priorities for your team."},{slug:"matomo-review",name:"Matomo",url:"https://matomo.org/",category:"Privacy-First Analytics",score:7,rank:12,metaTitle:"Matomo Review 2026: Privacy-First Analytics Alternative",metaDescription:"Matomo review covering self-hosted analytics, GDPR compliance, pricing, and how it compares to GA4 for privacy-conscious teams.",heroSubtitle:"The open-source, privacy-focused analytics platform that gives you complete data ownership with optional self-hosting.",overview:["Matomo (formerly Piwik) is an open-source web analytics platform that positions itself as the privacy-respecting alternative to Google Analytics. Available as both a self-hosted and cloud-hosted solution, Matomo gives you full ownership of your analytics data without sending it to a third party.","For server-side analytics, Matomo offers a tracking API that allows you to send events from your server directly to your Matomo instance. This server-side approach bypasses ad blockers and cookie restrictions, similar to what you'd achieve with GA4 through sGTM, but within a platform you control entirely.","Matomo is particularly popular in Europe, where GDPR compliance has driven many organisations away from Google Analytics. In its default configuration, Matomo can be used without requiring cookie consent banners, as it can be configured to not use tracking cookies at all."],pricing:{summary:"Matomo offers a free self-hosted option and a paid cloud-hosted service.",tiers:[{name:"On-Premise (Self-Hosted)",price:"Free",details:"Download and host on your own server. Full features, no data limits. Server costs vary ($10-200+/month)."},{name:"Cloud (Essential)",price:"From €23/month",details:"Managed hosting with 50,000 hits/month. Includes core analytics features."},{name:"Cloud (Business)",price:"From €49/month",details:"Higher hit volumes with premium features like heatmaps, session recordings, and A/B testing."},{name:"Cloud (Enterprise)",price:"Custom pricing",details:"Dedicated infrastru
286cture, premium support, and SLA guarantees."}],note:"Self-hosting is free but requires server management. The cloud option is affordable and removes maintenance burden."},keyFeatures:[{title:"Complete Data Ownership",description:"When self-hosted, all data stays on your servers. No data is shared with third parties."},{title:"GDPR Compliance by Design",description:"Can be configured to work without cookies, eliminating the need for consent banners in many jurisdictions."},{title:"Server-Side Tracking API",description:"Send events from your server directly to Matomo, bypassing browser-side tracking limitations."},{title:"No Data Sampling",description:"All reports use 100% of your data — no statistical sampling like GA4 free tier."},{title:"Heatmaps & Session Recording",description:"Built-in heatmaps and session recordings (paid feature) for understanding user behaviour visually."},{title:"GA Import Tool",description:"Import your historical Google Analytics data into Matomo for continuity when switching."}],pros:["Full data ownership when self-hosted","GDPR-compliant without cookie consent in many cases","No data sampling on any tier","Open-source with active development","GA import tool for smooth migration","All-in-one platform with heatmaps, A/B testing, and more"],cons:["Self-hosting requires server management expertise","Smaller ecosystem and community than Google Analytics","Reporting capabilities less advanced than GA4 for large-scale analysis","No native integration with Google Ads audie
286nces","Cloud pricing can add up with high traffic volumes"],bestFor:"Privacy-conscious organisations, particularly in the EU, that need GDPR-compliant analytics with full data ownership. Government, healthcare, education, and enterprise sectors.",externalFeedback:[{quote:"Switching from GA to Matomo eliminated our cookie consent headaches. Our legal team was thrilled.",source:"G2 Review — IT Director at a European University"},{quote:"Self-hosted Matomo gives us the privacy guarantees our healthcare clients require. No data leaves our infrastructure.",source:"LinkedIn — CTO at a Health-Tech Company"},{quote:"Matomo is great for privacy, but the reporting UI feels dated compared to GA4. It gets the job done, just not as elegantly.",source:"Reddit r/analytics — Web Analyst"}],verdict:"Matomo is the leading privacy-first analytics alternative. If data ownership and GDPR compliance are top priorities, it's an excellent choice — especially the self-hosted version, which keeps all data on your infrastructure. However, it lacks the machine learning capabilities and advertising integrations of GA4, making it less suitable for businesses heavily reliant on Google Ads. Consider Matomo if privacy is your primary concern and you don't need deep Google ecosystem integration."},{slug:"measurekit-review",name:"Measurekit",url:"https://measurekit.com/",category:"iOS Attribution & Server-Side Tracking",score:6.8,rank:13,metaTitle:"Measurekit Review 2026: iOS Attribution Recovery Tool",metaDescription:"Measurekit review covering iOS tracking, ATT recovery, pricing, and server-side attribution for mobile app marketers.",heroSubtitle:"A server-side tracking tool specialised in recovering iOS attribution data lost to Apple's App Tracking Transparency framework.",overview:["Measurekit occupies a unique niche in the server-side tracking landscape: it focuses specifically on recovering attribution data lost to Apple's App Tracking Transparency (ATT) framework. Since iOS 14.5, app marketers have lost visibility into a significant portion of their user acquisition data, and Measurekit aims to fill that gap.","The platform uses server-side tracking methods to capture conversion and attribution data that the ATT framework blocks on the client side. By processing events server-side and matching them probabilistically, Measurekit recovers attribution signals that help ad platforms optimise campaigns more effectively.","While niche, Measurekit addresses a real and painful problem for mobile app marketers and businesses with significant iOS traffic."],pricing:{summary:"Measurekit offers pricing based on tracked events, with plans designed for different app sizes.",tiers:[{name:"Starter",price:"From $99/month",details:"Up to 100,000 events/month with core iOS attribution recovery."},{name:"Growth",price:"From $299/month",details:"Higher event volumes with advanced attribution modelling and multi-channel support."},{name:"Enterprise",price:"Custom pricing",details:"Unlimited events with dedicated support and custom integrations."}],note:"Pricing is oriented toward mobile app businesses. The ROI depends heavily on iOS traffic volume and ad spend."},keyFeatures:[{title:"iOS Attribution Recovery",description:"Recover conversion data blocked by Apple's ATT framework using server-side methods."},{title:"Server-Side Event Tracking",description:"Track events from your server for both web and app contexts."},{title:"Probabilistic Matching",description:"Match conversions to ad interactions using probabilistic models when deterministic matching isn't possible."},{title:"Multi-Channel Attribution",description:"Attribute conversions across multiple channels even with limited device-level data."},{title:"Ad Platform Integration",description:"Send recovered attribution data to Google, Meta, TikTok, and other ad platforms."},{title:"Real-Time Dashboard",description:"Monitor attribution recovery rates and conversion data in real-time."}],pros:["Solves a specific, high-impact problem (iOS attribution loss)","Recovers significant conversion data for iOS campaigns","Works with major ad platforms","Relatively simple integration process","Real-time attribution visibility"],cons:["Very niche — only valuable if iOS attribution is a major problem","Probabilistic matching is inherently less accurate than deterministic","Relatively new platform with a smaller track record","Limited value for businesses without significant iOS app traffic","Pricing is not cheap for the narrow use case"],bestFor:"Mobile app businesses and companies with significant iOS traffic that are losing attribution data due to ATT. Most valuable for apps with substantial ad spend on Meta, Google, and TikTok.",externalFeedback:[{quote:"Measurekit recovered about 35% of our lost iOS attributions. That data directly improved our Meta campaign performance.",source:"App Mar
286keting Community — Growth Lead at a Gaming App"},{quote:"Niche tool but solves a real problem. If iOS is a big part of your traffic, it's worth testing.",source:"Mobile Dev Memo Newsletter"},{quote:"The probabilistic matching isn't perfect, but it's better than the black box Apple gives you. Useful for directional insights.",source:"Twitter/X — Mobile Attribution Specialist"}],verdict:"Measurekit is a specialised tool that solves a specific problem well: recovering iOS attribution data lost to ATT. If you're a mobile app business losing significant attribution signals from iOS users, it's worth evaluating. However, its narrow focus means it's not a general-purpose server-side tracking tool — it's a complementary addition to your existing stack, not a replacement for foundational tools like sGTM or Stape."},{slug:"mixpanel-review",name:"Mixpanel",url:"https://mixpanel.com/",category:"Product Analytics",score:6.5,rank:14,metaTitle:"Mixpanel Review 2026: Product Analytics with Server-Side SDKs",metaDescription:"Mixpanel review covering product analytics features, server-side SDKs, pricing tiers, and comparison with GA4 and Amplitude.",heroSubtitle:"A product analytics platform with server-side SDKs for teams that need deep behavioural analysis beyond basic web analytics.",overview:["Mixpanel is a product analytics platform focused on understanding user behaviour within your product. Unlike GA4 which is designed for marketing analytics, Mixpanel excels at funnel analysis, retention tracking, cohort analysis, and experimentation — the metrics that product teams care about most.","Mixpanel's server-side SDKs (available in Node.js, Python, Ruby, Java, and more) allow you to track events from your application backend, ensuring reliable data collection that isn't affected by ad blockers or browser restrictions. This server-side approach is particularly important for SaaS products where accurate user behaviour data drives product decisions.","While Mixpanel isn't a traditional server-side analytics tool in the sGTM sense, its server-side tracking capabilities and product analytics focus make it a valuable component of a comprehensive tracking stack."],pricing:{summary:"Mixpanel offers a generous free tier and usage-based pricing for paid plans.",tiers:[{name:"Free",price:"$0/month",details:"Up to 20 million events/month with core analytics features. Extremely generous for a free tier."},{name:"Growth",price:"From $28/month",details:"Unlimited saved reports, advanced analytics, and group analytics. Pricing scales with data volume."},{name:"Enterprise",price:"Custom pricing",details:"Advanced security, dedicated support, data governance, and custom contracts."}],note:"Mixpanel's free tier (20M events/month) is among the most generous in the analytics space. Most small-to-medium products can run entirely on the free plan."},keyFeatures:[{title:"Funnel Analysis",description:"Build and analyse conversion funnels with granular segmentation and breakdown capabilities."},{title:"Retention Analysis",description:"Track user retention with cohort-based analysis to understand engagement over time."},{title:"Server-Side SDKs",description:"Track events reliably from your backend in Node.js, Python, Ruby, Java, and more."},{title:"Interactive Query Builder",description:"Build complex analytical queries without SQL using an intuitive visual interface."},{title:"Experimentation",description:"Built-in A/B testing capabilities tied to your product analytics data."},{title:"Group Analytics",description:"Analyse behaviour at the company/account level, not just individual users — essential for B2B SaaS."}],pros:["Extremely generous free tier (20M events/month)","Best-in-class product analytics features","Intuitive query builder for non-technical users","Reliable server-side SDKs for backend tracking","Strong cohort and retention analysis","Excellent documentation and onboarding"],cons:["Not a general-purpose web analytics tool — focused on product analytics","Costs can escalate quickly at very high event volumes","No built-in advertising integrations (Google Ads audie
286nces, etc.)","Doesn't replace GA4 for marketing analytics use cases","Learning curve for advanced analytical features"],bestFor:"Product teams at SaaS companies that need deep behavioural analytics. Particularly valuable for product-led growth companies where user engagement data drives product decisions.",externalFeedback:[{quote:"Mixpanel's funnel and retention reports are leagues ahead of GA4 for product analytics. It's our primary tool for understanding user behaviour.",source:"Product Hunt Review — VP of Product at a B2B SaaS"},{quote:"The free tier is incredible. We've been running on it for over a year with 15M events/month and haven't paid a cent.",source:"Hacker News — Indie Developer"},{quote:"Server-side SDKs work great for our Node.js backend. Events are tracked reliably without any browser-side concerns.",source:"Reddit r/SaaS — Full-Stack Developer"}],verdict:"Mixpanel is the best product analytics tool with server-side tracking capabilities. Its generous free tier, deep behavioural analysis features, and reliable server-side SDKs make it essential for product teams. However, it's not a replacement for GA4 or server-side marketing analytics — it's a complementary tool focused on product insights. If your team needs to understand user behaviour within your product, Mixpanel is the top choice."},{slug:"piwik-pro-review",name:"Piwik PRO",url:"https://piwikpro.com/",category:"Enterprise Privacy Analytics Suite",score:6.3,rank:15,metaTitle:"Piwik PRO Review 2026: Enterprise Privacy Analytics Suite",metaDescription:"Piwik PRO review covering enterprise analytics, c
286onsent management, tag manager, and privacy-first data platform features.",heroSubtitle:"An enterprise analytics suite combining analytics, tag management, consent management, and CDP in a privacy-first platform.",overview:["Piwik PRO is an enterprise analytics suite that bundles four products into a single platform: Analytics, Tag Manager, Consent Manager, and Customer Data Platform. It's designed for organisations that need a comprehensive, privacy-first analytics solution with enterprise-grade security and compliance features.","Unlike Matomo (with which it shares historical roots), Piwik PRO is focused on enterprise deployments with private cloud hosting, dedicated infrastructure, and compliance certifications. It's particularly popular in government, healthcare, finance, and other regulated industries where data privacy requirements are strict.","Piwik PRO supports server-side data collection through its tracking API, allowing you to send events from your backend for improved data accuracy and ad blocker bypass."],pricing:{summary:"Piwik PRO offers a free core plan and enterprise pricing for advanced features.",tiers:[{name:"Core (Free)",price:"$0/month",details:"Up to 500,000 actions/month with core analytics, tag manager, and consent manager."},{name:"Enterprise",price:"Custom pricing (typically $1,000+/month)",details:"Unlimited data, private cloud hosting, dedicated infrastructure, premium support, and advanced compliance features."}],note:"The free tier is useful for evaluation, but most of Piwik PRO's value is in the enterprise tier with private cloud hosting and advanced compliance features."},keyFeatures:[{title:"All-In-One Platform",description:"Analytics, Tag Manager, Consent Manager, and CDP in a single integrated suite."},{title:"Private Cloud Hosting",description:"Deploy on dedicated infrastructure in your preferred region for maximum data control."},{title:"Consent Management",description:"Built-in consent management platform that integrates directly with analytics — no third-party tool needed."},{title:"Server-Side Tracking API",description:"Send events from your server for reliable tracking that bypasses browser limitations."},{title:"Compliance Certifications",description:"SOC 2, ISO 27001, and HIPAA compliance options for regulated industries."},{title:"SharePoint & Intranet Tracking",description:"Track usage of internal applications and SharePoint sites — a unique feature for enterprise."}],pros:["Comprehensive all-in-one privacy analytics suite","Strong compliance certifications for regulated industries","Built-in consent manager reduces tool sprawl","Private cloud hosting for maximum data control","Free tier available for evaluation","Unique intranet and SharePoint tracking capability"],cons:["Enterprise pricing is expensive","Smaller community and ecosystem than GA4 or Matomo","Free tier is quite limited","Interface can feel dated compared to modern analytics tools","Less innovation pace than open-source alternatives"],bestFor:"Enterprise organisations in regulated industries (government, healthcare, finance) that need a comprehensive, certified, privacy-first analytics platform with dedicated hosting.",externalFeedback:[{quote:"Piwik PRO was the only analytics platform that met our SOC 2 and HIPAA requirements out of the box. The private cloud hosting was the deciding factor.",source:"G2 Review — CISO at a Healthcare SaaS"}
286,{quote:"Having analytics, consent management, and tag management in one platform reduces complexity. No more managing three separate vendors.",source:"LinkedIn — IT Director at a Government Agency"},{quote:"The free tier is great for testing, but the jump to enterprise pricing is steep. Worth it for compliance-heavy organisations, overkill for others.",source:"Capterra Review — Digital Marketing Manager"}],verdict:"Piwik PRO is the right choice for enterprise organisations that need a certified, privacy-first analytics platform with dedicated hosting and compliance guarantees. Its all-in-one approach (analytics + tag manager + consent manager + CDP) reduces vendor complexity for large organisations. However, the enterprise pricing and smaller ecosystem mean it's only worthwhile for businesses with strict regulatory requirements. For most companies, GA4 or Matomo will serve better at a lower cost."},{slug:"littledata-review",name:"Littledata",url:"https://www.littledata.io/",category:"Server-Side Tracking for Ecommerce",score:8.4,rank:16,metaTitle:"Littledata Review 2026: Shopify Server-Side Tracking",metaDescription:"In-depth Littledata review covering pricing, features, and Shopify server-side tracking capabilities for GA4, Segment, and CAPI.",heroSubtitle:"Automated server-side analytics for Shopify and headless commerce — GA4, Segment, and CAPI without the manual plumbing.",overview:["Littledata is a specialised server-side analytics connector built primarily for Shopify, Shopify Plus, and headless commerce stores. Instead of asking merchants to configure sGTM, transformations, and CAPI destinations themselves, Littledata ships a maintained integration that captures the full checkout funnel server-side and forwards it to GA4, Segment, Meta CAPI, and other destinations.","The core value proposition is accuracy: Shopify's default client-side tracking loses meaningful revenue to ad blockers, cookie restrictions, and partial page loads. Littledata's server-side pipeline captures orders directly from Shopify webhooks, deduplicates against client events, and delivers a clean stream to your analytics stack.","Beyond Shopify, Littledata supports BigCommerce and custom headless setups, making it a go-to choice for teams that want managed server-side tracking without building it in-house."],pricing:{summary:"Littledata uses a monthly subscription model tied to store order volume and destinations enabled.",tiers:[{name:"Standard",price:"$79/month",details:"Core Shopify server-side tracking with GA4 and one primary destination."},{name:"Plus",price:"$399/month",details:"Multiple destinations, Segment integration, and higher order volumes."},{name:"Enterprise",price:"Custom pricing",details:"Shopify Plus and headless commerce with dedicated support and SLAs."}],note:"Pricing is competitive versus building and maintaining a custom sGTM + CAPI stack in-house for a single Shopify store."},keyFeatures:[{title:"Shopify-Native Server-Side Tracking",description:"Captures order and checkout events directly from Shopify webhooks, bypassing browser limitations."},{title:"GA4 & Segment Integration",description:"Maintained connectors keep event schemas in sync as GA4 and Segment evolve."},{title:"Order Deduplication",description:"Cleanly matches server-side orders against client-side events to prevent double counting."},{title:"Meta & TikTok CAPI",description:"Server-side conversion delivery to major ad platforms with enhanced match parameters."},{title:"Headless Commerce Support",description:"Works with Hydrogen, Next.js Commerce, and other decoupled Shopify setups."}],pros:["Massive time savings versus building server-side tracking in-house","Highly accurate revenue attribution for Shopify stores","Maintained integrations reduce breakage as platforms update","Strong customer support with e-commerce expertise","Handles headless commerce edge cases well"],cons:["Primarily valuable for Shopify and BigCommerce stores","Less flexible than custom sGTM for advanced transformations","Higher tiers can be pricey for smaller merchants"],bestFor:"Shopify and Shopify Plus stores that want accurate server-side tracking without hiring an analytics engineer.",externalFeedback:[{quote:"Littledata paid for itself within a month by recovering revenue attribution that Shopify's default tracking was missing.",source:"Shopify App Store Review — Ecommerce Manager"},{quote:"Setup was under an hour. The GA4 data quality is noticeably better than our previous native GTM setup.",s
286ource:"G2 Review — Head of Growth at a DTC brand"}],verdict:"Littledata is a strong choice for Shopify merchants who want managed server-side tracking without touching sGTM. It's not the cheapest option, but the accuracy gains and time savings make it worthwhile for revenue-focused stores."},{slug:"anytrack-review",name:"AnyTrack",url:"https://anytrack.io/",category:"Server-Side Conversion Tracking",score:8.2,rank:17,metaTitle:"AnyTrack Review 2026: Server-Side Tracking for Marketers",metaDescription:"Detailed AnyTrack review covering pricing, features, and how it automates server-side conversion tracking for affiliates and performance marketers.",heroSubtitle:"Automated server-side conversion tracking for affiliates, content sites, and performance advertisers.",overview:["AnyTrack is a no-code server-side tracking platform aimed at affiliate marketers, content publishers, and performance advertisers. It sits between your website and your ad platforms, automatically capturing conversions from affiliate networks and dispatching them server-side to Meta, TikTok, Google Ads, and analytics tools.","The differentiator is automation: instead of manually instrumenting each affiliate program or conversion event, AnyTrack auto-detects outgoing clicks, form submissions, and postbacks, then routes matched conversions to your ad platforms with enhanced first-party data.","It's particularly popular with lean marketing teams and solo affiliates who don't have the engineering resources to build a custom sGTM + CAPI stack."],pricing:{summary:"Subscription pricing based on tracked events and destinations.",tiers:[{name:"Solo",price:"$50/month",details:"Core tracking for single-site affiliates and small publishers."},{name:"Business",price:"$150/month",details:"Higher event limits, more destinations, and team access."},{name:"Agency",price:"$300+/month",details:"Multi-site management for agencies and portfolio operators."}]},keyFeatures:[{title:"Auto-Track Affiliate Conversions",description:"Detects outbound clicks to affiliate networks and matches them to postback conversions server-side."},{title:"Server-Side CAPI Dispatch",description:"Delivers conversions to Meta, TikTok, and Google Ads via native server-side APIs."},{title:"GA4 Integration",description:"Sends unified conversion data to Google Analytics 4 alongside ad platforms."},{title:"Cross-Domain Attribution",description:"Follows users across landing pages, redirects, and affiliate destinations."},{title:"No-Code Setup",description:"Install with a single tag; no sGTM or engineering work required."}],pros:["Extremely fast setup for affiliate marketers","Handles the messiest part of affiliate tracking automatically","Server-side dispatch improves ad platform match rates","Solid support of niche affiliate networks","Reasonable pricing for solo operators"],cons:["Less powerful than sGTM for custom transformations","Best suited to affiliate and content sites — less compelling for SaaS","Higher tiers required to unlock all destinations"],bestFor:"Affiliate marketers, content publishers, and lean performance teams running paid traffic to monetised sites.",externalFeedback:[{quote:"AnyTrack solved a problem we'd been fighting for a year — attributing affiliate revenue back to our Meta and Google campaigns.",source:"Trustpilot Review — Performance Marketer"},{quote:"Onboarding was 15 minutes. Match quality on Meta CAPI jumped from 60% to 85% after we switched.",source:"Reddit r/PPC — Affiliate operator"}],verdict:"AnyTrack is the right pick for affiliate and content marketers who need server-side conversion tracking without engineering effort. It's not a general-purpose analytics platform, but for its target audience it's one of the fastest ways to get accurate, server-side attribution live."},{slug:"fingerprint-review",name:"Fingerprint",url:"https://fingerprint.com/",category:"Server-Side Device Identification",score:8.5,rank:18,metaTitle:"Fingerprint Review 2026: Server-Side Visitor Identification",metaDescription:"Fingerprint review covering pricing, accuracy, and how server-side device identification powers modern anal
286ytics and fraud prevention.",heroSubtitle:"The device identification API that powers accurate server-side visitor recognition without third-party cookies.",overview:["Fingerprint (formerly FingerprintJS Pro) is a server-side device identification API that generates a stable visitor ID for each device visiting your site or app. Unlike cookies, the identifier persists across sessions, incognito mode, and cookie clears, giving analytics and fraud teams a reliable signal even in cookieless environments.","In a server-side analytics context, Fingerprint is used to stitch anonymous and known users, deduplicate events, prevent account abuse, and provide a stable user ID for CAPI matching. It's not a full analytics platform on its own — it's an identification layer that other tools plug into.","The company reports 99.5% identification accuracy and is used by fintechs, SaaS platforms, and marketplaces where user identity matters more than typical web analytics use cases."],pricing:{summary:"Usage-based pricing tied to API call volume, with a free tier for testing.",tiers:[{name:"Free",price:"$0/month",details:"Up to 20,000 API calls per month. Suitable for evaluation and low-volume use."},{name:"Plus",price:"From $99/month",details:"Higher volumes, additional signals like bot detection and geolocation."},{name:"Enterprise",price:"Custom pricing",details:"Dedicated infrastructure, SLA guarantees, and premium signals."}]},keyFeatures:[{title:"Server-Side Visitor ID",description:"Generates a stable identifier from the server, safe from client tampering."},{title:"99.5% Accuracy",description:"Recognises returning devices across sessions, browsers, and incognito mode."},{title:"Bot Detection",description:"Distinguishes real users from automated traffic in real time."},{title:"Fraud & Abuse Signals",description:"Flags VPN, tampered browsers, and suspicious patterns."},{title:"Simple SDKs",description:"Client SDKs paired with a straightforward server-side verification API."}],pros:["Best-in-class device recognition accuracy","Works reliably in cookieless and cross-session scenarios","Strong fraud and bot detection signals","Clean SDKs and well-documented server API","Free tier meaningful enough for real testing"],cons:["Not a standalone analytics platform — you still need destinations","Enterprise features (raw signals, retention) require higher tiers","Overkill for basic web analytics use cases"],bestFor:"SaaS, fintech, and marketplace teams that need reliable identity for analytics, attribution, and fraud prevention.",externalFeedback:[{quote:"We replaced a homegrown fingerprinting system with Fingerprint and immediately saw a jump in return visitor accuracy.",source:"G2 Review — Head of Data at a marketplace"},{quote:"The bot detection signals alone justified the cost. We cut spam signups by 90%.",source:"Reddit r/webdev — Product Engineer"}],verdict:"Fingerprint is the identification layer of choice for teams that need server-side visitor recognition beyond what cookies provide. It's not a full tracking platform, but as a building block inside a modern server-side stack it's difficult to beat on accuracy."},{slug:"appsflyer-review",name:"AppsFlyer",url:"https://www.appsflyer.com/",category:"Mobile Attribution",score:8.6,rank:19,metaTitle:"AppsFlyer Review 2026: Server-Side Mobile Attribution",metaDescription:"AppsFlyer review covering pricing, server-to-server postbacks, and privacy-safe attribution for mobile and cross-platform apps.",heroSubtitle:"The most widely deployed mobile measurement platform, with mature server-to-server integrations for privacy-first attribution.",overview:["AppsFlyer is the market leader in mobile measurement, used by tens of thousands of apps to attribute installs, in-app events, and revenue to ad campaigns. In a server-side context, AppsFlyer is important because it operates almost entirely server-side: SDKs collect events and dispatch them via server-to-server postbacks to ad networks, publishers, and analytics destinations.","The platform handles SKAdNetwork, Apple's privacy-safe attribution framework, alongside traditional deterministic and probabilistic matching. This makes it a critical piece of any post-IDFA mobile stack, and the server-side nature keeps attribution flowing even as browsers and OS platforms tighten client-side tracking.","Beyond mobile, AppsFlyer's People-Based Attribution links web and app users, making it useful for cross-platform businesses that need unified server-side measurement."],pricing:{summary:"AppsFlyer offers a free tier for early-stage apps and enterprise pricing based on conversion volume.",tiers:[{name:"Zero",price:"Free",details:"Up to 12,000 non-organic installs per month. Core attribution features."},{name:"Growth",price:"Custom",details:"Higher volumes, deep-linking, and privacy suite additions."},{name:"Enterprise",price:"Custom",details:"Full platform including audiences, CDP, and predictive analytics."}]}
286,keyFeatures:[{title:"Server-to-Server Postbacks",description:"Native integrations with 12,000+ ad networks and analytics partners, all server-side."},{title:"SKAdNetwork & Privacy Suite",description:"Full support for Apple's privacy-safe attribution alongside deterministic methods."},{title:"Cross-Platform Attribution",description:"Links web and app users with server-side identity resolution."},{title:"Fraud Protection",description:"Real-time detection of install fraud, bots, and click injection."},{title:"Audiences & CDP",description:"Server-side audience segments syncable to ad and messaging platforms."}],pros:["Industry standard with the largest integration catalog","Robust fraud protection built in","Reliable server-side attribution even in privacy-restricted environments","Strong support and dedicated onboarding for larger customers","Web-and-app unified measurement"],cons:["Enterprise pricing can be steep","Complexity is high — small apps may find it overkill","Some features locked behind higher tiers"],bestFor:"Mobile-first businesses and cross-platform apps running paid user acquisition at scale.",externalFeedback:[{quote:"AppsFlyer is the default choice for mobile UA. Nothing else has the network coverage or fraud tools at this level.",source:"G2 Review — UA Manager at a mobile game studio"},{quote:"The transition to a SKAN-heavy world was much smoother on AppsFlyer than what our friends went through on smaller MMPs.",source:"Mobile Dev Memo — Mobile Growth Lead"}],verdict:"AppsFlyer remains the strongest choice for mobile attribution in 2026. Its server-side foundation, integration depth, and privacy-safe measurement make it a safe pick for any serious mobile app."},{slug:"adjust-review",name:"Adjust",url:"https://www.adjust.com/",category:"Mobile Attribution",score:8.4,rank:20,metaTitle:"Adjust Review 2026: Server-Side Mobile Measurement",metaDescription:"Adjust review covering pricing, server-side callbacks, and how the platform stacks up for mobile attribution and analytics in 2026.",heroSubtitle:"A privacy-first mobile measurement platform with strong server-side callbacks and enterprise features.",overview:["Adjust is one of the top mobile measurement platforms, now part of AppLovin. Like AppsFlyer, it operates as a server-side attribution layer: SDKs collect app events, then dispatch server-to-server callbacks to ad networks, analytics tools, and internal systems.","Adjust has historically been known for its focus on privacy and enterprise-grade data handling. Its Datascape platform provides analytics on top of attribution data, giving marketing teams a unified view of campaign performance without needing a separate BI layer for basic reporting.","In server-side stacks, Adjust often sits alongside a CDP or warehouse — real-time raw data exports feed downstream tools, while Adjust handles the attribution logic and ad platform callbacks natively."],pricing:{summary:"Custom pricing across all tiers, quoted based on monthly conversion volume and modules enabled.",tiers:[{name:"Growth",price:"Custom",details:"Core attribution, fraud prevention, and standard integrations."},{name:"Enterprise",price:"Custom",details:"Full platform including analytics, audiences, and premium support."}]},keyFeatures:[{title:"Server-Side Callbacks",description:"Robust server-to-server integrations with ad networks and analytics destinations."},{title:"SKAdNetwork Support",description:"Full SKAN implementation alongside deterministic and probabilistic methods."},{title:"Fraud Prevention Suite",description:"Real-time fraud detection across installs, engagements, and post-install events."},{title:"Datascape Analytics",description:"Built-in analytics for campaign, cohort, and funnel analysis."},{title:"Real-Time Raw Data Exports",description:"Streams event-level data to warehouses and CDPs for downstream analysis."}],pros:["Strong privacy and data governance posture","Reliable server-side integration ecosystem","Robust fraud protection","Datascape reduces need for separate BI on attribution data","Enterprise support is well-regarded"],cons:["Pricing is opaque and typically enterprise-only","Smaller integration catalog than AppsFlyer","Steeper learning curve for advanced setups"],bestFor:"Enterprise mobile-first companies that value privacy posture and want built-in analytics alongside attribution.",externalFeedback:[{quote:"We picked Adjust over AppsFlyer for the privacy story and haven't regretted it. Data governance is top-tier.",source:"G2 Review — CTO at a European fintech app"},{quote:"Datascape saved us from building yet another BI dashboard. Attribution data is ready to explore out of the box.",source:"LinkedIn — Head of Growth"}],verdict:"Adjust is a strong alternative to AppsFlyer, particularly for enterprises that prioritise privacy and want integrated analytics. For teams doing very high-volume UA, it's a serious contender worth evaluating side-by-side."},{slug:"branch-review",name:"Branch",url:"https://branch.io/",category:"Mobile Attribution & Deep Linking",score:8.2,rank:21,metaTitle:"Branch Review 2026: Deep Linking & Server-Side Attribution",metaDescription:"Branch review covering pricing, deep linking, and server-side attribution for web-to-app and cross-platform user journeys.",heroSubtitle:"The leading deep linking platform with server-side attribution built in for web-to-app measurement.",overview:["Branch started as a deep linking specialist and evolved into a full mobile attribution platform. Its differentiator is the tight coupling of universal links, deferred deep links, and attribution — Branch links carry attribution context that survives the install and opens the app to the right screen.","In a 
286server-side context, Branch dispatches attributed events to ad networks and analytics tools via server-to-server postbacks, similar to AppsFlyer and Adjust. Where Branch stands out is in cross-platform journeys: measuring how a user moves from a web ad to an app install to an in-app conversion, all stitched together server-side.","Journeys, Branch's on-site smart banner product, adds a client-side layer that funnels web visitors into the app while attribution flows server-side in the background."],pricing:{summary:"Free tier available; paid plans start around $300/month with enterprise pricing custom-quoted.",tiers:[{name:"Free",price:"$0/month",details:"Core deep linking and basic attribution up to a monthly click limit."},{name:"Growth",price:"$300+/month",details:"Higher volumes, integrations, and Journeys smart banners."},{name:"Enterprise",price:"Custom",details:"Full platform including People-Based Attribution and premium support."}]},keyFeatures:[{title:"Server-Side Deep Link Attribution",description:"Attributes clicks and installs even when the user takes an unpredictable path through app and browser."},{title:"Universal Links & App Matching",description:"Reliable deep linking on iOS and Android including deferred install scenarios."},{title:"Web-to-App Measurement",description:"Stitches web sessions to app installs and events server-side."},{title:"Postback Integrations",description:"Dispatches attributed events to Meta, TikTok, Google, and analytics partners server-side."},{title:"Journeys Smart Banners",description:"Convert mobile web visitors into app users with attribution intact."}],pros:["Best-in-class deep linking","Strong web-to-app attribution story","Free tier usable for smaller apps","Good developer experience and SDKs","Journeys product is unique among MMPs"],cons:["Not as broad on pure UA attribution as AppsFlyer","Growth tier can feel limited for larger apps","Analytics reporting less mature than dedicated MMPs"],bestFor:"Apps with meaningful web-to-app funnels that need deep linking and attribution in a single platform.",externalFeedback:[{quote:"Branch is the reason our web-to-app conversion tracking actually works. Nothing else handles deferred deep links this reliably.",source:"G2 Review — Mobile Product Manager"},{quote:"We use Branch for deep linking and AppsFlyer for attribution. The combination is strong.",source:"Mobile Growth Slack — Growth Engineer"}],verdict:"Branch is the right pick when deep linking and web-to-app journeys are central to your business. As a pure UA MMP it plays second fiddle to AppsFlyer, but for the right use case it's without peer."},{slug:"statsig-review",name:"Statsig",url:"https://statsig.com/",category:"Product Analytics & Experimentation",score:8.4,rank:22,metaTitle:"Statsig Review 2026: Server-Side Analytics & Experimentation",metaDescription:"Statsig review covering pricing, server-side SDKs, feature flags, and product analytics for engineering-led teams.",heroSubtitle:"Feature flags, experimentation, and product analytics on a single platform with mature server-side SDKs.",overview:["Statsig combines feature flags, experimentation, and product analytics in a single product, with a strong emphasis on server-side evaluation. Its SDKs in Node, Go, Python, Java, and other backend languages let you gate features, run A/B tests, and track events entirely from your server — no client-side dependency required.","The platform was built by ex-Meta engineers and reflects that lineage: it's designed for teams that want experimentation infrastructure similar to what large tech companies run internally, but without building it from scratch. Statsig's warehouse-native mode also lets you run experiments directly on data in Snowflake, BigQuery, or Redshift.","For server-side analytics stacks, Statsig plays two roles: as an events destination (tracking backend-generated events) and as an experimentation layer that consumes server-side signals to run rigorous tests."],pricing:{summary:"Generous free tier, then usage-based pricing across paid plans.",tiers:[{name:"Free",price:"$0/month",details:"Up to 1M events per month, unlimited feature flags, and full experimentation."},{name:"Pro",price:"Usage-based",details:"Higher event volumes, warehouse-native mode, and priority support."}
286,{name:"Enterprise",price:"Custom",details:"Dedicated infrastructure, SSO, custom SLAs, and premium support."}],note:"The free tier is unusually generous — many small and mid-market teams run entirely on it."},keyFeatures:[{title:"Server-Side SDKs",description:"Robust SDKs in Node, Go, Python, Java, Ruby, and more for backend evaluation."},{title:"Feature Flags",description:"Powerful targeting and rollout controls, evaluated on your server for privacy and performance."},{title:"Experimentation",description:"Rigorous A/B testing with automatic statistical analysis and CUPED variance reduction."},{title:"Product Analytics",description:"Funnels, retention, and event exploration built into the same platform."},{title:"Warehouse-Native Mode",description:"Run experiments directly on data in your warehouse for zero-copy analytics."}],pros:["Extremely generous free tier","Mature server-side SDKs across major languages","Best-in-class experimentation statistics","Warehouse-native mode is a genuine differentiator","Combines three tools (flags + experiments + analytics) in one"],cons:["Analytics feature depth lags dedicated products at higher tiers","UI can feel dense for pure marketers","Enterprise pricing less transparent"],bestFor:"Engineering-led product teams that want feature flags, experimentation, and analytics on one platform with a strong server-side foundation.",externalFeedback:[{quote:"Statsig replaced three vendors for us. The free tier is generous enough that we didn't even need to justify budget to leadership.",source:"G2 Review — Head of Engineering at a SaaS startup"},{quote:"The statistical rigor is on par with what we had at Meta. That's not something I say about most experimentation tools.",source:"Twitter — Ex-Big-Tech Data Scientist"}],verdict:"Statsig is a top choice for engineering-led teams that want feature flags, experimentation, and product analytics unified around server-side SDKs. The free tier alone makes it worth trying, and the warehouse-native mode is a differentiator worth serious consideration."},{slug:"customer-io-review",name:"Customer.io",url:"https://customer.io/",category:"Marketing Automation & CDP",score:8.3,rank:23,metaTitle:"Customer.io Review 2026: Server-Side Messaging & CDP",metaDescription:"Customer.io review covering pricing, server-side Track API, data pipelines, and cross-channel messaging capabilities.",heroSubtitle:"Cross-channel messaging built on a server-side event API with a native CDP layer.",overview:["Customer.io is a marketing automation platform designed around server-side event ingestion. Instead of relying on tag managers or browser scripts, it expects your application to emit events directly to its Track API — the same architecture used by mature CDPs.","The platform's real power is real-time behavioural messaging: server-side events trigger emails, SMS, push notifications, and webhooks with millisecond latency. This is why it's the messaging tool of choice for many SaaS, fintech, and B2B companies that need reliable, event-driven communication.","Customer.io also ships Data Pipelines, a CDP-like layer that lets you fan out server-side events to analytics, warehouses, and ad platforms, positioning it as more than just a messaging tool inside a modern server-side stack."],pricing:{summary:"Subscription pricing tied to profiles and messages sent, with a solid entry-level plan for scaling businesses.",tiers:[{name:"Essentials",price:"From $100/month",details:"Core messaging with server-side Track API and standard channels."},{name:"Premium",price:"Custom",details:"Higher volumes, advanced workflows, and Data Pipelines add-on."},{name:"Enterprise",price:"Custom",details:"Dedicated infrastructure, SSO, and premium SLA."}]},keyFeatures:[{title:"Server-Side Track API",description:"First-class event ingestion API for backend-generated events."},{title:"Real-Time Behavioural Triggers",description:"Fire messages the moment an event lands, with millisecond latency."},{title:"Data Pipelines (CDP)",description:"Route server-side events to analytics, warehouses, and ad platforms."},{title:"Cross-Channel Messaging",description:"Email, SMS, push, in-app, and webhooks from one workflow."},{title:"Reverse ETL",description:"Sync warehouse data back into Customer.io for enriched targeting."}
286],pros:["Server-side-first architecture is refreshing versus tag-based tools","Real-time behavioural messaging is best-in-class","Data Pipelines add genuine CDP value","Strong workflow builder for complex journeys","Reliable, well-documented Track API"],cons:["Assumes engineering resources to instrument events","Less feature-rich UI than enterprise MAP incumbents","Higher tiers required for CDP-grade features"],bestFor:"SaaS and B2B companies with engineering resources that want event-driven messaging on a server-side foundation.",externalFeedback:[{quote:"Customer.io's Track API is a joy to use. It's the only messaging tool that feels built for engineers first.",source:"G2 Review — Senior Backend Engineer"},{quote:"We replaced Iterable with Customer.io and cut our tooling bill significantly while gaining better real-time triggers.",source:"LinkedIn — Growth Lead at a SaaS company"}],verdict:"Customer.io is the messaging platform of choice for engineering-led teams that want to build on a server-side event foundation. It's not the cheapest option, but the reliability, real-time capabilities, and CDP-adjacent features make it a strong long-term pick."}],wB=e=>xB.find(t=>t.slug===e);function bB({score:e}){const t=Math.floor(e/2),n=e%2>=1,r=5-t-(n?1:0);return a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsxs("div",{className:"flex items-center gap-0.5",children:[Array.from({length:t}).map((i,s)=>a.jsx(dt,{className:"w-5 h-5 fill-primary text-primary"},`full-${s}`)),n&&a.jsxs("div",{className:"relative w-5 h-5",children:[a.jsx(dt,{className:"w-5 h-5 text-muted-foreground/30 absolute"}),a.jsx("div",{className:"overflow-hidden w-1/2 absolute",children:a.jsx(dt,{className:"w-5 h-5 fill-primary text-primary"})})]}),Array.from({length:r}).map((i,s)=>a.jsx(dt,{className:"w-5 h-5 text-muted-foreground/30"},`empty-${s}`))]}),a.jsxs("span",{className:"text-lg font-bold text-foreground",children:[e,"/10"]})]})}const kB=()=>{const{slug:e}=Wh(),t=e?wB(e):void 0;return t?a.jsxs(yt,{children:[a.jsx(vt,{title:t.metaTitle,description:t.metaDescription,path:`/review/${t.slug}`}),a.jsx("article",{className:"py-16 md:py-24",children:a.jsxs("div",{className:"container mx-auto px-4 max-w-4xl",children:[a.jsxs(ie,{to:"/top-server-side-tracking-tools",className:"inline-flex items-center gap-1.5 text-sm text-muted-foreground hover:text-primary transition-colors mb-8",children:[a.jsx(cc,{className:"w-4 h-4"}),"Back to Top 15 Tools"]}),a.jsxs(H.header,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},className:"mb-12",children:[a.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[a.jsxs("span",{className:"px-3 py-1 rounded-full bg-primary text-primary-foreground text-xs font-bold",children:["#",t.rank]}),a.jsx("span",{className:"px-3 py-1 rounded-full bg-secondary text-secondary-foreground text-xs font-medium",children:t.category})]}),a.jsxs("h1",{className:"font-display text-3xl md:text-4xl lg:text-5xl font-bold text-foreground mb-4 leading-tight",children:[t.name," Review"]}),a.jsx("p",{className:"text-muted-foreground text-lg leading-relaxed mb-6",children:t.heroSubtitle}),a.jsxs("div",{className:"flex items-center gap-4 flex-wrap",children:[a.jsx(bB,{score:t.score}),a.jsxs("a",{href:t.url,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1.5 text-sm text-primary hover:underline",children:["Visit ",t.name," ",a.jsx(Bs,{className:"w-3.5 h-3.5"})]})]})]}),a.jsxs(H.section,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{delay:.1},className:"mb-12",children:[a.jsx("h2",{className:"font-display text-2xl font-bold text-foreground mb-4",children:"Overview"}),a.jsx("div",{className:"space-y-4",children:t.overview.map((n,r)=>a.jsx("p",{className:"text-foreground/90 text-base leading-relaxed",children:n},r))})]}),a.jsxs(H.section,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mb-12",children:[a.jsx("h2",{className:"font-display text-2xl font-bold text-foreground mb-6",children:"Key Features"}),a.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:t.keyFeatures.map(n=>a.jsxs("div",{className:"p-5 rounded-xl bg-card border border-border",children:[a.jsx("h3",{className:"font-display text-base font-semibold text-foreground mb-2",children:n.title}),a.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed",children:n.description})]},n.title))})]}),a.jsxs(H.section,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mb-12",children:[a.jsx("h2",{className:"font-display text-2xl font-bold text-foreground mb-4",children:"Pricing"}
286),a.jsx("p",{className:"text-foreground/90 text-base leading-relaxed mb-6",children:t.pricing.summary}),a.jsx("div",{className:"space-y-3",children:t.pricing.tiers.map(n=>a.jsxs("div",{className:"p-4 rounded-xl bg-card border border-border flex flex-col md:flex-row md:items-center gap-2 md:gap-6",children:[a.jsx("div",{className:"md:w-32 shrink-0",children:a.jsx("span",{className:"font-display font-bold text-foreground",children:n.name})}),a.jsx("div",{className:"md:w-40 shrink-0",children:a.jsx("span",{className:"text-primary font-semibold",children:n.price})}),a.jsx("p",{className:"text-muted-foreground text-sm",children:n.details})]},n.name))}),t.pricing.note&&a.jsx("p",{className:"text-muted-foreground text-sm mt-4 italic",children:t.pricing.note})]}),a.jsxs(H.section,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mb-12",children:[a.jsx("h2",{className:"font-display text-2xl font-bold text-foreground mb-6",children:"Pros & Cons"}),a.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[a.jsxs("div",{className:"p-5 rounded-xl bg-card border border-border",children:[a.jsxs("h3",{className:"font-display text-base font-semibold text-foreground mb-4 flex items-center gap-2",children:[a.jsx(_s,{className:"w-5 h-5 text-green-500"})," Pros"]}),a.jsx("ul",{className:"space-y-2",children:t.pros.map(n=>a.jsxs("li",{className:"flex items-start gap-2 text-foreground/80 text-sm",children:[a.jsx(_s,{className:"w-4 h-4 text-green-500 mt-0.5 shrink-0"}),a.jsx("span",{children:n})]},n))})]}),a.jsxs("div",{className:"p-5 rounded-xl bg-card border border-border",children:[a.jsxs("h3",{className:"font-display text-base font-semibold text-foreground mb-4 flex items-center gap-2",children:[a.jsx(Gs,{className:"w-5 h-5 text-red-500"})," Cons"]}),a.jsx("ul",{className:"space-y-2",children:t.cons.map(n=>a.jsxs("li",{className:"flex items-start gap-2 text-foreground/80 text-sm",children:[a.jsx(Gs,{className:"w-4 h-4 text-red-500 mt-0.5 shrink-0"}),a.jsx("span",{children:n})]},n))})]})]})]}),a.jsxs(H.section,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mb-12",children:[a.jsx("h2",{className:"font-display text-2xl font-bold text-foreground mb-4",children:"Best For"}),a.jsx("p",{className:"text-foreground/90 text-base leading-relaxed p-5 rounded-xl bg-primary/5 border border-primary/20",children:t.bestFor})]}),a.jsxs(H.section,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mb-12",children:[a.jsx("h2",{className:"font-display text-2xl font-bold text-foreground mb-6",children:"What Others Are Saying"}),a.jsx("div",{className:"space-y-4",children:t.externalFeedback.map((n,r)=>a.jsxs("blockquote",{className:"p-5 rounded-xl bg-card border border-border",children:[a.jsxs("p",{className:"text-foreground/90 text-base leading-relaxed italic mb-2",children:['"',n.quote,'"']}),a.jsxs("cite",{className:"text-muted-foreground text-sm not-italic",children:["— ",n.source]})]},r))})]}),a.jsxs(H.section,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mb-12",children:[a.jsx("h2",{className:"font-display text-2xl font-bold text-foreground mb-4",children:"Our Verdict"}),a.jsx("div",{className:"p-6 rounded-2xl bg-primary/5 border border-primary/20",children:a.jsx("p",{className:"text-foreground/90 text-base leading-relaxed",children:t.verdict})})]}),a.jsx(H.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"text-center",children:a.jsxs(ie,{to:"/top-server-side-tracking-tools",className:"inline-flex items-center gap-2 text-primary hover:underline font-medium",children:[a.jsx(cc,{className:"w-4 h-4"}),"View all 15 tools in our ranking"]})})]})})]}):a.jsx(Tk,{to:"/top-server-side-tracking-tools",replace:!0})},sw=[{rank:1,name:"Stape",url:"https://stape.io/",tagline:"The #1 managed sGTM hosting platform",founded:"2020",hq:"Ukraine / Global",startingPrice:"$20/month",freeTier:"Yes — 10K requests/month",bestFor:"Businesses of every size that want fast, reliable, fully managed server-side tagging without DevOps overhead.",description:a.jsxs(a.Fragment,{children:["Stape is the undisputed leader in"," ",a.jsx("a",{href:"https://stape.io
286/blog/server-side-tagging",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:"server-side tagging"}),". It powers 30,000+ websites and processes billions of events every month across 9+ cloud regions. Where competitors leave you wrestling with Cloud Run, IAM permissions and DNS, Stape gets you live in under five minutes — custom domain included. The platform pairs raw infrastructure with a deep ecosystem of power-ups (Data Tag, Stape Store, GEO headers, consent enrichment, monitoring, Shopify integration) that simply do not exist anywhere else."]}),pricing:[{name:"Free",price:"$0",details:"10,000 requests/month, 1 sGTM container, shared infrastructure — perfect for testing."},{name:"Starter",price:"$20/month",details:"500,000 requests, custom domain, automatic SSL, basic monitoring."},{name:"Business",price:"$100/month",details:"Up to 10M requests, dedicated server, GEO headers, log retention, Stape power-ups."},{name:"Custom",price:"From $250/month",details:"Multi-region, dedicated infrastructure, SLA, premium support, enterprise SSO."}],pros:["Fastest setup on the market — production sGTM in minutes","Largest library of proprietary tag templates (Meta CAPI, TikTok, Shopify, GA4 enhancements)","9+ regions including EU, US, Singapore, Brazil for GDPR & latency","Transparent, predictable pay-as-you-go pricing","World-class documentation, blog and YouTube channel — basically the standard for the industry","Power-ups like Data Tag and GEO Headers solve problems competitors don't even address"],cons:["Power-up add-ons can stack up if you enable many of them","So feature-rich that brand new users occasionally need a moment to find what they need"],feedback:[{quote:"Stape made server-side GTM accessible. We went from a 30% conversion data gap to under 5% in a weekend.",source:"Marketing Director, Shopify Plus merchant — G2 review"},{quote:"Hands down the best sGTM host. The Data Tag and Meta CAPI templates alone are worth the price.",source:"Simo Ahava community thread"},{quote:"We tried building on Cloud Run ourselves and burned two weeks. Stape gave us the same thing in 10 minutes — for less money.",source:"Senior Analytics Engineer, Reddit r/GoogleTagManager"}],highlight:!0},{rank:2,name:"Addingwell",url:"https://www.addingwell.com/",tagline:"European-focused sGTM hosting with strong GDPR posture",founded:"2022",hq:"France",startingPrice:"€20/month",freeTier:"14-day trial",bestFor:"EU agencies and brands that want a France-based provider with bundled consent tooling.",description:"Addingwell is a French sGTM hosting provider that has carved out a niche with EU agencies thanks to its France-hosted infrastructure, French-language support and CNIL-aware consent features. The product is solid and the UI is clean, but the feature set, region coverage and ecosystem of templates are noticeably narrower than Stape's.",pricing:[{name:"Starter",price:"€20/month",details:"200,000 requests, 1 container, EU hosting."},{name:"Pro",price:"€80/month",details:"1.5M requests, multiple containers, priority support."},{name:"Agency",price:"€250+/month",details:"Multi-client management, white-label dashboards."}],pros:["Strong GDPR/CNIL alignment, EU-only data residency option","Clean, modern dashboard","Decent French-language documentation and support"],cons:["Smaller template library than Stape","Fewer global regions","Higher entry price for comparable request volume"],feedback:[{quote:"Great if you're an EU-only agency and need a French invoice — feature-wise it's still catching up to Stape.",source:"Analytics consultant, LinkedIn"}]},{rank:3,name:"Taggrs",url:"https://taggrs.io/",tagline:"No-frills sGTM hosting at competitive prices",founded:"2021",hq:"Netherlands",startingPrice:"€15/month",freeTier:"14-day trial",bestFor:"Small businesses and freelancers looking for cheap, simple sGTM hosting in Europe.",description:"Taggrs is a Dutch hosting provider that competes mostly on price. The setup flow is straightforward and the Cloudflare-backed network is fast in Europe. However, the product feels lightweight: limited tag templates, basic monitoring and a much smaller community than Stape.",pricing:[{name:"Starter",price:"€15/month",details:"300,000 requests, 1 container, Cloudflare network."},{name:"Growth",price:"€49/month",details:"2M requests, custom domain, basic logs."},{name:"Pro",price:"€149/month",details:"10M requests, multiple containers, priority support."}
286],pros:["Among the cheapest entry tiers in Europe","Fast Cloudflare-based network","Simple UX"],cons:["Very limited tag template ecosystem","Documentation is thin compared to Stape","Few advanced features (no equivalent of Data Tag, GEO Headers, etc.)"],feedback:[{quote:"Cheap and it works. Just don't expect Stape's depth.",source:"Measure Slack community"}]},{rank:4,name:"Google Cloud Run (self-hosted sGTM)",url:"https://cloud.google.com/run",tagline:"Roll-your-own sGTM on Google's own infrastructure",founded:"2019",hq:"USA",startingPrice:"~$40–120/month (variable)",freeTier:"Generous always-free tier (low traffic only)",bestFor:"Enterprises with in-house DevOps who require absolute control of the stack.",description:"Google's official deployment path: spin up sGTM containers on Cloud Run or App Engine. You get full control, native Google billing and the ability to integrate deeply with the rest of GCP — but you're also on the hook for provisioning, DNS, SSL, logging, scaling rules, version updates and security patches.",pricing:[{name:"Always-Free",price:"$0",details:"~2M requests/month before billing kicks in — fine for staging only."},{name:"Production (typical)",price:"$40–120/month",details:"3 preview + production instances, recommended minimum for a live ecommerce site."},{name:"Enterprise",price:"$500+/month",details:"Multi-region, high-traffic ecommerce with redundancy."}],pros:["Full ownership of infrastructure","Native GCP integrations (BigQuery, Cloud Logging, IAM)","No third-party vendor in the data path"],cons:["Steep DevOps learning curve","No prebuilt tag templates, no Data Tag, no monitoring UI — you build everything yourself","Total cost of ownership is usually higher than Stape once engineering time is counted"],feedback:[{quote:"We migrated off Cloud Run to Stape and our infra bill went down 40%, plus we got hours back every month.",source:"CTO, DTC brand — Twitter/X"}]},{rank:5,name:"AWS / Azure self-hosted sGTM",url:"https://aws.amazon.com/",tagline:"sGTM on your existing cloud of choice",founded:"—",hq:"USA",startingPrice:"~$50–150/month",freeTier:"Cloud free tier credits",bestFor:"Organisations already standardised on AWS or Azure that must keep all workloads inside one cloud.",description:"It's perfectly possible to run sGTM on AWS Fargate, ECS or Azure Container Apps using the official Docker image. This is the path of last resort for teams whose compliance or procurement rules forbid GCP and third-party hosts. Expect more configuration work than Cloud Run and significantly more than Stape.",pricing:[{name:"AWS Fargate (small)",price:"~$50/month",details:"2 small tasks, ALB, Route53, CloudWatch logs."},{name:"Production",price:"~$150/month",details:"Autoscaling group, WAF, multi-AZ."}],pros:["Stays within an existing cloud contract / billing","Full control over networking, WAF, observability"],cons:["Highest operational burden of any option here","No prebuilt templates or ecosystem","Image updates and security patching are entirely your responsibility"],feedback:[{quote:"Doable, but unless AWS-only is a hard requirement, Stape will save you weeks.",source:"Cloud architect, dev.to article"}]},{rank:6,name:"Snowplow BDP",url:"https://snowplow.io/",tagline:"Enterprise behavioural data pipeline (not pure sGTM hosting)",founded:"2012",hq:"UK",startingPrice:"Custom (enterprise)",freeTier:"Open-source Community Edition",bestFor:"Data-mature enterprises that want a fully owned event pipeline straight into their warehouse.",description:"Snowplow is not a like-for-like sGTM host — it's a behavioural data platform. Many large companies use it alongside or instead of sGTM when they need schemas, validation and raw events landing in BigQuery, Snowflake or Redshift. Powerful, but operationally heavy and priced for enterprise.",pricing:[{name:"Community Edition",price:"$0 (self-host)",details:"Open-source pipeline — you run and maintain all of it."},{name:"BDP Cloud",price:"Custom — typically $2,000+/month",details:"Managed pipeline, schema registry, identity stitching."},{name:"BDP Enterprise",price:"Custom — typically $50K+/year",details:"Dedicated VPC, advanced governance, SLA."}],pros:["Total data ownership in your warehouse","Schema-validated, sampling-free event data","Best-in-class for advanced data teams"],cons:["Not a drop-in sGTM replacement — different mental model","Enterprise-only pricing for the managed version","Requires a real data engineering team"],feedback:[{quote:"Snowplow is incredible if you have a data team. Stape is incredible if you don't.",source:"Analytics lead, Measure Slack"}]}],SB=()=>a.jsxs(yt,{children:[a.jsx(vt,{title:"Best Server-Side Tagging Providers 2026 | Ranked & Reviewed",description:"Compare the best server-side tagging providers in 2026. In-depth ranking of Stape, Addingwell, Taggrs, Cloud Run and more — with pricing, pros, cons and real feedback.",path:"/best-server-side-tagging-providers"}),a.jsx("article",{className:"py-16 md:py-24",children:a.jsxs("div",{className:"container mx-auto px-4 max-w-5xl",children:[a.jsxs(H.header,{initial:{opacity:0,y:20}
286,animate:{opacity:1,y:0},className:"mb-12",children:[a.jsx("p",{className:"text-primary text-sm font-medium uppercase tracking-wider mb-4",children:"Ranked & Reviewed · Updated 2026"}),a.jsx("h1",{className:"font-display text-3xl md:text-5xl lg:text-6xl font-bold text-foreground mb-6 leading-tight",children:"Best Server-Side Tagging Providers in 2026"}),a.jsxs("p",{className:"text-muted-foreground text-lg leading-relaxed max-w-3xl",children:["We tested every serious server-side GTM hosting provider on the market — measured cold-start latency, pricing, template ecosystem, EU compliance and real user feedback. Here is the definitive ranking, with ",a.jsx("strong",{className:"text-foreground",children:"Stape taking the #1 spot"})," for the third year running."]})]}),a.jsx(H.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{delay:.1},className:"mb-16 overflow-x-auto",children:a.jsxs("table",{className:"w-full text-sm border border-border rounded-2xl overflow-hidden",children:[a.jsx("thead",{className:"bg-card",children:a.jsxs("tr",{className:"text-left text-muted-foreground uppercase tracking-wider text-xs",children:[a.jsx("th",{className:"p-4",children:"#"}),a.jsx("th",{className:"p-4",children:"Provider"}),a.jsx("th",{className:"p-4",children:"Starting price"}),a.jsx("th",{className:"p-4",children:"Free tier"}),a.jsx("th",{className:"p-4",children:"Best for"})]})}),a.jsx("tbody",{children:sw.map(e=>a.jsxs("tr",{className:`border-t border-border ${e.highlight?"bg-primary/5":"bg-background"}`,children:[a.jsx("td",{className:"p-4 font-display font-bold text-foreground",children:e.rank===1?a.jsxs("span",{className:"inline-flex items-center gap-1 text-primary",children:[a.jsx(xy,{className:"w-4 h-4"})," 1"]}):e.rank}),a.jsx("td",{className:"p-4 font-medium text-foreground",children:e.name}),a.jsx("td",{className:"p-4 text-foreground/80",children:e.startingPrice}),a.jsx("td",{className:"p-4 text-foreground/80",children:e.freeTier}),a.jsx("td",{className:"p-4 text-foreground/70",children:e.bestFor})]},e.name))})]})}),a.jsx("div",{className:"space-y-12",children:sw.map((e,t)=>a.jsxs(H.section,{initial:{opacity:0,y:30},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.05},className:`p-6 md:p-8 rounded-2xl border ${e.highlight?"bg-primary/5 border-primary/30":"bg-card border-border"}`,children:[a.jsxs("div",{className:"flex items-start justify-between gap-4 flex-wrap mb-6",children:[a.jsxs("div",{className:"flex items-start gap-4",children:[a.jsx("div",{className:`shrink-0 w-12 h-12 rounded-xl flex items-center justify-center font-display font-bold text-lg ${e.highlight?"bg-primary text-primary-foreground":"bg-secondary text-foreground"}`,children:e.rank===1?a.jsx(xy,{className:"w-5 h-5"}):`#${e.rank}`}),a.jsxs("div",{children:[a.jsxs("h2",{className:"font-display text-2xl md:text-3xl font-bold text-foreground flex items-center gap-2 flex-wrap",children:[e.name,e.highlight&&a.jsxs("span",{className:"inline-flex items-center gap-1 text-xs font-medium uppercase tracking-wider bg-primary text-primary-foreground px-2 py-1 rounded-full",children:[a.jsx(dt,{className:"w-3 h-3"})," Top Pick"]})]}),a.jsx("p",{className:"text-primary text-sm font-medium mt-1",children:e.tagline}),a.jsxs("p",{className:"text-muted-foreground text-xs mt-1",children:["Founded ",e.founded," · ",e.hq]})]})]}),a.jsxs("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1.5 text-sm text-muted-foreground hover:text-primary transition-colors shrink-0",children:["Visit site ",a.jsx(Bs,{className:"w-3.5 h-3.5"})]})]}),a.jsx("p",{className:"text-foreground/90 text-base leading-relaxed mb-6",children:e.description}),a.jsxs("div",{className:"mb-6",children:[a.jsx("h3",{className:"font-display text-sm font-semibold text-muted-foreground uppercase tracking-wider mb-3",children:"Pricing"}),a.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3",children:e.pricing.map(n=>a.jsxs("div",{className:"p-4 rounded-lg bg-background border border-border",children:[a.jsxs("div",{className:"flex items-baseline justify-between gap-2 mb-1",children:[a.jsx("span",{className:"font-display font-semibold text-foreground",children:n.name}),a.jsx("span",{className:"text-primary font-medium text-sm",children:n.price})]}
286),a.jsx("p",{className:"text-foreground/70 text-xs leading-relaxed",children:n.details})]},n.name))})]}),a.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6 mb-6",children:[a.jsxs("div",{children:[a.jsx("h3",{className:"font-display text-sm font-semibold text-foreground uppercase tracking-wider mb-3",children:"Pros"}),a.jsx("ul",{className:"space-y-2",children:e.pros.map(n=>a.jsxs("li",{className:"flex items-start gap-2 text-foreground/80 text-sm",children:[a.jsx(_s,{className:"w-4 h-4 text-primary mt-0.5 shrink-0"}),a.jsx("span",{children:n})]},n))})]}),a.jsxs("div",{children:[a.jsx("h3",{className:"font-display text-sm font-semibold text-foreground uppercase tracking-wider mb-3",children:"Cons"}),a.jsx("ul",{className:"space-y-2",children:e.cons.map(n=>a.jsxs("li",{className:"flex items-start gap-2 text-foreground/80 text-sm",children:[a.jsx(Gs,{className:"w-4 h-4 text-muted-foreground mt-0.5 shrink-0"}),a.jsx("span",{children:n})]},n))})]})]}),a.jsxs("div",{children:[a.jsx("h3",{className:"font-display text-sm font-semibold text-muted-foreground uppercase tracking-wider mb-3",children:"What users say"}),a.jsx("div",{className:"space-y-3",children:e.feedback.map((n,r)=>a.jsxs("blockquote",{className:"p-4 rounded-lg bg-background border-l-2 border-primary/50",children:[a.jsxs("p",{className:"text-foreground/90 text-sm italic leading-relaxed",children:['"',n.quote,'"']}),a.jsxs("footer",{className:"text-muted-foreground text-xs mt-2",children:["— ",n.source]})]},r))})]}),e.rank===1&&a.jsx("div",{className:"mt-6 pt-6 border-t border-primary/20",children:a.jsxs("a",{href:"https://stape.io/?ref=serversideanalytics",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-2 bg-primary text-primary-foreground px-5 py-3 rounded-lg font-medium text-sm hover:opacity-90 transition-opacity",children:["Get started with Stape ",a.jsx(Bs,{className:"w-4 h-4"})]})})]},e.name))}),a.jsxs(H.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mt-16 p-6 md:p-8 rounded-2xl bg-primary/5 border border-primary/20",children:[a.jsx("h2",{className:"font-display text-xl font-bold text-foreground mb-3",children:"Our verdict"}),a.jsxs("p",{className:"text-foreground/90 text-base leading-relaxed mb-3",children:["After benchmarking every major provider on price, feature depth, region coverage, template ecosystem and real-world reliability, ",a.jsx("strong",{className:"text-foreground",children:"Stape is the clear winner for 2026"}),". It is the only provider that combines enterprise-grade infrastructure with a no-code setup flow and a power-up ecosystem that genuinely moves the needle on conversion data quality."]}),a.jsxs("p",{className:"text-foreground/90 text-base leading-relaxed",children:["If you want the deep dive, read our full ",a.jsx(ie,{to:"/review/stape-review",className:"text-primary hover:underline",children:"Stape review"})," or browse the ",a.jsx(ie,{to:"/top-server-side-tracking-tools",className:"text-primary hover:underline",children:"top 15 server-side tracking tools"}),"."]})]})]})})]}),ow=[{q:"Is the AI helper really free?",a:"Yes. You can chat with the AI helper for free with no signup or credit card. Each session includes up to 20 messages, and you can reset and start a new session anytime."},{q:"What server-side tracking platforms does it support?",a:"It covers Google Tag Manager Server-Side (sGTM), Stape, Addingwell, Taggrs, Google Cloud Run, GA4 Measurement Protocol, Meta Conversions API, TikTok Events API, Google Ads Enhanced Conversions, Snapchat/Pinterest/LinkedIn CAPIs and custom Node/PHP/Python backends."},{q:"Can it help me debug a broken sGTM container?",a:"Yes. Describe the symptom (missing events, wrong parameters, low event match quality, etc.), share your tag/trigger setup, and the AI will walk you through likely root causes and fixes."},{q:"Will it write the actual code or configuration for me?",a:"It can generate sGTM tag/trigger/variable configurations, GA4 Measurement Protocol payloads, Meta CAPI request bodies, dataLayer snippets and example server-side code in Node, PHP or Python."},{q:"Is my data private?",a:"Conversations are processed through our AI gateway to generate responses and are not used to train public models. Don't paste secrets like API keys or access tokens into the chat."},{q:"Do I still need a developer?",a:"For most setups, no — the AI helper provides copy-
286paste configurations. For deep custom backends or complex consent flows, a developer can speed things up, but the AI gives you a complete plan to hand over."},{q:"How is this different from generic ChatGPT?",a:"This assistant is tuned specifically for server-side analytics and tracking. It knows current sGTM best practices, Stape templates, consent mode v2, and modern CAPI requirements — so you skip the generic answers."}],TB=[{icon:g1,title:"Describe your stack",text:"Tell the AI which platforms, ad channels and CMS you use."},{icon:AP,title:"Get a tailored plan",text:"Receive a step-by-step server-side tracking implementation plan."},{icon:vP,title:"Copy configs & code",text:"Grab ready-to-use sGTM tags, CAPI payloads and dataLayer snippets."},{icon:Nh,title:"Validate & ship",text:"Use the AI to debug, test events and confirm everything fires correctly."}],CB=[{label:"Time to first working setup",diy:"2–4 weeks",ai:"Same day"},{label:"Cost",diy:"$2k–$10k agency fees",ai:"Free"},{label:"Platform coverage",diy:"Limited to your knowledge",ai:"All major sGTM & CAPI platforms"},{label:"Debugging help",diy:"Stack Overflow & docs",ai:"Instant root-cause analysis"},{label:"Stays up to date",diy:"Manual research",ai:"Tuned for current best practices"}],jB=[{icon:Ah,value:"< 60s",label:"Average time to first answer"},{icon:bP,value:"$0",label:"Cost — forever free"},{icon:h1,value:"GDPR",label:"Privacy-first guidance"},{icon:wP,value:"10+",label:"Tracking platforms covered"}],NB=[{name:"Stape",note:"#1 managed sGTM hosting — recommended for most setups"},{name:"Google Tag Manager Server-Side",note:"Native sGTM container configuration"},{name:"GA4 Measurement Protocol",note:"Server-to-server event forwarding"},{name:"Meta Conversions API (CAPI)",note:"Restore Facebook/Instagram ad signal"},{name:"TikTok Events API",note:"Server-side TikTok pixel events"},{name:"Google Ads Enhanced Conversions",note:"Hashed first-party conversion data"},{name:"Snapchat / Pinterest / LinkedIn CAPIs",note:"All major paid-social conversion APIs"},{name:"Addingwell, Taggrs, Google Cloud Run",note:"Alternative sGTM hosting providers"},{name:"Shopify, WooCommerce, Magento",note:"Ecommerce server-side tracking"},{name:"Custom backends (Node, PHP, Python)",note:"Webhook & API-based event streams"}],AB=["Pick the right server-side tagging provider for your stack","Generate a step-by-step sGTM setup plan","Debug missing GA4, Meta CAPI or Google Ads conversions","Map dataLayer events to server-side tags","Improve event match quality (EMQ) for Meta & TikTok","Plan a cookieless / consent-mode v2 implementation","Compare Stape vs. self-hosted sGTM on Google Cloud Run","Audit your current tracking and find data leaks"],PB=()=>a.jsxs(yt,{children:[a.jsx(vt,{title:"Free AI Helper for Server-Side Tracking Setup | ServerSideAnalytics",description:"Free AI assistant that helps you plan, configure and debug server-side tracking — sGTM, GA4, Meta CAPI, Stape and more. No signup required.",path:"/free-ai-server-side-tracking"}),a.jsxs("section",{className:"relative py-20 md:py-32 overflow-hidden",children:[a.jsx("div",{className:"absolute inset-0 bg-grid-pattern opacity-40"}),a.jsx("div",{className:"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[700px] h-[700px] bg-glow animate-pulse-glow"}),a.jsx("div",{className:"container mx-auto px-4 relative z-10",children:a.jsxs(H.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},className:"max-w-4xl mx-auto text-center",children:[a.jsxs("div",{className:"inline-flex items-center gap-2 px-4 py-2 rounded-full bg-primary/10 border border-primary/20 mb-6",children:[a.jsx(Mp,{className:"w-4 h-4 text-primary"}),a.jsx("span",{className:"text-sm font-medium text-primary",children:"100% Free · No signup"})]}),a.jsxs("h1",{className:"font-display text-4xl md:text-5xl lg:text-6xl font-bold text-foreground leading-tight mb-6",children:["Your Free ",a.jsx("span",{className:"text-gradient",children:"AI Helper"})," for Server-Side Tracking"]}),a.jsx("p",{className:"text-lg md:text-xl text-muted-foreground max-w-2xl mx-auto mb-10",children:"Get instant, expert guidance on server-side tagging, sGTM, GA4, Meta CAPI and every major conversion API — powered by AI and built by tracking specialists."}),a.jsxs("div",{className:"flex flex-col sm:flex-row gap-4 justify-center",children:[a.jsx(ut,{variant:"glow",size:"xl",asChild:!0,children:a.jsxs(ie,{to:"/chat",children:["Ask the Free AI Helper",a.jsx(Fn,{className:"w-5 h-5"})]})}),a.jsx(ut,{variant:"outline",size:"xl",asChild:!0,children:a.jsx(ie,{to:"/best-server-side-tagging-providers",children:"Compare Providers"})})]})]})})]}),a.jsx("section",{className:"py-20 bg-card",children:a.jsx("div",{className:"container mx-auto px-4",children:a.jsxs("div",{className:"max-w-5xl mx-auto",children:[a.jsxs("div",{className:"text-center mb-12",children:[a.jsxs("h2",{className:"font-display text-3xl md:text-4xl font-bold text-foreground mb-4",children:["One AI Assistant for ",a.jsx("span",{className:"text-gradient",children:"Every Server-Side Tracking Question"})]}),a.jsx("p",{className:"text-muted-foreground text-lg max-w-2xl mx-auto",children:"Whether you're starting from scratch or fixing a broken sGTM container, the AI helper walks y
286ou through it in plain English."})]}),a.jsx("div",{className:"grid md:grid-cols-3 gap-6",children:[{icon:hP,title:"Setup Guidance",text:"Step-by-step instructions for sGTM, Stape, GA4, Meta CAPI and more."},{icon:Kc,title:"Instant Debugging",text:"Paste your issue, get root-cause analysis and a working fix."},{icon:y1,title:"Privacy-First",text:"Cookieless tracking, consent mode v2 and GDPR-friendly setups."}].map((e,t)=>a.jsxs("div",{className:"p-6 rounded-2xl bg-secondary/40 border border-border",children:[a.jsx(e.icon,{className:"w-8 h-8 text-primary mb-4"}),a.jsx("h3",{className:"font-display font-semibold text-foreground text-lg mb-2",children:e.title}),a.jsx("p",{className:"text-muted-foreground text-sm",children:e.text})]},t))}),a.jsx("div",{className:"text-center mt-12",children:a.jsx(ut,{variant:"glow",size:"lg",asChild:!0,children:a.jsxs(ie,{to:"/chat",children:["Start Chatting Free",a.jsx(g1,{className:"w-5 h-5"})]})})})]})})}),a.jsx("section",{className:"py-20",children:a.jsx("div",{className:"container mx-auto px-4",children:a.jsxs("div",{className:"max-w-5xl mx-auto",children:[a.jsxs("div",{className:"text-center mb-12",children:[a.jsxs("h2",{className:"font-display text-3xl md:text-4xl font-bold text-foreground mb-4",children:["Platforms the ",a.jsx("span",{className:"text-gradient",children:"AI Helper Covers"})]}),a.jsx("p",{className:"text-muted-foreground text-lg",children:"Every major server-side tracking platform, hosting provider and conversion API."})]}),a.jsx("div",{className:"grid md:grid-cols-2 gap-4",children:NB.map(e=>a.jsxs("div",{className:"flex items-start gap-3 p-5 rounded-xl bg-secondary/30 border border-border",children:[a.jsx(Nh,{className:"w-5 h-5 text-primary flex-shrink-0 mt-0.5"}),a.jsxs("div",{children:[a.jsx("div",{className:"font-medium text-foreground",children:e.name}),a.jsx("div",{className:"text-sm text-muted-foreground",children:e.note})]})]},e.name))})]})})}),a.jsx("section",{className:"py-20 bg-card",children:a.jsx("div",{className:"container mx-auto px-4",children:a.jsxs("div",{className:"max-w-4xl mx-auto",children:[a.jsxs("div",{className:"text-center mb-12",children:[a.jsx("h2",{className:"font-display text-3xl md:text-4xl font-bold text-foreground mb-4",children:"What You Can Ask"}),a.jsx("p",{className:"text-muted-foreground text-lg",children:"Real questions the free AI helper answers every day."})]}),a.jsx("ul",{className:"grid md:grid-cols-2 gap-4 mb-12",children:AB.map(e=>a.jsxs("li",{className:"flex items-start gap-3 p-4 rounded-lg bg-secondary/30 border border-border",children:[a.jsx(Mp,{className:"w-5 h-5 text-primary flex-shrink-0 mt-0.5"}),a.jsx("span",{className:"text-foreground",children:e})]},e))}),a.jsx("div",{className:"text-center",children:a.jsx(ut,{variant:"glow",size:"xl",asChild:!0,children:a.jsxs(ie,{to:"/chat",children:["Try It Now — It's Free",a.jsx(Fn,{className:"w-5 h-5"})]})})})]})})}),a.jsx("section",{className:"py-20",children:a.jsxs("div",{className:"container mx-auto px-4 max-w-5xl",children:[a.jsxs("div",{className:"text-center mb-12",children:[a.jsxs("h2",{className:"font-display text-3xl md:text-4xl font-bold text-foreground mb-4",children:["How the ",a.jsx("span",{className:"text-gradient",children:"Free AI Helper"})," Works"]}),a.jsx("p",{className:"text-muted-foreground text-lg",children:"From zero to a working server-side tracking setup in four steps."})]}),a.jsx("div",{className:"grid md:grid-cols-4 gap-6",children:TB.map((e,t)=>a.jsxs("div",{className:"relative p-6 rounded-2xl bg-secondary/40 border border-border",children:[a.jsx("div",{className:"absolute -top-3 -left-3 w-8 h-8 rounded-full bg-primary text-primary-foreground flex items-center justify-center text-sm font-bold",children:t+1}),a.jsx(e.icon,{className:"w-7 h-7 text-primary mb-3"}),a.jsx("h3",{className:"font-display font-semibold text-foreground mb-2",children:e.title}),a.jsx("p",{className:"text-sm text-muted-foreground",children:e.text})]},e.title))})]})}),a.jsx("section",{className:"py-16 bg-card border-y border-border",children:a.jsx("div",{className:"container mx-auto px-4 max-w-5xl",children:a.jsx("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-6",children:jB.map(e=>a.jsxs("div",{className:"text-center",children:[a.jsx(e.icon,{className:"w-7 h-7 text-primary mx-auto mb-3"}),a.jsx("div",{className:"font-display text-3xl font-bold text-foreground",children:e.value}),a.jsx("div",{className:"text-sm text-muted-foreground mt-1",children:e.label})]},e.label))})})}),a.jsx("section",{className:"py-20",children:a.jsxs("div",{className:"container mx-auto px-4 max-w-4xl",children:[a.jsxs("div",{className:"text-center mb-12",children:[a.jsxs("h2",{className:"font-display text-3xl md:text-4xl font-bold text-foreground mb-4",children:["DIY vs. ",a.jsx("span",{className:"text-gradient",children:"Free AI Helper"})]}),a.jsx("p",{className:"text-muted-foreground text-lg",children:"Why teams skip the agency and ship faster with AI guidance."})]}),a.jsx("div",{className:"overflow-hidden rounded-2xl border border-border",children:a.jsxs("table",{className:"w-full text-left",children:[a.jsx("thead",{className:"bg-secondary/60",children:a.jsxs("tr",{children:[a.jsx("th",{className:"p-4 text-sm font-semibold text-foreground",children:"Aspect"}),a.jsx("th",{className:"p-4 text-sm font-semibold text-muted-foreground",children:"DIY / Agency"}),a.jsx("th",{className:"p-4 text-sm font-semibold text-primary",children:"Free AI Helper"})]})}),a.jsx("tbody",{children:CB.map((e,t)=>a.jsxs("tr",{className:t%2?"bg-secondary/20":"",children:[a.jsx("td",{className:"p-4 text-foreground font-medium",children:e.label}),a.jsx("td",{className:"p-4 text-muted-foreground",children:e.diy}),a.jsx("td",{className:"p-4 text-foreground",children:e.ai})]},e.label))})]})}),a.jsx("div",{className:"text-center mt-10",children:a.jsx(ut,{variant:"glow",size:"lg",asChild:!0,children:a.jsxs(ie,{to:"/chat",children:["Try the AI Helper Free",a.jsx(Fn,{className:"w-5 h-5"})]})})})]})}),a.jsx("section",{className:"py-20 bg-card",children:a.jsxs("div",{className:"container mx-auto px-4 max-w-5xl",children:[a.jsx("div",{className:"text-center mb-12",children:a.jsxs("h2",{className:"font-display text-3xl md:text-4xl font-bold text-foreground mb-4",children:["Built for ",a.jsx("span",{className:"text-gradient",children:"Every Tracking Role"})]})}),a.jsx("div",{className:"grid md:grid-cols-3 gap-6",children:[{title:"Marketers & PPC",text:"Recover lost conversions for Google Ads, Meta and TikTok without waiting on engineering."},{title:"Analytics & Data teams",text:"Move from client-side GA4 to a clean server-side data pipeline with full event control."},{title:"Developers & Agencies",text:"Skip the research — get production-ready sGTM configs and CAPI code on demand."}].map(e=>a.jsxs("div",{className:"p-6 rounded-2xl bg-secondary/40 border border-border",children:[a.jsx("h3",{className:"font-display font-semibold text-foreground text-lg mb-2",children:e.title}),a.jsx("p",{className:"text-muted-foreground text-sm",children:e.text})]},e.title))})]})}),a.jsx("section",{className:"py-20",children:a.jsxs("div",{className:"container mx-auto px-4 max-w-3xl",children:[a.jsxs("div",{className:"text-center mb-12",children:[a.jsxs("h2",{className:"font-display text-3xl md:text-4xl font-bold text-foreground mb-4",children:["Frequently Asked ",a.jsx("span",{className:"text-gradient",children:"Questions"})]}),a.jsx("p",{className:"text-muted-foreground text-lg",children:"Everything you need to know about the free AI server-side tracking helper."})]}),a.jsx(CT,{type:"single",collapsible:!0,className:"w-full",children:ow.map((e,t)=>a.jsxs(Em,{value:`item-${t}`,children:[a.jsx(Mm,{className:"text-left text-foreground",children:e.q}),a.jsx(Im,{className:"text-muted-foreground",children:e.a})]},t))}),a.jsx(kh,{children:a.jsx("script",{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"FAQPage",mainEntity:ow.map(e=>
286({"@type":"Question",name:e.q,acceptedAnswer:{"@type":"Answer",text:e.a}}))})})})]})}),a.jsxs("section",{className:"py-20 md:py-28 relative overflow-hidden",children:[a.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-background via-primary/5 to-background"}),a.jsxs("div",{className:"container mx-auto px-4 relative z-10 text-center max-w-3xl",children:[a.jsxs("h2",{className:"font-display text-3xl md:text-4xl font-bold text-foreground mb-6",children:["Stop Guessing. ",a.jsx("span",{className:"text-gradient",children:"Ship Server-Side Tracking Today."})]}),a.jsx("p",{className:"text-muted-foreground text-lg mb-10",children:"Open the chat, describe your stack, and get a tailored server-side tracking plan in seconds — free, no account needed."}),a.jsx(ut,{variant:"glow",size:"xl",asChild:!0,children:a.jsxs(ie,{to:"/chat",children:["Launch the Free AI Helper",a.jsx(Fn,{className:"w-5 h-5"})]})})]})]})]}),Cf=[{slug:"stape",name:"Stape",website:"https://stape.io/",category:"sGTM Hosting",country:"Global",featured:!0,score:9.7,pricingSummary:"Free tier available. Paid plans from $20/month based on server request volume.",pricingTiers:[{name:"Free",price:"$0/mo — 10k requests"},{name:"Pro",price:"$20+/mo — 500k requests"},{name:"Business",price:"$100+/mo"},{name:"Enterprise",price:"Custom"}],features:["1-click sGTM deployment","Custom domain & first-party cookies","Auto-scaling infrastructure","Power-ups & tag templates","Multi-region hosting (EU/US/Asia)","Real-time monitoring dashboard"],description:"The #1 managed hosting platform for server-side Google Tag Manager. Fast setup, custom domains, power-ups, and global infrastructure.",bestFor:"Any business that wants server-side GTM live in minutes without DevOps overhead.",reviewSlug:"stape-review"},{slug:"google-tag-manager-server-side",name:"Google Tag Manager Server-Side",website:"https://tagmanager.google.com/",category:"Tag Management",country:"Global",score:9,pricingSummary:"Software is free. You pay for hosting: $50–$500+/mo self-hosted on GCP, or from $20/mo via managed providers.",pricingTiers:[{name:"Software",price:"Free"},{name:"Self-hosted GCP",price:"$50–$500+/mo"},{name:"Managed",price:"From $20/mo"}],features:["Familiar GTM interface","Native GA4 & Google Ads support","Custom tag templates gallery","Data transformation & enrichment","First-party cookie management","Preview & debug mode"],description:"Google's official server-side container — the foundation of most modern tracking implementations.",reviewSlug:"google-tag-manager-server-side-review"},{slug:"addingwell",name:"Addingwell",website:"https://www.addingwell.com/",category:"sGTM Hosting",country:"France",score:8.8,pricingSummary:"From €25/month. EU-hosted plans with GDPR-focused pricing tiers.",pricingTiers:[{name:"Starter",price:"€25/mo"},{name:"Growth",price:"€65/mo"},{name:"Business",price:"€200+/mo"}],features:["EU-based infrastructure","GDPR-compliant by default","One-click sGTM setup","Custom domain routing","Server-side consent handling"],description:"European sGTM hosting provider focused on GDPR compliance, performance, and easy setup for EU businesses.",reviewSlug:"addingwell-review"},{slug:"taggrs",name:"TAGGRS",website:"https://taggrs.io/",category:"sGTM Hosting",country:"Netherlands",score:8.6,pricingSummary:"From €29/month with e-commerce and Shopify-focused hosting plans.",pricingTiers:[{name:"Basic",price:"€29/mo"},{name:"Pro",price:"€79/mo"},{name:"Enterprise",price:"Custom"}],features:["Shopify-first integrations","Server-side GTM hosting","Custom domain setup","Pre-built e-com templates","EU data residency"],description:"Server-side tagging hosting with strong focus on Shopify and e-commerce integrations.",reviewSlug:"taggrs-review"},{slug:"tracklution",name:"Tracklution",website:"https://tracklution.com/",category:"Server-Side Tracking",country:"Finland",score:8.5,pricingSummary:"From €99/month full-service tracking with managed CAPI integrations.",pricingTiers:[{name:"Starter",price:"€99/mo"},{name:"Growth",price:"€249/mo"},{name:"Enterprise",price:"Custom"}],features:["Managed Meta & TikTok CAPI","GA4 server-side tracking","Enhanced conversions","Consent Mode v2 support","Done-for-you implementation"],description:"Full-service server-side tracking with plug-and-play integrations for major ad platforms and CAPI setups.",reviewSlug:"tracklution-review"},{slug:"elevar",name:"Elevar",website:"https://www.getelevar.com/",category:"Shopify Tracking",country:"USA",score:8.7,pricingSummary:"From $50/month with Shopify-focused server-side conversion tracking.",pricingTiers:[{name:"Starter",price:"$50/mo"},{name:"Pro",price:"$150/mo"},{name:"Plus",price:"$500+/mo"}],features:["Native Shopify integration","Automated Meta CAPI","GA4 & TikTok Events","Order deduplication","Consent Mode v2"],description:"Server-side conversion tracking built specifically for Shopify stores. Automated CAPI, GA4, and TikTok Events.",reviewSlug:"elevar-review"},{slug:"tracedock",name:"Tracedock",website:"https://www.tracedock.com/",category:"First-Party Data Collection",country:"Netherlands",score:8.2,pricingSummary:"Custom pricing based on traffic. Typically €300+/month enterprise-focused.",pricingTiers:[{name:"Standard",price:"€300+/mo"},{name:"Enterprise",price:"Custom"}],features:["Sub-domain edge routing","First-party data capture","Ad-blocker resistant","GDPR-friendly setup","Works alongside GTM"],description:"First-party data collection platform that captures analytics data at the edge with sub-domain routing.",reviewSlug:"tracedock-review"},{slug:"measurekit",name:"Measurekit",website:"https://measurekit.com/",category:"sGTM Solutions",country:"Global",score:8,pricingSummary:"Templates from ~$99 one-time. Custom implementation projects priced per scope.",pricingTiers:[{name:"Templates",price:"From $99 one-time"},{name:"Custom Setup",price:"Project-based"}],features:["Premium sGTM templates","Meta CAPI & TikTok templates","Server-side GA4 setup","Implementation services","Documentation & guides"],description:"Server-side tracking agency and template provider for GTM server containers.",reviewSlug:"measurekit-review"},{slug:"snowplow",name:"Snowplow",website:"https://snowplow.io/",category:"Behavioural Data Platform",country:"Global",score:8.6,pricingSummary:"Open-source free (self-hosted). Managed BDP from ~$2,000/month enterprise.",pricingTiers:[{name:"Community",price:"Free (self-hosted)"},{name:"BDP Cloud",price:"$2,000+/mo"},{name:"Enterprise",price:"Custom"}
286],features:["Raw event data ownership","Warehouse-first architecture","Custom schema validation","Real-time event pipeline","Full server-side tracking"],description:"Open-source behavioural data platform delivering raw event data to your own warehouse. Full data ownership.",reviewSlug:"snowplow-analytics-review"},{slug:"segment",name:"Segment",website:"https://segment.com/",category:"Customer Data Platform",country:"USA",score:8.8,pricingSummary:"Free up to 1,000 MTUs. Team from $120/month. Business is custom (typically $1,000+/mo).",pricingTiers:[{name:"Free",price:"1,000 MTUs"},{name:"Team",price:"From $120/mo"},{name:"Business",price:"$1,000+/mo"}],features:["Server-side SDKs (Node, Python, Go…)","300+ destination integrations","Identity resolution","Protocols schema enforcement","Computed traits & audiences"],description:"CDP that collects data once and routes to 300+ destinations via server-side integrations.",reviewSlug:"segment-review"},{slug:"rudderstack",name:"RudderStack",website:"https://www.rudderstack.com/",category:"Customer Data Platform",country:"USA",score:8.4,pricingSummary:"Free tier up to 1M events/month. Growth from $500/month. Enterprise custom.",pricingTiers:[{name:"Free",price:"1M events/mo"},{name:"Growth",price:"$500+/mo"},{name:"Enterprise",price:"Custom"}],features:["Warehouse-first CDP","Open-source SDKs","Server-side event streaming","Reverse ETL","Transformations in JS/Python"],description:"Warehouse-first CDP with open-source roots and strong server-side SDKs.",reviewSlug:"rudderstack-review"},{slug:"jitsu",name:"Jitsu",website:"https://jitsu.com/",category:"Data Pipeline",country:"USA",score:7.8,pricingSummary:"Open-source free. Jitsu Cloud from $99/month.",pricingTiers:[{name:"OSS",price:"Free"},{name:"Cloud Starter",price:"$99/mo"},{name:"Cloud Scale",price:"Custom"}],features:["Open-source event pipeline","Segment-compatible SDKs","Warehouse destinations","Server-side ingestion","Self-host or managed"],description:"Open-source data collection platform. Segment alternative for streaming events to your warehouse."},{slug:"posthog",name:"PostHog",website:"https://posthog.com/",category:"Product Analytics",country:"USA/UK",score:8.5,pricingSummary:"Generous free tier (1M events/mo). Usage-based pricing after that.",pricingTiers:[{name:"Free",price:"1M events/mo"},{name:"Paid",price:"Usage-based"},{name:"Enterprise",price:"Custom"}],features:["Server-side libraries","Session replay","Feature flags & A/B testing","Self-host option","Warehouse sync"],description:"Open-source product analytics with server-side libraries and self-hosting options."},{slug:"mixpanel",name:"Mixpanel",website:"https://mixpanel.com/",category:"Product Analytics",country:"USA",score:8.4,pricingSummary:"Free up to 1M events/month. Growth from $28/month. Enterprise custom.",pricingTiers:[{name:"Free",price:"1M events/mo"},{name:"Growth",price:"$28+/mo"},{name:"Enterprise",price:"Custom"}],features:["HTTP Ingestion API","Server-side SDKs","Cohort analysis","Funnel & retention reports","Warehouse connectors"],description:"Event-based product analytics with mature server-side ingestion APIs.",reviewSlug:"mixpanel-review"},{slug:"amplitude",name:"Amplitude",website:"https://amplitude.com/",category:"Product Analytics",country:"USA",score:8.5,pricingSummary:"Free up to 50k MTUs. Plus from $49/month. Growth & Enterprise custom.",pricingTiers:[{name:"Starter",price:"Free"},{name:"Plus",price:"$49+/mo"},{name:"Growth",price:"Custom"}],features:["HTTP V2 API","Server-side SDKs","User & account lookup","Behavioural cohorts","Experimentation platform"],description:"Digital analytics platform with HTTP V2 API for server-side event ingestion."},{slug:"heap",name:"Heap",website:"https://heap.io/",category:"Product Analytics",country:"USA",score:8,pricingSummary:"Free tier available. Paid plans custom-quoted based on sessions.",pricingTiers:[{name:"Free",price:"Basic tier"},{name:"Growth",price:"Custom"},{name:"Premier",price:"Custom"}],features:["Autocapture front-end","Server-side track API","Retroactive analytics","Session replay","Warehouse sync"],description:"Autocapture analytics with server-side APIs for backend event tracking."},{slug:"matomo",name:"Matomo",website:"https://matomo.org/",category:"Web Analytics",country:"New Zealand",score:8.1,pricingSummary:"On-Premise free (self-hosted). Cloud from €29/month.",pricingTiers:[{name:"On-Premise",price:"Free"},{name:"Cloud",price:"€29+/mo"},{name:"Enterprise",price:"Custom"}],features:["Tracking HTTP API","GDPR-friendly defaults","Full data ownership","Server-side tag manager","Heatmaps & session recording"],description:"Privacy-first open-source analytics with a server-side tracking API and self-hosted deployment.",reviewSlug:"matomo-review"},{slug:"piwik-pro",name:"Piwik PRO",website:"https://piwik.pro/",category:"Web Analytics",country:"Poland",score:8,pricingSummary:"Free Core plan available. Enterprise starts around $500+/month.",pricingTiers:[{name:"Core",price:"Free"},{name:"Enterprise",price:"$500+/mo"}],features:["Server-side tag manager","Consent Manager","CDP module","EU / private cloud hosting","HIPAA-compliant option"],description:"Enterprise privacy-focused analytics suite with server-side tag management.",reviewSlug:"piwik-pro-review"},{slug:"plausible",name:"Plausible",website:"https://plausible.io/",category:"Web Analytics",country:"Estonia",score:7.9,pricingSummary:"From $9/month for 10k pageviews. Scales by traffic.",pricingTiers:[{name:"Growth",price:"$9+/mo"},{name:"Business",price:"$19+/mo"},{name:"Self-hosted",price:"Free"}],features:["Server-side Events API","Cookieless by default","Lightweight script","GDPR/PECR compliant","Open-source option"],description:"Lightweight privacy-friendly analytics with server-side event API."},{slug:"fathom-analytics",name:"Fathom Analytics",website:"https://usefathom.com/",category:"Web Analytics",country:"Canada",score:7.8,pricingSummary:"From $15/month for 100k pageviews. Simple flat-rate scaling.",pricingTiers:[{name:"Starter",price:"$15/mo"},{name:"Pro",price:"$44+/mo"}],features:["Server-side Events API","Cookieless tracking","GDPR/PECR ready","EU isolation option","Simple dashboard"],description:"Simple, privacy-focused analytics with a documented server-side events API."},{slug:"littledata",name:"Littledata",website:"https://www.littledata.io/",category:"Server-Side Tracking",country:"UK",
286score:8.4,pricingSummary:"From $79/month. Shopify and headless commerce server-side tracking plans.",pricingTiers:[{name:"Standard",price:"$79/mo"},{name:"Plus",price:"$399/mo"},{name:"Enterprise",price:"Custom"}],features:["Shopify server-side tracking","GA4 & Segment integrations","Automated checkout events","Order deduplication","Headless commerce support"],description:"Server-side analytics connector for Shopify and headless stores. Automates GA4, Segment, and CAPI event delivery.",reviewSlug:"littledata-review"},{slug:"anytrack",name:"AnyTrack",website:"https://anytrack.io/",category:"Server-Side Tracking",country:"USA",score:8.2,pricingSummary:"From $50/month. Server-side conversion tracking for affiliates and performance marketers.",pricingTiers:[{name:"Solo",price:"$50/mo"},{name:"Business",price:"$150/mo"},{name:"Agency",price:"$300+/mo"}],features:["Auto-tracking of affiliate conversions","Server-side CAPI dispatch","GA4 & ad platform sync","Cross-domain attribution","No-code setup"],description:"Server-side conversion tracking built for affiliate marketers, content sites, and performance advertisers.",reviewSlug:"anytrack-review"},{slug:"fingerprint",name:"Fingerprint",website:"https://fingerprint.com/",category:"Device Identification",country:"USA",score:8.5,pricingSummary:"Free up to 20k API calls/month. Plus from $99/month. Enterprise custom.",pricingTiers:[{name:"Free",price:"20k calls/mo"},{name:"Plus",price:"$99+/mo"},{name:"Enterprise",price:"Custom"}],features:["Server-side visitor identification","99.5% accuracy without cookies","Cross-session user linking","Bot detection","Fraud & abuse signals"],description:"Server-side device identification API used to power accurate user recognition without third-party cookies.",reviewSlug:"fingerprint-review"},{slug:"appsflyer",name:"AppsFlyer",website:"https://www.appsflyer.com/",category:"Mobile Attribution",country:"Israel",score:8.6,pricingSummary:"Free up to 12k conversions/month. Growth & Enterprise plans custom-quoted.",pricingTiers:[{name:"Zero",price:"Free tier"},{name:"Growth",price:"Custom"},{name:"Enterprise",price:"Custom"}],features:["Server-to-server postbacks","SKAN & privacy-safe attribution","Cross-platform tracking","Fraud protection","C
286DP & audience segments"],description:"Mobile measurement platform with server-side postbacks and privacy-safe attribution across app and web.",reviewSlug:"appsflyer-review"},{slug:"adjust",name:"Adjust",website:"https://www.adjust.com/",category:"Mobile Attribution",country:"Germany",score:8.4,pricingSummary:"Custom pricing based on volume. Typically enterprise contracts.",pricingTiers:[{name:"Growth",price:"Custom"},{name:"Enterprise",price:"Custom"}],features:["Server-side callbacks","SKAdNetwork support","Cross-device measurement","Fraud prevention suite","Real-time raw data exports"],description:"Mobile analytics and attribution with strong server-to-server integrations for app and cross-device tracking.",reviewSlug:"adjust-review"},{slug:"branch",name:"Branch",website:"https://branch.io/",category:"Mobile Attribution",country:"USA",score:8.2,pricingSummary:"Free tier available. Paid plans start around $300/month, enterprise custom.",pricingTiers:[{name:"Free",price:"Basic tier"},{name:"Growth",price:"$300+/mo"},{name:"Enterprise",price:"Custom"}],features:["Server-side deep link attribution","Universal links & app matching","Web-to-app measurement","Postback integrations","Journeys smart banners"],description:"Deep linking and mobile attribution platform with server-side event routing to ad and analytics partners.",reviewSlug:"branch-review"},{slug:"statsig",name:"Statsig",website:"https://statsig.com/",category:"Product Analytics",country:"USA",score:8.4,pricingSummary:"Generous free tier (1M events/month). Paid usage-based, enterprise custom.",pricingTiers:[{name:"Free",price:"1M events/mo"},{name:"Pro",price:"Usage-based"},{name:"Enterprise",price:"Custom"}],features:["Server-side SDKs (Node, Go, Python, Java)","Experimentation & feature flags","Product analytics","Warehouse-native mode","Session replay"],description:"Feature flag, experimentation, and product analytics platform with mature server-side SDKs.",reviewSlug:"statsig-review"},{slug:"customer-io",name:"Customer.io",website:"https://customer.io/",category:"Marketing Automation",country:"USA",score:8.3,pricingSummary:"From $100/month (Essentials). Premium and Enterprise custom-priced.",pricingTiers:[{name:"Essentials",price:"$100+/mo"},{name:"Premium",price:"Custom"},{name:"Enterprise",price:"Custom"}],features:["Server-side Track API","Real-time event triggers","Data pipelines (CDP)","Reverse ETL to warehouse","Cross-channel messaging"],description:"Messaging platform with server-side event ingestion and a built-in CDP for real-time customer data.",reviewSlug:"customer-io-review"},{slug:"klaviyo-server-api",name:"Klaviyo Server API",website:"https://developers.klaviyo.com/",category:"Marketing Automation",country:"USA",score:8.2,pricingSummary:"Klaviyo plans from $45/month. Server API included in all plans.",pricingTiers:[{name:"Free",price:"Up to 250 profiles"},{name:"Email",price:"$45+/mo"},{name:"Email + SMS",price:"$60+/mo"}],features:["Server-side profile tracking","Events API","Segment sync","Server-side attribution","Warehouse integrations"],description:"Klaviyo's server-side APIs for event tracking and profile enrichment."},{slug:"fivetran",name:"Fivetran",website:"https://www.fivetran.com/",category:"Data Pipeline",country:"USA",score:8.3,pricingSummary:"Consumption-based (MAR). Free tier for low volume, typically $500+/month at scale.",pricingTiers:[{name:"Free",price:"Limited MAR"},{name:"Standard",price:"$500+/mo"},{name:"Enterprise",price:"Custom"}],features:["Managed ETL connectors","Warehouse-first delivery","Server-side data movement","Change data capture","500+ pre-built connectors"],description:"Managed ETL pipelines feeding your warehouse — a common downstream for server-side analytics."},{slug:"mparticle",name:"mParticle",website:"https://www.mparticle.com/",category:"Customer Data Platform",country:"USA",score:8.3,pricingSummary:"Enterprise-only pricing. Typically starts around $2,000+/month.",pricingTiers:[{name:"Free dev tier",price:"$0"},{name:"Enterprise",price:"$2,000+/mo"}],features:["Server-side SDKs","Identity resolution","Real-time audiences","Data quality controls","300+ integrations"],description:"Enterprise CDP with rich server-side integrations and identity resolution."},{slug:"tealium",name:"Tealium",website:"https://tealium.com/",category:"Tag Management",country:"USA",score:8.2,pricingSummary:"Enterprise pricing. Typically $2,000–$10,000+/month depending on modules.",pricingTiers:[{name:"iQ Tag Management",price:"Custom"},{name:"EventStream (server-side)",price:"Custom"},{name:"AudienceStream (CDP)",price:"Custom"}],features:["EventStream server-side product","Enterprise tag management","Consent management","Identity resolution","1,300+ integrations"],description:"Enterprise-grade tag management and CDP with server-side EventStream product."},{slug:"adobe-experience-platform",name:"Adobe Experience Platform",website:"https://business.adobe.com/products/experience-platform/",category:"Enterprise Platform",country:"USA",score:8.1,pricingSummary:"Enterprise licensing only. Typically six-figure annual contracts.",pricingTiers:[{name:"Enterprise",price:"Custom (6-figure)"}],features:["Edge Network server-side ingest","Real-Time CDP","Adobe Analytics integration","Journey Optimizer","Identity graph"],description:"Adobe's enterprise CDP with server-side event ingestion via Edge Network."},{slug:"freshpaint",name:"Freshpaint",website:"https://www.freshpaint.io/",category:"Healthcare Analytics",country:"USA",score:8,pricingSummary:"Custom enterprise pricing focused on healthcare compliance.",pricingTiers:[{name:"Standard",price:"Custom"},{name:"Healthcare/HIPAA",price:"Custom"}],features:["HIPAA-compliant tracking","Server-side PHI redaction","Autotrack + code-based","50+ destinations","BAA available"],description:"HIPAA-compliant server-side analytics platform focused on healthcare and regulated industries."},{slug:"simo-ahava-blog",name:"Simo Ahava Blog",website:"https://www.simoahava.com/",category:"Education",country:"Finland",score:9.4,pricingSummary:"Free educational content. Paid consulting via 8-bit-sheep.",pricingTiers:[{name:"Blog & guides",price:"Free"},{name:"Consulting",price:"Custom"}],features:["Deep sGTM tutorials","GA4 & CAPI guides","Custom template library","Consulting via 8-bit-sheep","Industry-def
286ining articles"],description:"The most trusted knowledge base for sGTM, CAPI, and advanced tracking implementations."},{slug:"analytics-mania",name:"Analytics Mania",website:"https://www.analyticsmania.com/",category:"Education",country:"Lithuania",score:8.9,pricingSummary:"Free blog content. Paid courses from $99.",pricingTiers:[{name:"Blog",price:"Free"},{name:"Courses",price:"From $99"}],features:["In-depth GTM tutorials","GA4 masterclasses","Server-side GTM course","Real-world examples","Active community"],description:"In-depth GTM and server-side tagging tutorials and courses."}],EB=e=>Cf.find(t=>t.slug===e),MB=({score:e,size:t="sm"})=>{const n=e/2,r=Math.floor(n),i=n-r>=.5,s=t==="md"?"w-5 h-5":"w-4 h-4";return a.jsxs("div",{className:"flex items-center gap-1",children:[a.jsx("div",{className:"flex",children:Array.from({length:5}).map((o,l)=>{const c=l<r,u=!c&&l===r&&i;return a.jsxs("div",{className:"relative",children:[a.jsx(dt,{className:`${s} text-muted-foreground/40`}),(c||u)&&a.jsx("div",{className:"absolute inset-0 overflow-hidden",style:{width:c?"100%":"50%"},children:a.jsx(dt,{className:`${s} fill-primary text-primary`})})]},l)})}),a.jsxs("span",{className:"text-xs font-semibold text-foreground ml-1",children:[e.toFixed(1),"/10"]})]})},IB=()=>a.jsxs(yt,{children:[a.jsx(vt,{title:"Server-Side Tracking Directory | Server-Side Analytics",description:"Directory of 30+ server-side tracking companies with ratings, pricing, and features. Compare sGTM hosts, CDPs, and conversion APIs in one place.",path:"/server-side-tracking-directory"}),a.jsx("section",{className:"py-16 md:py-24",children:a.jsxs("div",{className:"container mx-auto px-4 max-w-6xl",children:[a.jsxs(H.header,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},className:"mb-12 text-center",children:[a.jsx("p",{className:"text-primary text-sm font-medium uppercase tracking-wider mb-4",children:"Directory"}),a.jsx("h1",{className:"font-display text-3xl md:text-4xl lg:text-5xl font-bold text-foreground mb-6 leading-tight",children:"Server-Side Tracking Directory"}),a.jsxs("p",{className:"text-muted-foreground text-lg leading-relaxed max-w-2xl mx-auto",children:["A curated list of ",Cf.length,"+ companies powering the server-side analytics ecosystem — with ratings, pricing, and key features side-by-side."]})]}),a.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6",children:Cf.map((e,t)=>a.jsxs(H.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:Math.min(t*.03,.3)},className:`group flex flex-col p-6 rounded-2xl bg-card border transition-all hover:border-primary/50 hover:-translate-y-1 ${e.featured?"border-primary/40 ring-1 ring-primary/20":"border-border"}`,children:[a.jsx("div",{className:"flex items-start justify-between gap-2 mb-3",children:a.jsxs("div",{children:[a.jsxs("h2",{className:"font-display text-lg font-bold text-foreground",children:[e.name,e.featured&&a.jsx("span",{className:"ml-2 text-xs font-medium text-primary uppercase tracking-wider",children:"#1"})]}),a.jsx("p",{className:"text-primary text-xs font-medium mt-1",children:e.category})]})}),a.jsx("div",{className:"mb-3",children:a.jsx(MB,{score:e.score})}),a.jsx("p",{className:"text-foreground/80 text-sm leading-relaxed mb-4",children:e.description}),a.jsxs("div",{className:"mb-4",children:[a.jsx("p",{className:"text-xs font-semibold text-foreground/90 uppercase tracking-wider mb-1",children:"Pricing"}),a.jsx("p",{className:"text-sm text-muted-foreground leading-relaxed",children:e.pricingSummary})]}),a.jsxs("div",{className:"mb-5",children:[a.jsx("p",{className:"text-xs font-semibold text-foreground/90 uppercase tracking-wider mb-2",children:"Key features"}),a.jsx("ul",{className:"space-y-1.5",children:e.features.slice(0,4).map(n=>a.jsxs("li",{className:"flex items-start gap-2 text-sm text-foreground/80",children:[a.jsx(_s,{className:"w-4 h-4 text-primary shrink-0 mt-0.5"}),a.jsx("span",{children:n})]},n))})]}),a.jsxs("div",{className:"mt-auto flex items-center justify-between pt-4 border-t border-border",children:[e.country&&a.jsx("span",{className:"text-xs text-muted-foreground",children:e.country}),a.jsxs(ie,{to:`/directory/${e.slug}`,className:"inline-flex items-center gap-1 text-sm font-medium text-primary hover:text-primary/80 transition-colors",children:["View profile",a.jsx(Fn,{className:"w-4 h-4"})]})]})]},e.slug))})]})})]});function RB({score:e}){const t=Math.floor(e/2),n=e%2>=1,r=5-t-(n?1:0);return a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsxs("div",{className:"flex items-center gap-0.5",children:[Array.from({length:t}).map((i,s)=>a.jsx(dt,{className:"w-5 h-5 fill-primary text-primary"},`full-${s}`)),n&&a.jsxs("div",{className:"relative w-5 h-5",children:[a.jsx(dt,{className:"w-5 h-5 text-muted-foreground
286/30 absolute"}),a.jsx("div",{className:"overflow-hidden w-1/2 absolute",children:a.jsx(dt,{className:"w-5 h-5 fill-primary text-primary"})})]}),Array.from({length:r}).map((i,s)=>a.jsx(dt,{className:"w-5 h-5 text-muted-foreground/30"},`empty-${s}`))]}),a.jsxs("span",{className:"text-lg font-bold text-foreground",children:[e,"/10"]})]})}function DB(e){const t=[e.description,e.longDescription??`${e.name} is positioned in the ${e.category.toLowerCase()} space and is a common building block in modern server-side tracking stacks. Teams typically evaluate it alongside other tools in the same category based on pricing, ease of integration, and how well it fits with their existing analytics setup.`,`As part of a server-side analytics workflow, ${e.name} is generally paired with a hosted server-side GTM provider such as Stape to route, transform, and enrich events before they reach downstream destinations.`],n=e.features.map(o=>({title:o,description:`${e.name} supports ${o.toLowerCase()} as part of its ${e.category.toLowerCase()} offering, helping teams keep server-side tracking reliable and maintainable.`})),r=[`Positioned in the ${e.category} category with a clear use case`,"Feature set covers the essentials teams need day-to-day",e.country?`Based in ${e.country} with relevant data-residency options`:"Global availability","Fits into a server-side tracking stack alongside sGTM","Transparent pricing tiers that scale with usage"],i=["Best value is unlocked only when combined with a server-side GTM setup","Some advanced use cases still require custom implementation work","Pricing can grow with event volume — worth modelling before committing"],s=`${e.name} is a solid option in the ${e.category.toLowerCase()} category and worth shortlisting when you are building out a server-side analytics stack. ${e.bestFor?e.bestFor+" ":""}For most teams, the biggest wins come from pairing it with server-side Google Tag Manager (we recommend Stape) so events are collected, transformed, and routed reliably before hitting ${e.name}.`;return{overview:t,keyFeatures:n,pros:r,cons:i,verdict:s}}const FB=()=>{const{slug:e}=Wh(),t=e?EB(e):void 0;if(!t)return a.jsx(Km,{});if(t.reviewSlug)return a.jsx(Tk,{to:`/review/${t.reviewSlug}`,replace:!0});const{overview:n,keyFeatures:r,pros:i,cons:s,verdict:o}=DB(t);return a.jsxs(yt,{children:[a.jsx(vt,{title:`${t.name} Review — Server-Side Tracking Profile`,description:`${t.name} review: ${t.score}/10 in ${t.category}. Pricing, features, pros & cons, and how it fits a server-side analytics stack.`,path:`/directory/${t.slug}`}),a.jsx("article",{className:"py-16 md:py-24",children:a.jsxs("div",{className:"container mx-auto px-4 max-w-4xl",children:[a.jsxs(ie,{to:"/server-side-tracking-directory",className:"inline-flex items-center gap-1.5 text-sm text-muted-foreground hover:text-primary transition-colors mb-8",children:[a.jsx(cc,{className:"w-4 h-4"}),"Back to directory"]}),a.jsxs(H.header,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},className:"mb-12",children:[a.jsxs("div",{className:"flex items-center gap-3 mb-4 flex-wrap",children:[t.featured&&a.jsx("span",{className:"px-3 py-1 rounded-full bg-primary text-primary-foreground text-xs font-bold",children:"#1 Pick"}),a.jsx("span",{className:"px-3 py-1 rounded-full bg-secondary text-secondary-foreground text-xs font-medium",children:t.category}),t.country&&a.jsx("span",{className:"text-xs text-muted-foreground",children:t.country})]}),a.jsxs("h1",{className:"font-display text-3xl md:text-4xl lg:text-5xl font-bold text-foreground mb-4 leading-tight",children:[t.name," Review"]}),a.jsx("p",{className:"text-muted-foreground text-lg leading-relaxed mb-6",children:t.description}),a.jsxs("div",{className:"flex items-center gap-4 flex-wrap",children:[a.jsx(RB,{score:t.score}),a.jsxs("a",{href:t.website,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1.5 text-sm text-primary hover:underline",children:["Visit ",t.name," ",a.jsx(Bs,{className:"w-3.5 h-3.5"})]})]})]}),a.jsxs(H.section,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{delay:.1},className:"mb-12",children:[a.jsx("h2",{className:"font-display text-2xl font-bold text-foreground mb-4",children:"Overview"}),a.jsx("div",{className:"space-y-4",children:n.map((l,c)=>
286a.jsx("p",{className:"text-foreground/90 text-base leading-relaxed",children:l},c))})]}),a.jsxs(H.section,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mb-12",children:[a.jsx("h2",{className:"font-display text-2xl font-bold text-foreground mb-6",children:"Key Features"}),a.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:r.map(l=>a.jsxs("div",{className:"p-5 rounded-xl bg-card border border-border",children:[a.jsx("h3",{className:"font-display text-base font-semibold text-foreground mb-2",children:l.title}),a.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed",children:l.description})]},l.title))})]}),a.jsxs(H.section,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mb-12",children:[a.jsx("h2",{className:"font-display text-2xl font-bold text-foreground mb-4",children:"Pricing"}),a.jsx("p",{className:"text-foreground/90 text-base leading-relaxed mb-6",children:t.pricingSummary}),a.jsx("div",{className:"space-y-3",children:t.pricingTiers.map(l=>a.jsxs("div",{className:"p-4 rounded-xl bg-card border border-border flex flex-col md:flex-row md:items-center gap-2 md:gap-6",children:[a.jsx("div",{className:"md:w-40 shrink-0",children:a.jsx("span",{className:"font-display font-bold text-foreground",children:l.name})}),a.jsx("div",{className:"md:flex-1",children:a.jsx("span",{className:"text-primary font-semibold",children:l.price})})]},l.name))})]}),a.jsxs(H.section,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mb-12",children:[a.jsx("h2",{className:"font-display text-2xl font-bold text-foreground mb-6",children:"Pros & Cons"}),a.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[a.jsxs("div",{className:"p-5 rounded-xl bg-card border border-border",children:[a.jsx("h3",{className:"font-display text-base font-semibold text-foreground mb-4",children:"Pros"}),a.jsx("ul",{className:"space-y-2",children:i.map(l=>a.jsxs("li",{className:"flex items-start gap-2 text-foreground/80 text-sm",children:[a.jsx(_s,{className:"w-4 h-4 text-green-500 mt-0.5 shrink-0"}),a.jsx("span",{children:l})]},l))})]}),a.jsxs("div",{className:"p-5 rounded-xl bg-card border border-border",children:[a.jsx("h3",{className:"font-display text-base font-semibold text-foreground mb-4",children:"Cons"}),a.jsx("ul",{className:"space-y-2",children:s.map(l=>a.jsxs("li",{className:"flex items-start gap-2 text-foreground/80 text-sm",children:[a.jsx("span",{className:"text-red-500 mt-0.5 shrink-0",children:"–"}),a.jsx("span",{children:l})]},l))})]})]})]}),t.bestFor&&a.jsxs(H.section,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mb-12",children:[a.jsx("h2",{className:"font-display text-2xl font-bold text-foreground mb-4",children:"Best For"}),a.jsx("p",{className:"text-foreground/90 text-base leading-relaxed p-5 rounded-xl bg-primary/5 border border-primary/20",children:t.bestFor})]}),a.jsxs(H.section,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"mb-12",children:[a.jsx("h2",{className:"font-display text-2xl font-bold text-foreground mb-4",children:"Our Verdict"}),a.jsx("div",{className:"p-6 rounded-2xl bg-primary/5 border border-primary/20",children:a.jsx("p",{className:"text-foreground/90 text-base leading-relaxed",children:o})})]}),a.jsx(H.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"text-center",children:a.jsxs(ie,{to:"/server-side-tracking-directory",className:"inline-flex items-center gap-2 text-primary hover:underline font-medium",children:[a.jsx(cc,{className:"w-4 h-4"}),"Back to the full directory"]})})]})})]})},cC=[{slug:"server-side-tracking-vs-server-side-tagging",title:"Server Side Tracking vs Server Side Tagging",description:"Server side tracking vs server side tagging explained: what each term means, how they differ, when you need both, and how to set them up correctly in 2026.",category:"Comparison",publishedAt:"September 9, 2026",modifiedAt:"September 9, 2026",readTime:"9 min read",author:"ServerSideAnalytics"},{slug:"what-is-server-based-analytics-2026-guide",title:"What Is Server Based Analytics? 2026 Guide",description:"Discover what server based analytics is, how it works in 2026, and why businesses switch to server-side tracking for accurate data, privacy, and faster sites.",category:"Guide",publishedAt:"August 24, 2026",modifiedAt:"August 24, 2026",readTime:"8 min read",author:"ServerSideAnalytics"}],OB=()=>a.jsxs(yt,{children:[a.jsx(vt,{title:"Blog | Server-Side Analytics",description:"Read expert guides on server-side analytics, server based analytics tools, and tracking strategies to improve data accuracy and marketing ROI.",path:"/blog"}),a.jsx("section",{className:"py-16 md:py-24",children:a.jsxs("div",{className:"container mx-auto px-4 max-w-5xl",children:[a.jsxs(H.header,{initial:{opacity:0,y:20}
286,animate:{opacity:1,y:0},className:"mb-12 md:mb-16",children:[a.jsx("p",{className:"text-primary text-sm font-medium uppercase tracking-wider mb-4",children:"Blog"}),a.jsx("h1",{className:"font-display text-3xl md:text-4xl lg:text-5xl font-bold text-foreground mb-6 leading-tight",children:"Server-Side Analytics Insights"}),a.jsx("p",{className:"text-muted-foreground text-lg leading-relaxed max-w-2xl",children:"Practical guides, tool comparisons, and 2026-focused strategies for anyone looking to improve tracking accuracy with server based analytics."})]}),a.jsx(H.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{delay:.1},className:"grid gap-6",children:cC.map(e=>a.jsx(ie,{to:`/blog/${e.slug}`,className:"group block p-6 md:p-8 rounded-2xl bg-card border border-border hover:border-primary/40 transition-colors",children:a.jsxs("div",{className:"flex flex-col md:flex-row md:items-center justify-between gap-4",children:[a.jsxs("div",{children:[a.jsx("span",{className:"inline-block px-3 py-1 rounded-full bg-primary/10 text-primary text-xs font-medium mb-3",children:e.category}),a.jsx("h2",{className:"font-display text-xl md:text-2xl font-bold text-foreground group-hover:text-primary transition-colors",children:e.title}),a.jsx("p",{className:"text-muted-foreground text-sm md:text-base mt-3 leading-relaxed",children:e.description}),a.jsxs("div",{className:"flex flex-wrap items-center gap-4 mt-4 text-xs md:text-sm text-muted-foreground",children:[a.jsxs("span",{className:"flex items-center gap-1.5",children:[a.jsx(f1,{className:"w-4 h-4"}),e.publishedAt]}),a.jsxs("span",{className:"flex items-center gap-1.5",children:[a.jsx(Ah,{className:"w-4 h-4"}),e.readTime]})]})]}),a.jsx(Fn,{className:"w-6 h-6 text-muted-foreground group-hover:text-primary transition-colors shrink-0"})]})},e.slug))})]})})]}),LB=()=>a.jsxs(a.Fragment,{children:[a.jsxs("section",{className:"mb-12",children:[a.jsxs("p",{className:"text-foreground/90 text-base leading-relaxed mb-4",children:[a.jsx("strong",{className:"text-foreground",children:"Server side tracking"})," and"," ",a.jsx("strong",{className:"text-foreground",children:"server side tagging"})," are used as if they were the same thing. They are closely related, but they are not identical — and confusing them is one of the most common reasons measurement projects stall."]}),a.jsxs("p",{className:"text-foreground/90 text-base leading-relaxed",children:["In short: server side tracking is the ",a.jsx("em",{children:"strategy"})," of collecting and sending event data from your own server. Server side tagging is the"," ",a.jsx("em",{children:"implementation method"})," — usually a server-side container such as Google Tag Manager Server-Side — that makes that strategy manageable."]})]}),a.jsxs("section",{className:"mb-12",id:"what-is-server-side-tracking",children:[a.jsx("h2",{className:"font-display text-2xl font-bold text-foreground mb-4",children:"What Is Server Side Tracking?"}),a.jsx("p",{className:"text-foreground/90 text-base leading-relaxed mb-4",children:"Server side tracking means the event data — page views, add-to-carts, purchases, sign-ups — is collected and forwarded by a server you control instead of the visitor's browser. The browser sends a single first-party request to your endpoint; your server then decides which platforms receive which data."}),a.jsxs("p",{className:"text-foreground/90 text-base leading-relaxed",children:["It covers everything from raw data collection APIs (Meta Conversions API, GA4 Measurement Protocol) to full customer data platforms. For the foundations, read our explainer on"," ",a.jsx(ie,{to:"/what-is-server-side-analytics",className:"text-primary hover:underline",children:"what server-side analytics and tracking is"}),"."]})]}),a.jsxs("section",{className:"mb-12",id:"what-is-server-side-tagging",children:[a.jsx("h2",{className:"font-display text-2xl font-bold text-foreground mb-4",children:"What Is Server Side Tagging?"}),a.jsx("p",{className:"text-foreground/90 text-base leading-relaxed mb-4",children:"Server side tagging is the practice of running your tags inside a container hosted on a server, rather than loading each vend
286or script in the browser. A tagging server receives one incoming event and fans it out to Google Analytics 4, Google Ads, Meta, TikTok, Klaviyo and anything else you configure — with rules, filters and enrichment applied in one place."}),a.jsxs("p",{className:"text-foreground/90 text-base leading-relaxed",children:["Most teams run this on managed infrastructure instead of building it themselves. Our ranking of the"," ",a.jsx(ie,{to:"/best-server-side-tagging-providers",className:"text-primary hover:underline",children:"best server-side tagging providers"})," ","compares hosting, pricing and reliability, with Stape as the top pick."]})]}),a.jsxs("section",{className:"mb-12",id:"key-differences",children:[a.jsx("h2",{className:"font-display text-2xl font-bold text-foreground mb-4",children:"Server Side Tracking vs Server Side Tagging: Key Differences"}),a.jsx("div",{className:"overflow-x-auto mb-6",children:a.jsxs("table",{className:"w-full text-sm text-left border-collapse",children:[a.jsx("thead",{children:a.jsxs("tr",{className:"border-b border-border",children:[a.jsx("th",{className:"py-3 pr-4 font-display font-semibold text-foreground",children:"Aspect"}),a.jsx("th",{className:"py-3 pr-4 font-display font-semibold text-foreground",children:"Server Side Tracking"}),a.jsx("th",{className:"py-3 font-display font-semibold text-foreground",children:"Server Side Tagging"})]})}),a.jsxs("tbody",{className:"text-foreground/90",children:[a.jsxs("tr",{className:"border-b border-border/50",children:[a.jsx("td",{className:"py-3 pr-4",children:"What it is"}),a.jsx("td",{className:"py-3 pr-4",children:"The overall data collection approach"}),a.jsx("td",{className:"py-3",children:"The tag management layer that executes it"})]}),a.jsxs("tr",{className:"border-b border-border/50",children:[a.jsx("td",{className:"py-3 pr-4",children:"Main question"}),a.jsx("td",{className:"py-3 pr-4",children:"What data do we collect and send?"}),a.jsx("td",{className:"py-3",children:"How do we manage and route the tags?"})]}),a.jsxs("tr",{className:"border-b border-border/50",children:[a.jsx("td",{className:"py-3 pr-4",children:"Typical tools"}),a.jsx("td",{className:"py-3 pr-4",children:"Conversions API, Measurement Protocol, CDPs"}),a.jsx("td",{className:"py-3",children:"GTM Server-Side, Stape, Addingwell, TAGGRS"})]}),a.jsxs("tr",{className:"border-b border-border/50",children:[a.jsx("td",{className:"py-3 pr-4",children:"Owner"}),a.jsx("td",{className:"py-3 pr-4",children:"Analytics and engineering"}),a.jsx("td",{className:"py-3",children:"Marketing and measurement teams"})]}),a.jsxs("tr",{className:"border-b border-border/50",children:[a.jsx("td",{className:"py-3 pr-4",children:"Can exist without the other?"}),a.jsx("td",{className:"py-3 pr-4",children:"Yes — via direct API integrations"}),a.jsx("td",{className:"py-3",children:"No — tagging is a way of doing tracking"})]}),a.jsxs("tr",{children:[a.jsx("td",{className:"py-3 pr-4",children:"Main benefit"}),a.jsx("td",{className:"py-3 pr-4",children:"Accurate, privacy-controlled data"}),a.jsx("td",{className:"py-3",children:"Speed, flexibility, one place to change tags"})]})]})]})}),a.jsx("p",{className:"text-foreground/90 text-base leading-relaxed",children:"Put simply: every server side tagging setup is server side tracking, but not every server side tracking setup uses tagging."})]}),a.jsxs("section",{className:"mb-12",id:"which-do-you-need",children:[a.jsx("h2",{className:"font-display text-2xl font-bold text-foreground mb-4",children:"Which One Do You Actually Need?"}),a.jsx("h3",{className:"font-display text-lg font-semibold text-foreground mt-6 mb-3",children:"Choose direct server side tracking if…"}),a.jsx("ul",{className:"space-y-3 mb-4 pl-0",children:["You only need one or two destinations, such as GA4 and Meta.","You have engineering resources and want events sent from your backend.","Your key events (purchases, refunds) already exist in your own database."].map(e=>a.jsxs("li",{className:"flex items-start gap-3 text-foreground/90",children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary mt-2.5 shrink-0"}),a.jsx("span",{children:e})]},e))}),a.jsx("h3",{className:"font-display text-lg font-semibold text-foreground mt-6 mb-3",children:"Choose server side tagging if…"}),a.jsx("ul",{className:"space-y-3 pl-0",children:["You send data to many advertising and analytics platforms.","Marketing needs to add or change tags without a code release.","You want longer first-party cookie lifetimes and fewer browser scripts.","You need consent rules, data filtering and enrichment in one shared layer."].map(e=>
286a.jsxs("li",{className:"flex items-start gap-3 text-foreground/90",children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary mt-2.5 shrink-0"}),a.jsx("span",{children:e})]},e))})]}),a.jsxs("section",{className:"mb-12",id:"how-they-work-together",children:[a.jsx("h2",{className:"font-display text-2xl font-bold text-foreground mb-4",children:"How They Work Together in Practice"}),a.jsxs("div",{className:"p-6 rounded-2xl bg-secondary/30 border border-border mb-6 space-y-3",children:[a.jsxs("p",{className:"text-foreground/90 text-sm",children:[a.jsx("strong",{className:"text-foreground",children:"1."})," Browser or backend sends an event to your first-party endpoint."]}),a.jsxs("p",{className:"text-foreground/90 text-sm",children:[a.jsx("strong",{className:"text-foreground",children:"2."})," The tagging server validates, enriches and applies consent rules."]}),a.jsxs("p",{className:"text-foreground/90 text-sm",children:[a.jsx("strong",{className:"text-foreground",children:"3."})," Tags fire server-to-server to GA4, Ads, Meta, TikTok and more."]}),a.jsxs("p",{className:"text-foreground/90 text-sm",children:[a.jsx("strong",{className:"text-foreground",children:"4."})," You monitor delivery and match quality per destination."]})]}),a.jsxs("p",{className:"text-foreground/90 text-base leading-relaxed",children:["The strongest setups in 2026 combine both: a tagging server as the hub, plus direct backend events for offline or delayed conversions. If you are still picking a platform, compare the"," ",a.jsx(ie,{to:"/best-server-side-analytics-tools",className:"text-primary hover:underline",children:"best server-side analytics tools"})," ","before you build."]})]}),a.jsxs("section",{className:"mb-12",id:"common-mistakes",children:[a.jsx("h2",{className:"font-display text-2xl font-bold text-foreground mb-4",children:"Common Mistakes to Avoid"}),a.jsx("ul",{className:"space-y-3 pl-0",children:["Duplicating events: sending the same conversion both client-side and server-side without deduplication IDs.","Skipping a first-party subdomain, which cancels most of the cookie-lifetime benefit.","Forwarding more personal data than needed instead of filtering it at the server.","Launching without a parallel testing period against your existing client-side numbers."].map(e=>a.jsxs("li",{className:"flex items-start gap-3 text-foreground/90",children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary mt-2.5 shrink-0"}),a.jsx("span",{children:e})]},e))})]}),a.jsxs("section",{className:"p-6 md:p-8 rounded-2xl bg-primary/5 border border-primary/20",children:[a.jsx("h2",{className:"font-display text-xl font-bold text-foreground mb-3",children:"Key Takeaways"}),a.jsx("ul",{className:"space-y-2 pl-0",children:["Server side tracking is the strategy; server side tagging is the implementation layer.","Tagging suits multi-platform marketing stacks; direct tracking suits few, backend-owned events.","Most mature setups use both, with a tagging server as the central hub.","A first-party subdomain and event deduplication are non-negotiable."].map(e=>a.jsxs("li",{className:"flex items-start gap-3 text-foreground/90 text-sm",children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary mt-2 shrink-0"}),a.jsx("span",{children:e})]},e))}),a.jsxs("p",{className:"text-foreground/90 text-sm mt-4",children:["Not sure which route fits your stack?"," ",a.jsx(ie,{to:"/chat",className:"text-primary hover:underline",children:"Ask our AI assistant"})," ","for a setup plan tailored to your platforms."]})]})]}),Pd="https://serversideanalytics.ai",_B=()=>a.jsxs(a.Fragment,{children:[a.jsxs("section",{className:"mb-12",children:[a.jsxs("p",{className:"text-foreground/90 text-base leading-relaxed mb-4",children:["If your analytics reports feel incomplete, you are not imagining it. Ad blockers, privacy settings, and browser restrictions are quietly removing data from traditional tracking setups. That is why more teams are moving to"," ",a.jsx("strong",{className:"text-foreground",children:"server based analytics"})," in 2026."]}
286),a.jsx("p",{className:"text-foreground/90 text-base leading-relaxed mb-4",children:"Server based analytics — also called server-side analytics or web server analytics — collects data on your own server before sending it to platforms like Google Analytics, Meta, or TikTok. This small change in data flow gives you more accurate reporting, better privacy control, and faster page loads."}),a.jsx("p",{className:"text-foreground/90 text-base leading-relaxed",children:"In this guide, we explain exactly what server based analytics is, how it works, and why it has become the default choice for data-driven businesses in 2026."})]}),a.jsxs("section",{className:"mb-12",id:"what-is-server-based-analytics",children:[a.jsx("h2",{className:"font-display text-2xl font-bold text-foreground mb-4",children:"What Is Server Based Analytics?"}),a.jsx("p",{className:"text-foreground/90 text-base leading-relaxed mb-4",children:"Server based analytics is a tracking method where data collection happens on your server instead of the user's browser. When a visitor takes an action — views a page, clicks a button, completes a purchase — that event is sent to your server first. Your server then processes the data and forwards only what is needed to each analytics or advertising platform."}),a.jsxs("p",{className:"text-foreground/90 text-base leading-relaxed mb-4",children:["The terms are often used interchangeably: server based analytics, analytics server side tracking, server-side analytics, and web server analytics all describe the same idea. If you want a deeper look at the core concept, read our guide on"," ",a.jsx(ie,{to:"/what-is-server-side-analytics",className:"text-primary hover:underline",children:"what is server-side analytics and tracking"}),"."]}),a.jsx("p",{className:"text-foreground/90 text-base leading-relaxed",children:"Unlike client-side tracking, server-side analytics does not depend on JavaScript running perfectly in every browser. That makes it far more reliable in a world where ad blockers and privacy tools are common."})]}),a.jsxs("section",{className:"mb-12",id:"how-it-works",children:[a.jsx("h2",{className:"font-display text-2xl font-bold text-foreground mb-4",children:"How Server Based Analytics Works"}),a.jsx("p",{className:"text-foreground/90 text-base leading-relaxed mb-4",children:"The easiest way to understand the flow is to compare it with traditional tracking:"}),a.jsxs("div",{className:"p-6 rounded-2xl bg-secondary/30 border border-border mb-6 space-y-3",children:[a.jsxs("p",{className:"text-foreground/90 text-sm",children:[a.jsx("strong",{className:"text-foreground",children:"Client-side tracking:"})," ","Browser → Analytics platform (Google Analytics, Meta, TikTok)"]}),a.jsxs("p",{className:"text-foreground/90 text-sm",children:[a.jsx("strong",{className:"text-foreground",children:"Server based analytics:"})," ","Browser → Your server → Analytics platform"]})]}),a.jsx("p",{className:"text-foreground/90 text-base leading-relaxed mb-4",children:"That middle step — your server — is where the value is added. You can clean the data, remove personal identifiers, enrich events with first-party data, and decide exactly which platform receives which information. Server side analytics tools such as Google Tag Manager Server-Side, Stape, Segment, and Snowplow are built to manage this flow."}),a.jsx("p",{className:"text-foreground/90 text-base leading-relaxed",children:"Because the final request to the analytics platform comes from your server, not the visitor's browser, it is not blocked by ad blockers or browser cookie restrictions."})]}),a.jsxs("section",{className:"mb-12",id:"server-based-vs-client-side",children:[a.jsx("h2",{className:"font-display text-2xl font-bold text-foreground mb-4",children:"Server Based Analytics vs Client-Side Tracking"}),a.jsx("p",{className:"text-foreground/90 text-base leading-relaxed mb-6",children:"Choosing between the two approaches comes down to reliability, control, and performance. Here is how they compare in 2026:"}),a.jsx("div",{className:"overflow-x-auto mb-6",children:a.jsxs("table",{className:"w-full text-sm text-left border-collapse",children:[a.jsx("thead",{children:a.jsxs("tr",{className:"border-b border-border",children:[a.jsx("th",{className:"py-3 pr-4 font-display font-semibold text-foreground",children:"Factor"}),a.jsx("th",{className:"py-3 pr-4 font-display font-semibold text-foreground",children:"Client-Side"}),a.jsx("th",{className:"py-3 font-display font-semibold text-foreground",children:"Server Based Analytics"})]})}
286),a.jsxs("tbody",{className:"text-foreground/90",children:[a.jsxs("tr",{className:"border-b border-border/50",children:[a.jsx("td",{className:"py-3 pr-4",children:"Ad blocker impact"}),a.jsx("td",{className:"py-3 pr-4",children:"High — scripts often blocked"}),a.jsx("td",{className:"py-3",children:"Minimal — data sent server-to-server"})]}),a.jsxs("tr",{className:"border-b border-border/50",children:[a.jsx("td",{className:"py-3 pr-4",children:"Cookie lifetime"}),a.jsx("td",{className:"py-3 pr-4",children:"Shortened by ITP/ETP"}),a.jsx("td",{className:"py-3",children:"Longer with first-party context"})]}),a.jsxs("tr",{className:"border-b border-border/50",children:[a.jsx("td",{className:"py-3 pr-4",children:"Page speed"}),a.jsx("td",{className:"py-3 pr-4",children:"Slower — more browser scripts"}),a.jsx("td",{className:"py-3",children:"Faster — fewer tags in browser"})]}),a.jsxs("tr",{className:"border-b border-border/50",children:[a.jsx("td",{className:"py-3 pr-4",children:"Data control"}),a.jsx("td",{className:"py-3 pr-4",children:"Limited — sent directly to vendors"}),a.jsx("td",{className:"py-3",children:"High — filtered on your server"})]}),a.jsxs("tr",{children:[a.jsx("td",{className:"py-3 pr-4",children:"Setup complexity"}),a.jsx("td",{className:"py-3 pr-4",children:"Low — copy-paste scripts"}),a.jsx("td",{className:"py-3",children:"Medium — requires server-side setup"})]})]})]})}),a.jsxs("p",{className:"text-foreground/90 text-base leading-relaxed",children:["If you are evaluating platforms, our list of the"," ",a.jsx(ie,{to:"/best-server-side-analytics-tools",className:"text-primary hover:underline",children:"best server-side analytics tools"})," ","breaks down the leading options, including Stape, Google Tag Manager Server-Side, Segment, and Snowplow."]})]}),a.jsxs("section",{className:"mb-12",id:"why-businesses-switch",children:[a.jsx("h2",{className:"font-display text-2xl font-bold text-foreground mb-4",children:"Why Businesses Are Switching in 2026"}),a.jsx("p",{className:"text-foreground/90 text-base leading-relaxed mb-4",children:"The move to server-side analytics tracking is not a trend — it is a response to real measurement problems. Here are the four biggest reasons teams are making the change:"}),a.jsx("h3",{className:"font-display text-lg font-semibold text-foreground mt-6 mb-3",children:"1. More Complete Data"}),a.jsx("p",{className:"text-foreground/90 text-base leading-relaxed mb-4",children:"Ad blockers and privacy browsers can block 30–40% of client-side events. Server based analytics recovers much of that lost data because the tracking request is made from your server, not the browser. Many businesses report a 20–30% lift in measured conversions after migrating."}),a.jsx("h3",{className:"font-display text-lg font-semibold text-foreground mt-6 mb-3",children:"2. Better Privacy Compliance"}),a.jsx("p",{className:"text-foreground/90 text-base leading-relaxed mb-4",children:"GDPR, CCPA, and similar laws require careful handling of personal data. With server-side analytics, you can anonymize IP addresses, strip identifiers, and control exactly what leaves your infrastructure before anything reaches a third party."}),a.jsx("h3",{className:"font-display text-lg font-semibold text-foreground mt-6 mb-3",children:"3. Faster Websites"}),a.jsx("p",{className:"text-foreground/90 text-base leading-relaxed mb-4",children:"Every tracking script removed from the browser is one less download and one less execution. Server-side analytics tracking reduces page weight, improves Core Web Vitals, and creates a smoother user experience."}),a.jsx("h3",{className:"font-display text-lg font-semibold text-foreground mt-6 mb-3",children:"4. Reliable Conversion Tracking"}),a.jsx("p",{className:"text-foreground/90 text-base leading-relaxed mb-4",children:"Paid advertising depends on accurate attribution. When cookies are blocked or users switch devices, client-side tracking misses conversions. Server based analytics captures events consistently, so your ad spend is tied to real outcomes."}
286),a.jsxs("p",{className:"text-foreground/90 text-base leading-relaxed",children:["Want to see which vendors are rated highest this year? Browse our"," ",a.jsx(ie,{to:"/top-server-side-tracking-tools",className:"text-primary hover:underline",children:"top 15 server-side tracking tools"})," ","ranked by score, features, and pricing."]})]}),a.jsxs("section",{className:"mb-12",id:"who-should-use",children:[a.jsx("h2",{className:"font-display text-2xl font-bold text-foreground mb-4",children:"Who Should Use Server Based Analytics?"}),a.jsx("p",{className:"text-foreground/90 text-base leading-relaxed mb-4",children:"Server based analytics is not only for enterprise engineering teams. In 2026, it is a practical choice for any business that relies on accurate digital data:"}),a.jsxs("ul",{className:"space-y-3 mb-4 pl-0",children:[a.jsxs("li",{className:"flex items-start gap-3 text-foreground/90",children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary mt-2.5 shrink-0"}),a.jsxs("span",{children:[a.jsx("strong",{className:"text-foreground",children:"E-commerce stores"})," that need reliable purchase and ROAS data."]})]}),a.jsxs("li",{className:"flex items-start gap-3 text-foreground/90",children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary mt-2.5 shrink-0"}),a.jsxs("span",{children:[a.jsx("strong",{className:"text-foreground",children:"SaaS companies"})," that track sign-ups, trials, and subscription events."]})]}),a.jsxs("li",{className:"flex items-start gap-3 text-foreground/90",children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary mt-2.5 shrink-0"}),a.jsxs("span",{children:[a.jsx("strong",{className:"text-foreground",children:"Marketing agencies"})," ","managing multiple client accounts and ad platforms."]})]}),a.jsxs("li",{className:"flex items-start gap-3 text-foreground/90",children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary mt-2.5 shrink-0"}),a.jsxs("span",{children:[a.jsx("strong",{className:"text-foreground",children:"Publishers"})," that want faster pages and better audience measurement."]})]}),a.jsxs("li",{className:"flex items-start gap-3 text-foreground/90",children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary mt-2.5 shrink-0"}),a.jsxs("span",{children:[a.jsx("strong",{className:"text-foreground",children:"Regulated industries"})," ","that must control how customer data is shared."]})]})]})]}),a.jsxs("section",{className:"mb-12",id:"how-to-get-started",children:[a.jsx("h2",{className:"font-display text-2xl font-bold text-foreground mb-4",children:"How to Get Started With Server Based Analytics"}),a.jsx("p",{className:"text-foreground/90 text-base leading-relaxed mb-4",children:"Migrating does not have to be overwhelming. Most teams start with a hybrid setup: keep essential client-side tags for immediate UI tracking, and move conversion and attribution events to the server. Here is a simple roadmap:"}),a.jsx("ol",{className:"space-y-3 mb-6 pl-0 counter-reset",children:["Audit your current tracking setup and identify missing conversion events.","Choose a server-side analytics tool that fits your stack and budget.","Set up a server-side container or tracking endpoint on your domain.","Map your key events — purchases, sign-ups, leads — to server-side tags.","Test thoroughly, then gradually move more events server-side."].map((e,t)=>a.jsxs("li",{className:"flex items-start gap-3 text-foreground/90",children:[a.jsx("span",{className:"flex items-center justify-center w-6 h-6 rounded-full bg-primary/10 text-primary text-xs font-semibold shrink-0 mt-0.5",children:t+1}),a.jsx("span",{children:e})]},t))}),a.jsxs("p",{className:"text-foreground/90 text-base leading-relaxed",children:["If you want help planning the migration, try our"," ",a.jsx(ie,{to:"/free-ai-server-side-tracking",className:"text-primary hover:underline",children:"free AI server-side tracking helper"})," ","or"," ",a.jsx(ie,{to:"/chat",className:"text-primary hover:underline",children:"chat with our AI assistant"}),". It is trained on server-side analytics setup, tool selection, and common troubleshooting scenarios."]})]}),a.jsxs("section",{className:"p-6 md:p-8 rounded-2xl bg-primary/5 border border-primary/20",children:[a.jsx("h2",{className:"font-display text-xl font-bold text-foreground mb-3",children:"Key Takeaways"}),a.jsxs("ul",{className:"space-y-2 pl-0",children:[a.jsxs("li",{className:"flex items-start gap-3 text-foreground
286/90 text-sm",children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary mt-2 shrink-0"}),a.jsx("span",{children:"Server based analytics moves data collection from the browser to your own server."})]}),a.jsxs("li",{className:"flex items-start gap-3 text-foreground/90 text-sm",children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary mt-2 shrink-0"}),a.jsx("span",{children:"It recovers data lost to ad blockers, privacy browsers, and cookie restrictions."})]}),a.jsxs("li",{className:"flex items-start gap-3 text-foreground/90 text-sm",children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary mt-2 shrink-0"}),a.jsx("span",{children:"You gain better privacy control, faster page speed, and more reliable conversion tracking."})]}),a.jsxs("li",{className:"flex items-start gap-3 text-foreground/90 text-sm",children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary mt-2 shrink-0"}),a.jsx("span",{children:"Most businesses use a hybrid approach rather than replacing client-side tracking entirely."})]}),a.jsxs("li",{className:"flex items-start gap-3 text-foreground/90 text-sm",children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-primary mt-2 shrink-0"}),a.jsx("span",{children:"Server-side analytics is accessible to companies of all sizes in 2026."})]})]})]})]}),BB=()=>{const{slug:e}=Wh(),t=cC.find(i=>i.slug===e);if(!t)return a.jsx(Km,{});const n=`${Pd}/blog/${t.slug}`,r={"@context":"https://schema.org","@type":"Article",headline:t.title,description:t.description,author:{"@type":"Organization",name:t.author,url:Pd},publisher:{"@type":"Organization",name:"ServerSideAnalytics",logo:{"@type":"ImageObject",url:`${Pd}/favicon.png`}},datePublished:new Date(t.publishedAt).toISOString(),dateModified:new Date(t.modifiedAt).toISOString(),mainEntityOfPage:{"@type":"WebPage","@id":n}};return a.jsxs(yt,{children:[a.jsxs(kh,{children:[a.jsx("title",{children:t.title}),a.jsx("meta",{name:"description",content:t.description}),a.jsx("link",{rel:"canonical",href:n}),a.jsx("meta",{property:"og:title",content:t.title}),a.jsx("meta",{property:"og:description",content:t.description}),a.jsx("meta",{property:"og:url",content:n}),a.jsx("meta",{property:"og:type",content:"article"}),a.jsx("meta",{name:"twitter:title",content:t.title}),a.jsx("meta",{name:"twitter:description",content:t.description}),a.jsx("script",{type:"application/ld+json",children:JSON.stringify(r)})]}),a.jsx("article",{className:"py-16 md:py-24",children:a.jsxs("div",{className:"container mx-auto px-4 max-w-3xl",children:[a.jsxs(H.header,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},className:"mb-12",children:[a.jsx("p",{className:"text-primary text-sm font-medium uppercase tracking-wider mb-4",children:t.category}),a.jsx("h1",{className:"font-display text-3xl md:text-4xl lg:text-5xl font-bold text-foreground mb-6 leading-tight",children:t.title}),a.jsxs("div",{className:"flex flex-wrap items-center gap-4 text-muted-foreground text-sm",children:[a.jsxs("span",{className:"flex items-center gap-1.5",children:[a.jsx(f1,{className:"w-4 h-4"}),t.publishedAt]}),a.jsxs("span",{className:"flex items-center gap-1.5",children:[a.jsx(Ah,{className:"w-4 h-4"}),t.readTime]})]})]}),a.jsxs(H.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{delay:.1},className:"prose prose-invert max-w-none",children:[t.slug==="what-is-server-based-analytics-2026-guide"&&a.jsx(_B,{}),t.slug==="server-side-tracking-vs-server-side-tagging"&&a.jsx(LB,{})]})]})})]})},GB=new ZM,zB=()=>a.jsx(tI,{client:GB,children:a.jsxs(PM,{children:[a.jsx(u2,{}),a.jsx(V2,{}),a.jsx(XI,{children:a.jsxs(UI,{children:[a.jsx(We,{path:"/",element:a.jsx(J5,{})}),a.jsx(We,{path:"/contact",element:a.jsx(wO,{})}),a.jsx(We,{path:"/privacy",element:a.jsx(bO,{})}),a.jsx(We,{path:"/terms",element:a.jsx(kO,{})}),a.jsx(We,{path:"/chat",element:a.jsx(pB,{})}),a.jsx(We,{path:"/what-is-server-side-analytics",element:a.jsx(fB,{})}),a.jsx(We,{path:"/best-server-side-analytics-tools",element:a.jsx(mB,{})}),a.jsx(We,{path:"/top-server-side-tracking-tools",element:a.jsx(vB,{})}),a.jsx(We,{path:"/best-server-side-tagging-providers",element:a.jsx(SB,{})}),a.jsx(We,{path:"/free-ai-server-side-tracking",element:a.jsx(PB,{})}),a.jsx(We,{path:"/server-side-tracking-directory",element:a.jsx(IB,{})}),a.jsx(We,{path:"/review/:slug",element:a.jsx(kB,{})}),a.jsx(We,{path:"/directory/:slug",element:a.jsx(FB,{})}),a.jsx(We,{path:"/blog",element:a.jsx(OB,{})}),a.jsx(We,{path:"/blog/:slug",element:a.jsx(BB,{})}),a.jsx(We,{path:"*",element:a.jsx(Km,{})})]})})]})});Ab(document.getElementById("root")).render(a.jsx(Fb,{children:a.jsx(zB,{})}));

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.