vendor: 6,485 bytes, lines 1-9
1var AW=Object.defineProperty;var wT=e=>{throw TypeError(e)};var SW=(e,t,n)=>t in e?AW(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var Ct=(e,t,n)=>SW(e,typeof t!="symbol"?t+"":t,n),yv=(e,t,n)=>t.has(e)||wT("Cannot "+n);var G=(e,t,n)=>(yv(e,t,"read from private field"),n?n.call(e):t.get(e)),Fe=(e,t,n)=>t.has(e)?wT("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),je=(e,t,n,r)=>(yv(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n),ot=(e,t,n)=>(yv(e,t,"access private method"),n);var of=(e,t,n,r)=>({set _(i){je(e,t,i,n)},get _(){return G(e,t,r)}});function CW(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 o=Object.getOwnPropertyDescriptor(r,i);o&&Object.defineProperty(e,i,o.get?o:{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 o of i)if(o.type==="childList")for(const s of o.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&r(s)}).observe(document,{childList:!0,subtree:!0});function n(i){const o={};return i.integrity&&(o.integrity=i.integrity),i.referrerPolicy&&(o.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?o.credentials="include":i.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(i){if(i.ep)return;i.ep=!0;const o=n(i);fetch(i.href,o)}})();var sf=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function bt(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var xv={exports:{}},Mu={},vv={exports:{}},et={};/** 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 jT;function NW(){if(jT)return et;jT=1;var e=Symbol.for("react.element"),t=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),o=Symbol.for("react.provider"),s=Symbol.for("react.context"),l=Symbol.for("react.forward_ref"),u=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),p=Symbol.for("react.lazy"),f=Symbol.iterator;function g(z){return z===null||typeof z!="object"?null:(z=f&&z[f]||z["@@iterator"],typeof z=="function"?z:null)}var y={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},b=Object.assign,w={};function v(z,X,L){this.props=z,this.context=X,this.refs=w,this.updater=L||y}v.prototype.isReactComponent={},v.prototype.setState=function(z,X){if(typeof z!="object"&&typeof z!="function"&&z!=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,z,X,"setState")},v.prototype.forceUpdate=function(z){this.updater.enqueueForceUpdate(this,z,"forceUpdate")};function j(){}j.prototype=v.prototype;function k(z,X,L){this.props=z,this.context=X,this.refs=w,this.updater=L||y}var S=k.prototype=new j;S.constructor=k,b(S,v.prototype),S.isPureReactComponent=!0;var E=Array.isArray,N=Object.prototype.hasOwnProperty,C={current:null},P={key:!0,ref:!0,__self:!0,__source:!0};function _(z,X,L){var me,xe={},le=null,Ie=null;if(X!=null)for(me in X.ref!==void 0&&(Ie=X.ref),X.key!==void 0&&(le=""+X.key),X)N.call(X,me)&&!P.hasOwnProperty(me)&&(xe[me]=X[me]);var Oe=arguments.length-2;if(Oe===1)xe.children=L;else if(1<Oe){for(var ae=Array(Oe),ke=0;ke<Oe;ke++)ae[ke]=arguments[ke+2];xe.children=ae}if(z&&z.defaultProps)for(me in Oe=z.defaultProps,Oe)xe[me]===void 0&&(xe[me]=Oe[me]);return{$$typeof:e,type:z,key:le,ref:Ie,props:xe,_owner:C.current}}function M(z,X){return{$$typeof:e,type:z.type,key:X,ref:z.ref,props:z.props,_owner:z._owner}}function D(z){return typeof z=="object"&&z!==null&&z.$$typeof===e}function B(z){var X={"=":"=0",":":"=2"};return"$"+z.replace(/[=:]/g,function(L){return X[L]})}var F=/\/+/g;function V(z,X){return typeof z=="object"&&z!==null&&z.key!=null?B(""+z.key):X.toString(36)}function U(z,X,L,me,xe){var le=typeof z;(le==="undefined"||le==="boolean")&&(z=null);var Ie=!1;if(z===null)Ie=!0;else switch(le){case"string":case"number":Ie=!0;break;case"object":switch(z.$$typeof){case e:case t:Ie=!0}}if(Ie)return Ie=z,xe=xe(Ie),z=me===""?"."+V(Ie,0):me,E(xe)?(L="",z!=null&&(L=z.replace(F,"$&/")+"/"),U(xe,X,L,"",function(ke){return ke})):xe!=null&&(D(xe)&&(xe=M(xe,L+(!xe.key||Ie&&Ie.key===xe.key?"":(""+xe.key).replace(F,"$&/")+"/")+z)),X.push(xe)),1;if(Ie=0,me=me===""?".":me+":",E(z))for(var Oe=0;Oe<z.length;Oe++){le=z[Oe];var ae=me+V(le,Oe);Ie+=U(le,X,L,ae,xe)}else if(ae=g(z),typeof ae=="function")for(z=ae.call(z),Oe=0;!(le=z.next()).done;)le=le.value,ae=me+V(le,Oe++),Ie+=U(le,X,L,ae,xe);else if(le==="object")throw X=String(z),Error("Objects are not valid as a React child (found: "+(X==="[object Object]"?"object with keys {"+Object.keys(z).join(", ")+"}":X)+"). If you meant to render a collection of children, use an array instead.");return Ie}function q(z,X,L){if(z==null)return z;var me=[],xe=0;return U(z,me,"","",function(le){return X.call(L,le,xe++)}),me}function Y(z){if(z._status===-1){var X=z._result;X=X(),X.then(function(L){(z._status===0||z._status===-1)&&(z._status=1,z._result=L)},function(L){(z._status===0||z._status===-1)&&(z._status=2,z._result=L)}),z._status===-1&&(z._status=0,z._result=X)}if(z._status===1)return z._result.default;throw z._result}var Z={current:null},J={transition:null},ne={ReactCurrentDispatcher:Z,ReactCurrentBatchConfig:J,ReactCurrentOwner:C};function I(){throw Error("act(...) is not supported in production builds of React.")}return et.Children={map:q,forEach:function(z,X,L){q(z,function(){X.apply(this,arguments)},L)},count:function(z){var X=0;return q(z,function(){X++}),X},toArray:function(z){return q(z,function(X){return X})||[]},only:function(z){if(!D(z))throw Error("React.Children.only expected to receive a single React element child.");return z}},et.Component=v,et.Fragment=n,et.Profiler=i,et.PureComponent=k,et.StrictMode=r,et.Suspense=u,et.__SECRET_INT
vendor: 3,168 bytes, lines 9-17
9ERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=ne,et.act=I,et.cloneElement=function(z,X,L){if(z==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+z+".");var me=b({},z.props),xe=z.key,le=z.ref,Ie=z._owner;if(X!=null){if(X.ref!==void 0&&(le=X.ref,Ie=C.current),X.key!==void 0&&(xe=""+X.key),z.type&&z.type.defaultProps)var Oe=z.type.defaultProps;for(ae in X)N.call(X,ae)&&!P.hasOwnProperty(ae)&&(me[ae]=X[ae]===void 0&&Oe!==void 0?Oe[ae]:X[ae])}var ae=arguments.length-2;if(ae===1)me.children=L;else if(1<ae){Oe=Array(ae);for(var ke=0;ke<ae;ke++)Oe[ke]=arguments[ke+2];me.children=Oe}return{$$typeof:e,type:z.type,key:xe,ref:le,props:me,_owner:Ie}},et.createContext=function(z){return z={$$typeof:s,_currentValue:z,_currentValue2:z,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},z.Provider={$$typeof:o,_context:z},z.Consumer=z},et.createElement=_,et.createFactory=function(z){var X=_.bind(null,z);return X.type=z,X},et.createRef=function(){return{current:null}},et.forwardRef=function(z){return{$$typeof:l,render:z}},et.isValidElement=D,et.lazy=function(z){return{$$typeof:p,_payload:{_status:-1,_result:z},_init:Y}},et.memo=function(z,X){return{$$typeof:d,type:z,compare:X===void 0?null:X}},et.startTransition=function(z){var X=J.transition;J.transition={};try{z()}finally{J.transition=X}},et.unstable_act=I,et.useCallback=function(z,X){return Z.current.useCallback(z,X)},et.useContext=function(z){return Z.current.useContext(z)},et.useDebugValue=function(){},et.useDeferredValue=function(z){return Z.current.useDeferredValue(z)},et.useEffect=function(z,X){return Z.current.useEffect(z,X)},et.useId=function(){return Z.current.useId()},et.useImperativeHandle=function(z,X,L){return Z.current.useImperativeHandle(z,X,L)},et.useInsertionEffect=function(z,X){return Z.current.useInsertionEffect(z,X)},et.useLayoutEffect=function(z,X){return Z.current.useLayoutEffect(z,X)},et.useMemo=function(z,X){return Z.current.useMemo(z,X)},et.useReducer=function(z,X,L){return Z.current.useReducer(z,X,L)},et.useRef=function(z){return Z.current.useRef(z)},et.useState=function(z){return Z.current.useState(z)},et.useSyncExternalStore=function(z,X,L){return Z.current.useSyncExternalStore(z,X,L)},et.useTransition=function(){return Z.current.useTransition()},et.version="18.3.1",et}var kT;function qk(){return kT||(kT=1,vv.exports=NW()),vv.exports}/** 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 AT;function TW(){if(AT)return Mu;AT=1;var e=qk(),t=Symbol.for("react.element"),n=Symbol.for("react.fragment"),r=Object.prototype.hasOwnProperty,i=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,o={key:!0,ref:!0,__self:!0,__source:!0};function s(l,u,d){var p,f={},g=null,y=null;d!==void 0&&(g=""+d),u.key!==void 0&&(g=""+u.key),u.ref!==void 0&&(y=u.ref);for(p in u)r.call(u,p)&&!o.hasOwnProperty(p)&&(f[p]=u[p]);if(l&&l.defaultProps)for(p in u=l.defaultProps,u)f[p]===void 0&&(f[p]=u[p]);
vendor: 8,717 bytes, lines 17-33
17return{$$typeof:t,type:l,key:g,ref:y,props:f,_owner:i.current}}return Mu.Fragment=n,Mu.jsx=s,Mu.jsxs=s,Mu}var ST;function EW(){return ST||(ST=1,xv.exports=TW()),xv.exports}var a=EW(),O=qk();const W=bt(O),Wk=CW({__proto__:null,default:W},[O]);var lf={},bv={exports:{}},ir={},wv={exports:{}},jv={};/** 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 */var CT;function PW(){return CT||(CT=1,(function(e){function t(J,ne){var I=J.length;J.push(ne);e:for(;0<I;){var z=I-1>>>1,X=J[z];if(0<i(X,ne))J[z]=ne,J[I]=X,I=z;else break e}}function n(J){return J.length===0?null:J[0]}function r(J){if(J.length===0)return null;var ne=J[0],I=J.pop();if(I!==ne){J[0]=I;e:for(var z=0,X=J.length,L=X>>>1;z<L;){var me=2*(z+1)-1,xe=J[me],le=me+1,Ie=J[le];if(0>i(xe,I))le<X&&0>i(Ie,xe)?(J[z]=Ie,J[le]=I,z=le):(J[z]=xe,J[me]=I,z=me);else if(le<X&&0>i(Ie,I))J[z]=Ie,J[le]=I,z=le;else break e}}return ne}function i(J,ne){var I=J.sortIndex-ne.sortIndex;return I!==0?I:J.id-ne.id}if(typeof performance=="object"&&typeof performance.now=="function"){var o=performance;e.unstable_now=function(){return o.now()}}else{var s=Date,l=s.now();e.unstable_now=function(){return s.now()-l}}var u=[],d=[],p=1,f=null,g=3,y=!1,b=!1,w=!1,v=typeof setTimeout=="function"?setTimeout:null,j=typeof clearTimeout=="function"?clearTimeout:null,k=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function S(J){for(var ne=n(d);ne!==null;){if(ne.callback===null)r(d);else if(ne.startTime<=J)r(d),ne.sortIndex=ne.expirationTime,t(u,ne);else break;ne=n(d)}}function E(J){if(w=!1,S(J),!b)if(n(u)!==null)b=!0,Y(N);else{var ne=n(d);ne!==null&&Z(E,ne.startTime-J)}}function N(J,ne){b=!1,w&&(w=!1,j(_),_=-1),y=!0;var I=g;try{for(S(ne),f=n(u);f!==null&&(!(f.expirationTime>ne)||J&&!B());){var z=f.callback;if(typeof z=="function"){f.callback=null,g=f.priorityLevel;var X=z(f.expirationTime<=ne);ne=e.unstable_now(),typeof X=="function"?f.callback=X:f===n(u)&&r(u),S(ne)}else r(u);f=n(u)}if(f!==null)var L=!0;else{var me=n(d);me!==null&&Z(E,me.startTime-ne),L=!1}return L}finally{f=null,g=I,y=!1}}var C=!1,P=null,_=-1,M=5,D=-1;function B(){return!(e.unstable_now()-D<M)}function F(){if(P!==null){var J=e.unstable_now();D=J;var ne=!0;try{ne=P(!0,J)}finally{ne?V():(C=!1,P=null)}}else C=!1}var V;if(typeof k=="function")V=function(){k(F)};else if(typeof MessageChannel<"u"){var U=new MessageChannel,q=U.port2;U.port1.onmessage=F,V=function(){q.postMessage(null)}}else V=function(){v(F,0)};function Y(J){P=J,C||(C=!0,V())}function Z(J,ne){_=v(function(){J(e.unstable_now())},ne)}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(J){J.callback=null},e.unstable_continueExecution=function(){b||y||(b=!0,Y(N))},e.unstable_forceFrameRate=function(J){0>J||125<J?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):M=0<J?Math.floor(1e3/J):5},e.unstable_getCurrentPriorityLevel=function(){return g},e.unstable_getFirstCallbackNode=function(){return n(u)},e.unstable_next=function(J){switch(g){case 1:case 2:case 3:var ne=3;break;default:ne=g}var I=g;g=ne;try{return J()}finally{g=I}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=function(){},e.unstable_runWithPriority=function(J,ne){switch(J){case 1:case 2:case 3:case 4:case 5:break;default:J=3}var I=g;g=J;try{return ne()}finally{g=I}},e.unstable_scheduleCallback=function(J,ne,I){var z=e.unstable_now();switch(typeof I=="object"&&I!==null?(I=I.delay,I=typeof I=="number"&&0<I?z+I:z):I=z,J){case 1:var X=-1;break;case 2:X=250;break;case 5:X=1073741823;break;case 4:X=1e4;break;default:X=5e3}return X=I+X,J={id:p++,callback:ne,priorityLevel:J,startTime:I,expirationTime:X,sortIndex:-1},I>z?(J.sortIndex=I,t(d,J),n(u)===null&&J===n(d)&&(w?(j(_),_=-1):w=!0,Z(E,I-z))):(J.sortIndex=X,t(u,J),b||y||(b=!0,Y(N))),J},e.unstable_shouldYield=B,e.unstable_wrapCallback=function(J){var ne=g;return function(){var I=g;g=ne;try{return J.apply(this,arguments)}finally{g=I}}}})(jv)),jv}var NT;function OW(){return NT||(NT=1,wv.exports=PW()),wv.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 TT;function _W(){if(TT)return ir;TT=1;var e=qk(),t=OW();function n(c){for(var h="https://reactjs.org/docs/error-decoder.html?invariant="+c,m=1;m<arguments.length;m++)h+="&args[]="+encodeURIComponent(arguments[m]);return"Minified React error #"+c+"; visit "+h+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var r=new Set,i={};function o(c,h){s(c,h),s(c+"Capture",h)}function s(c,h){for(i[c]=h,c=0;c<h.length;c++)r.add(h[c])}var l=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),u=Object.prototype.hasOwnProperty,d=/^[: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]*$/,p={},f={};function g(c){return u.call(f,c)?!0:u.call(p,c)?!1:d.test(c)?f[c]=!0:(p[c]=!0,!1)}function y(c,h,m,x){if(m!==null&&m.type===0)return!1;switch(typeof h){case"function":case"symbol":return!0;case"boolean":return x?!1:m!==null?!m.acceptsBooleans:(c=c.toLowerCase().slice(0,5),c!=="data-"&&c!=="aria-");default:return!1}}function b(c,h,m,x){if(h===null||typeof h>"u"||y(c,h,m,x))return!0;if(x)return!1;if(m!==null)switch(m.type){case 3:return!h;case 4:return h===!1;case 5:return isNaN(h);case 6:return isNaN(h)||1>h}return!1}function w(c,h,m,x,A,T,R){this.acceptsBooleans=h===2||h===3||h===4,this.attributeName=x,this.attributeNamespace=A,this.mustUseProperty=m,this.propertyName=c,this.type=h,this.sanitizeURL=T,this.removeEmptyString=R}var v={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(c){v[c]=new w(c,0,!1,c,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(c){var h=c[0];v[h]=new w(h,1,!1,c[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(c){v[c]=new w(c,2,!1,c.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(c){v[c]=new w(c,2,!1,c,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(c){v[c]=new w(c,3,!1,c.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(c){v[c]=new w(c,3,!0,c,null,!1,!1)}),["capture","download"].forEach(function(c){v[c]=new w(c,4,!1,c,null,!1,!1)}),["cols","rows","size","span"].forEach(function(c){v[c]=new w(c,6,!1,c,null,!1,!1)}),["rowSpan","start"].forEach(function(c){v[c]=new w(c,5,!1,c.toLowerCase(),null,!1,!1)});var j=/[\-:]([a-z])/g;function k(c){return c[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
33-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(c){var h=c.replace(j,k);v[h]=new w(h,1,!1,c,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(c){var h=c.replace(j,k);v[h]=new w(h,1,!1,c,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(c){var h=c.replace(j,k);v[h]=new w(h,1,!1,c,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(c){v[c]=new w(c,1,!1,c.toLowerCase(),null,!1,!1)}),v.xlinkHref=new w("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(c){v[c]=new w(c,1,!1,c.toLowerCase(),null,!0,!0)});function S(c,h,m,x){var A=v.hasOwnProperty(h)?v[h]:null;(A!==null?A.type!==0:x||!(2<h.length)||h[0]!=="o"&&h[0]!=="O"||h[1]!=="n"&&h[1]!=="N")&&(b(h,m,A,x)&&(m=null),x||A===null?g(h)&&(m===null?c.removeAttribute(h):c.setAttribute(h,""+m)):A.mustUseProperty?c[A.propertyName]=m===null?A.type===3?!1:"":m:(h=A.attributeName,x=A.attributeNamespace,m===null?c.removeAttribute(h):(A=A.type,m=A===3||A===4&&m===!0?"":""+m,x?c.setAttributeNS(x,h,m):c.setAttribute(h,m))))}var E=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,N=Symbol.for("react.element"),C=Symbol.for("react.portal"),P=Symbol.for("react.fragment"),_=Symbol.for("react.strict_mode"),M=Symbol.for("react.profiler"),D=Symbol.for("react.provider"),B=Symbol.for("react.context"),F=Symbol.for("react.forward_ref"),V=Symbol.for("react.suspense"),U=Symbol.for("react.suspense_list"),q=Symbol.for("react.memo"),Y=Symbol.for("react.lazy"),Z=Symbol.for("react.offscreen"),J=Symbol.iterator;function ne(c){return c===null||typeof c!="object"?null:(c=J&&c[J]||c["@@iterator"],typeof c=="function"?c:null)}var I=Object.assign,z;function X(c){if(z===void 0)try{throw Error()}catch(m){var h=m.stack.trim().match(/\n( *(at )?)/);z=h&&h[1]||""}return` 34`+z+c}var L=!1;function me(c,h){if(!c||L)return"";L=!0;var m=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(h)if(h=function(){throw Error()},Object.defineProperty(h.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(h,[])}catch(re){var x=re}Reflect.construct(c,[],h)}else{try{h.call()}catch(re){x=re}c.call(h.prototype)}else{try{throw Error()}catch(re){x=re}c()}}catch(re){if(re&&x&&typeof re.stack=="string"){for(var A=re.stack.split(` 35`),T=x.stack.split(` 36`),R=A.length-1,$=T.length-1;1<=R&&0<=$&&A[R]!==T[$];)$--;for(;1<=R&&0<=$;R--,$--)if(A[R]!==T[$]){if(R!==1||$!==1)do if(R--,$--,0>$||A[R]!==T[$]){var H=` 37`+A[R].replace(" at new "," at ");return c.displayName&&H.includes("<anonymous>")&&(H=H.replace("<anonymous>",c.displayName)),H}while(1<=R&&0<=$);break}}}finally{L=!1,Error.prepareStackTrace=m}return(c=c?c.displayName||c.name:"")?X(c):""}function xe(c){switch(c.tag){case 5:return X(c.type);case 16:return X("Lazy");case 13:return X("Suspense");case 19:return X("SuspenseList");case 0:case 2:case 15:return c=me(c.type,!1),c;case 11:return c=me(c.type.render,!1),c;case 1:return c=me(c.type,!0),c;default:return""}}function le(c){if(c==null)return null;if(typeof c=="function")return c.displayName||c.name||null;if(typeof c=="string")return c;switch(c){case P:return"Fragment";case C:return"Portal";case M:return"Profiler";case _:return"StrictMode";case V:return"Suspense";case U:return"SuspenseList"}if(typeof c=="object")switch(c.$$typeof){case B:return(c.displayName||"Context")+".Consumer";case D:return(c._context.displayName||"Context")+".Provider";case F:var h=c.render;return c=c.displayName,c||(c=h.displayName||h.name||"",c=c!==""?"ForwardRef("+c+")":"ForwardRef"),c;case q:return h=c.displayName||null,h!==null?h:le(c.type)||"Memo";case Y:h=c._payload,c=c._init;try{return le(c(h))}catch{}}return null}function Ie(c){var h=c.type;switch(c.tag){case 24:return"Cache";case 9:return(h.displayName||"Context")+".Consumer";case 10:return(h._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return c=h.render,c=c.displayName||c.name||"",h.displayName||(c!==""?"ForwardRef("+c+")":"ForwardRef");case 7:return"Fragment";case 5:return h;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return le(h);case 8:return h===_?"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 h=="function")return h.displayName||h.name||null;if(typeof h=="string")return h}return null}function Oe(c){switch(typeof c){case"boolean":case"number":case"string":case"undefined":return c;case"object":return c;default:return""}}function ae(c){var h=c.type;return(c=c.nodeName)&&c.toLowerCase()==="input"&&(h==="checkbox"||h==="radio")}function ke(c){var h=ae(c)?"checked":"value",m=Object.getOwnPropertyDescriptor(c.constructor.prototype,h),x=""+c[h];if(!c.hasOwnProperty(h)&&typeof m<"u"&&typeof m.get=="function"&&typeof m.set=="function"){var A=m.get,T=m.set;return Object.defineProperty(c,h,{configurable:!0,get:function(){return A.call(this)},set:function(R){x=""+R,T.call(this,R)}}),Object.defineProperty(c,h,{enumerable:m.enumerable}),{getValue:function(){return x},setValue:function(R){x=""+R},stopTracking:function(){c._valueTracker=null,delete c[h]}}}}function Re(c){c._valueTracker||(c._valueTracker=ke(c))}function se(c){if(!c)return!1;var h=c._valueTracker;if(!h)return!0;var m=h.getValue(),x="";
vendor: 32,601 bytes, line 37
37return c&&(x=ae(c)?c.checked?"true":"false":c.value),c=x,c!==m?(h.setValue(c),!0):!1}function rt(c){if(c=c||(typeof document<"u"?document:void 0),typeof c>"u")return null;try{return c.activeElement||c.body}catch{return c.body}}function qe(c,h){var m=h.checked;return I({},h,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:m??c._wrapperState.initialChecked})}function it(c,h){var m=h.defaultValue==null?"":h.defaultValue,x=h.checked!=null?h.checked:h.defaultChecked;m=Oe(h.value!=null?h.value:m),c._wrapperState={initialChecked:x,initialValue:m,controlled:h.type==="checkbox"||h.type==="radio"?h.checked!=null:h.value!=null}}function Ae(c,h){h=h.checked,h!=null&&S(c,"checked",h,!1)}function at(c,h){Ae(c,h);var m=Oe(h.value),x=h.type;if(m!=null)x==="number"?(m===0&&c.value===""||c.value!=m)&&(c.value=""+m):c.value!==""+m&&(c.value=""+m);else if(x==="submit"||x==="reset"){c.removeAttribute("value");return}h.hasOwnProperty("value")?Ht(c,h.type,m):h.hasOwnProperty("defaultValue")&&Ht(c,h.type,Oe(h.defaultValue)),h.checked==null&&h.defaultChecked!=null&&(c.defaultChecked=!!h.defaultChecked)}function zt(c,h,m){if(h.hasOwnProperty("value")||h.hasOwnProperty("defaultValue")){var x=h.type;if(!(x!=="submit"&&x!=="reset"||h.value!==void 0&&h.value!==null))return;h=""+c._wrapperState.initialValue,m||h===c.value||(c.value=h),c.defaultValue=h}m=c.name,m!==""&&(c.name=""),c.defaultChecked=!!c._wrapperState.initialChecked,m!==""&&(c.name=m)}function Ht(c,h,m){(h!=="number"||rt(c.ownerDocument)!==c)&&(m==null?c.defaultValue=""+c._wrapperState.initialValue:c.defaultValue!==""+m&&(c.defaultValue=""+m))}var On=Array.isArray;function hn(c,h,m,x){if(c=c.options,h){h={};for(var A=0;A<m.length;A++)h["$"+m[A]]=!0;for(m=0;m<c.length;m++)A=h.hasOwnProperty("$"+c[m].value),c[m].selected!==A&&(c[m].selected=A),A&&x&&(c[m].defaultSelected=!0)}else{for(m=""+Oe(m),h=null,A=0;A<c.length;A++){if(c[A].value===m){c[A].selected=!0,x&&(c[A].defaultSelected=!0);return}h!==null||c[A].disabled||(h=c[A])}h!==null&&(h.selected=!0)}}function nn(c,h){if(h.dangerouslySetInnerHTML!=null)throw Error(n(91));return I({},h,{value:void 0,defaultValue:void 0,children:""+c._wrapperState.initialValue})}function Sa(c,h){var m=h.value;if(m==null){if(m=h.children,h=h.defaultValue,m!=null){if(h!=null)throw Error(n(92));if(On(m)){if(1<m.length)throw Error(n(93));m=m[0]}h=m}h==null&&(h=""),m=h}c._wrapperState={initialValue:Oe(m)}}function _o(c,h){var m=Oe(h.value),x=Oe(h.defaultValue);m!=null&&(m=""+m,m!==c.value&&(c.value=m),h.defaultValue==null&&c.defaultValue!==m&&(c.defaultValue=m)),x!=null&&(c.defaultValue=""+x)}function Io(c){var h=c.textContent;h===c._wrapperState.initialValue&&h!==""&&h!==null&&(c.value=h)}function oe(c){switch(c){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 ge(c,h){return c==null||c==="http://www.w3.org/1999/xhtml"?oe(h):c==="http://www.w3.org/2000/svg"&&h==="foreignObject"?"http://www.w3.org/1999/xhtml":c}var We,Ze=(function(c){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(h,m,x,A){MSApp.execUnsafeLocalFunction(function(){return c(h,m,x,A)})}:c})(function(c,h){if(c.namespaceURI!=="http://www.w3.org/2000/svg"||"innerHTML"in c)c.innerHTML=h;else{for(We=We||document.createElement("div"),We.innerHTML="<svg>"+h.valueOf().toString()+"</svg>",h=We.firstChild;c.firstChild;)c.removeChild(c.firstChild);for(;h.firstChild;)c.appendChild(h.firstChild)}});function ut(c,h){if(h){var m=c.firstChild;if(m&&m===c.lastChild&&m.nodeType===3){m.nodeValue=h;return}}c.textContent=h}var bn={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},Wi=["Webkit","ms","Moz","O"];Object.keys(bn).forEach(function(c){Wi.forEach(function(h){h=h+c.charAt(0).toUpperCase()+c.substring(1),bn[h]=bn[c]})});function Cr(c,h,m){return h==null||typeof h=="boolean"||h===""?"":m||typeof h!="number"||h===0||bn.hasOwnProperty(c)&&bn[c]?(""+h).trim():h+"px"}function Ca(c,h){c=c.style;for(var m in h)if(h.hasOwnProperty(m)){var x=m.indexOf("--")===0,A=Cr(m,h[m],x);m==="float"&&(m="cssFloat"),x?c.setProperty(m,A):c[m]=A}}var Ro=I({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 wn(c,h){if(h){if(Ro[c]&&(h.children!=null||h.dangerouslySetInnerHTML!=null))throw Error(n(137,c));if(h.dangerouslySetInnerHTML!=null){if(h.children!=null)throw Error(n(60));if(typeof h.dangerouslySetInnerHTML!="object"||!("__html"in h.dangerouslySetInnerHTML))throw Error(n(61))}if(h.style!=null&&typeof h.style!="object")throw Error(n(62))}}function yi(c,h){if(c.indexOf("-")===-1)return typeof h.is=="string";switch(c){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 hr=null;function _y(c){return c=c.target||c.srcElement||window,c.correspondingUseElement&&(c=c.correspondingUseElement),c.nodeType===3?c.parentNode:c}var Iy=null,Xs=null,Qs=null;function FC(c){if(c=wu(c)){if(typeof Iy!="function")throw Error(n(280));var h=c.stateNode;h&&(h=bp(h),Iy(c.stateNode,c.type,h))}}function BC(c){Xs?Qs?Qs.push(c):Qs=[c]:Xs=c}function zC(){if(Xs){var c=Xs,h=Qs;if(Qs=Xs=null,FC(c),h)for(c=0;c<h.length;c++)FC(h[c])}}function $C(c,h){return c(h)}function qC(){}var Ry=!1;function WC(c,h,m){if(Ry)return c(h,m);Ry=!0;try{return $C(c,h,m)}finally{Ry=!1,(Xs!==null||Qs!==null)&&(qC(),zC())}}function eu(c,h){var m=c.stateNode;if(m===null)return null;var x=bp(m);if(x===null)return null;m=x[h];e:switch(h){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(x=!x.disabled)||(c=c.type,x=!(c==="button"||c==="input"||c==="select"||c==="textarea")),c=!x;break e;default:c=!1}if(c)return null;if(m&&typeof m!="function")throw Error(n(231,h,typeof m));return m}var Dy=!1;if(l)try{var tu={};Object.defineProperty(tu,"passive",{get:function(){Dy=!0}}),window.addEventListener("test",tu,tu),window.removeEventListener("test",tu,tu)}catch{Dy=!1}function P$(c,h,m,x,A,T,R,$,H){var re=Array.prototype.slice.call(arguments,3);try{h.apply(m,re)}catch(ue){this.onError(ue)}}var nu=!1,Jh=null,Zh=!1,My=null,O$={onError:function(c){nu=!0,Jh=c}};function _$(c,h,m,x,A,T,R,$,H){nu=!1,Jh=null,P$.apply(O$,arguments)}function I$(c,h,m,x,A,T,R,$,H){if(_$.apply(this,arguments),nu){if(nu){var re=Jh;nu=!1,Jh=null}else throw Error(n(198));Zh||(Zh=!0,My=re)}}function Do(c){var h=c,m=c;if(c.alternate)for(;h.return;)h=h.return;else{c=h;do h=c,(h.flags&4098)!==0&&(m=h.return),c=h.return;while(c)}return h.tag===3?m:null}function UC(c){if(c.tag===13){var h=c.memoizedState;if(h===null&&(c=c.alternate,c!==null&&(h=c.memoizedState)),h!==null)return h.dehydrated}return null}function HC(c){if(Do(c)!==c)throw Error(n(188))}function R$(c){var h=c.alternate;if(!h){if(h=Do(c),h===null)throw Error(n(188));return h!==c?null:c}for(var m=c,x=h;;){var A=m.return;if(A===null)break;var T=A.alternate;if(T===null){if(x=A.return,x!==null){m=x;continue}break}if(A.child===T.child){for(T=A.child;T;){if(T===m)return HC(A),c;if(T===x)return HC(A),h;T=T.sibling}throw Error(n(188))}if(m.return!==x.return)m=A,x=T;else{for(var R=!1,$=A.child;$;){if($===m){R=!0,m=A,x=T;break}if($===x){R=!0,x=A,m=T;break}$=$.sibling}if(!R){for($=T.child;$;){if($===m){R=!0,m=T,x=A;break}if($===x){R=!0,x=T,m=A;break}$=$.sibling}if(!R)throw Error(n(189))}}if(m.alternate!==x)throw Error(n(190))}if(m.tag!==3)throw Error(n(188));return m.stateNode.current===m?c:h}function VC(c){return c=R$(c),c!==null?GC(c):null}function GC(c){if(c.tag===5||c.tag===6)return c;for(c=c.child;c!==null;){var h=GC(c);if(h!==null)return h;c=c.sibling}return null}var YC=t.unstable_scheduleCallback,KC=t.unstable_cancelCallback,D$=t.unstable_shouldYield,M$=t.unstable_requestPaint,Vt=t.unstable_now,L$=t.unstable_getCurrentPriorityLevel,Ly=t.unstable_ImmediatePriority,XC=t.unstable_UserBlockingPriority,ep=t.unstable_NormalPriority,F$=t.unstable_LowPriority,QC=t.unstable_IdlePriority,tp=null,xi=null;function B$(c){if(xi&&typeof xi.onCommitFiberRoot=="function")try{xi.onCommitFiberRoot(tp,c,void 0,(c.current.flags&128)===128)}catch{}}var Xr=Math.clz32?Math.clz32:q$,z$=Math.log,$$=Math.LN2;function q$(c){return c>>>=0,c===0?32:31-(z$(c)/$$|0)|0}var np=64,rp=4194304;function ru(c){switch(c&-c){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 c&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return c&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return c}}function ip(c,h){var m=c.pendingLanes;if(m===0)return 0;var x=0,A=c.suspendedLanes,T=c.pingedLanes,R=m&268435455;if(R!==0){var $=R&~A;$!==0?x=ru($):(T&=R,T!==0&&(x=ru(T)))}else R=m&~A,R!==0?x=ru(R):T!==0&&(x=ru(T));if(x===0)return 0;if(h!==0&&h!==x&&(h&A)===0&&(A=x&-x,T=h&-h,A>=T||A===16&&(T&4194240)!==0))return h;if((x&4)!==0&&(x|=m&16),h=c.entangledLanes,h!==0)for(c=c.entanglements,h&=x;0<h;)m=31-Xr(h),A=1<<m,x|=c[m],h&=~A;return x}function W$(c,h){switch(c){case 1:case 2:case 4:return h+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 h+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 U$(c,h){for(var m=c.suspendedLanes,x=c.pingedLanes,A=c.expirationTimes,T=c.pendingLanes;0<T;){var R=31-Xr(T),$=1<<R,H=A[R];H===-1?(($&m)===0||($&x)!==0)&&(A[R]=W$($,h)):H<=h&&(c.expiredLanes|=$),T&=~$}}function Fy(c){return c=c.pendingLanes&-1073741825,c!==0?c:c&1073741824?1073741824:0}function JC(){var c=np;return np<<=1,(np&4194240)===0&&(np=64),c}function By(c){for(var h=[],m=0;31>m;m++)h.push(c);return h}function iu(c,h,m){c.pendingLanes|=h,h!==536870912&&(c.suspendedLanes=0,c.pingedLanes=0),c=c.eventTimes,h=31-Xr(h),c[h]=m}function H$(c,h){var m=c.pendingLanes&~h;c.pendingLanes=h,c.suspendedLanes=0,c.pingedLanes=0,c.expiredLanes&=h,c.mutableReadLanes&=h,c.entangledLanes&=h,h=c.entanglements;var x=c.eventTimes;for(c=c.expirationTimes;0<m;){var A=31-Xr(m),T=1<<A;h[A]=0,x[A]=-1,c[A]=-1,m&=~T}}function zy(c,h){var m=c.entangledLanes|=h;for(c=c.entanglements;m;){var x=31-Xr(m),A=1<<x;A&h|c[x]&h&&(c[x]|=h),m&=~A}}var wt=0;function ZC(c){return c&=-c,1<c?4<c?(c&268435455)!==0?16:536870912:4:1}var e5,$y,t5,n5,r5,qy=!1,ap=[],Na=null,Ta=null,Ea=null,au=new Map,ou=new Map,Pa=[],V$="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 i5(c,h){switch(c){case"focusin":case"focusout":Na=null;break;case"dragenter":case"dragleave":Ta=null;break;case"mouseover":case"mouseout":Ea=null;break;case"pointerover":case"pointerout":au.delete(h.pointerId);break;case"gotpointercapture":case"lostpointercapture":ou.delete(h.pointerId)}}function su(c,h,m,x,A,T){return c===null||c.nativeEvent!==T?(c={blockedOn:h,domEventName:m,eventSystemFlags:x,nativeEvent:T,targetContainers:[A]},h!==null&&(h=wu(h),h!==null&&$y(h)),c):(c.eventSystemFlags|=x,h=c.targetContainers,A!==null&&h.indexOf(A)===-1&&h.push(A),c)}function G$(c,h,m,x,A){switch(h){case"focusin":return Na=su(Na,c,h,m,x,A),!0;case"dragenter":return Ta=su(Ta,c,h,m,x,A),!0;case"mouseover":return Ea=su(Ea,c,h,m,x,A),!0;case"pointerover":var T=A.pointerId;return au.set(T,su(au.get(T)||null,c,h,m,x,A)),!0;case"gotpointercapture":return T=A.pointerId,ou.set(T,su(ou.get(T)||null,c,h,m,x,A)),!0}return!1}function a5(c){var h=Mo(c.target);if(h!==null){var m=Do(h);if(m!==null){if(h=m.tag,h===13){if(h=UC(m),h!==null){c.blockedOn=h,r5(c.priority,function(){t5(m)});return}}else if(h===3&&m.stateNode.current.memoizedState.isDehydrated){c.blockedOn=m.tag===3?m.stateNode.containerInfo:null;return}}}c.blockedOn=null}function op(c){if(c.blockedOn!==null)return!1;for(var h=c.targetContainers;0<h.length;){var m=Uy(c.domEventName,c.eventSystemFlags,h[0],c.nativeEvent);if(m===null){m=c.nativeEvent;var x=new m.constructor(m.type,m);hr=x,m.target.dispatchEvent(x),hr=null}else return h=wu(m),h!==null&&$y(h),c.blockedOn=m,!1;h.shift()}return!0}function o5(c,h,m){op(c)&&m.delete(h)}function Y$(){qy=!1,Na!==null&&op(Na)&&(Na=null),Ta!==null&&op(Ta)&&(Ta=null),Ea!==null&&op(Ea)&&(Ea=null),au.forEach(o5),ou.forEach(o5)}function lu(c,h){c.blockedOn===h&&(c.blockedOn=null,qy||(qy=!0,t.unstable_scheduleCallback(t.unstable_NormalPriority,Y$)))}function cu(c){function h(A){return lu(A,c)}if(0<ap.length){lu(ap[0],c);for(var m=1;m<ap.length;m++){var x=ap[m];x.blockedOn===c&&(x.blockedOn=null)}}for(Na!==null&&lu(Na,c),Ta!==null&&lu(Ta,c),Ea!==null&&lu(Ea,c),au.forEach(h),ou.forEach(h),m=0;m<Pa.length;m++)x=Pa[m],x.blockedOn===c&&(x.blockedOn=null);for(;0<Pa.length&&(m=Pa[0],m.blockedOn===null);)a5(m),m.blockedOn===null&&Pa.shift()}var Js=E.ReactCurrentBatchConfig,sp=!0;function K$(c,h,m,x){var A=wt,T=Js.transition;Js.transition=null;try{wt=1,Wy(c,h,m,x)}finally{wt=A,Js.transition=T}}function X$(c,h,m,x){var A=wt,T=Js.transition;Js.transition=null;try{wt=4,Wy(c,h,m,x)}finally{wt=A,Js.transition=T}}function Wy(c,h,m,x){if(sp){var A=Uy(c,h,m,x);if(A===null)sx(c,h,x,lp,m),i5(c,x);else if(G$(A,c,h,m,x))x.stopPropagation();else if(i5(c,x),h&4&&-1<V$.indexOf(c)){for(;A!==null;){var T=wu(A);if(T!==null&&e5(T),T=Uy(c,h,m,x),T===null&&sx(c,h,x,lp,m),T===A)break;A=T}A!==null&&x.stopPropagation()}else sx(c,h,x,null,m)}}var lp=null;function Uy(c,h,m,x){if(lp=null,c=_y(x),c=Mo(c),c!==null)if(h=Do(c),h===null)c=null;else if(m=h.tag,m===13){if(c=UC(h),c!==null)return c;c=null}else if(m===3){if(h.stateNode.current.memoizedState.isDehydrated)return h.tag===3?h.stateNode.containerInfo:null;c=null}else h!==c&&(c=null);return lp=c,null}function s5(c){switch(c){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(L$()){case Ly:return 1;case XC:return 4;case ep:case F$:return 16;case QC:return 536870912;default:return 16}default:return 16}}var Oa=null,Hy=null,cp=null;function l5(){if(cp)return cp;var c,h=Hy,m=h.length,x,A="value"in Oa?Oa.value:Oa.textContent,T=A.length;for(c=0;c<m&&h[c]===A[c];c++);var R=m-c;for(x=1;x<=R&&h[m-x]===A[T-x];x++);return cp=A.slice(c,1<x?1-x:void 0)}function up(c){var h=c.keyCode;return"charCode"in c?(c=c.charCode,c===0&&h===13&&(c=13)):c=h,c===10&&(c=13),32<=c||c===13?c:0}function dp(){return!0}function c5(){return!1}function pr(c){function h(m,x,A,T,R){this._reactName=m,this._targetInst=A,this.type=x,this.nativeEvent=T,this.target=R,this.currentTarget=null;for(var $ in c)c.hasOwnProperty($)&&(m=c[$],this[$]=m?m(T):T[$]);return this.isDefaultPrevented=(T.defaultPrevented!=null?T.defaultPrevented:T.returnValue===!1)?dp:c5,this.isPropagationStopped=c5,this}return I(h.prototype,{preventDefault:function(){this.defaultPrevented=!0;var m=this.nativeEvent;m&&(m.preventDefault?m.preventDefault():typeof m.returnValue!="unknown"&&(m.returnValue=!1),this.isDefaultPrevented=dp)},stopPropagation:function(){var m=this.nativeEvent;m&&(m.stopPropagation?m.stopPropagation():typeof m.cancelBubble!="unknown"&&(m.cancelBubble=!0),this.isPropagationStopped=dp)},persist:function(){},isPersistent:dp}),h}var Zs={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(c){return c.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},Vy=pr(Zs),uu=I({},Zs,{view:0,detail:0}),Q$=pr(uu),Gy,Yy,du,hp=I({},uu,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Xy,button:0,buttons:0,relatedTarget:function(c){return c.relatedTarget===void 0?c.fromElement===c.srcElement?c.toElement:c.fromElement:c.relatedTarget},movementX:function(c){return"movementX"in c?c.movementX:(c!==du&&(du&&c.type==="mousemove"?(Gy=c.screenX-du.screenX,Yy=c.screenY-du.screenY):Yy=Gy=0,du=c),Gy)},movementY:function(c){return"movementY"in c?c.movementY:Yy}}),u5=pr(hp),J$=I({},hp,{dataTransfer:0}),Z$=pr(J$),eq=I({},uu,{relatedTarget:0}),Ky=pr(eq),tq=I({},Zs,{animationName:0,elapsedTime:0,pseudoElement:0}),nq=pr(tq),rq=I({},Zs,{clipboardData:function(c){return"clipboardData"in c?c.clipboardData:window.clipboardData}}),iq=pr(rq),aq=I({},Zs,{data:0}),d5=pr(aq),oq={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},sq={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"},lq={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function cq(c){var h=this.nativeEvent;return h.getModifierState?h.getModifierState(c):(c=lq[c])?!!h[c]:!1}function Xy(){return cq}var uq=I({},uu,{key:function(c){if(c.key){var h=oq[c.key]||c.key;if(h!=="Unidentified")return h}return c.type==="keypress"?(c=up(c),c===13?"Enter":String.fromCharCode(c)):c.type==="keydown"||c.type==="keyup"?sq[c.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Xy,charCode:function(c){return c.type==="keypress"?up(c):0},keyCode:function(c){return c.type==="keydown"||c.type==="keyup"?c.keyCode:0},which:function(c){return c.type==="keypress"?up(c):c.type==="keydown"||c.type==="keyup"?c.keyCode:0}}),dq=pr(uq),hq=I({},hp,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),h5=pr(hq),pq=I({},uu,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Xy}),fq=pr(pq),mq=I({},Zs,{propertyName:0,elapsedTime:0,pseudoElement:0}),gq=pr(mq),yq=I({},hp,{deltaX:function(c){return"deltaX"in c?c.deltaX:"wheelDeltaX"in c?-c.wheelDeltaX:0},deltaY:function(c){return"deltaY"in c?c.deltaY:"wheelDeltaY"in c?-c.wheelDeltaY:"wheelDelta"in c?-c.wheelDelta:0},deltaZ:0,deltaMode:0}),xq=pr(yq),vq=[9,13,27,32],Qy=l&&"CompositionEvent"in window,hu=null;l&&"documentMode"in document&&(hu=document.documentMode);var bq=l&&"TextEvent"in window&&!hu,p5=l&&(!Qy||hu&&8<hu&&11>=hu),f5=" ",m5=!1;function g5(c,h){switch(c){case"keyup":return vq.indexOf(h.keyCode)!==-1;case"keydown":return h.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function y5(c){return c=c.detail,typeof c=="object"&&"data"in c?c.data:null}var el=!1;function wq(c,h){switch(c){case"compositionend":return y5(h);case"keypress":return h.which!==32?null:(m5=!0,f5);case"textInput":return c=h.data,c===f5&&m5?null:c;default:return null}}function jq(c,h){if(el)return c==="compositionend"||!Qy&&g5(c,h)?(c=l5(),cp=Hy=Oa=null,el=!1,c):null;switch(c){case"paste":return null;case"keypress":if(!(h.ctrlKey||h.altKey||h.metaKey)||h.ctrlKey&&h.altKey){if(h.char&&1<h.char.length)return h.char;if(h.which)return String.fromCharCode(h.which)}return null;case"compositionend":return p5&&h.locale!=="ko"?null:h.data;default:return null}}var kq={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 x5(c){var h=c&&c.nodeName&&c.nodeName.toLowerCase();return h==="input"?!!kq[c.type]:h==="textarea"}function v5(c,h,m,x){BC(x),h=yp(h,"onChange"),0<h.length&&(m=new Vy("onChange","change",null,m,x),c.push({event:m,listeners:h}))}var pu=null,fu=null;function Aq(c){L5(c,0)}function pp(c){var h=al(c);if(se(h))return c}function Sq(c,h){if(c==="change")return h}var b5=!1;if(l){var Jy;if(l){var Zy="oninput"in document;if(!Zy){var w5=document.createElement("div");w5.setAttribute("oninput","return;"),Zy=typeof w5.oninput=="function"}Jy=Zy}else Jy=!1;b5=Jy&&(!document.documentMode||9<document.documentMode)}function j5(){pu&&(pu.detachEvent("onpropertychange",k5),fu=pu=null)}function k5(c){if(c.propertyName==="value"&&pp(fu)){var h=[];v5(h,fu,c,_y(c)),WC(Aq,h)}}function Cq(c,h,m){c==="focusin"?(j5(),pu=h,fu=m,pu.attachEvent("onpropertychange",k5)):c==="focusout"&&j5()}function Nq(c){if(c==="selectionchange"||c==="keyup"||c==="keydown")return pp(fu)}function Tq(c,h){if(c==="click")return pp(h)}function Eq(c,h){if(c==="input"||c==="change")return pp(h)}function Pq(c,h){return c===h&&(c!==0||1/c===1/h)||c!==c&&h!==h}var Qr=typeof Object.is=="function"?Object.is:Pq;function mu(c,h){if(Qr(c,h))return!0;if(typeof c!="object"||c===null||typeof h!="object"||h===null)return!1;var m=Object.keys(c),x=Object.keys(h);if(m.length!==x.length)return!1;for(x=0;x<m.length;x++){var A=m[x];if(!u.call(h,A)||!Qr(c[A],h[A]))return!1}return!0}function A5(c){for(;c&&c.firstChild;)c=c.firstChild;return c}function S5(c,h){var m=A5(c);c=0;for(var x;m;){if(m.nodeType===3){if(x=c+m.textContent.length,c<=h&&x>=h)return{node:m,offset:h-c};c=x}e:{for(;m;){if(m.nextSibling){m=m.nextSibling;break e}m=m.parentNode}m=void 0}m=A5(m)}}function C5(c,h){return c&&h?c===h?!0:c&&c.nodeType===3?!1:h&&h.nodeType===3?C5(c,h.parentNode):"contains"in c?c.contains(h):c.compareDocumentPosition?!!(c.compareDocumentPosition(h)&16):!1:!1}function N5(){for(var c=window,h=rt();h instanceof c.HTMLIFrameElement;){try{var m=typeof h.contentWindow.location.href=="string"}catch{m=!1}if(m)c=h.contentWindow;else break;h=rt(c.document)}return h}function ex(c){var h=c&&c.nodeName&&c.nodeName.toLowerCase();return h&&(h==="input"&&(c.type==="text"||c.type==="search"||c.type==="tel"||c.type==="url"||c.type==="password")||h==="textarea"||c.contentEditable==="true")}function Oq(c){var h=N5(),m=c.focusedElem,x=c.selectionRange;if(h!==m&&m&&m.ownerDocument&&C5(m.ownerDocument.documentElement,m)){if(x!==null&&ex(m)){if(h=x.start,c=x.end,c===void 0&&(c=h),"selectionStart"in m)m.selectionStart=h,m.selectionEnd=Math.min(c,m.value.length);else if(c=(h=m.ownerDocument||document)&&h.defaultView||window,c.getSelection){c=c.getSelection();var A=m.textContent.length,T=Math.min(x.start,A);x=x.end===void 0?T:Math.min(x.end,A),!c.extend&&T>x&&(A=x,x=T,T=A),A=S5(m,T);var R=S5(m,x);A&&R&&(c.rangeCount!==1||c.anchorNode!==A.node||c.anchorOffset!==A.offset||c.focusNode!==R.node||c.focusOffset!==R.offset)&&(h=h.createRange(),h.setStart(A.node,A.offset),c.removeAllRanges(),T>x?(c.addRange(h),c.extend(R.node,R.offset)):(h.setEnd(R.node,R.offset),c.addRange(h)))}}for(h=[],c=m;c=c.parentNode;)c.nodeType===1&&h.push({element:c,left:c.scrollLeft,top:c.scrollTop});for(typeof m.focus=="function"&&m.focus(),m=0;m<h.length;m++)c=h[m],c.element.scrollLeft=c.left,c.element.scrollTop=c.top}}var _q=l&&"documentMode"in document&&11>=document.documentMode,tl=null,tx=null,gu=null,nx=!1;function T5(c,h,m){var x=m.window===m?m.document:m.nodeType===9?m:m.ownerDocument;nx||tl==null||tl!==rt(x)||(x=tl,"selectionStart"in x&&ex(x)?x={start:x.selectionStart,end:x.selectionEnd}:(x=(x.ownerDocument&&x.ownerDocument.defaultView||window).getSelection(),x={anchorNode:x.anchorNode,anchorOffset:x.anchorOffset,focusNode:x.focusNode,focusOffset:x.focusOffset}),gu&&mu(gu,x)||(gu=x,x=yp(tx,"onSelect"),0<x.length&&(h=new Vy("onSelect","select",null,h,m),c.push({event:h,listeners:x}),h.target=tl)))}function fp(c,h){var m={};return m[c.toLowerCase()]=h.toLowerCase(),m["Webkit"+c]="webkit"+h,m["Moz"+c]="moz"+h,m}var nl={animationend:fp("Animation","AnimationEnd"),animationiteration:fp("Animation","AnimationIteration"),animationstart:fp("Animation","AnimationStart"),transitionend:fp("Transition","TransitionEnd")},rx={},E5={};l&&(E5=document.createElement("div").style,"AnimationEvent"in window||(delete nl.animationend.animation,delete nl.animationiteration.animation,delete nl.animationstart.animation),"TransitionEvent"in window||delete nl.transitionend.transition);function mp(c){if(rx[c])return rx[c];if(!nl[c])return c;var h=nl[c],m;for(m in h)if(h.hasOwnProperty(m)&&m in E5)return rx[c]=h[m];return c}var P5=mp("animationend"),O5=mp("animationiteration"),_5=mp("animationstart"),I5=mp("transitionend"),R5=new Map,D5="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 _a(c,h){R5.set(c,h),o(h,[c])}for(var ix=0;ix<D5.length;ix++){var ax=D5[ix],Iq=ax.toLowerCase(),Rq=ax[0].toUpperCase()+ax.slice(1);_a(Iq,"on"+Rq)}_a(P5,"onAnimationEnd"),_a(O5,"onAnimationIteration"),_a(_5,"onAnimationStart"),_a("dblclick","onDoubleClick"),_a("focusin","onFocus"),_a("focusout","onBlur"),_a(I5,"onTransitionEnd"),s("onMouseEnter",["mouseout","mouseover"]),s("onMouseLeave",["mouseout","mouseover"]),s("onPointerEnter",["pointerout","pointerover"]),s("onPointerLeave",["pointerout","pointerover"]),o("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),o("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),o("onBeforeInput",["compositionend","keypress","textInput","paste"]),o("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),o("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),o("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var yu="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(" "),Dq=new Set("cancel close invalid load scroll toggle".split(" ").concat(yu));function M5(c,h,m){var x=c.type||"unknown-event";c.currentTarget=m,I$(x,h,void 0,c),c.currentTarget=null}function L5(c,h){h=(h&4)!==0;for(var m=0;m<c.length;m++){var x=c[m],A=x.event;x=x.listeners;e:{var T=void 0;if(h)for(var R=x.length-1;0<=R;R--){var $=x[R],H=$.instance,re=$.currentTarget;if($=$.listener,H!==T&&A.isPropagationStopped())break e;M5(A,$,re),T=H}else for(R=0;R<x.length;R++){if($=x[R],H=$.instance,re=$.currentTarget,$=$.listener,H!==T&&A.isPropagationStopped())break e;M5(A,$,re),T=H}}}if(Zh)throw c=My,Zh=!1,My=null,c}function Pt(c,h){var m=h[px];m===void 0&&(m=h[px]=new Set);var x=c+"__bubble";m.has(x)||(F5(h,c,2,!1),m.add(x))}function ox(c,h,m){var x=0;h&&(x|=4),F5(m,c,x,h)}var gp="_reactListening"+Math.random().toString(36).slice(2);function xu(c){if(!c[gp]){c[gp]=!0,r.forEach(function(m){m!=="selectionchange"&&(Dq.has(m)||ox(m,!1,c),ox(m,!0,c))});var h=c.nodeType===9?c:c.ownerDocument;h===null||h[gp]||(h[gp]=!0,ox("selectionchange",!1,h))}}function F5(c,h,m,x){switch(s5(h)){case 1:var A=K$;break;case 4:A=X$;break;default:A=Wy}m=A.bind(null,h,m,c),A=void 0,!Dy||h!=="touchstart"&&h!=="touchmove"&&h!=="wheel"||(A=!0),x?A!==void 0?c.addEventListener(h,m,{capture:!0,passive:A}):c.addEventListener(h,m,!0):A!==void 0?c.addEventListener(h,m,{passive:A}):c.addEventListener(h,m,!1)}function sx(c,h,m,x,A){var T=x;if((h&1)===0&&(h&2)===0&&x!==null)e:for(;;){if(x===null)return;var R=x.tag;if(R===3||R===4){var $=x.stateNode.containerInfo;if($===A||$.nodeType===8&&$.parentNode===A)break;if(R===4)for(R=x.return;R!==null;){var H=R.tag;if((H===3||H===4)&&(H=R.stateNode.containerInfo,H===A||H.nodeType===8&&H.parentNode===A))return;R=R.return}for(;$!==null;){if(R=Mo($),R===null)return;if(H=R.tag,H===5||H===6){x=T=R;continue e}$=$.parentNode}}x=x.return}WC(function(){var re=T,ue=_y(m),de=[];e:{var ce=R5.get(c);if(ce!==void 0){var be=Vy,Ne=c;switch(c){case"keypress":if(up(m)===0)break e;case"keydown":case"keyup":be=dq;break;case"focusin":Ne="focus",be=Ky;break;case"focusout":Ne="blur",be=Ky;break;case"beforeblur":case"afterblur":be=Ky;break;case"click":if(m.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":be=u5;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":be=Z$;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":be=fq;break;case P5:case O5:case _5:be=nq;break;case I5:be=gq;break;case"scroll":be=Q$;break;case"wheel":be=xq;break;case"copy":case"cut":case"paste":be=iq;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":be=h5}var Pe=(h&4)!==0,Gt=!Pe&&c==="scroll",ee=Pe?ce!==null?ce+"Capture":null:ce;Pe=[];for(var K=re,te;K!==null;){te=K;var pe=te.stateNode;if(te.tag===5&&pe!==null&&(te=pe,ee!==null&&(pe=eu(K,ee),pe!=null&&Pe.push(vu(K,pe,te)))),Gt)break;K=K.return}0<Pe.length&&(ce=new be(ce,Ne,null,m,ue),de.push({event:ce,listeners:Pe}))}}if((h&7)===0){e:{if(ce=c==="mouseover"||c==="pointerover",be=c==="mouseout"||c==="pointerout",ce&&m!==hr&&(Ne=m.relatedTarget||m.fromElement)&&(Mo(Ne)||Ne[Ui]))break e;if((be||ce)&&(ce=ue.window===ue?ue:(ce=ue.ownerDocument)?ce.defaultView||ce.parentWindow:window,be?(Ne=m.relatedTarget||m.toElement,be=re,Ne=Ne?Mo(Ne):null,Ne!==null&&(Gt=Do(Ne),Ne!==Gt||Ne.tag!==5&&Ne.tag!==6)&&(Ne=null)):(be=null,Ne=re),be!==Ne)){if(Pe=u5,pe="onMouseLeave",ee="onMouseEnter",K="mouse",(c==="pointerout"||c==="pointerover")&&(Pe=h5,pe="onPointerLeave",ee="onPointerEnter",K="pointer"),Gt=be==null?ce:al(be),te=Ne==null?ce:al(Ne),ce=new Pe(pe,K+"leave",be,m,ue),ce.target=Gt,ce.relatedTarget=te,pe=null,Mo(ue)===re&&(Pe=new Pe(ee,K+"enter",Ne,m,ue),Pe.target=te,Pe.relatedTarget=Gt,pe=Pe),Gt=pe,be&&Ne)t:{for(Pe=be,ee=Ne,K=0,te=Pe;te;te=rl(te))K++;for(te=0,pe=ee;pe;pe=rl(pe))te++;for(;0<K-te;)Pe=rl(Pe),K--;for(;0<te-K;)ee=rl(ee),te--;for(;K--;){if(Pe===ee||ee!==null&&Pe===ee.alternate)break t;Pe=rl(Pe),ee=rl(ee)}Pe=null}else Pe=null;be!==null&&B5(de,ce,be,Pe,!1),Ne!==null&&Gt!==null&&B5(de,Gt,Ne,Pe,!0)}}
vendor: 10,938 bytes, lines 37-38
37e:{if(ce=re?al(re):window,be=ce.nodeName&&ce.nodeName.toLowerCase(),be==="select"||be==="input"&&ce.type==="file")var _e=Sq;else if(x5(ce))if(b5)_e=Eq;else{_e=Nq;var De=Cq}else(be=ce.nodeName)&&be.toLowerCase()==="input"&&(ce.type==="checkbox"||ce.type==="radio")&&(_e=Tq);if(_e&&(_e=_e(c,re))){v5(de,_e,m,ue);break e}De&&De(c,ce,re),c==="focusout"&&(De=ce._wrapperState)&&De.controlled&&ce.type==="number"&&Ht(ce,"number",ce.value)}switch(De=re?al(re):window,c){case"focusin":(x5(De)||De.contentEditable==="true")&&(tl=De,tx=re,gu=null);break;case"focusout":gu=tx=tl=null;break;case"mousedown":nx=!0;break;case"contextmenu":case"mouseup":case"dragend":nx=!1,T5(de,m,ue);break;case"selectionchange":if(_q)break;case"keydown":case"keyup":T5(de,m,ue)}var Me;if(Qy)e:{switch(c){case"compositionstart":var Ue="onCompositionStart";break e;case"compositionend":Ue="onCompositionEnd";break e;case"compositionupdate":Ue="onCompositionUpdate";break e}Ue=void 0}else el?g5(c,m)&&(Ue="onCompositionEnd"):c==="keydown"&&m.keyCode===229&&(Ue="onCompositionStart");Ue&&(p5&&m.locale!=="ko"&&(el||Ue!=="onCompositionStart"?Ue==="onCompositionEnd"&&el&&(Me=l5()):(Oa=ue,Hy="value"in Oa?Oa.value:Oa.textContent,el=!0)),De=yp(re,Ue),0<De.length&&(Ue=new d5(Ue,c,null,m,ue),de.push({event:Ue,listeners:De}),Me?Ue.data=Me:(Me=y5(m),Me!==null&&(Ue.data=Me)))),(Me=bq?wq(c,m):jq(c,m))&&(re=yp(re,"onBeforeInput"),0<re.length&&(ue=new d5("onBeforeInput","beforeinput",null,m,ue),de.push({event:ue,listeners:re}),ue.data=Me))}L5(de,h)})}function vu(c,h,m){return{instance:c,listener:h,currentTarget:m}}function yp(c,h){for(var m=h+"Capture",x=[];c!==null;){var A=c,T=A.stateNode;A.tag===5&&T!==null&&(A=T,T=eu(c,m),T!=null&&x.unshift(vu(c,T,A)),T=eu(c,h),T!=null&&x.push(vu(c,T,A))),c=c.return}return x}function rl(c){if(c===null)return null;do c=c.return;while(c&&c.tag!==5);return c||null}function B5(c,h,m,x,A){for(var T=h._reactName,R=[];m!==null&&m!==x;){var $=m,H=$.alternate,re=$.stateNode;if(H!==null&&H===x)break;$.tag===5&&re!==null&&($=re,A?(H=eu(m,T),H!=null&&R.unshift(vu(m,H,$))):A||(H=eu(m,T),H!=null&&R.push(vu(m,H,$)))),m=m.return}R.length!==0&&c.push({event:h,listeners:R})}var Mq=/\r\n?/g,Lq=/\u0000|\uFFFD/g;function z5(c){return(typeof c=="string"?c:""+c).replace(Mq,` 38`).replace(Lq,"")}function xp(c,h,m){if(h=z5(h),z5(c)!==h&&m)throw Error(n(425))}function vp(){}var lx=null,cx=null;function ux(c,h){return c==="textarea"||c==="noscript"||typeof h.children=="string"||typeof h.children=="number"||typeof h.dangerouslySetInnerHTML=="object"&&h.dangerouslySetInnerHTML!==null&&h.dangerouslySetInnerHTML.__html!=null}var dx=typeof setTimeout=="function"?setTimeout:void 0,Fq=typeof clearTimeout=="function"?clearTimeout:void 0,$5=typeof Promise=="function"?Promise:void 0,Bq=typeof queueMicrotask=="function"?queueMicrotask:typeof $5<"u"?function(c){return $5.resolve(null).then(c).catch(zq)}:dx;function zq(c){setTimeout(function(){throw c})}function hx(c,h){var m=h,x=0;do{var A=m.nextSibling;if(c.removeChild(m),A&&A.nodeType===8)if(m=A.data,m==="/$"){if(x===0){c.removeChild(A),cu(h);return}x--}else m!=="$"&&m!=="$?"&&m!=="$!"||x++;m=A}while(m);cu(h)}function Ia(c){for(;c!=null;c=c.nextSibling){var h=c.nodeType;if(h===1||h===3)break;if(h===8){if(h=c.data,h==="$"||h==="$!"||h==="$?")break;if(h==="/$")return null}}return c}function q5(c){c=c.previousSibling;for(var h=0;c;){if(c.nodeType===8){var m=c.data;if(m==="$"||m==="$!"||m==="$?"){if(h===0)return c;h--}else m==="/$"&&h++}c=c.previousSibling}return null}var il=Math.random().toString(36).slice(2),vi="__reactFiber$"+il,bu="__reactProps$"+il,Ui="__reactContainer$"+il,px="__reactEvents$"+il,$q="__reactListeners$"+il,qq="__reactHandles$"+il;function Mo(c){var h=c[vi];if(h)return h;for(var m=c.parentNode;m;){if(h=m[Ui]||m[vi]){if(m=h.alternate,h.child!==null||m!==null&&m.child!==null)for(c=q5(c);c!==null;){if(m=c[vi])return m;c=q5(c)}return h}c=m,m=c.parentNode}return null}function wu(c){return c=c[vi]||c[Ui],!c||c.tag!==5&&c.tag!==6&&c.tag!==13&&c.tag!==3?null:c}function al(c){if(c.tag===5||c.tag===6)return c.stateNode;throw Error(n(33))}function bp(c){return c[bu]||null}var fx=[],ol=-1;function Ra(c){return{current:c}}function Ot(c){0>ol||(c.current=fx[ol],fx[ol]=null,ol--)}function St(c,h){ol++,fx[ol]=c.current,c.current=h}var Da={},_n=Ra(Da),Zn=Ra(!1),Lo=Da;function sl(c,h){var m=c.type.contextTypes;if(!m)return Da;var x=c.stateNode;if(x&&x.__reactInternalMemoizedUnmaskedChildContext===h)return x.__reactInternalMemoizedMaskedChildContext;var A={},T;for(T in m)A[T]=h[T];return x&&(c=c.stateNode,c.__reactInternalMemoizedUnmaskedChildContext=h,c.__reactInternalMemoizedMaskedChildContext=A),A}function er(c){return c=c.childContextTypes,c!=null}function wp(){Ot(Zn),Ot(_n)}function W5(c,h,m){if(_n.current!==Da)throw Error(n(168));St(_n,h),St(Zn,m)}function U5(c,h,m){var x=c.stateNode;if(h=h.childContextTypes,typeof x.getChildContext!="function")return m;x=x.getChildContext();for(var A in x)if(!(A in h))throw Error(n(108,Ie(c)||"Unknown",A));return I({},m,x)}function jp(c){return c=(c=c.stateNode)&&c.__reactInternalMemoizedMergedChildContext||Da,Lo=_n.current,St(_n,c),St(Zn,Zn.current),!0}function H5(c,h,m){var x=c.stateNode;if(!x)throw Error(n(169));m?(c=U5(c,h,Lo),x.__reactInternalMemoizedMergedChildContext=c,Ot(Zn),Ot(_n),St(_n,c)):Ot(Zn),St(Zn,m)}var Hi=null,kp=!1,mx=!1;function V5(c){Hi===null?Hi=[c]:Hi.push(c)}function Wq(c){kp=!0,V5(c)}function Ma(){if(!mx&&Hi!==null){mx=!0;var c=0,h=wt;try{var m=Hi;for(wt=1;c<m.length;c++){var x=m[c];do x=x(!0);while(x!==null)}Hi=null,kp=!1}catch(A){throw Hi!==null&&(Hi=Hi.slice(c+1)),YC(Ly,Ma),A}finally{wt=h,mx=!1}}return null}var ll=[],cl=0,Ap=null,Sp=0,Nr=[],Tr=0,Fo=null,Vi=1,Gi="";function Bo(c,h){ll[cl++]=Sp,ll[cl++]=Ap,Ap=c,Sp=h}function G5(c,h,m){Nr[Tr++]=Vi,Nr[Tr++]=Gi,Nr[Tr++]=Fo,Fo=c;var x=Vi;c=Gi;var A=32-Xr(x)-1;x&=~(1<<A),m+=1;var T=32-Xr(h)+A;if(30<T){var R=A-A%5;T=(x&(1<<R)-1).toString(32),x>>=R,A-=R,Vi=1<<32-Xr(h)+A|m<<A|x,Gi=T+c}else Vi=1<<T|m<<A|x,Gi=c}function gx(c){c.return!==null&&(Bo(c,1),G5(c,1,0))}function yx(c){for(;c===Ap;)Ap=ll[--cl],ll[cl]=null,Sp=ll[--cl],ll[cl]=null;for(;c===Fo;)Fo=Nr[--Tr],Nr[Tr]=null,Gi=Nr[--Tr],Nr[Tr]=null,Vi=Nr[--Tr],Nr[Tr]=null}var fr=null,mr=null,Dt=!1,Jr=null;function Y5(c,h){var m=_r(5,null,null,0);m.elementType="DELETED",m.stateNode=h,m.return=c,h=c.deletions,h===null?(c.deletions=[m],c.flags|=16):h.push(m)}function K5(c,h){switch(c.tag){case 5:var m=c.type;return h=h.nodeType!==1||m.toLowerCase()!==h.nodeName.toLowerCase()?null:h,h!==null?(c.stateNode=h,fr=c,mr=Ia(h.firstChild),!0):!1;case 6:return h=c.pendingProps===""||h.nodeType!==3?null:h,h!==null?(c.stateNode=h,fr=c,mr=null,!0):!1;case 13:return h=h.nodeType!==8?null:h,h!==null?(m=Fo!==null?{id:Vi,overflow:Gi}:null,c.memoizedState={dehydrated:h,treeContext:m,retryLane:1073741824},m=_r(18,null,null,0),m.stateNode=h,m.return=c,c.child=m,fr=c,mr=null,!0):!1;default:return!1}}function xx(c){return(c.mode&1)!==0&&(c.flags&128)===0}function vx(c){if(Dt){var h=mr;if(h){var m=h;if(!K5(c,h)){if(xx(c))throw Error(n(418));h=Ia(m.nextSibling);var x=fr;h&&K5(c,h)?Y5(x,m):(c.flags=c.flags&-4097|2,Dt=!1,fr=c)}}else{if(xx(c))throw Error(n(418));c.flags=c.flags&-4097|2,Dt=!1,fr=c}}}function X5(c){for(c=c.return;c!==null&&c.tag!==5&&c.tag!==3&&c.tag!==13;)c=c.return;fr=c}function Cp(c){if(c!==fr)return!1;if(!Dt)return X5(c),Dt=!0,!1;var h;if((h=c.tag!==3)&&!(h=c.tag!==5)&&(h=c.type,h=h!=="head"&&h!=="body"&&!ux(c.type,c.memoizedProps)),h&&(h=mr)){if(xx(c))throw Q5(),Error(n(418));for(;h;)Y5(c,h),h=Ia(h.nextSibling)}if(X5(c),c.tag===13){if(c=c.memoizedState,c=c!==null?c.dehydrated:null,!c)throw Error(n(317));e:{for(c=c.nextSibling,h=0;c;){if(c.nodeType===8){var m=c.data;if(m==="/$"){if(h===0){mr=Ia(c.nextSibling);break e}h--}else m!=="$"&&m!=="$!"&&m!=="$?"||h++}c=c.nextSibling}mr=null}}else mr=fr?Ia(c.stateNode.nextSibling):null;return!0}function Q5(){for(var c=mr;c;)c=Ia(c.nextSibling)}function ul(){mr=fr=null,Dt=!1}function bx(c){Jr===null?Jr=[c]:Jr.push(c)}var Uq=E.ReactCurrentBatchConfig;function ju(c,h,m){if(c=m.ref,c!==null&&typeof c!="function"&&typeof c!="object"){if(m._owner){if(m=m._owner,m){if(m.tag!==1)throw Error(n(309));var x=m.stateNode}if(!x)throw Error(n(147,c));var A=x,T=""+c;return h!==null&&h.ref!==null&&typeof h.ref=="function"&&h.ref._stringRef===T?h.ref:(h=function(R){var $=A.refs;R===null?delete $[T]:$[T]=R},h._stringRef=T,h)}if(typeof c!="string")throw Error(n(284));if(!m._owner)throw Error(n(290,c))}return c}function Np(c,h){throw c=Object.prototype.toString.call(h),Error(n(31,c==="[object Object]"?"object with keys {"+Object.keys(h).join(", ")+"}":c))}function J5(c){var h=c._init;return h(c._payload)}function Z5(c){function h(ee,K){if(c){var te=ee.deletions;te===null?(ee.deletions=[K],ee.flags|=16):te.push(K)}}function m(ee,K){if(!c)return null;for(;K!==null;)h(ee,K),K=K.sibling;return null}function x(ee,K){for(ee=new Map;K!==null;)K.key!==null?ee.set(K.key,K):ee.set(K.index,K),K=K.sibling;return ee}function A(ee,K){return ee=Ua(ee,K),ee.index=0,ee.sibling=null,ee}function T(ee,K,te){return ee.index=te,c?(te=ee.alternate,te!==null?(te=te.index,te<K?(ee.flags|=2,K):te):(ee.flags|=2,K)):(ee.flags|=1048576,K)}function R(ee){return c&&ee.alternate===null&&(ee.flags|=2),ee}function $(ee,K,te,pe){return K===null||K.tag!==6?(K=dv(te,ee.mode,pe),K.return=ee,K):(K=A(K,te),K.return=ee,K)}function H(ee,K,te,pe){var _e=te.type;return _e===P?ue(ee,K,te.props.children,pe,te.key):K!==null&&(K.elementType===_e||typeof _e=="object"&&_e!==null&&_e.$$typeof===Y&&J5(_e)===K.type)?(pe=A(K,te.props),pe.ref=ju(ee,K,te),pe.return=ee,pe):(pe=Qp(te.type,te.key,te.props,null,ee.mode,pe),pe.ref=ju(ee,K,te),pe.return=ee,pe)}function re(ee,K,te,pe){return K===null||K.tag!==4||K.stateNode.containerInfo!==te.containerInfo||K.stateNode.implementation!==te.implementation?(K=hv(te,ee.mode,pe),K.return=ee,K):(K=A(K,te.children||[]),K.return=ee,K)}function ue(ee,K,te,pe,_e){return K===null||K.tag!==7?(K=Go(te,ee.mode,pe,_e),K.return=ee,K):(K=A(K,te),K.return=ee,K)}function de(ee,K,te){if(typeof K=="string"&&K!==""||typeof K=="number")return K=dv(""+K,ee.mode,te),K.return=ee,K;if(typeof K=="object"&&K!==null){switch(K.$$typeof){case N:return te=Qp(K.type,K.key,K.props,null,ee.mode,te),te.ref=ju(ee,null,K),te.return=ee,te;case C:return K=hv(K,ee.mode,te),K.return=ee,K;case Y:var pe=K._init;return de(ee,pe(K._payload),te)}if(On(K)||ne(K))return K=Go(K,ee.mode,te,null),K.return=ee,K;Np(ee,K)}return null}function ce(ee,K,te,pe){var _e=K!==null?K.key:null;if(typeof te=="string"&&te!==""||typeof te=="number")return _e!==null?null:$(ee,K,""+te,pe);if(typeof te=="object"&&te!==null){switch(te.$$typeof){case N:return te.key===_e?H(ee,K,te,pe):null;case C:return te.key===_e?re(ee,K,te,pe):null;case Y:return _e=te._init,ce(ee,K,_e(te._payload),pe)}if(On(te)||ne(te))return _e!==null?null:ue(ee,K,te,pe,null);Np(ee,te)}return null}
vendor: 78,556 bytes, lines 38-40
38function be(ee,K,te,pe,_e){if(typeof pe=="string"&&pe!==""||typeof pe=="number")return ee=ee.get(te)||null,$(K,ee,""+pe,_e);if(typeof pe=="object"&&pe!==null){switch(pe.$$typeof){case N:return ee=ee.get(pe.key===null?te:pe.key)||null,H(K,ee,pe,_e);case C:return ee=ee.get(pe.key===null?te:pe.key)||null,re(K,ee,pe,_e);case Y:var De=pe._init;return be(ee,K,te,De(pe._payload),_e)}if(On(pe)||ne(pe))return ee=ee.get(te)||null,ue(K,ee,pe,_e,null);Np(K,pe)}return null}function Ne(ee,K,te,pe){for(var _e=null,De=null,Me=K,Ue=K=0,mn=null;Me!==null&&Ue<te.length;Ue++){Me.index>Ue?(mn=Me,Me=null):mn=Me.sibling;var ht=ce(ee,Me,te[Ue],pe);if(ht===null){Me===null&&(Me=mn);break}c&&Me&&ht.alternate===null&&h(ee,Me),K=T(ht,K,Ue),De===null?_e=ht:De.sibling=ht,De=ht,Me=mn}if(Ue===te.length)return m(ee,Me),Dt&&Bo(ee,Ue),_e;if(Me===null){for(;Ue<te.length;Ue++)Me=de(ee,te[Ue],pe),Me!==null&&(K=T(Me,K,Ue),De===null?_e=Me:De.sibling=Me,De=Me);return Dt&&Bo(ee,Ue),_e}for(Me=x(ee,Me);Ue<te.length;Ue++)mn=be(Me,ee,Ue,te[Ue],pe),mn!==null&&(c&&mn.alternate!==null&&Me.delete(mn.key===null?Ue:mn.key),K=T(mn,K,Ue),De===null?_e=mn:De.sibling=mn,De=mn);return c&&Me.forEach(function(Ha){return h(ee,Ha)}),Dt&&Bo(ee,Ue),_e}function Pe(ee,K,te,pe){var _e=ne(te);if(typeof _e!="function")throw Error(n(150));if(te=_e.call(te),te==null)throw Error(n(151));for(var De=_e=null,Me=K,Ue=K=0,mn=null,ht=te.next();Me!==null&&!ht.done;Ue++,ht=te.next()){Me.index>Ue?(mn=Me,Me=null):mn=Me.sibling;var Ha=ce(ee,Me,ht.value,pe);if(Ha===null){Me===null&&(Me=mn);break}c&&Me&&Ha.alternate===null&&h(ee,Me),K=T(Ha,K,Ue),De===null?_e=Ha:De.sibling=Ha,De=Ha,Me=mn}if(ht.done)return m(ee,Me),Dt&&Bo(ee,Ue),_e;if(Me===null){for(;!ht.done;Ue++,ht=te.next())ht=de(ee,ht.value,pe),ht!==null&&(K=T(ht,K,Ue),De===null?_e=ht:De.sibling=ht,De=ht);return Dt&&Bo(ee,Ue),_e}for(Me=x(ee,Me);!ht.done;Ue++,ht=te.next())ht=be(Me,ee,Ue,ht.value,pe),ht!==null&&(c&&ht.alternate!==null&&Me.delete(ht.key===null?Ue:ht.key),K=T(ht,K,Ue),De===null?_e=ht:De.sibling=ht,De=ht);return c&&Me.forEach(function(kW){return h(ee,kW)}),Dt&&Bo(ee,Ue),_e}function Gt(ee,K,te,pe){if(typeof te=="object"&&te!==null&&te.type===P&&te.key===null&&(te=te.props.children),typeof te=="object"&&te!==null){switch(te.$$typeof){case N:e:{for(var _e=te.key,De=K;De!==null;){if(De.key===_e){if(_e=te.type,_e===P){if(De.tag===7){m(ee,De.sibling),K=A(De,te.props.children),K.return=ee,ee=K;break e}}else if(De.elementType===_e||typeof _e=="object"&&_e!==null&&_e.$$typeof===Y&&J5(_e)===De.type){m(ee,De.sibling),K=A(De,te.props),K.ref=ju(ee,De,te),K.return=ee,ee=K;break e}m(ee,De);break}else h(ee,De);De=De.sibling}te.type===P?(K=Go(te.props.children,ee.mode,pe,te.key),K.return=ee,ee=K):(pe=Qp(te.type,te.key,te.props,null,ee.mode,pe),pe.ref=ju(ee,K,te),pe.return=ee,ee=pe)}return R(ee);case C:e:{for(De=te.key;K!==null;){if(K.key===De)if(K.tag===4&&K.stateNode.containerInfo===te.containerInfo&&K.stateNode.implementation===te.implementation){m(ee,K.sibling),K=A(K,te.children||[]),K.return=ee,ee=K;break e}else{m(ee,K);break}else h(ee,K);K=K.sibling}K=hv(te,ee.mode,pe),K.return=ee,ee=K}return R(ee);case Y:return De=te._init,Gt(ee,K,De(te._payload),pe)}if(On(te))return Ne(ee,K,te,pe);if(ne(te))return Pe(ee,K,te,pe);Np(ee,te)}return typeof te=="string"&&te!==""||typeof te=="number"?(te=""+te,K!==null&&K.tag===6?(m(ee,K.sibling),K=A(K,te),K.return=ee,ee=K):(m(ee,K),K=dv(te,ee.mode,pe),K.return=ee,ee=K),R(ee)):m(ee,K)}return Gt}var dl=Z5(!0),eN=Z5(!1),Tp=Ra(null),Ep=null,hl=null,wx=null;function jx(){wx=hl=Ep=null}function kx(c){var h=Tp.current;Ot(Tp),c._currentValue=h}function Ax(c,h,m){for(;c!==null;){var x=c.alternate;if((c.childLanes&h)!==h?(c.childLanes|=h,x!==null&&(x.childLanes|=h)):x!==null&&(x.childLanes&h)!==h&&(x.childLanes|=h),c===m)break;c=c.return}}function pl(c,h){Ep=c,wx=hl=null,c=c.dependencies,c!==null&&c.firstContext!==null&&((c.lanes&h)!==0&&(tr=!0),c.firstContext=null)}function Er(c){var h=c._currentValue;if(wx!==c)if(c={context:c,memoizedValue:h,next:null},hl===null){if(Ep===null)throw Error(n(308));hl=c,Ep.dependencies={lanes:0,firstContext:c}}else hl=hl.next=c;return h}var zo=null;function Sx(c){zo===null?zo=[c]:zo.push(c)}function tN(c,h,m,x){var A=h.interleaved;return A===null?(m.next=m,Sx(h)):(m.next=A.next,A.next=m),h.interleaved=m,Yi(c,x)}function Yi(c,h){c.lanes|=h;var m=c.alternate;for(m!==null&&(m.lanes|=h),m=c,c=c.return;c!==null;)c.childLanes|=h,m=c.alternate,m!==null&&(m.childLanes|=h),m=c,c=c.return;return m.tag===3?m.stateNode:null}var La=!1;function Cx(c){c.updateQueue={baseState:c.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function nN(c,h){c=c.updateQueue,h.updateQueue===c&&(h.updateQueue={baseState:c.baseState,firstBaseUpdate:c.firstBaseUpdate,lastBaseUpdate:c.lastBaseUpdate,shared:c.shared,effects:c.effects})}function Ki(c,h){return{eventTime:c,lane:h,tag:0,payload:null,callback:null,next:null}}function Fa(c,h,m){var x=c.updateQueue;if(x===null)return null;if(x=x.shared,(dt&2)!==0){var A=x.pending;return A===null?h.next=h:(h.next=A.next,A.next=h),x.pending=h,Yi(c,m)}return A=x.interleaved,A===null?(h.next=h,Sx(x)):(h.next=A.next,A.next=h),x.interleaved=h,Yi(c,m)}function Pp(c,h,m){if(h=h.updateQueue,h!==null&&(h=h.shared,(m&4194240)!==0)){var x=h.lanes;x&=c.pendingLanes,m|=x,h.lanes=m,zy(c,m)}}function rN(c,h){var m=c.updateQueue,x=c.alternate;if(x!==null&&(x=x.updateQueue,m===x)){var A=null,T=null;if(m=m.firstBaseUpdate,m!==null){do{var R={eventTime:m.eventTime,lane:m.lane,tag:m.tag,payload:m.payload,callback:m.callback,next:null};T===null?A=T=R:T=T.next=R,m=m.next}while(m!==null);T===null?A=T=h:T=T.next=h}else A=T=h;m={baseState:x.baseState,firstBaseUpdate:A,lastBaseUpdate:T,shared:x.shared,effects:x.effects},c.updateQueue=m;return}c=m.lastBaseUpdate,c===null?m.firstBaseUpdate=h:c.next=h,m.lastBaseUpdate=h}function Op(c,h,m,x){var A=c.updateQueue;La=!1;var T=A.firstBaseUpdate,R=A.lastBaseUpdate,$=A.shared.pending;if($!==null){A.shared.pending=null;var H=$,re=H.next;H.next=null,R===null?T=re:R.next=re,R=H;var ue=c.alternate;ue!==null&&(ue=ue.updateQueue,$=ue.lastBaseUpdate,$!==R&&($===null?ue.firstBaseUpdate=re:$.next=re,ue.lastBaseUpdate=H))}if(T!==null){var de=A.baseState;R=0,ue=re=H=null,$=T;do{var ce=$.lane,be=$.eventTime;if((x&ce)===ce){ue!==null&&(ue=ue.next={eventTime:be,lane:0,tag:$.tag,payload:$.payload,callback:$.callback,next:null});e:{var Ne=c,Pe=$;switch(ce=h,be=m,Pe.tag){case 1:if(Ne=Pe.payload,typeof Ne=="function"){de=Ne.call(be,de,ce);break e}de=Ne;break e;case 3:Ne.flags=Ne.flags&-65537|128;case 0:if(Ne=Pe.payload,ce=typeof Ne=="function"?Ne.call(be,de,ce):Ne,ce==null)break e;de=I({},de,ce);break e;case 2:La=!0}}$.callback!==null&&$.lane!==0&&(c.flags|=64,ce=A.effects,ce===null?A.effects=[$]:ce.push($))}else be={eventTime:be,lane:ce,tag:$.tag,payload:$.payload,callback:$.callback,next:null},ue===null?(re=ue=be,H=de):ue=ue.next=be,R|=ce;if($=$.next,$===null){if($=A.shared.pending,$===null)break;ce=$,$=ce.next,ce.next=null,A.lastBaseUpdate=ce,A.shared.pending=null}}while(!0);if(ue===null&&(H=de),A.baseState=H,A.firstBaseUpdate=re,A.lastBaseUpdate=ue,h=A.shared.interleaved,h!==null){A=h;do R|=A.lane,A=A.next;while(A!==h)}else T===null&&(A.shared.lanes=0);Wo|=R,c.lanes=R,c.memoizedState=de}}function iN(c,h,m){if(c=h.effects,h.effects=null,c!==null)for(h=0;h<c.length;h++){var x=c[h],A=x.callback;if(A!==null){if(x.callback=null,x=m,typeof A!="function")throw Error(n(191,A));A.call(x)}}}var ku={},bi=Ra(ku),Au=Ra(ku),Su=Ra(ku);function $o(c){if(c===ku)throw Error(n(174));return c}function Nx(c,h){switch(St(Su,h),St(Au,c),St(bi,ku),c=h.nodeType,c){case 9:case 11:h=(h=h.documentElement)?h.namespaceURI:ge(null,"");break;default:c=c===8?h.parentNode:h,h=c.namespaceURI||null,c=c.tagName,h=ge(h,c)}Ot(bi),St(bi,h)}function fl(){Ot(bi),Ot(Au),Ot(Su)}function aN(c){$o(Su.current);var h=$o(bi.current),m=ge(h,c.type);h!==m&&(St(Au,c),St(bi,m))}function Tx(c){Au.current===c&&(Ot(bi),Ot(Au))}var Lt=Ra(0);function _p(c){for(var h=c;h!==null;){if(h.tag===13){var m=h.memoizedState;if(m!==null&&(m=m.dehydrated,m===null||m.data==="$?"||m.data==="$!"))return h}else if(h.tag===19&&h.memoizedProps.revealOrder!==void 0){if((h.flags&128)!==0)return h}else if(h.child!==null){h.child.return=h,h=h.child;continue}if(h===c)break;for(;h.sibling===null;){if(h.return===null||h.return===c)return null;h=h.return}h.sibling.return=h.return,h=h.sibling}return null}var Ex=[];function Px(){for(var c=0;c<Ex.length;c++)Ex[c]._workInProgressVersionPrimary=null;Ex.length=0}var Ip=E.ReactCurrentDispatcher,Ox=E.ReactCurrentBatchConfig,qo=0,Ft=null,rn=null,pn=null,Rp=!1,Cu=!1,Nu=0,Hq=0;function In(){throw Error(n(321))}function _x(c,h){if(h===null)return!1;for(var m=0;m<h.length&&m<c.length;m++)if(!Qr(c[m],h[m]))return!1;return!0}function Ix(c,h,m,x,A,T){if(qo=T,Ft=h,h.memoizedState=null,h.updateQueue=null,h.lanes=0,Ip.current=c===null||c.memoizedState===null?Kq:Xq,c=m(x,A),Cu){T=0;do{if(Cu=!1,Nu=0,25<=T)throw Error(n(301));T+=1,pn=rn=null,h.updateQueue=null,Ip.current=Qq,c=m(x,A)}while(Cu)}if(Ip.current=Lp,h=rn!==null&&rn.next!==null,qo=0,pn=rn=Ft=null,Rp=!1,h)throw Error(n(300));return c}function Rx(){var c=Nu!==0;return Nu=0,c}function wi(){var c={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return pn===null?Ft.memoizedState=pn=c:pn=pn.next=c,pn}function Pr(){if(rn===null){var c=Ft.alternate;c=c!==null?c.memoizedState:null}else c=rn.next;var h=pn===null?Ft.memoizedState:pn.next;if(h!==null)pn=h,rn=c;else{if(c===null)throw Error(n(310));rn=c,c={memoizedState:rn.memoizedState,baseState:rn.baseState,baseQueue:rn.baseQueue,queue:rn.queue,next:null},pn===null?Ft.memoizedState=pn=c:pn=pn.next=c}return pn}function Tu(c,h){return typeof h=="function"?h(c):h}function Dx(c){var h=Pr(),m=h.queue;if(m===null)throw Error(n(311));m.lastRenderedReducer=c;var x=rn,A=x.baseQueue,T=m.pending;if(T!==null){if(A!==null){var R=A.next;A.next=T.next,T.next=R}x.baseQueue=A=T,m.pending=null}if(A!==null){T=A.next,x=x.baseState;var $=R=null,H=null,re=T;do{var ue=re.lane;if((qo&ue)===ue)H!==null&&(H=H.next={lane:0,action:re.action,hasEagerState:re.hasEagerState,eagerState:re.eagerState,next:null}),x=re.hasEagerState?re.eagerState:c(x,re.action);else{var de={lane:ue,action:re.action,hasEagerState:re.hasEagerState,eagerState:re.eagerState,next:null};H===null?($=H=de,R=x):H=H.next=de,Ft.lanes|=ue,Wo|=ue}re=re.next}while(re!==null&&re!==T);H===null?R=x:H.next=$,Qr(x,h.memoizedState)||(tr=!0),h.memoizedState=x,h.baseState=R,h.baseQueue=H,m.lastRenderedState=x}if(c=m.interleaved,c!==null){A=c;do T=A.lane,Ft.lanes|=T,Wo|=T,A=A.next;while(A!==c)}else A===null&&(m.lanes=0);return[h.memoizedState,m.dispatch]}function Mx(c){var h=Pr(),m=h.queue;if(m===null)throw Error(n(311));m.lastRenderedReducer=c;var x=m.dispatch,A=m.pending,T=h.memoizedState;if(A!==null){m.pending=null;var R=A=A.next;do T=c(T,R.action),R=R.next;while(R!==A);Qr(T,h.memoizedState)||(tr=!0),h.memoizedState=T,h.baseQueue===null&&(h.baseState=T),m.lastRenderedState=T}return[T,x]}function oN(){}function sN(c,h){var m=Ft,x=Pr(),A=h(),T=!Qr(x.memoizedState,A);if(T&&(x.memoizedState=A,tr=!0),x=x.queue,Lx(uN.bind(null,m,x,c),[c]),x.getSnapshot!==h||T||pn!==null&&pn.memoizedState.tag&1){if(m.flags|=2048,Eu(9,cN.bind(null,m,x,A,h),void 0,null),fn===null)throw Error(n(349));(qo&30)!==0||lN(m,h,A)}return A}function lN(c,h,m){c.flags|=16384,c={getSnapshot:h,value:m},h=Ft.updateQueue,h===null?(h={lastEffect:null,stores:null},Ft.updateQueue=h,h.stores=[c]):(m=h.stores,m===null?h.stores=[c]:m.push(c))}function cN(c,h,m,x){h.value=m,h.getSnapshot=x,dN(h)&&hN(c)}function uN(c,h,m){return m(function(){dN(h)&&hN(c)})}function dN(c){var h=c.getSnapshot;c=c.value;try{var m=h();return!Qr(c,m)}catch{return!0}}function hN(c){var h=Yi(c,1);h!==null&&ni(h,c,1,-1)}function pN(c){var h=wi();return typeof c=="function"&&(c=c()),h.memoizedState=h.baseState=c,c={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Tu,lastRenderedState:c},h.queue=c,c=c.dispatch=Yq.bind(null,Ft,c),[h.memoizedState,c]}function Eu(c,h,m,x){return c={tag:c,create:h,destroy:m,deps:x,next:null},h=Ft.updateQueue,h===null?(h={lastEffect:null,stores:null},Ft.updateQueue=h,h.lastEffect=c.next=c):(m=h.lastEffect,m===null?h.lastEffect=c.next=c:(x=m.next,m.next=c,c.next=x,h.lastEffect=c)),c}function fN(){return Pr().memoizedState}function Dp(c,h,m,x){var A=wi();Ft.flags|=c,A.memoizedState=Eu(1|h,m,void 0,x===void 0?null:x)}function Mp(c,h,m,x){var A=Pr();x=x===void 0?null:x;var T=void 0;if(rn!==null){var R=rn.memoizedState;if(T=R.destroy,x!==null&&_x(x,R.deps)){A.memoizedState=Eu(h,m,T,x);return}}Ft.flags|=c,A.memoizedState=Eu(1|h,m,T,x)}function mN(c,h){return Dp(8390656,8,c,h)}function Lx(c,h){return Mp(2048,8,c,h)}function gN(c,h){return Mp(4,2,c,h)}function yN(c,h){return Mp(4,4,c,h)}function xN(c,h){if(typeof h=="function")return c=c(),h(c),function(){h(null)};if(h!=null)return c=c(),h.current=c,function(){h.current=null}}function vN(c,h,m){return m=m!=null?m.concat([c]):null,Mp(4,4,xN.bind(null,h,c),m)}function Fx(){}function bN(c,h){var m=Pr();h=h===void 0?null:h;var x=m.memoizedState;return x!==null&&h!==null&&_x(h,x[1])?x[0]:(m.memoizedState=[c,h],c)}function wN(c,h){var m=Pr();h=h===void 0?null:h;var x=m.memoizedState;return x!==null&&h!==null&&_x(h,x[1])?x[0]:(c=c(),m.memoizedState=[c,h],c)}function jN(c,h,m){return(qo&21)===0?(c.baseState&&(c.baseState=!1,tr=!0),c.memoizedState=m):(Qr(m,h)||(m=JC(),Ft.lanes|=m,Wo|=m,c.baseState=!0),h)}function Vq(c,h){var m=wt;wt=m!==0&&4>m?m:4,c(!0);var x=Ox.transition;Ox.transition={};try{c(!1),h()}finally{wt=m,Ox.transition=x}}function kN(){return Pr().memoizedState}function Gq(c,h,m){var x=qa(c);if(m={lane:x,action:m,hasEagerState:!1,eagerState:null,next:null},AN(c))SN(h,m);else if(m=tN(c,h,m,x),m!==null){var A=Gn();ni(m,c,x,A),CN(m,h,x)}}function Yq(c,h,m){var x=qa(c),A={lane:x,action:m,hasEagerState:!1,eagerState:null,next:null};if(AN(c))SN(h,A);else{var T=c.alternate;if(c.lanes===0&&(T===null||T.lanes===0)&&(T=h.lastRenderedReducer,T!==null))try{var R=h.lastRenderedState,$=T(R,m);if(A.hasEagerState=!0,A.eagerState=$,Qr($,R)){var H=h.interleaved;H===null?(A.next=A,Sx(h)):(A.next=H.next,H.next=A),h.interleaved=A;return}}catch{}finally{}m=tN(c,h,A,x),m!==null&&(A=Gn(),ni(m,c,x,A),CN(m,h,x))}}function AN(c){var h=c.alternate;return c===Ft||h!==null&&h===Ft}function SN(c,h){Cu=Rp=!0;var m=c.pending;m===null?h.next=h:(h.next=m.next,m.next=h),c.pending=h}function CN(c,h,m){if((m&4194240)!==0){var x=h.lanes;x&=c.pendingLanes,m|=x,h.lanes=m,zy(c,m)}}var Lp={readContext:Er,useCallback:In,useContext:In,useEffect:In,useImperativeHandle:In,useInsertionEffect:In,useLayoutEffect:In,useMemo:In,useReducer:In,useRef:In,useState:In,useDebugValue:In,useDeferredValue:In,useTransition:In,useMutableSource:In,useSyncExternalStore:In,useId:In,unstable_isNewReconciler:!1},Kq={readContext:Er,useCallback:function(c,h){return wi().memoizedState=[c,h===void 0?null:h],c},useContext:Er,useEffect:mN,useImperativeHandle:function(c,h,m){return m=m!=null?m.concat([c]):null,Dp(4194308,4,xN.bind(null,h,c),m)},useLayoutEffect:function(c,h){return Dp(4194308,4,c,h)},useInsertionEffect:function(c,h){return Dp(4,2,c,h)},useMemo:function(c,h){var m=wi();return h=h===void 0?null:h,c=c(),m.memoizedState=[c,h],c},useReducer:function(c,h,m){var x=wi();return h=m!==void 0?m(h):h,x.memoizedState=x.baseState=h,c={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:c,lastRenderedState:h},x.queue=c,c=c.dispatch=Gq.bind(null,Ft,c),[x.memoizedState,c]},useRef:function(c){var h=wi();return c={current:c},h.memoizedState=c},useState:pN,useDebugValue:Fx,useDeferredValue:function(c){return wi().memoizedState=c},useTransition:function(){var c=pN(!1),h=c[0];return c=Vq.bind(null,c[1]),wi().memoizedState=c,[h,c]},useMutableSource:function(){},useSyncExternalStore:function(c,h,m){var x=Ft,A=wi();if(Dt){if(m===void 0)throw Error(n(407));m=m()}else{if(m=h(),fn===null)throw Error(n(349));(qo&30)!==0||lN(x,h,m)}A.memoizedState=m;var T={value:m,getSnapshot:h};return A.queue=T,mN(uN.bind(null,x,T,c),[c]),x.flags|=2048,Eu(9,cN.bind(null,x,T,m,h),void 0,null),m},useId:function(){var c=wi(),h=fn.identifierPrefix;if(Dt){var m=Gi,x=Vi;m=(x&~(1<<32-Xr(x)-1)).toString(32)+m,h=":"+h+"R"+m,m=Nu++,0<m&&(h+="H"+m.toString(32)),h+=":"}else m=Hq++,h=":"+h+"r"+m.toString(32)+":";return c.memoizedState=h},unstable_isNewReconciler:!1},Xq={readContext:Er,useCallback:bN,useContext:Er,useEffect:Lx,useImperativeHandle:vN,useInsertionEffect:gN,useLayoutEffect:yN,useMemo:wN,useReducer:Dx,useRef:fN,useState:function(){return Dx(Tu)},useDebugValue:Fx,useDeferredValue:function(c){var h=Pr();return jN(h,rn.memoizedState,c)},useTransition:function(){var c=Dx(Tu)[0],h=Pr().memoizedState;return[c,h]},useMutableSource:oN,useSyncExternalStore:sN,useId:kN,unstable_isNewReconciler:!1},Qq={readContext:Er,useCallback:bN,useContext:Er,useEffect:Lx,useImperativeHandle:vN,useInsertionEffect:gN,useLayoutEffect:yN,useMemo:wN,useReducer:Mx,useRef:fN,useState:function(){return Mx(Tu)},useDebugValue:Fx,useDeferredValue:function(c){var h=Pr();return rn===null?h.memoizedState=c:jN(h,rn.memoizedState,c)},useTransition:function(){var c=Mx(Tu)[0],h=Pr().memoizedState;return[c,h]},useMutableSource:oN,useSyncExternalStore:sN,useId:kN,unstable_isNewReconciler:!1};function Zr(c,h){if(c&&c.defaultProps){h=I({},h),c=c.defaultProps;for(var m in c)h[m]===void 0&&(h[m]=c[m]);return h}return h}function Bx(c,h,m,x){h=c.memoizedState,m=m(x,h),m=m==null?h:I({},h,m),c.memoizedState=m,c.lanes===0&&(c.updateQueue.baseState=m)}var Fp={isMounted:function(c){return(c=c._reactInternals)?Do(c)===c:!1},enqueueSetState:function(c,h,m){c=c._reactInternals;var x=Gn(),A=qa(c),T=Ki(x,A);T.payload=h,m!=null&&(T.callback=m),h=Fa(c,T,A),h!==null&&(ni(h,c,A,x),Pp(h,c,A))},enqueueReplaceState:function(c,h,m){c=c._reactInternals;var x=Gn(),A=qa(c),T=Ki(x,A);T.tag=1,T.payload=h,m!=null&&(T.callback=m),h=Fa(c,T,A),h!==null&&(ni(h,c,A,x),Pp(h,c,A))},enqueueForceUpdate:function(c,h){c=c._reactInternals;var m=Gn(),x=qa(c),A=Ki(m,x);A.tag=2,h!=null&&(A.callback=h),h=Fa(c,A,x),h!==null&&(ni(h,c,x,m),Pp(h,c,x))}};function NN(c,h,m,x,A,T,R){return c=c.stateNode,typeof c.shouldComponentUpdate=="function"?c.shouldComponentUpdate(x,T,R):h.prototype&&h.prototype.isPureReactComponent?!mu(m,x)||!mu(A,T):!0}function TN(c,h,m){var x=!1,A=Da,T=h.contextType;return typeof T=="object"&&T!==null?T=Er(T):(A=er(h)?Lo:_n.current,x=h.contextTypes,T=(x=x!=null)?sl(c,A):Da),h=new h(m,T),c.memoizedState=h.state!==null&&h.state!==void 0?h.state:null,h.updater=Fp,c.stateNode=h,h._reactInternals=c,x&&(c=c.stateNode,c.__reactInternalMemoizedUnmaskedChildContext=A,c.__reactInternalMemoizedMaskedChildContext=T),h}function EN(c,h,m,x){c=h.state,typeof h.componentWillReceiveProps=="function"&&h.componentWillReceiveProps(m,x),typeof h.UNSAFE_componentWillReceiveProps=="function"&&h.UNSAFE_componentWillReceiveProps(m,x),h.state!==c&&Fp.enqueueReplaceState(h,h.state,null)}function zx(c,h,m,x){var A=c.stateNode;A.props=m,A.state=c.memoizedState,A.refs={},Cx(c);var T=h.contextType;typeof T=="object"&&T!==null?A.context=Er(T):(T=er(h)?Lo:_n.current,A.context=sl(c,T)),A.state=c.memoizedState,T=h.getDerivedStateFromProps,typeof T=="function"&&(Bx(c,h,T,m),A.state=c.memoizedState),typeof h.getDerivedStateFromProps=="function"||typeof A.getSnapshotBeforeUpdate=="function"||typeof A.UNSAFE_componentWillMount!="function"&&typeof A.componentWillMount!="function"||(h=A.state,typeof A.componentWillMount=="function"&&A.componentWillMount(),typeof A.UNSAFE_componentWillMount=="function"&&A.UNSAFE_componentWillMount(),h!==A.state&&Fp.enqueueReplaceState(A,A.state,null),Op(c,m,A,x),A.state=c.memoizedState),typeof A.componentDidMount=="function"&&(c.flags|=4194308)}function ml(c,h){try{var m="",x=h;do m+=xe(x),x=x.return;while(x);var A=m}catch(T){A=` 39Error generating stack: `+T.message+` 40`+T.stack}return{value:c,source:h,stack:A,digest:null}}function $x(c,h,m){return{value:c,source:null,stack:m??null,digest:h??null}}function qx(c,h){try{console.error(h.value)}catch(m){setTimeout(function(){throw m})}}var Jq=typeof WeakMap=="function"?WeakMap:Map;function PN(c,h,m){m=Ki(-1,m),m.tag=3,m.payload={element:null};var x=h.value;return m.callback=function(){Hp||(Hp=!0,rv=x),qx(c,h)},m}function ON(c,h,m){m=Ki(-1,m),m.tag=3;var x=c.type.getDerivedStateFromError;if(typeof x=="function"){var A=h.value;m.payload=function(){return x(A)},m.callback=function(){qx(c,h)}}var T=c.stateNode;return T!==null&&typeof T.componentDidCatch=="function"&&(m.callback=function(){qx(c,h),typeof x!="function"&&(za===null?za=new Set([this]):za.add(this));var R=h.stack;this.componentDidCatch(h.value,{componentStack:R!==null?R:""})}),m}function _N(c,h,m){var x=c.pingCache;if(x===null){x=c.pingCache=new Jq;var A=new Set;x.set(h,A)}else A=x.get(h),A===void 0&&(A=new Set,x.set(h,A));A.has(m)||(A.add(m),c=hW.bind(null,c,h,m),h.then(c,c))}function IN(c){do{var h;if((h=c.tag===13)&&(h=c.memoizedState,h=h!==null?h.dehydrated!==null:!0),h)return c;c=c.return}while(c!==null);return null}function RN(c,h,m,x,A){return(c.mode&1)===0?(c===h?c.flags|=65536:(c.flags|=128,m.flags|=131072,m.flags&=-52805,m.tag===1&&(m.alternate===null?m.tag=17:(h=Ki(-1,1),h.tag=2,Fa(m,h,1))),m.lanes|=1),c):(c.flags|=65536,c.lanes=A,c)}var Zq=E.ReactCurrentOwner,tr=!1;function Vn(c,h,m,x){h.child=c===null?eN(h,null,m,x):dl(h,c.child,m,x)}function DN(c,h,m,x,A){m=m.render;var T=h.ref;return pl(h,A),x=Ix(c,h,m,x,T,A),m=Rx(),c!==null&&!tr?(h.updateQueue=c.updateQueue,h.flags&=-2053,c.lanes&=~A,Xi(c,h,A)):(Dt&&m&&gx(h),h.flags|=1,Vn(c,h,x,A),h.child)}function MN(c,h,m,x,A){if(c===null){var T=m.type;return typeof T=="function"&&!uv(T)&&T.defaultProps===void 0&&m.compare===null&&m.defaultProps===void 0?(h.tag=15,h.type=T,LN(c,h,T,x,A)):(c=Qp(m.type,null,x,h,h.mode,A),c.ref=h.ref,c.return=h,h.child=c)}if(T=c.child,(c.lanes&A)===0){var R=T.memoizedProps;if(m=m.compare,m=m!==null?m:mu,m(R,x)&&c.ref===h.ref)return Xi(c,h,A)}return h.flags|=1,c=Ua(T,x),c.ref=h.ref,c.return=h,h.child=c}function LN(c,h,m,x,A){if(c!==null){var T=c.memoizedProps;if(mu(T,x)&&c.ref===h.ref)if(tr=!1,h.pendingProps=x=T,(c.lanes&A)!==0)(c.flags&131072)!==0&&(tr=!0);else return h.lanes=c.lanes,Xi(c,h,A)}return Wx(c,h,m,x,A)}function FN(c,h,m){var x=h.pendingProps,A=x.children,T=c!==null?c.memoizedState:null;if(x.mode==="hidden")if((h.mode&1)===0)h.memoizedState={baseLanes:0,cachePool:null,transitions:null},St(yl,gr),gr|=m;else{if((m&1073741824)===0)return c=T!==null?T.baseLanes|m:m,h.lanes=h.childLanes=1073741824,h.memoizedState={baseLanes:c,cachePool:null,transitions:null},h.updateQueue=null,St(yl,gr),gr|=c,null;h.memoizedState={baseLanes:0,cachePool:null,transitions:null},x=T!==null?T.baseLanes:m,St(yl,gr),gr|=x}else T!==null?(x=T.baseLanes|m,h.memoizedState=null):x=m,St(yl,gr),gr|=x;return Vn(c,h,A,m),h.child}function BN(c,h){var m=h.ref;(c===null&&m!==null||c!==null&&c.ref!==m)&&(h.flags|=512,h.flags|=2097152)}function Wx(c,h,m,x,A){var T=er(m)?Lo:_n.current;return T=sl(h,T),pl(h,A),m=Ix(c,h,m,x,T,A),x=Rx(),c!==null&&!tr?(h.updateQueue=c.updateQueue,h.flags&=-2053,c.lanes&=~A,Xi(c,h,A)):(Dt&&x&&gx(h),h.flags|=1,Vn(c,h,m,A),h.child)}function zN(c,h,m,x,A){if(er(m)){var T=!0;jp(h)}else T=!1;if(pl(h,A),h.stateNode===null)zp(c,h),TN(h,m,x),zx(h,m,x,A),x=!0;else if(c===null){var R=h.stateNode,$=h.memoizedProps;R.props=$;var H=R.context,re=m.contextType;typeof re=="object"&&re!==null?re=Er(re):(re=er(m)?Lo:_n.current,re=sl(h,re));var ue=m.getDerivedStateFromProps,de=typeof ue=="function"||typeof R.getSnapshotBeforeUpdate=="function";de||typeof R.UNSAFE_componentWillReceiveProps!="function"&&typeof R.componentWillReceiveProps!="function"||($!==x||H!==re)&&EN(h,R,x,re),La=!1;var ce=h.memoizedState;R.state=ce,Op(h,x,R,A),H=h.memoizedState,$!==x||ce!==H||Zn.current||La?(typeof ue=="function"&&(Bx(h,m,ue,x),H=h.memoizedState),($=La||NN(h,m,$,x,ce,H,re))?(de||typeof R.UNSAFE_componentWillMount!="function"&&typeof R.componentWillMount!="function"||(typeof R.componentWillMount=="function"&&R.componentWillMount(),typeof R.UNSAFE_componentWillMount=="function"&&R.UNSAFE_componentWillMount()),typeof R.componentDidMount=="function"&&(h.flags|=4194308)):(typeof R.componentDidMount=="function"&&(h.flags|=4194308),h.memoizedProps=x,h.memoizedState=H),R.props=x,R.state=H,R.context=re,x=$):(typeof R.componentDidMount=="function"&&(h.flags|=4194308),x=!1)}else{R=h.stateNode,nN(c,h),$=h.memoizedProps,re=h.type===h.elementType?$:Zr(h.type,$),R.props=re,de=h.pendingProps,ce=R.context,H=m.contextType,typeof H=="object"&&H!==null?H=Er(H):(H=er(m)?Lo:_n.current,H=sl(h,H));var be=m.getDerivedStateFromProps;(ue=typeof be=="function"||typeof R.getSnapshotBeforeUpdate=="function")||typeof R.UNSAFE_componentWillReceiveProps!="function"&&typeof R.componentWillReceiveProps!="function"||($!==de||ce!==H)&&EN(h,R,x,H),La=!1,ce=h.memoizedState,R.state=ce,Op(h,x,R,A);var Ne=h.memoizedState;$!==de||ce!==Ne||Zn.current||La?(typeof be=="function"&&(Bx(h,m,be,x),Ne=h.memoizedState),(re=La||NN(h,m,re,x,ce,Ne,H)||!1)?(ue||typeof R.UNSAFE_componentWillUpdate!="function"&&typeof R.componentWillUpdate!="function"||(typeof R.componentWillUpdate=="function"&&R.componentWillUpdate(x,Ne,H),typeof R.UNSAFE_componentWillUpdate=="function"&&R.UNSAFE_componentWillUpdate(x,Ne,H)),typeof R.componentDidUpdate=="function"&&(h.flags|=4),typeof R.getSnapshotBeforeUpdate=="function"&&(h.flags|=1024)):(typeof R.componentDidUpdate!="function"||$===c.memoizedProps&&ce===c.memoizedState||(h.flags|=4),typeof R.getSnapshotBeforeUpdate!="function"||$===c.memoizedProps&&ce===c.memoizedState||(h.flags|=1024),h.memoizedProps=x,h.memoizedState=Ne),R.props=x,R.state=Ne,R.context=H,x=re):(typeof R.componentDidUpdate!="function"||$===c.memoizedProps&&ce===c.memoizedState||(h.flags|=4),typeof R.getSnapshotBeforeUpdate!="function"||$===c.memoizedProps&&ce===c.memoizedState||(h.flags|=1024),x=!1)}return Ux(c,h,m,x,T,A)}function Ux(c,h,m,x,A,T){BN(c,h);var R=(h.flags&128)!==0;if(!x&&!R)return A&&H5(h,m,!1),Xi(c,h,T);x=h.stateNode,Zq.current=h;var $=R&&typeof m.getDerivedStateFromError!="function"?null:x.render();return h.flags|=1,c!==null&&R?(h.child=dl(h,c.child,null,T),h.child=dl(h,null,$,T)):Vn(c,h,$,T),h.memoizedState=x.state,A&&H5(h,m,!0),h.child}function $N(c){var h=c.stateNode;h.pendingContext?W5(c,h.pendingContext,h.pendingContext!==h.context):h.context&&W5(c,h.context,!1),Nx(c,h.containerInfo)}function qN(c,h,m,x,A){return ul(),bx(A),h.flags|=256,Vn(c,h,m,x),h.child}var Hx={dehydrated:null,treeContext:null,retryLane:0};function Vx(c){return{baseLanes:c,cachePool:null,transitions:null}}function WN(c,h,m){var x=h.pendingProps,A=Lt.current,T=!1,R=(h.flags&128)!==0,$;if(($=R)||($=c!==null&&c.memoizedState===null?!1:(A&2)!==0),$?(T=!0,h.flags&=-129):(c===null||c.memoizedState!==null)&&(A|=1),St(Lt,A&1),c===null)return vx(h),c=h.memoizedState,c!==null&&(c=c.dehydrated,c!==null)?((h.mode&1)===0?h.lanes=1:c.data==="$!"?h.lanes=8:h.lanes=1073741824,null):(R=x.children,c=x.fallback,T?(x=h.mode,T=h.child,R={mode:"hidden",children:R},(x&1)===0&&T!==null?(T.childLanes=0,T.pendingProps=R):T=Jp(R,x,0,null),c=Go(c,x,m,null),T.return=h,c.return=h,T.sibling=c,h.child=T,h.child.memoizedState=Vx(m),h.memoizedState=Hx,c):Gx(h,R));if(A=c.memoizedState,A!==null&&($=A.dehydrated,$!==null))return eW(c,h,R,x,$,A,m);if(T){T=x.fallback,R=h.mode,A=c.child,$=A.sibling;var H={mode:"hidden",children:x.children};return(R&1)===0&&h.child!==A?(x=h.child,x.childLanes=0,x.pendingProps=H,h.deletions=null):(x=Ua(A,H),x.subtreeFlags=A.subtreeFlags&14680064),$!==null?T=Ua($,T):(T=Go(T,R,m,null),T.flags|=2),T.return=h,x.return=h,x.sibling=T,h.child=x,x=T,T=h.child,R=c.child.memoizedState,R=R===null?Vx(m):{baseLanes:R.baseLanes|m,cachePool:null,transitions:R.transitions},T.memoizedState=R,T.childLanes=c.childLanes&~m,h.memoizedState=Hx,x}return T=c.child,c=T.sibling,x=Ua(T,{mode:"visible",children:x.children}),(h.mode&1)===0&&(x.lanes=m),x.return=h,x.sibling=null,c!==null&&(m=h.deletions,m===null?(h.deletions=[c],h.flags|=16):m.push(c)),h.child=x,h.memoizedState=null,x}function Gx(c,h){return h=Jp({mode:"visible",children:h},c.mode,0,null),h.return=c,c.child=h}function Bp(c,h,m,x){return x!==null&&bx(x),dl(h,c.child,null,m),c=Gx(h,h.pendingProps.children),c.flags|=2,h.memoizedState=null,c}function eW(c,h,m,x,A,T,R){if(m)return h.flags&256?(h.flags&=-257,x=$x(Error(n(422))),Bp(c,h,R,x)):h.memoizedState!==null?(h.child=c.child,h.flags|=128,null):(T=x.fallback,A=h.mode,x=Jp({mode:"visible",children:x.children},A,0,null),T=Go(T,A,R,null),T.flags|=2,x.return=h,T.return=h,x.sibling=T,h.child=x,(h.mode&1)!==0&&dl(h,c.child,null,R),h.child.memoizedState=Vx(R),h.memoizedState=Hx,T);if((h.mode&1)===0)return Bp(c,h,R,null);if(A.data==="$!"){if(x=A.nextSibling&&A.nextSibling.dataset,x)var $=x.dgst;return x=$,T=Error(n(419)),x=$x(T,x,void 0),Bp(c,h,R,x)}if($=(R&c.childLanes)!==0,tr||$){if(x=fn,x!==null){switch(R&-R){case 4:A=2;break;case 16:A=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:A=32;break;case 536870912:A=268435456;break;default:A=0}A=(A&(x.suspendedLanes|R))!==0?0:A,A!==0&&A!==T.retryLane&&(T.retryLane=A,Yi(c,A),ni(x,c,A,-1))}return cv(),x=$x(Error(n(421))),Bp(c,h,R,x)}return A.data==="$?"?(h.flags|=128,h.child=c.child,h=pW.bind(null,c),A._reactRetry=h,null):(c=T.treeContext,mr=Ia(A.nextSibling),fr=h,Dt=!0,Jr=null,c!==null&&(Nr[Tr++]=Vi,Nr[Tr++]=Gi,Nr[Tr++]=Fo,Vi=c.id,Gi=c.overflow,Fo=h),h=Gx(h,x.children),h.flags|=4096,h)}function UN(c,h,m){c.lanes|=h;var x=c.alternate;x!==null&&(x.lanes|=h),Ax(c.return,h,m)}function Yx(c,h,m,x,A){var T=c.memoizedState;T===null?c.memoizedState={isBackwards:h,rendering:null,renderingStartTime:0,last:x,tail:m,tailMode:A}:(T.isBackwards=h,T.rendering=null,T.renderingStartTime=0,T.last=x,T.tail=m,T.tailMode=A)}function HN(c,h,m){var x=h.pendingProps,A=x.revealOrder,T=x.tail;if(Vn(c,h,x.children,m),x=Lt.current,(x&2)!==0)x=x&1|2,h.flags|=128;else{if(c!==null&&(c.flags&128)!==0)e:for(c=h.child;c!==null;){if(c.tag===13)c.memoizedState!==null&&UN(c,m,h);else if(c.tag===19)UN(c,m,h);else if(c.child!==null){c.child.return=c,c=c.child;continue}if(c===h)break e;for(;c.sibling===null;){if(c.return===null||c.return===h)break e;c=c.return}c.sibling.return=c.return,c=c.sibling}x&=1}if(St(Lt,x),(h.mode&1)===0)h.memoizedState=null;else switch(A){case"forwards":for(m=h.child,A=null;m!==null;)c=m.alternate,c!==null&&_p(c)===null&&(A=m),m=m.sibling;m=A,m===null?(A=h.child,h.child=null):(A=m.sibling,m.sibling=null),Yx(h,!1,A,m,T);break;case"backwards":for(m=null,A=h.child,h.child=null;A!==null;){if(c=A.alternate,c!==null&&_p(c)===null){h.child=A;break}c=A.sibling,A.sibling=m,m=A,A=c}Yx(h,!0,m,null,T);break;case"together":Yx(h,!1,null,null,void 0);break;default:h.memoizedState=null}return h.child}function zp(c,h){(h.mode&1)===0&&c!==null&&(c.alternate=null,h.alternate=null,h.flags|=2)}function Xi(c,h,m){if(c!==null&&(h.dependencies=c.dependencies),Wo|=h.lanes,(m&h.childLanes)===0)return null;if(c!==null&&h.child!==c.child)throw Error(n(153));if(h.child!==null){for(c=h.child,m=Ua(c,c.pendingProps),h.child=m,m.return=h;c.sibling!==null;)c=c.sibling,m=m.sibling=Ua(c,c.pendingProps),m.return=h;m.sibling=null}return h.child}function tW(c,h,m){switch(h.tag){case 3:$N(h),ul();break;case 5:aN(h);break;case 1:er(h.type)&&jp(h);break;case 4:Nx(h,h.stateNode.containerInfo);break;case 10:var x=h.type._context,A=h.memoizedProps.value;St(Tp,x._currentValue),x._currentValue=A;break;case 13:if(x=h.memoizedState,x!==null)return x.dehydrated!==null?(St(Lt,Lt.current&1),h.flags|=128,null):(m&h.child.childLanes)!==0?WN(c,h,m):(St(Lt,Lt.current&1),c=Xi(c,h,m),c!==null?c.sibling:null);St(Lt,Lt.current&1);break;case 19:if(x=(m&h.childLanes)!==0,(c.flags&128)!==0){if(x)return HN(c,h,m);h.flags|=128}if(A=h.memoizedState,A!==null&&(A.rendering=null,A.tail=null,A.lastEffect=null),St(Lt,Lt.current),x)break;return null;case 22:case 23:return h.lanes=0,FN(c,h,m)}return Xi(c,h,m)}var VN,Kx,GN,YN;VN=function(c,h){for(var m=h.child;m!==null;){if(m.tag===5||m.tag===6)c.appendChild(m.stateNode);else if(m.tag!==4&&m.child!==null){m.child.return=m,m=m.child;continue}if(m===h)break;for(;m.sibling===null;){if(m.return===null||m.return===h)return;m=m.return}m.sibling.return=m.return,m=m.sibling}},Kx=function(){},GN=function(c,h,m,x){var A=c.memoizedProps;if(A!==x){c=h.stateNode,$o(bi.current);var T=null;switch(m){case"input":A=qe(c,A),x=qe(c,x),T=[];break;case"select":A=I({},A,{value:void 0}),x=I({},x,{value:void 0}),T=[];break;case"textarea":A=nn(c,A),x=nn(c,x),T=[];break;default:typeof A.onClick!="function"&&typeof x.onClick=="function"&&(c.onclick=vp)}wn(m,x);var R;m=null;for(re in A)if(!x.hasOwnProperty(re)&&A.hasOwnProperty(re)&&A[re]!=null)if(re==="style"){var $=A[re];for(R in $)$.hasOwnProperty(R)&&(m||(m={}),m[R]="")}else re!=="dangerouslySetInnerHTML"&&re!=="children"&&re!=="suppressContentEditableWarning"&&re!=="suppressHydrationWarning"&&re!=="autoFocus"&&(i.hasOwnProperty(re)?T||(T=[]):(T=T||[]).push(re,null));for(re in x){var H=x[re];if($=A!=null?A[re]:void 0,x.hasOwnProperty(re)&&H!==$&&(H!=null||$!=null))if(re==="style")if($){for(R in $)!$.hasOwnProperty(R)||H&&H.hasOwnProperty(R)||(m||(m={}),m[R]="");for(R in H)H.hasOwnProperty(R)&&$[R]!==H[R]&&(m||(m={}),m[R]=H[R])}else m||(T||(T=[]),T.push(re,m)),m=H;else re==="dangerouslySetInnerHTML"?(H=H?H.__html:void 0,$=$?$.__html:void 0,H!=null&&$!==H&&(T=T||[]).push(re,H)):re==="children"?typeof H!="string"&&typeof H!="number"||(T=T||[]).push(re,""+H):re!=="suppressContentEditableWarning"&&re!=="suppressHydrationWarning"&&(i.hasOwnProperty(re)?(H!=null&&re==="onScroll"&&Pt("scroll",c),T||$===H||(T=[])):(T=T||[]).push(re,H))}m&&(T=T||[]).push("style",m);var re=T;(h.updateQueue=re)&&(h.flags|=4)}},YN=function(c,h,m,x){m!==x&&(h.flags|=4)};function Pu(c,h){if(!Dt)switch(c.tailMode){case"hidden":h=c.tail;for(var m=null;h!==null;)h.alternate!==null&&(m=h),h=h.sibling;m===null?c.tail=null:m.sibling=null;break;case"collapsed":m=c.tail;for(var x=null;m!==null;)m.alternate!==null&&(x=m),m=m.sibling;x===null?h||c.tail===null?c.tail=null:c.tail.sibling=null:x.sibling=null}}function Rn(c){var h=c.alternate!==null&&c.alternate.child===c.child,m=0,x=0;if(h)for(var A=c.child;A!==null;)m|=A.lanes|A.childLanes,x|=A.subtreeFlags&14680064,x|=A.flags&14680064,A.return=c,A=A.sibling;else for(A=c.child;A!==null;)m|=A.lanes|A.childLanes,x|=A.subtreeFlags,x|=A.flags,A.return=c,A=A.sibling;return c.subtreeFlags|=x,c.childLanes=m,h}function nW(c,h,m){var x=h.pendingProps;switch(yx(h),h.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Rn(h),null;case 1:return er(h.type)&&wp(),Rn(h),null;case 3:return x=h.stateNode,fl(),Ot(Zn),Ot(_n),Px(),x.pendingContext&&(x.context=x.pendingContext,x.pendingContext=null),(c===null||c.child===null)&&(Cp(h)?h.flags|=4:c===null||c.memoizedState.isDehydrated&&(h.flags&256)===0||(h.flags|=1024,Jr!==null&&(ov(Jr),Jr=null))),Kx(c,h),Rn(h),null;case 5:Tx(h);var A=$o(Su.current);if(m=h.type,c!==null&&h.stateNode!=null)GN(c,h,m,x,A),c.ref!==h.ref&&(h.flags|=512,h.flags|=2097152);else{if(!x){if(h.stateNode===null)throw Error(n(166));return Rn(h),null}if(c=$o(bi.current),Cp(h)){x=h.stateNode,m=h.type;var T=h.memoizedProps;switch(x[vi]=h,x[bu]=T,c=(h.mode&1)!==0,m){case"dialog":Pt("cancel",x),Pt("close",x);break;case"iframe":case"object":case"embed":Pt("load",x);break;case"video":case"audio":for(A=0;A<yu.length;A++)Pt(yu[A],x);break;case"source":Pt("error",x);break;case"img":case"image":case"link":Pt("error",x),Pt("load",x);break;case"details":Pt("toggle",x);break;case"input":it(x,T),Pt("invalid",x);break;case"select":x._wrapperState={wasMultiple:!!T.multiple},Pt("invalid",x);break;case"textarea":Sa(x,T),Pt("invalid",x)}wn(m,T),A=null;for(var R in T)if(T.hasOwnProperty(R)){var $=T[R];R==="children"?typeof $=="string"?x.textContent!==$&&(T.suppressHydrationWarning!==!0&&xp(x.textContent,$,c),A=["children",$]):typeof $=="number"&&x.textContent!==""+$&&(T.suppressHydrationWarning!==!0&&xp(x.textContent,$,c),A=["children",""+$]):i.hasOwnProperty(R)&&$!=null&&R==="onScroll"&&Pt("scroll",x)}switch(m){case"input":Re(x),zt(x,T,!0);break;case"textarea":Re(x),Io(x);break;case"select":case"option":break;default:typeof T.onClick=="function"&&(x.onclick=vp)}x=A,h.updateQueue=x,x!==null&&(h.flags|=4)}else{R=A.nodeType===9?A:A.ownerDocument,c==="http://www.w3.org/1999/xhtml"&&(c=oe(m)),c==="http://www.w3.org/1999/xhtml"?m==="script"?(c=R.createElement("div"),c.innerHTML="<script><\/script>",c=c.removeChild(c.firstChild)):typeof x.is=="string"?c=R.createElement(m,{is:x.is}):(c=R.createElement(m),m==="select"&&(R=c,x.multiple?R.multiple=!0:x.size&&(R.size=x.size))):c=R.createElementNS(c,m),c[vi]=h,c[bu]=x,VN(c,h,!1,!1),h.stateNode=c;e:{switch(R=yi(m,x),m){case"dialog":Pt("cancel",c),Pt("close",c),A=x;break;case"iframe":case"object":case"embed":Pt("load",c),A=x;break;case"video":case"audio":for(A=0;A<yu.length;A++)Pt(yu[A],c);A=x;break;case"source":Pt("error",c),A=x;break;case"img":case"image":case"link":Pt("error",c),Pt("load",c),A=x;break;case"details":Pt("toggle",c),A=x;break;case"input":it(c,x),A=qe(c,x),Pt("invalid",c);break;case"option":A=x;break;case"select":c._wrapperState={wasMultiple:!!x.multiple},A=I({},x,{value:void 0}),Pt("invalid",c);break;case"textarea":Sa(c,x),A=nn(c,x),Pt("invalid",c);break;default:A=x}wn(m,A),$=A;for(T in $)if($.hasOwnProperty(T)){var H=$[T];T==="style"?Ca(c,H):T==="dangerouslySetInnerHTML"?(H=H?H.__html:void 0,H!=null&&Ze(c,H)):T==="children"?typeof H=="string"?(m!=="textarea"||H!=="")&&ut(c,H):typeof H=="number"&&ut(c,""+H):T!=="suppressContentEditableWarning"&&T!=="suppressHydrationWarning"&&T!=="autoFocus"&&(i.hasOwnProperty(T)?H!=null&&T==="onScroll"&&Pt("scroll",c):H!=null&&S(c,T,H,R))}switch(m){case"input":Re(c),zt(c,x,!1);break;case"textarea":Re(c),Io(c);break;case"option":x.value!=null&&c.setAttribute("value",""+Oe(x.value));break;case"select":c.multiple=!!x.multiple,T=x.value,T!=null?hn(c,!!x.multiple,T,!1):x.defaultValue!=null&&hn(c,!!x.multiple,x.defaultValue,!0);break;default:typeof A.onClick=="function"&&(c.onclick=vp)}switch(m){case"button":case"input":case"select":case"textarea":x=!!x.autoFocus;break e;case"img":x=!0;break e;default:x=!1}}x&&(h.flags|=4)}h.ref!==null&&(h.flags|=512,h.flags|=2097152)}return Rn(h),null;case 6:if(c&&h.stateNode!=null)YN(c,h,c.memoizedProps,x);else{if(typeof x!="string"&&h.stateNode===null)throw Error(n(166));if(m=$o(Su.current),$o(bi.current),Cp(h)){if(x=h.stateNode,m=h.memoizedProps,x[vi]=h,(T=x.nodeValue!==m)&&(c=fr,c!==null))switch(c.tag){case 3:xp(x.nodeValue,m,(c.mode&1)!==0);break;case 5:c.memoizedProps.suppressHydrationWarning!==!0&&xp(x.nodeValue,m,(c.mode&1)!==0)}T&&(h.flags|=4)}else x=(m.nodeType===9?m:m.ownerDocument).createTextNode(x),x[vi]=h,h.stateNode=x}return Rn(h),null;case 13:if(Ot(Lt),x=h.memoizedState,c===null||c.memoizedState!==null&&c.memoizedState.dehydrated!==null){if(Dt&&mr!==null&&(h.mode&1)!==0&&(h.flags&128)===0)Q5(),ul(),h.flags|=98560,T=!1;else if(T=Cp(h),x!==null&&x.dehydrated!==null){if(c===null){if(!T)throw Error(n(318));if(T=h.memoizedState,T=T!==null?T.dehydrated:null,!T)throw Error(n(317));T[vi]=h}else ul(),(h.flags&128)===0&&(h.memoizedState=null),h.flags|=4;Rn(h),T=!1}else Jr!==null&&(ov(Jr),Jr=null),T=!0;if(!T)return h.flags&65536?h:null}return(h.flags&128)!==0?(h.lanes=m,h):(x=x!==null,x!==(c!==null&&c.memoizedState!==null)&&x&&(h.child.flags|=8192,(h.mode&1)!==0&&(c===null||(Lt.current&1)!==0?an===0&&(an=3):cv())),h.updateQueue!==null&&(h.flags|=4),Rn(h),null);case 4:return fl(),Kx(c,h),c===null&&xu(h.stateNode.containerInfo),Rn(h),null;case 10:return kx(h.type._context),Rn(h),null;case 17:return er(h.type)&&wp(),Rn(h),null;case 19:if(Ot(Lt),T=h.memoizedState,T===null)return Rn(h),null;if(x=(h.flags&128)!==0,R=T.rendering,R===null)if(x)Pu(T,!1);else{if(an!==0||c!==null&&(c.flags&128)!==0)for(c=h.child;c!==null;){if(R=_p(c),R!==null){for(h.flags|=128,Pu(T,!1),x=R.updateQueue,x!==null&&(h.updateQueue=x,h.flags|=4),h.subtreeFlags=0,x=m,m=h.child;m!==null;)T=m,c=x,T.flags&=14680066,R=T.alternate,R===null?(T.childLanes=0,T.lanes=c,T.child=null,T.subtreeFlags=0,T.memoizedProps=null,T.memoizedState=null,T.updateQueue=null,T.dependencies=null,T.stateNode=null):(T.childLanes=R.childLanes,T.lanes=R.lanes,T.child=R.child,T.subtreeFlags=0,T.deletions=null,T.memoizedProps=R.memoizedProps,T.memoizedState=R.memoizedState,T.updateQueue=R.updateQueue,T.type=R.type,c=R.dependencies,T.dependencies=c===null?null:{lanes:c.lanes,firstContext:c.firstContext}),m=m.sibling;return St(Lt,Lt.current&1|2),h.child}c=c.sibling}T.tail!==null&&Vt()>xl&&(h.flags|=128,x=!0,Pu(T,!1),h.lanes=4194304)}else{if(!x)if(c=_p(R),c!==null){if(h.flags|=128,x=!0,m=c.updateQueue,m!==null&&(h.updateQueue=m,h.flags|=4),Pu(T,!0),T.tail===null&&T.tailMode==="hidden"&&!R.alternate&&!Dt)return Rn(h),null}else 2*Vt()-T.renderingStartTime>xl&&m!==1073741824&&(h.flags|=128,x=!0,Pu(T,!1),h.lanes=4194304);T.isBackwards?(R.sibling=h.child,h.child=R):(m=T.last,m!==null?m.sibling=R:h.child=R,T.last=R)}return T.tail!==null?(h=T.tail,T.rendering=h,T.tail=h.sibling,T.renderingStartTime=Vt(),h.sibling=null,m=Lt.current,St(Lt,x?m&1|2:m&1),h):(Rn(h),null);case 22:case 23:return lv(),x=h.memoizedState!==null,c!==null&&c.memoizedState!==null!==x&&(h.flags|=8192),x&&(h.mode&1)!==0?(gr&1073741824)!==0&&(Rn(h),h.subtreeFlags&6&&(h.flags|=8192)):Rn(h),null;case 24:return null;case 25:return null}throw Error(n(156,h.tag))}function rW(c,h){switch(yx(h),h.tag){case 1:return er(h.type)&&wp(),c=h.flags,c&65536?(h.flags=c&-65537|128,h):null;case 3:return fl(),Ot(Zn),Ot(_n),Px(),c=h.flags,(c&65536)!==0&&(c&128)===0?(h.flags=c&-65537|128,h):null;case 5:return Tx(h),null;case 13:if(Ot(Lt),c=h.memoizedState,c!==null&&c.dehydrated!==null){if(h.alternate===null)throw Error(n(340));ul()}return c=h.flags,c&65536?(h.flags=c&-65537|128,h):null;case 19:return Ot(Lt),null;case 4:return fl(),null;case 10:return kx(h.type._context),null;case 22:case 23:return lv(),null;case 24:return null;default:return null}}var $p=!1,Dn=!1,iW=typeof WeakSet=="function"?WeakSet:Set,Se=null;function gl(c,h){var m=c.ref;if(m!==null)if(typeof m=="function")try{m(null)}catch(x){$t(c,h,x)}else m.current=null}function Xx(c,h,m){try{m()}catch(x){$t(c,h,x)}}var KN=!1;function aW(c,h){if(lx=sp,c=N5(),ex(c)){if("selectionStart"in c)var m={start:c.selectionStart,end:c.selectionEnd};else e:{m=(m=c.ownerDocument)&&m.defaultView||window;var x=m.getSelection&&m.getSelection();if(x&&x.rangeCount!==0){m=x.anchorNode;var A=x.anchorOffset,T=x.focusNode;x=x.focusOffset;try{m.nodeType,T.nodeType}catch{m=null;break e}var R=0,$=-1,H=-1,re=0,ue=0,de=c,ce=null;t:for(;;){for(var be;de!==m||A!==0&&de.nodeType!==3||($=R+A),de!==T||x!==0&&de.nodeType!==3||(H=R+x),de.nodeType===3&&(R+=de.nodeValue.length),(be=de.firstChild)!==null;)ce=de,de=be;for(;;){if(de===c)break t;if(ce===m&&++re===A&&($=R),ce===T&&++ue===x&&(H=R),(be=de.nextSibling)!==null)break;de=ce,ce=de.parentNode}de=be}m=$===-1||H===-1?null:{start:$,end:H}}else m=null}m=m||{start:0,end:0}}else m=null;for(cx={focusedElem:c,selectionRange:m},sp=!1,Se=h;Se!==null;)if(h=Se,c=h.child,(h.subtreeFlags&1028)!==0&&c!==null)c.return=h,Se=c;else for(;Se!==null;){h=Se;try{var Ne=h.alternate;if((h.flags&1024)!==0)switch(h.tag){case 0:case 11:case 15:break;case 1:if(Ne!==null){var Pe=Ne.memoizedProps,Gt=Ne.memoizedState,ee=h.stateNode,K=ee.getSnapshotBeforeUpdate(h.elementType===h.type?Pe:Zr(h.type,Pe),Gt);ee.__reactInternalSnapshotBeforeUpdate=K}break;case 3:var te=h.stateNode.containerInfo;te.nodeType===1?te.textContent="":te.nodeType===9&&te.documentElement&&te.removeChild(te.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(n(163))}}catch(pe){$t(h,h.return,pe)}if(c=h.sibling,c!==null){c.return=h.return,Se=c;break}Se=h.return}return Ne=KN,KN=!1,Ne}function Ou(c,h,m){var x=h.updateQueue;if(x=x!==null?x.lastEffect:null,x!==null){var A=x=x.next;do{if((A.tag&c)===c){var T=A.destroy;A.destroy=void 0,T!==void 0&&Xx(h,m,T)}A=A.next}while(A!==x)}}function qp(c,h){if(h=h.updateQueue,h=h!==null?h.lastEffect:null,h!==null){var m=h=h.next;do{if((m.tag&c)===c){var x=m.create;m.destroy=x()}m=m.next}while(m!==h)}}function Qx(c){var h=c.ref;if(h!==null){var m=c.stateNode;switch(c.tag){case 5:c=m;break;default:c=m}typeof h=="function"?h(c):h.current=c}}function XN(c){var h=c.alternate;h!==null&&(c.alternate=null,XN(h)),c.child=null,c.deletions=null,c.sibling=null,c.tag===5&&(h=c.stateNode,h!==null&&(delete h[vi],delete h[bu],delete h[px],delete h[$q],delete h[qq])),c.stateNode=null,c.return=null,c.dependencies=null,c.memoizedProps=null,c.memoizedState=null,c.pendingProps=null,c.stateNode=null,c.updateQueue=null}function QN(c){return c.tag===5||c.tag===3||c.tag===4}function JN(c){e:for(;;){for(;c.sibling===null;){if(c.return===null||QN(c.return))return null;c=c.return}for(c.sibling.return=c.return,c=c.sibling;c.tag!==5&&c.tag!==6&&c.tag!==18;){if(c.flags&2||c.child===null||c.tag===4)continue e;c.child.return=c,c=c.child}if(!(c.flags&2))return c.stateNode}}function Jx(c,h,m){var x=c.tag;if(x===5||x===6)c=c.stateNode,h?m.nodeType===8?m.parentNode.insertBefore(c,h):m.insertBefore(c,h):(m.nodeType===8?(h=m.parentNode,h.insertBefore(c,m)):(h=m,h.appendChild(c)),m=m._reactRootContainer,m!=null||h.onclick!==null||(h.onclick=vp));else if(x!==4&&(c=c.child,c!==null))for(Jx(c,h,m),c=c.sibling;c!==null;)Jx(c,h,m),c=c.sibling}function Zx(c,h,m){var x=c.tag;if(x===5||x===6)c=c.stateNode,h?m.insertBefore(c,h):m.appendChild(c);else if(x!==4&&(c=c.child,c!==null))for(Zx(c,h,m),c=c.sibling;c!==null;)Zx(c,h,m),c=c.sibling}var jn=null,ei=!1;function Ba(c,h,m){for(m=m.child;m!==null;)ZN(c,h,m),m=m.sibling}function ZN(c,h,m){if(xi&&typeof xi.onCommitFiberUnmount=="function")try{xi.onCommitFiberUnmount(tp,m)}catch{}switch(m.tag){case 5:Dn||gl(m,h);case 6:var x=jn,A=ei;jn=null,Ba(c,h,m),jn=x,ei=A,jn!==null&&(ei?(c=jn,m=m.stateNode,c.nodeType===8?c.parentNode.removeChild(m):c.removeChild(m)):jn.removeChild(m.stateNode));break;case 18:jn!==null&&(ei?(c=jn,m=m.stateNode,c.nodeType===8?hx(c.parentNode,m):c.nodeType===1&&hx(c,m),cu(c)):hx(jn,m.stateNode));break;case 4:x=jn,A=ei,jn=m.stateNode.containerInfo,ei=!0,Ba(c,h,m),jn=x,ei=A;break;case 0:case 11:case 14:case 15:if(!Dn&&(x=m.updateQueue,x!==null&&(x=x.lastEffect,x!==null))){A=x=x.next;do{var T=A,R=T.destroy;T=T.tag,R!==void 0&&((T&2)!==0||(T&4)!==0)&&Xx(m,h,R),A=A.next}while(A!==x)}Ba(c,h,m);break;case 1:if(!Dn&&(gl(m,h),x=m.stateNode,typeof x.componentWillUnmount=="function"))try{x.props=m.memoizedProps,x.state=m.memoizedState,x.componentWillUnmount()}catch($){$t(m,h,$)}Ba(c,h,m);break;case 21:Ba(c,h,m);break;case 22:m.mode&1?(Dn=(x=Dn)||m.memoizedState!==null,Ba(c,h,m),Dn=x):Ba(c,h,m);break;default:Ba(c,h,m)}}function eT(c){var h=c.updateQueue;if(h!==null){c.updateQueue=null;var m=c.stateNode;m===null&&(m=c.stateNode=new iW),h.forEach(function(x){var A=fW.bind(null,c,x);m.has(x)||(m.add(x),x.then(A,A))})}}function ti(c,h){var m=h.deletions;if(m!==null)for(var x=0;x<m.length;x++){var A=m[x];try{var T=c,R=h,$=R;e:for(;$!==null;){switch($.tag){case 5:jn=$.stateNode,ei=!1;break e;case 3:jn=$.stateNode.containerInfo,ei=!0;break e;case 4:jn=$.stateNode.containerInfo,ei=!0;break e}$=$.return}if(jn===null)throw Error(n(160));ZN(T,R,A),jn=null,ei=!1;var H=A.alternate;H!==null&&(H.return=null),A.return=null}catch(re){$t(A,h,re)}}if(h.subtreeFlags&12854)for(h=h.child;h!==null;)tT(h,c),h=h.sibling}function tT(c,h){var m=c.alternate,x=c.flags;switch(c.tag){case 0:case 11:case 14:case 15:if(ti(h,c),ji(c),x&4){try{Ou(3,c,c.return),qp(3,c)}catch(Pe){$t(c,c.return,Pe)}try{Ou(5,c,c.return)}catch(Pe){$t(c,c.return,Pe)}}break;case 1:ti(h,c),ji(c),x&512&&m!==null&&gl(m,m.return);break;case 5:if(ti(h,c),ji(c),x&512&&m!==null&&gl(m,m.return),c.flags&32){var A=c.stateNode;try{ut(A,"")}catch(Pe){$t(c,c.return,Pe)}}if(x&4&&(A=c.stateNode,A!=null)){var T=c.memoizedProps,R=m!==null?m.memoizedProps:T,$=c.type,H=c.updateQueue;if(c.updateQueue=null,H!==null)try{$==="input"&&T.type==="radio"&&T.name!=null&&Ae(A,T),yi($,R);var re=yi($,T);for(R=0;R<H.length;R+=2){var ue=H[R],de=H[R+1];ue==="style"?Ca(A,de):ue==="dangerouslySetInnerHTML"?Ze(A,de):ue==="children"?ut(A,de):S(A,ue,de,re)}switch($){case"input":at(A,T);break;case"textarea":_o(A,T);break;case"select":var ce=A._wrapperState.wasMultiple;A._wrapperState.wasMultiple=!!T.multiple;var be=T.value;be!=null?hn(A,!!T.multiple,be,!1):ce!==!!T.multiple&&(T.defaultValue!=null?hn(A,!!T.multiple,T.defaultValue,!0):hn(A,!!T.multiple,T.multiple?[]:"",!1))}A[bu]=T}catch(Pe){$t(c,c.return,Pe)}}break;case 6:if(ti(h,c),ji(c),x&4){if(c.stateNode===null)throw Error(n(162));A=c.stateNode,T=c.memoizedProps;try{A.nodeValue=T}catch(Pe){$t(c,c.return,Pe)}}break;case 3:if(ti(h,c),ji(c),x&4&&m!==null&&m.memoizedState.isDehydrated)try{cu(h.containerInfo)}catch(Pe){$t(c,c.return,Pe)}break;case 4:ti(h,c),ji(c);break;case 13:ti(h,c),ji(c),A=c.child,A.flags&8192&&(T=A.memoizedState!==null,A.stateNode.isHidden=T,!T||A.alternate!==null&&A.alternate.memoizedState!==null||(nv=Vt())),x&4&&eT(c);break;case 22:if(ue=m!==null&&m.memoizedState!==null,c.mode&1?(Dn=(re=Dn)||ue,ti(h,c),Dn=re):ti(h,c),ji(c),x&8192){if(re=c.memoizedState!==null,(c.stateNode.isHidden=re)&&!ue&&(c.mode&1)!==0)for(Se=c,ue=c.child;ue!==null;){for(de=Se=ue;Se!==null;){switch(ce=Se,be=ce.child,ce.tag){case 0:case 11:case 14:case 15:Ou(4,ce,ce.return);break;case 1:gl(ce,ce.return);var Ne=ce.stateNode;if(typeof Ne.componentWillUnmount=="function"){x=ce,m=ce.return;try{h=x,Ne.props=h.memoizedProps,Ne.state=h.memoizedState,Ne.componentWillUnmount()}catch(Pe){$t(x,m,Pe)}}break;case 5:gl(ce,ce.return);break;case 22:if(ce.memoizedState!==null){iT(de);continue}}be!==null?(be.return=ce,Se=be):iT(de)}ue=ue.sibling}e:for(ue=null,de=c;;){if(de.tag===5){if(ue===null){ue=de;try{A=de.stateNode,re?(T=A.style,typeof T.setProperty=="function"?T.setProperty("display","none","important"):T.display="none"):($=de.stateNode,H=de.memoizedProps.style,R=H!=null&&H.hasOwnProperty("display")?H.display:null,$.style.display=Cr("display",R))}catch(Pe){$t(c,c.return,Pe)}}}else if(de.tag===6){if(ue===null)try{de.stateNode.nodeValue=re?"":de.memoizedProps}catch(Pe){$t(c,c.return,Pe)}}else if((de.tag!==22&&de.tag!==23||de.memoizedState===null||de===c)&&de.child!==null){de.child.return=de,de=de.child;continue}if(de===c)break e;for(;de.sibling===null;){if(de.return===null||de.return===c)break e;ue===de&&(ue=null),de=de.return}ue===de&&(ue=null),de.sibling.return=de.return,de=de.sibling}}break;case 19:ti(h,c),ji(c),x&4&&eT(c);break;case 21:break;default:ti(h,c),ji(c)}}function ji(c){var h=c.flags;if(h&2){try{e:{for(var m=c.return;m!==null;){if(QN(m)){var x=m;break e}m=m.return}throw Error(n(160))}switch(x.tag){case 5:var A=x.stateNode;x.flags&32&&(ut(A,""),x.flags&=-33);var T=JN(c);Zx(c,T,A);break;case 3:case 4:var R=x.stateNode.containerInfo,$=JN(c);Jx(c,$,R);break;default:throw Error(n(161))}}catch(H){$t(c,c.return,H)}c.flags&=-3}h&4096&&(c.flags&=-4097)}function oW(c,h,m){Se=c,nT(c)}function nT(c,h,m){for(var x=(c.mode&1)!==0;Se!==null;){var A=Se,T=A.child;if(A.tag===22&&x){var R=A.memoizedState!==null||$p;if(!R){var $=A.alternate,H=$!==null&&$.memoizedState!==null||Dn;$=$p;var re=Dn;if($p=R,(Dn=H)&&!re)for(Se=A;Se!==null;)R=Se,H=R.child,R.tag===22&&R.memoizedState!==null?aT(A):H!==null?(H.return=R,Se=H):aT(A);for(;T!==null;)Se=T,nT(T),T=T.sibling;Se=A,$p=$,Dn=re}rT(c)}else(A.subtreeFlags&8772)!==0&&T!==null?(T.return=A,Se=T):rT(c)}}function rT(c){for(;Se!==null;){var h=Se;if((h.flags&8772)!==0){var m=h.alternate;try{if((h.flags&8772)!==0)switch(h.tag){case 0:case 11:case 15:Dn||qp(5,h);break;case 1:var x=h.stateNode;if(h.flags&4&&!Dn)if(m===null)x.componentDidMount();else{var A=h.elementType===h.type?m.memoizedProps:Zr(h.type,m.memoizedProps);x.componentDidUpdate(A,m.memoizedState,x.__reactInternalSnapshotBeforeUpdate)}var T=h.updateQueue;T!==null&&iN(h,T,x);break;case 3:var R=h.updateQueue;if(R!==null){if(m=null,h.child!==null)switch(h.child.tag){case 5:m=h.child.stateNode;break;case 1:m=h.child.stateNode}iN(h,R,m)}break;case 5:var $=h.stateNode;if(m===null&&h.flags&4){m=$;var H=h.memoizedProps;switch(h.type){case"button":case"input":case"select":case"textarea":H.autoFocus&&m.focus();break;case"img":H.src&&(m.src=H.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(h.memoizedState===null){var re=h.alternate;if(re!==null){var ue=re.memoizedState;if(ue!==null){var de=ue.dehydrated;de!==null&&cu(de)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(n(163))}Dn||h.flags&512&&Qx(h)}catch(ce){$t(h,h.return,ce)}}if(h===c){Se=null;break}if(m=h.sibling,m!==null){m.return=h.return,Se=m;break}Se=h.return}}function iT(c){for(;Se!==null;){var h=Se;if(h===c){Se=null;break}var m=h.sibling;if(m!==null){m.return=h.return,Se=m;break}Se=h.return}}function aT(c){for(;Se!==null;){var h=Se;try{switch(h.tag){case 0:case 11:case 15:var m=h.return;try{qp(4,h)}catch(H){$t(h,m,H)}break;case 1:var x=h.stateNode;if(typeof x.componentDidMount=="function"){var A=h.return;try{x.componentDidMount()}catch(H){$t(h,A,H)}}var T=h.return;try{Qx(h)}catch(H){$t(h,T,H)}break;case 5:var R=h.return;try{Qx(h)}catch(H){$t(h,R,H)}}}catch(H){$t(h,h.return,H)}if(h===c){Se=null;break}var $=h.sibling;if($!==null){$.return=h.return,Se=$;break}Se=h.return}}var sW=Math.ceil,Wp=E.ReactCurrentDispatcher,ev=E.ReactCurrentOwner,Or=E.ReactCurrentBatchConfig,dt=0,fn=null,Qt=null,kn=0,gr=0,yl=Ra(0),an=0,_u=null,Wo=0,Up=0,tv=0,Iu=null,nr=null,nv=0,xl=1/0,Qi=null,Hp=!1,rv=null,za=null,Vp=!1,$a=null,Gp=0,Ru=0,iv=null,Yp=-1,Kp=0;function Gn(){return(dt&6)!==0?Vt():Yp!==-1?Yp:Yp=Vt()}function qa(c){return(c.mode&1)===0?1:(dt&2)!==0&&kn!==0?kn&-kn:Uq.transition!==null?(Kp===0&&(Kp=JC()),Kp):(c=wt,c!==0||(c=window.event,c=c===void 0?16:s5(c.type)),c)}function ni(c,h,m,x){if(50<Ru)throw Ru=0,iv=null,Error(n(185));iu(c,m,x),((dt&2)===0||c!==fn)&&(c===fn&&((dt&2)===0&&(Up|=m),an===4&&Wa(c,kn)),rr(c,x),m===1&&dt===0&&(h.mode&1)===0&&(xl=Vt()+500,kp&&Ma()))}function rr(c,h){var m=c.callbackNode;U$(c,h);var x=ip(c,c===fn?kn:0);if(x===0)m!==null&&KC(m),c.callbackNode=null,c.callbackPriority=0;else if(h=x&-x,c.callbackPriority!==h){if(m!=null&&KC(m),h===1)c.tag===0?Wq(sT.bind(null,c)):V5(sT.bind(null,c)),Bq(function(){(dt&6)===0&&Ma()}),m=null;else{switch(ZC(x)){case 1:m=Ly;break;case 4:m=XC;break;case 16:m=ep;break;case 536870912:m=QC;break;default:m=ep}m=mT(m,oT.bind(null,c))}c.callbackPriority=h,c.callbackNode=m}}function oT(c,h){if(Yp=-1,Kp=0,(dt&6)!==0)throw Error(n(327));var m=c.callbackNode;if(vl()&&c.callbackNode!==m)return null;var x=ip(c,c===fn?kn:0);if(x===0)return null;if((x&30)!==0||(x&c.expiredLanes)!==0||h)h=Xp(c,x);else{h=x;var A=dt;dt|=2;var T=cT();(fn!==c||kn!==h)&&(Qi=null,xl=Vt()+500,Ho(c,h));do try{uW();break}catch($){lT(c,$)}while(!0);jx(),Wp.current=T,dt=A,Qt!==null?h=0:(fn=null,kn=0,h=an)}if(h!==0){if(h===2&&(A=Fy(c),A!==0&&(x=A,h=av(c,A))),h===1)throw m=_u,Ho(c,0),Wa(c,x),rr(c,Vt()),m;if(h===6)Wa(c,x);else{if(A=c.current.alternate,(x&30)===0&&!lW(A)&&(h=Xp(c,x),h===2&&(T=Fy(c),T!==0&&(x=T,h=av(c,T))),h===1))throw m=_u,Ho(c,0),Wa(c,x),rr(c,Vt()),m;switch(c.finishedWork=A,c.finishedLanes=x,h){case 0:case 1:throw Error(n(345));case 2:Vo(c,nr,Qi);break;case 3:if(Wa(c,x),(x&130023424)===x&&(h=nv+500-Vt(),10<h)){if(ip(c,0)!==0)break;if(A=c.suspendedLanes,(A&x)!==x){Gn(),c.pingedLanes|=c.suspendedLanes&A;break}c.timeoutHandle=dx(Vo.bind(null,c,nr,Qi),h);break}Vo(c,nr,Qi);break;case 4:if(Wa(c,x),(x&4194240)===x)break;for(h=c.eventTimes,A=-1;0<x;){var R=31-Xr(x);T=1<<R,R=h[R],R>A&&(A=R),x&=~T}if(x=A,x=Vt()-x,x=(120>x?120:480>x?480:1080>x?1080:1920>x?1920:3e3>x?3e3:4320>x?4320:1960*sW(x/1960))-x,10<x){c.timeoutHandle=dx(Vo.bind(null,c,nr,Qi),x);break}Vo(c,nr,Qi);break;case 5:Vo(c,nr,Qi);break;default:throw Error(n(329))}}}return rr(c,Vt()),c.callbackNode===m?oT.bind(null,c):null}function av(c,h){var m=Iu;return c.current.memoizedState.isDehydrated&&(Ho(c,h).flags|=256),c=Xp(c,h),c!==2&&(h=nr,nr=m,h!==null&&ov(h)),c}function ov(c){nr===null?nr=c:nr.push.apply(nr,c)}function lW(c){for(var h=c;;){if(h.flags&16384){var m=h.updateQueue;if(m!==null&&(m=m.stores,m!==null))for(var x=0;x<m.length;x++){var A=m[x],T=A.getSnapshot;A=A.value;try{if(!Qr(T(),A))return!1}catch{return!1}}}if(m=h.child,h.subtreeFlags&16384&&m!==null)m.return=h,h=m;else{if(h===c)break;for(;h.sibling===null;){if(h.return===null||h.return===c)return!0;h=h.return}h.sibling.return=h.return,h=h.sibling}}return!0}function Wa(c,h){for(h&=~tv,h&=~Up,c.suspendedLanes|=h,c.pingedLanes&=~h,c=c.expirationTimes;0<h;){var m=31-Xr(h),x=1<<m;c[m]=-1,h&=~x}}function sT(c){if((dt&6)!==0)throw Error(n(327));vl();var h=ip(c,0);if((h&1)===0)return rr(c,Vt()),null;var m=Xp(c,h);if(c.tag!==0&&m===2){var x=Fy(c);x!==0&&(h=x,m=av(c,x))}if(m===1)throw m=_u,Ho(c,0),Wa(c,h),rr(c,Vt()),m;if(m===6)throw Error(n(345));return c.finishedWork=c.current.alternate,c.finishedLanes=h,Vo(c,nr,Qi),rr(c,Vt()),null}function sv(c,h){var m=dt;dt|=1;try{return c(h)}finally{dt=m,dt===0&&(xl=Vt()+500,kp&&Ma())}}function Uo(c){$a!==null&&$a.tag===0&&(dt&6)===0&&vl();var h=dt;dt|=1;var m=Or.transition,x=wt;try{if(Or.transition=null,wt=1,c)return c()}finally{wt=x,Or.transition=m,dt=h,(dt&6)===0&&Ma()}}function lv(){gr=yl.current,Ot(yl)}function Ho(c,h){c.finishedWork=null,c.finishedLanes=0;var m=c.timeoutHandle;if(m!==-1&&(c.timeoutHandle=-1,Fq(m)),Qt!==null)for(m=Qt.return;m!==null;){var x=m;switch(yx(x),x.tag){case 1:x=x.type.childContextTypes,x!=null&&wp();break;case 3:fl(),Ot(Zn),Ot(_n),Px();break;case 5:Tx(x);break;case 4:fl();break;case 13:Ot(Lt);break;case 19:Ot(Lt);break;case 10:kx(x.type._context);break;case 22:case 23:lv()}m=m.return}if(fn=c,Qt=c=Ua(c.current,null),kn=gr=h,an=0,_u=null,tv=Up=Wo=0,nr=Iu=null,zo!==null){for(h=0;h<zo.length;h++)if(m=zo[h],x=m.interleaved,x!==null){m.interleaved=null;var A=x.next,T=m.pending;if(T!==null){var R=T.next;T.next=A,x.next=R}m.pending=x}zo=null}return c}function lT(c,h){do{var m=Qt;try{if(jx(),Ip.current=Lp,Rp){for(var x=Ft.memoizedState;x!==null;){var A=x.queue;A!==null&&(A.pending=null),x=x.next}Rp=!1}if(qo=0,pn=rn=Ft=null,Cu=!1,Nu=0,ev.current=null,m===null||m.return===null){an=1,_u=h,Qt=null;break}e:{var T=c,R=m.return,$=m,H=h;if(h=kn,$.flags|=32768,H!==null&&typeof H=="object"&&typeof H.then=="function"){var re=H,ue=$,de=ue.tag;if((ue.mode&1)===0&&(de===0||de===11||de===15)){var ce=ue.alternate;ce?(ue.updateQueue=ce.updateQueue,ue.memoizedState=ce.memoizedState,ue.lanes=ce.lanes):(ue.updateQueue=null,ue.memoizedState=null)}var be=IN(R);if(be!==null){be.flags&=-257,RN(be,R,$,T,h),be.mode&1&&_N(T,re,h),h=be,H=re;var Ne=h.updateQueue;if(Ne===null){var Pe=new Set;Pe.add(H),h.updateQueue=Pe}else Ne.add(H);break e}else{if((h&1)===0){_N(T,re,h),cv();break e}H=Error(n(426))}}else if(Dt&&$.mode&1){var Gt=IN(R);if(Gt!==null){(Gt.flags&65536)===0&&(Gt.flags|=256),RN(Gt,R,$,T,h),bx(ml(H,$));break e}}T=H=ml(H,$),an!==4&&(an=2),Iu===null?Iu=[T]:Iu.push(T),T=R;do{switch(T.tag){case 3:T.flags|=65536,h&=-h,T.lanes|=h;var ee=PN(T,H,h);rN(T,ee);break e;case 1:$=H;var K=T.type,te=T.stateNode;if((T.flags&128)===0&&(typeof K.getDerivedStateFromError=="function"||te!==null&&typeof te.componentDidCatch=="function"&&(za===null||!za.has(te)))){T.flags|=65536,h&=-h,T.lanes|=h;var pe=ON(T,$,h);rN(T,pe);break e}}T=T.return}while(T!==null)}dT(m)}catch(_e){h=_e,Qt===m&&m!==null&&(Qt=m=m.return);continue}break}while(!0)}function cT(){var c=Wp.current;return Wp.current=Lp,c===null?Lp:c}function cv(){(an===0||an===3||an===2)&&(an=4),fn===null||(Wo&268435455)===0&&(Up&268435455)===0||Wa(fn,kn)}function Xp(c,h){var m=dt;dt|=2;var x=cT();(fn!==c||kn!==h)&&(Qi=null,Ho(c,h));do try{cW();break}catch(A){lT(c,A)}while(!0);if(jx(),dt=m,Wp.current=x,Qt!==null)throw Error(n(261));return fn=null,kn=0,an}function cW(){for(;Qt!==null;)uT(Qt)}function uW(){for(;Qt!==null&&!D$();)uT(Qt)}function uT(c){var h=fT(c.alternate,c,gr);c.memoizedProps=c.pendingProps,h===null?dT(c):Qt=h,ev.current=null}function dT(c){var h=c;do{var m=h.alternate;if(c=h.return,(h.flags&32768)===0){if(m=nW(m,h,gr),m!==null){Qt=m;return}}else{if(m=rW(m,h),m!==null){m.flags&=32767,Qt=m;return}if(c!==null)c.flags|=32768,c.subtreeFlags=0,c.deletions=null;else{an=6,Qt=null;return}}if(h=h.sibling,h!==null){Qt=h;return}Qt=h=c}while(h!==null);an===0&&(an=5)}function Vo(c,h,m){var x=wt,A=Or.transition;try{Or.transition=null,wt=1,dW(c,h,m,x)}finally{Or.transition=A,wt=x}return null}function dW(c,h,m,x){do vl();while($a!==null);if((dt&6)!==0)throw Error(n(327));m=c.finishedWork;var A=c.finishedLanes;if(m===null)return null;if(c.finishedWork=null,c.finishedLanes=0,m===c.current)throw Error(n(177));c.callbackNode=null,c.callbackPriority=0;var T=m.lanes|m.childLanes;if(H$(c,T),c===fn&&(Qt=fn=null,kn=0),(m.subtreeFlags&2064)===0&&(m.flags&2064)===0||Vp||(Vp=!0,mT(ep,function(){return vl(),null})),T=(m.flags&15990)!==0,(m.subtreeFlags&15990)!==0||T){T=Or.transition,Or.transition=null;var R=wt;wt=1;var $=dt;dt|=4,ev.current=null,aW(c,m),tT(m,c),Oq(cx),sp=!!lx,cx=lx=null,c.current=m,oW(m),M$(),dt=$,wt=R,Or.transition=T}else c.current=m;if(Vp&&(Vp=!1,$a=c,Gp=A),T=c.pendingLanes,T===0&&(za=null),B$(m.stateNode),rr(c,Vt()),h!==null)for(x=c.onRecoverableError,m=0;m<h.length;m++)A=h[m],x(A.value,{componentStack:A.stack,digest:A.digest});if(Hp)throw Hp=!1,c=rv,rv=null,c;return(Gp&1)!==0&&c.tag!==0&&vl(),T=c.pendingLanes,(T&1)!==0?c===iv?Ru++:(Ru=0,iv=c):Ru=0,Ma(),null}function vl(){if($a!==null){var c=ZC(Gp),h=Or.transition,m=wt;try{if(Or.transition=null,wt=16>c?16:c,$a===null)var x=!1;else{if(c=$a,$a=null,Gp=0,(dt&6)!==0)throw Error(n(331));var A=dt;for(dt|=4,Se=c.current;Se!==null;){var T=Se,R=T.child;if((Se.flags&16)!==0){var $=T.deletions;if($!==null){for(var H=0;H<$.length;H++){var re=$[H];for(Se=re;Se!==null;){var ue=Se;switch(ue.tag){case 0:case 11:case 15:Ou(8,ue,T)}var de=ue.child;if(de!==null)de.return=ue,Se=de;else for(;Se!==null;){ue=Se;var ce=ue.sibling,be=ue.return;if(XN(ue),ue===re){Se=null;break}if(ce!==null){ce.return=be,Se=ce;break}Se=be}}}var Ne=T.alternate;if(Ne!==null){var Pe=Ne.child;if(Pe!==null){Ne.child=null;do{var Gt=Pe.sibling;Pe.sibling=null,Pe=Gt}while(Pe!==null)}}Se=T}}if((T.subtreeFlags&2064)!==0&&R!==null)R.return=T,Se=R;else e:for(;Se!==null;){if(T=Se,(T.flags&2048)!==0)switch(T.tag){case 0:case 11:case 15:Ou(9,T,T.return)}var ee=T.sibling;if(ee!==null){ee.return=T.return,Se=ee;break e}Se=T.return}}var K=c.current;for(Se=K;Se!==null;){R=Se;var te=R.child;if((R.subtreeFlags&2064)!==0&&te!==null)te.return=R,Se=te;else e:for(R=K;Se!==null;){if($=Se,($.flags&2048)!==0)try{switch($.tag){case 0:case 11:case 15:qp(9,$)}}catch(_e){$t($,$.return,_e)}if($===R){Se=null;break e}var pe=$.sibling;if(pe!==null){pe.return=$.return,Se=pe;break e}Se=$.return}}if(dt=A,Ma(),xi&&typeof xi.onPostCommitFiberRoot=="function")try{xi.onPostCommitFiberRoot(tp,c)}catch{}x=!0}return x}finally{wt=m,Or.transition=h}}return!1}function hT(c,h,m){h=ml(m,h),h=PN(c,h,1),c=Fa(c,h,1),h=Gn(),c!==null&&(iu(c,1,h),rr(c,h))}function $t(c,h,m){if(c.tag===3)hT(c,c,m);else for(;h!==null;){if(h.tag===3){hT(h,c,m);break}else if(h.tag===1){var x=h.stateNode;if(typeof h.type.getDerivedStateFromError=="function"||typeof x.componentDidCatch=="function"&&(za===null||!za.has(x))){c=ml(m,c),c=ON(h,c,1),h=Fa(h,c,1),c=Gn(),h!==null&&(iu(h,1,c),rr(h,c));break}}h=h.return}}function hW(c,h,m){var x=c.pingCache;x!==null&&x.delete(h),h=Gn(),c.pingedLanes|=c.suspendedLanes&m,fn===c&&(kn&m)===m&&(an===4||an===3&&(kn&130023424)===kn&&500>Vt()-nv?Ho(c,0):tv|=m),rr(c,h)}function pT(c,h){h===0&&((c.mode&1)===0?h=1:(h=rp,rp<<=1,(rp&130023424)===0&&(rp=4194304)));var m=Gn();c=Yi(c,h),c!==null&&(iu(c,h,m),rr(c,m))}function pW(c){var h=c.memoizedState,m=0;h!==null&&(m=h.retryLane),pT(c,m)}function fW(c,h){var m=0;switch(c.tag){case 13:var x=c.stateNode,A=c.memoizedState;A!==null&&(m=A.retryLane);break;case 19:x=c.stateNode;break;default:throw Error(n(314))}x!==null&&x.delete(h),pT(c,m)}var fT;fT=function(c,h,m){if(c!==null)if(c.memoizedProps!==h.pendingProps||Zn.current)tr=!0;else{if((c.lanes&m)===0&&(h.flags&128)===0)return tr=!1,tW(c,h,m);tr=(c.flags&131072)!==0}else tr=!1,Dt&&(h.flags&1048576)!==0&&G5(h,Sp,h.index);switch(h.lanes=0,h.tag){case 2:var x=h.type;zp(c,h),c=h.pendingProps;var A=sl(h,_n.current);pl(h,m),A=Ix(null,h,x,c,A,m);var T=Rx();return h.flags|=1,typeof A=="object"&&A!==null&&typeof A.render=="function"&&A.$$typeof===void 0?(h.tag=1,h.memoizedState=null,h.updateQueue=null,er(x)?(T=!0,jp(h)):T=!1,h.memoizedState=A.state!==null&&A.state!==void 0?A.state:null,Cx(h),A.updater=Fp,h.stateNode=A,A._reactInternals=h,zx(h,x,c,m),h=Ux(null,h,x,!0,T,m)):(h.tag=0,Dt&&T&&gx(h),Vn(null,h,A,m),h=h.child),h;case 16:x=h.elementType;e:{switch(zp(c,h),c=h.pendingProps,A=x._init,x=A(x._payload),h.type=x,A=h.tag=gW(x),c=Zr(x,c),A){case 0:h=Wx(null,h,x,c,m);break e;case 1:h=zN(null,h,x,c,m);break e;case 11:h=DN(null,h,x,c,m);break e;case 14:h=MN(null,h,x,Zr(x.type,c),m);break e}throw Error(n(306,x,""))}return h;case 0:return x=h.type,A=h.pendingProps,A=h.elementType===x?A:Zr(x,A),Wx(c,h,x,A,m);case 1:return x=h.type,A=h.pendingProps,A=h.elementType===x?A:Zr(x,A),zN(c,h,x,A,m);case 3:e:{if($N(h),c===null)throw Error(n(387));x=h.pendingProps,T=h.memoizedState,A=T.element,nN(c,h),Op(h,x,null,m);var R=h.memoizedState;if(x=R.element,T.isDehydrated)if(T={element:x,isDehydrated:!1,cache:R.cache,pendingSuspenseBoundaries:R.pendingSuspenseBoundaries,transitions:R.transitions},h.updateQueue.baseState=T,h.memoizedState=T,h.flags&256){A=ml(Error(n(423)),h),h=qN(c,h,x,m,A);break e}else if(x!==A){A=ml(Error(n(424)),h),h=qN(c,h,x,m,A);break e}else for(mr=Ia(h.stateNode.containerInfo.firstChild),fr=h,Dt=!0,Jr=null,m=eN(h,null,x,m),h.child=m;m;)m.flags=m.flags&-3|4096,m=m.sibling;else{if(ul(),x===A){h=Xi(c,h,m);break e}Vn(c,h,x,m)}h=h.child}return h;case 5:return aN(h),c===null&&vx(h),x=h.type,A=h.pendingProps,T=c!==null?c.memoizedProps:null,R=A.children,ux(x,A)?R=null:T!==null&&ux(x,T)&&(h.flags|=32),BN(c,h),Vn(c,h,R,m),h.child;case 6:return c===null&&vx(h),null;case 13:return WN(c,h,m);case 4:return Nx(h,h.stateNode.containerInfo),x=h.pendingProps,c===null?h.child=dl(h,null,x,m):Vn(c,h,x,m),h.child;case 11:return x=h.type,A=h.pendingProps,A=h.elementType===x?A:Zr(x,A),DN(c,h,x,A,m);case 7:return Vn(c,h,h.pendingProps,m),h.child;case 8:return Vn(c,h,h.pendingProps.children,m),h.child;case 12:return Vn(c,h,h.pendingProps.children,m),h.child;case 10:e:{if(x=h.type._context,A=h.pendingProps,T=h.memoizedProps,R=A.value,St(Tp,x._currentValue),x._currentValue=R,T!==null)if(Qr(T.value,R)){if(T.children===A.children&&!Zn.current){h=Xi(c,h,m);break e}}else for(T=h.child,T!==null&&(T.return=h);T!==null;){var $=T.dependencies;if($!==null){R=T.child;for(var H=$.firstContext;H!==null;){if(H.context===x){if(T.tag===1){H=Ki(-1,m&-m),H.tag=2;var re=T.updateQueue;if(re!==null){re=re.shared;var ue=re.pending;ue===null?H.next=H:(H.next=ue.next,ue.next=H),re.pending=H}}T.lanes|=m,H=T.alternate,H!==null&&(H.lanes|=m),Ax(T.return,m,h),$.lanes|=m;break}H=H.next}}else if(T.tag===10)R=T.type===h.type?null:T.child;else if(T.tag===18){if(R=T.return,R===null)throw Error(n(341));R.lanes|=m,$=R.alternate,$!==null&&($.lanes|=m),Ax(R,m,h),R=T.sibling}else R=T.child;if(R!==null)R.return=T;else for(R=T;R!==null;){if(R===h){R=null;break}if(T=R.sibling,T!==null){T.return=R.return,R=T;break}R=R.return}T=R}Vn(c,h,A.children,m),h=h.child}return h;case 9:return A=h.type,x=h.pendingProps.children,pl(h,m),A=Er(A),x=x(A),h.flags|=1,Vn(c,h,x,m),h.child;case 14:return x=h.type,A=Zr(x,h.pendingProps),A=Zr(x.type,A),MN(c,h,x,A,m);case 15:return LN(c,h,h.type,h.pendingProps,m);case 17:return x=h.type,A=h.pendingProps,A=h.elementType===x?A:Zr(x,A),zp(c,h),h.tag=1,er(x)?(c=!0,jp(h)):c=!1,pl(h,m),TN(h,x,A),zx(h,x,A,m),Ux(null,h,x,!0,c,m);case 19:return HN(c,h,m);case 22:return FN(c,h,m)}throw Error(n(156,h.tag))};function mT(c,h){return YC(c,h)}function mW(c,h,m,x){this.tag=c,this.key=m,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=h,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=x,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function _r(c,h,m,x){return new mW(c,h,m,x)}function uv(c){return c=c.prototype,!(!c||!c.isReactComponent)}function gW(c){if(typeof c=="function")return uv(c)?1:0;if(c!=null){if(c=c.$$typeof,c===F)return 11;if(c===q)return 14}return 2}function Ua(c,h){var m=c.alternate;return m===null?(m=_r(c.tag,h,c.key,c.mode),m.elementType=c.elementType,m.type=c.type,m.stateNode=c.stateNode,m.alternate=c,c.alternate=m):(m.pendingProps=h,m.type=c.type,m.flags=0,m.subtreeFlags=0,m.deletions=null),m.flags=c.flags&14680064,m.childLanes=c.childLanes,m.lanes=c.lanes,m.child=c.child,m.memoizedProps=c.memoizedProps,m.memoizedState=c.memoizedState,m.updateQueue=c.updateQueue,h=c.dependencies,m.dependencies=h===null?null:{lanes:h.lanes,firstContext:h.firstContext},m.sibling=c.sibling,m.index=c.index,m.ref=c.ref,m}function Qp(c,h,m,x,A,T){var R=2;if(x=c,typeof c=="function")uv(c)&&(R=1);else if(typeof c=="string")R=5;else e:switch(c){case P:return Go(m.children,A,T,h);case _:R=8,A|=8;break;case M:return c=_r(12,m,h,A|2),c.elementType=M,c.lanes=T,c;case V:return c=_r(13,m,h,A),c.elementType=V,c.lanes=T,c;case U:return c=_r(19,m,h,A),c.elementType=U,c.lanes=T,c;case Z:return Jp(m,A,T,h);default:if(typeof c=="object"&&c!==null)switch(c.$$typeof){case D:R=10;break e;case B:R=9;break e;case F:R=11;break e;case q:R=14;break e;case Y:R=16,x=null;break e}throw Error(n(130,c==null?c:typeof c,""))}return h=_r(R,m,h,A),h.elementType=c,h.type=x,h.lanes=T,h}function Go(c,h,m,x){return c=_r(7,c,x,h),c.lanes=m,c}function Jp(c,h,m,x){return c=_r(22,c,x,h),c.elementType=Z,c.lanes=m,c.stateNode={isHidden:!1},c}function dv(c,h,m){return c=_r(6,c,null,h),c.lanes=m,c}function hv(c,h,m){return h=_r(4,c.children!==null?c.children:[],c.key,h),h.lanes=m,h.stateNode={containerInfo:c.containerInfo,pendingChildren:null,implementation:c.implementation},h}function yW(c,h,m,x,A){this.tag=h,this.containerInfo=c,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=By(0),this.expirationTimes=By(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=By(0),this.identifierPrefix=x,this.onRecoverableError=A,this.mutableSourceEagerHydrationData=null}function pv(c,h,m,x,A,T,R,$,H){return c=new yW(c,h,m,$,H),h===1?(h=1,T===!0&&(h|=8)):h=0,T=_r(3,null,null,h),c.current=T,T.stateNode=c,T.memoizedState={element:x,isDehydrated:m,cache:null,transitions:null,pendingSuspenseBoundaries:null},Cx(T),c}function xW(c,h,m){var x=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:C,key:x==null?null:""+x,children:c,containerInfo:h,implementation:m}}function gT(c){if(!c)return Da;c=c._reactInternals;e:{if(Do(c)!==c||c.tag!==1)throw Error(n(170));var h=c;do{switch(h.tag){case 3:h=h.stateNode.context;break e;case 1:if(er(h.type)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break e}}h=h.return}while(h!==null);throw Error(n(171))}if(c.tag===1){var m=c.type;if(er(m))return U5(c,m,h)}return h}function yT(c,h,m,x,A,T,R,$,H){return c=pv(m,x,!0,c,A,T,R,$,H),c.context=gT(null),m=c.current,x=Gn(),A=qa(m),T=Ki(x,A),T.callback=h??null,Fa(m,T,A),c.current.lanes=A,iu(c,A,x),rr(c,x),c}function Zp(c,h,m,x){var A=h.current,T=Gn(),R=qa(A);return m=gT(m),h.context===null?h.context=m:h.pendingContext=m,h=Ki(T,R),h.payload={element:c},x=x===void 0?null:x,x!==null&&(h.callback=x),c=Fa(A,h,R),c!==null&&(ni(c,A,R,T),Pp(c,A,R)),R}function ef(c){if(c=c.current,!c.child)return null;switch(c.child.tag){case 5:return c.child.stateNode;default:return c.child.stateNode}}function xT(c,h){if(c=c.memoizedState,c!==null&&c.dehydrated!==null){var m=c.retryLane;c.retryLane=m!==0&&m<h?m:h}}function fv(c,h){xT(c,h),(c=c.alternate)&&xT(c,h)}function vW(){return null}var vT=typeof reportError=="function"?reportError:function(c){console.error(c)};function mv(c){this._internalRoot=c}tf.prototype.render=mv.prototype.render=function(c){var h=this._internalRoot;if(h===null)throw Error(n(409));Zp(c,h,null,null)},tf.prototype.unmount=mv.prototype.unmount=function(){var c=this._internalRoot;if(c!==null){this._internalRoot=null;var h=c.containerInfo;Uo(function(){Zp(null,c,null,null)}),h[Ui]=null}};function tf(c){this._internalRoot=c}tf.prototype.unstable_scheduleHydration=function(c){if(c){var h=n5();c={blockedOn:null,target:c,priority:h};for(var m=0;m<Pa.length&&h!==0&&h<Pa[m].priority;m++);Pa.splice(m,0,c),m===0&&a5(c)}};function gv(c){return!(!c||c.nodeType!==1&&c.nodeType!==9&&c.nodeType!==11)}function nf(c){return!(!c||c.nodeType!==1&&c.nodeType!==9&&c.nodeType!==11&&(c.nodeType!==8||c.nodeValue!==" react-mount-point-unstable "))}function bT(){}function bW(c,h,m,x,A){if(A){if(typeof x=="function"){var T=x;x=function(){var re=ef(R);T.call(re)}}var R=yT(h,x,c,0,null,!1,!1,"",bT);return c._reactRootContainer=R,c[Ui]=R.current,xu(c.nodeType===8?c.parentNode:c),Uo(),R}for(;A=c.lastChild;)c.removeChild(A);if(typeof x=="function"){var $=x;x=function(){var re=ef(H);$.call(re)}}var H=pv(c,0,!1,null,null,!1,!1,"",bT);return c._reactRootContainer=H,c[Ui]=H.current,xu(c.nodeType===8?c.parentNode:c),Uo(function(){Zp(h,H,m,x)}),H}function rf(c,h,m,x,A){var T=m._reactRootContainer;if(T){var R=T;if(typeof A=="function"){var $=A;A=function(){var H=ef(R);$.call(H)}}Zp(h,R,c,A)}else R=bW(m,h,c,A,x);return ef(R)}e5=function(c){switch(c.tag){case 3:var h=c.stateNode;if(h.current.memoizedState.isDehydrated){var m=ru(h.pendingLanes);m!==0&&(zy(h,m|1),rr(h,Vt()),(dt&6)===0&&(xl=Vt()+500,Ma()))}break;case 13:Uo(function(){var x=Yi(c,1);if(x!==null){var A=Gn();ni(x,c,1,A)}}),fv(c,1)}},$y=function(c){if(c.tag===13){var h=Yi(c,134217728);if(h!==null){var m=Gn();ni(h,c,134217728,m)}fv(c,134217728)}},t5=function(c){if(c.tag===13){var h=qa(c),m=Yi(c,h);if(m!==null){var x=Gn();ni(m,c,h,x)}fv(c,h)}},n5=function(){return wt},r5=function(c,h){var m=wt;try{return wt=c,h()}finally{wt=m}},Iy=function(c,h,m){switch(h){case"input":if(at(c,m),h=m.name,m.type==="radio"&&h!=null){for(m=c;m.parentNode;)m=m.parentNode;for(m=m.querySelectorAll("input[name="+JSON.stringify(""+h)+'][type="radio"]'),h=0;h<m.length;h++){var x=m[h];if(x!==c&&x.form===c.form){var A=bp(x);if(!A)throw Error(n(90));se(x),at(x,A)}}}break;case"textarea":_o(c,m);break;case"select":h=m.value,h!=null&&hn(c,!!m.multiple,h,!1)}},$C=sv,qC=Uo;var wW={usingClientEntryPoint:!1,Events:[wu,al,bp,BC,zC,sv]},Du={findFiberByHostInstance:Mo,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},jW={bundleType:Du.bundleType,version:Du.version,rendererPackageName:Du.rendererPackageName,rendererConfig:Du.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:E.ReactCurrentDispatcher,findHostInstanceByFiber:function(c){return c=VC(c),c===null?null:c.stateNode},findFiberByHostInstance:Du.findFiberByHostInstance||vW,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 af=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!af.isDisabled&&af.supportsFiber)try{tp=af.inject(jW),xi=af}catch{}}return ir.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=wW,ir.createPortal=function(c,h){var m=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!gv(h))throw Error(n(200));return xW(c,h,null,m)},ir.createRoot=function(c,h){if(!gv(c))throw Error(n(299));var m=!1,x="",A=vT;return h!=null&&(h.unstable_strictMode===!0&&(m=!0),h.identifierPrefix!==void 0&&(x=h.identifierPrefix),h.onRecoverableError!==void 0&&(A=h.onRecoverableError)),h=pv(c,1,!1,null,null,m,!1,x,A),c[Ui]=h.current,xu(c.nodeType===8?c.parentNode:c),new mv(h)},ir.findDOMNode=function(c){if(c==null)return null;if(c.nodeType===1)return c;var h=c._reactInternals;if(h===void 0)throw typeof c.render=="function"?Error(n(188)):(c=Object.keys(c).join(","),Error(n(268,c)));return c=VC(h),c=c===null?null:c.stateNode,c},ir.flushSync=function(c){return Uo(c)},ir.hydrate=function(c,h,m){if(!nf(h))throw Error(n(200));return rf(null,c,h,!0,m)},ir.hydrateRoot=function(c,h,m){if(!gv(c))throw Error(n(405));var x=m!=null&&m.hydratedSources||null,A=!1,T="",R=vT;if(m!=null&&(m.unstable_strictMode===!0&&(A=!0),m.identifierPrefix!==void 0&&(T=m.identifierPrefix),m.onRecoverableError!==void 0&&(R=m.onRecoverableError)),h=yT(h,null,c,1,m??null,A,!1,T,R),c[Ui]=h.current,xu(c),x)for(c=0;c<x.length;c++)m=x[c],A=m._getVersion,A=A(m._source),h.mutableSourceEagerHydrationData==null?h.mutableSourceEagerHydrationData=[m,A]:h.mutableSourceEagerHydrationData.push(m,A);return new tf(h)},ir.render=function(c,h,m){if(!nf(h))throw Error(n(200));return rf(null,c,h,!1,m)},ir.unmountComponentAtNode=function(c){if(!nf(c))throw Error(n(40));return c._reactRootContainer?(Uo(function(){rf(null,null,c,!1,function(){c._reactRootContainer=null,c[Ui]=null})}),!0):!1},ir.unstable_batchedUpdates=sv,ir.unstable_renderSubtreeIntoContainer=function(c,h,m,x){if(!nf(m))throw Error(n(200));if(c==null||c._reactInternals===void 0)throw Error(n(38));return rf(c,h,m,!1,x)},ir.version="18.3.1-next-f1338f8080-20240426",ir}var ET;function fL(){if(ET)return bv.exports;ET=1;function e(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),bv.exports=_W(),bv.exports}var PT;function IW(){if(PT)return lf;PT=1;var e=fL();return lf.createRoot=e.createRoot,lf.hydrateRoot=e.hydrateRoot,lf}
40var RW=IW();const DW=bt(RW),MW=20,LW=1e6,ia={ADD_TOAST:"ADD_TOAST",UPDATE_TOAST:"UPDATE_TOAST",DISMISS_TOAST:"DISMISS_TOAST",REMOVE_TOAST:"REMOVE_TOAST"};let kv=0;function FW(){return kv=(kv+1)%Number.MAX_VALUE,kv.toString()}const Av=new Map,OT=e=>{if(Av.has(e))return;const t=setTimeout(()=>{Av.delete(e),dd({type:ia.REMOVE_TOAST,toastId:e})},LW);Av.set(e,t)},BW=(e,t)=>{switch(t.type){case ia.ADD_TOAST:return{...e,toasts:[t.toast,...e.toasts].slice(0,MW)};case ia.UPDATE_TOAST:return{...e,toasts:e.toasts.map(n=>n.id===t.toast.id?{...n,...t.toast}:n)};case ia.DISMISS_TOAST:{const{toastId:n}=t;return n?OT(n):e.toasts.forEach(r=>{OT(r.id)}),{...e,toasts:e.toasts.map(r=>r.id===n||n===void 0?{...r,open:!1}:r)}}case ia.REMOVE_TOAST:return t.toastId===void 0?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(n=>n.id!==t.toastId)}}},qf=[];let Wf={toasts:[]};function dd(e){Wf=BW(Wf,e),qf.forEach(t=>{t(Wf)})}function zW({...e}){const t=FW(),n=i=>dd({type:ia.UPDATE_TOAST,toast:{...i,id:t}}),r=()=>dd({type:ia.DISMISS_TOAST,toastId:t});return dd({type:ia.ADD_TOAST,toast:{...e,id:t,open:!0,onOpenChange:i=>{i||r()}}}),{id:t,dismiss:r,update:n}}function $W(){const[e,t]=O.useState(Wf);return O.useEffect(()=>(qf.push(t),()=>{const n=qf.indexOf(t);n>-1&&qf.splice(n,1)}),[e]),{...e,toast:zW,dismiss:n=>dd({type:ia.DISMISS_TOAST,toastId:n})}}function mL(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=mL(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function nt(){for(var e,t,n=0,r="",i=arguments.length;n<i;n++)(e=arguments[n])&&(t=mL(e))&&(r&&(r+=" "),r+=t);return r}const _T=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,IT=nt,qW=(e,t)=>n=>{var r;if((t==null?void 0:t.variants)==null)return IT(e,n==null?void 0:n.class,n==null?void 0:n.className);const{variants:i,defaultVariants:o}=t,s=Object.keys(i).map(d=>{const p=n==null?void 0:n[d],f=o==null?void 0:o[d];if(p===null)return null;const g=_T(p)||_T(f);return i[d][g]}),l=n&&Object.entries(n).reduce((d,p)=>{let[f,g]=p;return g===void 0||(d[f]=g),d},{}),u=t==null||(r=t.compoundVariants)===null||r===void 0?void 0:r.reduce((d,p)=>{let{class:f,className:g,...y}=p;return Object.entries(y).every(b=>{let[w,v]=b;return Array.isArray(v)?v.includes({...o,...l}[w]):{...o,...l}[w]===v})?[...d,f,g]:d},[]);return IT(e,s,u,n==null?void 0:n.class,n==null?void 0:n.className)};/** 41 * @license lucide-react v0.475.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 WW=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),gL=(...e)=>e.filter((t,n,r)=>!!t&&t.trim()!==""&&r.indexOf(t)===n).join(" ").trim();/** 46 * @license lucide-react v0.475.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 UW={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.475.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 HW=O.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:n=2,absoluteStrokeWidth:r,className:i="",children:o,iconNode:s,...l},u)=>O.createElement("svg",{ref:u,...UW,width:t,height:t,stroke:e,strokeWidth:r?Number(n)*24/Number(t):n,className:gL("lucide",i),...l},[...s.map(([d,p])=>O.createElement(d,p)),...Array.isArray(o)?o:[o]]));/** 56 * @license lucide-react v0.475.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 we=(e,t)=>{const n=O.forwardRef(({className:r,...i},o)=>O.createElement(HW,{ref:o,iconNode:t,className:gL(`lucide-${WW(e)}`,r),...i}));return n.displayName=`${e}`,n};/** 61 * @license lucide-react v0.475.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 VW=[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l
65-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]],jg=we("Activity",VW);/** 66 * @license lucide-react v0.475.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 GW=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]],Ve=we("ArrowRight",GW);/** 71 * @license lucide-react v0.475.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 YW=[["rect",{width:"16",height:"10",x:"2",y:"7",rx:"2",ry:"2",key:"1w10f2"}],["line",{x1:"22",x2:"22",y1:"11",y2:"13",key:"4dh1rd"}]],KW=we("Battery",YW);/** 76 * @license lucide-react v0.475.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 XW=[["path",{d:"M11.767 19.089c4.924.868 6.14-6.025 1.216-6.894m-1.216 6.894L5.86 18.047m5.908 1.042-.347 1.97m1.563-8.864c4.924.869 6.14-6.025 1.215-6.893m-1.215 6.893-3.94-.694m5.155-6.2L8.29 4.26m5.908 1.042.348-1.97M7.48 20.364l3.126-17.727",key:"yr8idg"}]],yL=we("Bitcoin",XW);/** 81 * @license lucide-react v0.475.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 QW=[["path",{d:"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z",key:"yt0hxn"}],["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}]],JW=we("Bolt",QW);/** 86 * @license lucide-react v0.475.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 ZW=[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]],xL=we("BookOpen",ZW);/** 91 * @license lucide-react v0.475.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 eU=[["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"}]],tU=we("Bot",eU);/** 96 * @license lucide-react v0.475.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 nU=[["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"}]],rU=we("Brain",nU);/** 101 * @license lucide-react v0.475.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 iU=[["path",{d:"M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18Z",key:"1b4qmf"}],["path",{d:"M6 12H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2",key:"i71pzd"}],["path",{d:"M18 9h2a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-2",key:"10jefs"}],["path",{d:"M10 6h4",key:"1itunk"}],["path",{d:"M10 10h4",key:"tcdvrf"}],["path",{d:"M10 14h4",key:"kelpxr"}],["path",{d:"M10 18h4",key:"1ulq68"}]],aU=we("Building2",iU);/** 106 * @license lucide-react v0.475.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 oU=[["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"}],["path",{d:"M8 14h.01",key:"6423bh"}],["path",{d:"M12 14h.01",key:"1etili"}],["path",{d:"M16 14h.01",key:"1gbofw"}],["path",{d:"M8 18h.01",key:"lrp35t"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M16 18h.01",key:"kzsmim"}]],sU=we("CalendarDays",oU);/** 111 * @license lucide-react v0.475.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 lU=[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M21 13V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h8",key:"3spt84"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"M16 19h6",key:"xwg31i"}],["path",{d:"M19 16v6",key:"tddt3s"}]],RT=we("CalendarPlus",lU);/** 116 * @license lucide-react v0.475.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 cU=[["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"}]],uU=we("Calendar",cU);/** 121 * @license lucide-react v0.475.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 dU=[["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"}]],hU=we("ChartColumn",dU);/** 126 * @license lucide-react v0.475.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 pU=[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"m19 9-5 5-4-4-3 3",key:"2osh9i"}]],vL=we("ChartLine",pU);/** 131 * @license lucide-react v0.475.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 fU=[["line",{x1:"18",x2:"18",y1:"20",y2:"10",key:"1xfpm4"}],["line",{x1:"12",x2:"12",y1:"20",y2:"4",key:"be30l9"}],["line",{x1:"6",x2:"6",y1:"20",y2:"14",key:"1r4le6"}]],Uk=we("ChartNoAxesColumn",fU);/** 136 * @license lucide-react v0.475.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 mU=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],Nh=we("Check",mU);/** 141 * @license lucide-react v0.475.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 gU=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],kg=we("ChevronDown",gU);/** 146 * @license lucide-react v0.475.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 yU=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],la=we("ChevronRight",yU);/** 151 * @license lucide-react v0.475.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 xU=[["path",{d:"M21.801 10A10 10 0 1 1 17 3.335",key:"yps3ct"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]],di=we("CircleCheckBig",xU);/** 156 * @license lucide-react v0.475.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 vU=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],bU=we("CircleCheck",vU);/** 161 * @license lucide-react v0.475.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 wU=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]],bL=we("CircleHelp",wU);/** 166 * @license lucide-react v0.475.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 jU=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polygon",{points:"10 8 16 12 10 16 10 8",key:"1cimsy"}]],kU=we("CirclePlay",jU);/** 171 * @license lucide-react v0.475.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 AU=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]],Hk=we("Clock",AU);/** 176 * @license lucide-react v0.475.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 SU=[["path",{d:"M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z",key:"p7xjir"}]],wL=we("Cloud",SU);/** 181 * @license lucide-react v0.475.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 CU=[["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"}]],NU=we("CodeXml",CU);/** 186 * @license lucide-react v0.475.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 TU=[["path",{d:"m16.24 7.76-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z",ke
190y:"9ktpf1"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],EU=we("Compass",TU);/** 191 * @license lucide-react v0.475.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 PU=[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]],Ag=we("Copy",PU);/** 196 * @license lucide-react v0.475.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 OU=[["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"}],["path",{d:"M9 2v2",key:"165o2o"}],["path",{d:"M9 20v2",key:"i2bqo8"}]],Ts=we("Cpu",OU);/** 201 * @license lucide-react v0.475.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 _U=[["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"}]],jL=we("Database",_U);/** 206 * @license lucide-react v0.475.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 IU=[["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"}]],Sg=we("DollarSign",IU);/** 211 * @license lucide-react v0.475.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 RU=[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],kL=we("Eye",RU);/** 216 * @license lucide-react v0.475.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 DU=[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]],Uf=we("FileText",DU);/** 221 * @license lucide-react v0.475.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 MU=[["path",{d:"M8.5 14.5A2.5 2.5 0 0 0 11 12c0-1.38-.5-2-1-3-1.072-2.143-.224-4.054 2-6 .5 2.5 2 4.9 4 6.5 2 1.6 3 3.5 3 5.5a7 7 0 1 1-14 0c0-1.153.433-2.294 1-3a2.5 2.5 0 0 0 2.5 2.5z",key:"96xj49"}]],LU=we("Flame",MU);/** 226 * @license lucide-react v0.475.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 FU=[["path",{d:"m12 14 4-4",key:"9kzdfg"}],["path",{d:"M3.34 19a10 10 0 1 1 17.32 0",key:"19p75a"}]],AL=we("Gauge",FU);/** 231 * @license lucide-react v0.475.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 BU=[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]],zU=we("GitBranch",BU);/** 236 * @license lucide-react v0.475.0 - ISC 237 * 238 * This source code is licensed under the ISC license. 239 * See the LICENSE file in the root directory of this source tree. 240 */const $U=[["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M13 6h3a2 2 0 0 1 2 2v7",key:"1yeb86"}],["path",{d:"M11 18H8a2 2 0 0 1-2-2V9",key:"19pyzm"}]],qU=we("GitCompare",$U);/** 241 * @license lucide-react v0.475.0 - ISC 242 * 243 * This source code is licensed under the ISC license. 244 * See the LICENSE file in the root directory of this source tree. 245 */const WU=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]],SL=we("Globe",WU);/** 246 * @license lucide-react v0.475.0 - ISC 247 * 248 * This source code is licensed under the ISC license. 249 * See the LICENSE file in the root directory of this source tree. 250 */const UU=[["path",{d:"m11 17 2 2a1 1 0 1 0 3-3",key:"efffak"}],["path",{d:"m14 14 2.5 2.5a1 1 0 1 0 3-3l-3.88-3.88a3 3 0 0 0-4.24 0l-.88.88a1 1 0 1 1-3-3l2.81-2.81a5.79 5.79 0 0 1 7.06-.87l.47.28a2 2 0 0 0 1.42.25L21 4",key:"9pr0kb"}],["path",{d:"m21 3 1 11h-2",key:"1tisrp"}],["path",{d:"M3 3 2 14l6.5 6.5a1 1 0 1 0 3-3",key:"1uvwmv"}],["path",{d:"M3 4h8",key:"1ep09j"}]],HU=we("Handshake",UU);/** 251 * @license lucide-react v0.475.0 - ISC 252 * 253 * This source code is licensed under the ISC license. 254 * See the LICENSE file in the root directory of this source tree. 255 */const VU=[["path",{d:"M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z",key:"c3ymky"}]],GU=we("Heart",VU);/** 256 * @license lucide-react v0.475.0 - ISC 257 * 258 * This source code is licensed under the ISC license. 259 * See the LICENSE file in the root directory of this source tree. 260 */const YU=[["path",{d:"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z",key:"c2jq9f"}],["rect",{width:"4",height:"12",x:"2",y:"9",key:"mk3on5"}],["circle",{cx:"4",cy:"4",r:"2",key:"bt5ra8"}]],KU=we("Linkedin",YU);/** 261 * @license lucide-react v0.475.0 - ISC 262 * 263 * This source code is licensed under the ISC license. 264 * See the LICENSE file in the root directory of this source tree. 265 */const XU=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],Cg=we("LoaderCircle",XU);/** 266 * @license lucide-react v0.475.0 - ISC 267 * 268 * This source code is licensed under the ISC license. 269 * See the LICENSE file in the root directory of this source tree. 270 */const QU=[["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"}]],Ng=we("Lock",QU);/** 271 * @license lucide-react v0.475.0 - ISC 272 * 273 * This source code is licensed under the ISC license. 274 * See the LICENSE file in the root directory of this source tree. 275 */const JU=[["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"}]],CL=we("Mail",JU);/** 276 * @license lucide-react v0.475.0 - ISC 277 * 278 * This source code is licensed under the ISC license. 279 * See the LICENSE file in the root directory of this source tree. 280 */const ZU=[["path",{d:"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0",key:"1r0f0z"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}]],eH=we("MapPin",ZU);/** 281 * @license lucide-react v0.475.0 - ISC 282 * 283 * This source code is licensed under the ISC license. 284 * See the LICENSE file in the root directory of this source tree. 285 */const tH=[["path",{d:"M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z",key:"169xi5"}],["path",{d:"M15 5.764v15",key:"1pn4in"}],["path",{d:"M9 3.236v15",key:"1uimfh"}]],nH=we("Map",tH);/** 286 * @license lucide-react v0.475.0 - ISC 287 * 288 * This source code is licensed under the ISC license. 289 * See the LICENSE file in the root directory of this source tree. 290 */const rH=[["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"}]],Vk=we("Menu",rH);/** 291 * @license lucide-react v0.475.0 - ISC 292 * 293 * This source code is licensed under the ISC license. 294 * See the LICENSE file in the root directory of this source tree. 295 */const iH=[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]],aH=we("Monitor",iH);/** 296 * @license lucide-react v0.475.0 - ISC 297 * 298 * This source code is licensed under the ISC license. 299 * See the LICENSE file in the root directory of this source tree. 300 */const oH=[["rect",{x:"16",y:"16",width:"6",height:"6",rx:"1",key:"4q2zg0"}],["rect",{x:"2",y:"16",width:"6",height:"6",rx:"1",key:"8cvhb9"}],["rect",{x:"9",y:"2",width:"6",height:"6",rx:"1",key:"1egb70"}],["path",{d:"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3",key:"1jsf9p"}],["path",{d:"M12 12V8",key:"2874zd"}]],NL=we("Network",oH);/** 301 * @license lucide-react v0.475.0 - ISC 302 * 303 * This source code is licensed under the ISC license. 304 * See the LICENSE file in the root directory of this source tree. 305 */const sH=[["path",{d:"M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z",key:"goz73y"}],["path",{d:"m2 22 3-3",key:"19mgm9"}],["path",{d:"M7.5 13.5 10 11",key:"7xgeeb"}],["path",{d:"M10.5 16.5 13 14",key:"10btkg"}],["path",{d:"m18 3-4 4h6l-4 4",key:"16psg9"}]],lH=we("PlugZap",sH);/** 306 * @license lucide-react v0.475.0 - ISC 307 * 308 * This source code is licensed under the ISC license. 309 * See the LICENSE file in the root directory of this source tree. 310 */const cH=[["path",{d:"M4.9 19.1C1 15.2 1 8.8 4.9 4.9",key:"1vaf9d"}],["path",{d:"M7.8 16.2c-2.3-2.3-2.3-6.1 0-8.5",key:"u1ii0m"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}],["path",{d:"M16.2 7.8c2.3 2.3 2.3 6.1 0 8.5",key:"1j5fej"}],["path",{d:"M19.1 4.9C23 8.8 23 15.1 19.1 19",key:"10b0cb"}]],TL=we("Radio",cH);/** 311 * @license lucide-react v0.475.0 - ISC 312 * 313 * This source code is licensed under the ISC license. 314 * See the LICENSE file in the root directory of this source tree. 315 */const uH=[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]],EL=we("RefreshCw",uH);/** 316 * @license lucide-react v0.475.0 - ISC 317 * 318 * This source code is licensed under the ISC license. 319 * See the LICENSE file in the root directory of this source tree. 320 */const dH=[["path",{d:"m16 16 3-8 3 8c-.87.65-1.92 1-3 1s-2.13-.35-3-1Z",key:"7g6ntu"}],["path",{d:"m2 16 3-8 3 8c-.87.65-1.92 1-3 1s-2.13-.35-3-1Z",key:"ijws7r"}],["path",{d:"M7 21h10",key:"1b0cd5"}],["path",{d:"M12 3v18",key:"108xh3"}
320],["path",{d:"M3 7h2c2 0 5-1 7-2 2 1 5 2 7 2h2",key:"3gwbw2"}]],hH=we("Scale",dH);/** 321 * @license lucide-react v0.475.0 - ISC 322 * 323 * This source code is licensed under the ISC license. 324 * See the LICENSE file in the root directory of this source tree. 325 */const pH=[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]],PL=we("Search",pH);/** 326 * @license lucide-react v0.475.0 - ISC 327 * 328 * This source code is licensed under the ISC license. 329 * See the LICENSE file in the root directory of this source tree. 330 */const fH=[["path",{d:"M20 7h-9",key:"3s1dr2"}],["path",{d:"M14 17H5",key:"gfn3mx"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]],mH=we("Settings2",fH);/** 331 * @license lucide-react v0.475.0 - ISC 332 * 333 * This source code is licensed under the ISC license. 334 * See the LICENSE file in the root directory of this source tree. 335 */const gH=[["path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z",key:"1qme2f"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],Tg=we("Settings",gH);/** 336 * @license lucide-react v0.475.0 - ISC 337 * 338 * This source code is licensed under the ISC license. 339 * See the LICENSE file in the root directory of this source tree. 340 */const yH=[["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}],["circle",{cx:"6",cy:"12",r:"3",key:"w7nqdw"}],["circle",{cx:"18",cy:"19",r:"3",key:"1xt0gg"}],["line",{x1:"8.59",x2:"15.42",y1:"13.51",y2:"17.49",key:"47mynk"}],["line",{x1:"15.41",x2:"8.59",y1:"6.51",y2:"10.49",key:"1n3mei"}]],xH=we("Share2",yH);/** 341 * @license lucide-react v0.475.0 - ISC 342 * 343 * This source code is licensed under the ISC license. 344 * See the LICENSE file in the root directory of this source tree. 345 */const vH=[["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"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],Es=we("ShieldCheck",vH);/** 346 * @license lucide-react v0.475.0 - ISC 347 * 348 * This source code is licensed under the ISC license. 349 * See the LICENSE file in the root directory of this source tree. 350 */const bH=[["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"}]],zs=we("Shield",bH);/** 351 * @license lucide-react v0.475.0 - ISC 352 * 353 * This source code is licensed under the ISC license. 354 * See the LICENSE file in the root directory of this source tree. 355 */const wH=[["path",{d:"M2 20h.01",key:"4haj6o"}],["path",{d:"M7 20v-4",key:"j294jx"}],["path",{d:"M12 20v-8",key:"i3yub9"}],["path",{d:"M17 20V8",key:"1tkaf5"}],["path",{d:"M22 4v16",key:"sih9yq"}]],jH=we("Signal",wH);/** 356 * @license lucide-react v0.475.0 - ISC 357 * 358 * This source code is licensed under the ISC license. 359 * See the LICENSE file in the root directory of this source tree. 360 */const kH=[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]],AH=we("Sun",kH);/** 361 * @license lucide-react v0.475.0 - ISC 362 * 363 * This source code is licensed under the ISC license. 364 * See the LICENSE file in the root directory of this source tree. 365 */const SH=[["polyline",{points:"4 17 10 11 4 5",key:"akl6gq"}],["line",{x1:"12",x2:"20",y1:"19",y2:"19",key:"q2wloq"}]],DT=we("Terminal",SH);/** 366 * @license lucide-react v0.475.0 - ISC 367 * 368 * This source code is licensed under the ISC license. 369 * See the LICENSE file in the root directory of this source tree. 370 */const CH=[["polyline",{points:"22 17 13.5 8.5 8.5 13.5 2 7",key:"1r2t7k"}],["polyline",{points:"16 17 22 17 22 11",key:"11uiuu"}]],Gk=we("TrendingDown",CH);/** 371 * @license lucide-react v0.475.0 - ISC 372 * 373 * This source code is licensed under the ISC license. 374 * See the LICENSE file in the root directory of this source tree. 375 */const NH=[["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"}]],Eg=we("TrendingUp",NH);/** 376 * @license lucide-react v0.475.0 - ISC 377 * 378 * This source code is licensed under the ISC license. 379 * See the LICENSE file in the root directory of this source tree. 380 */const TH=[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],EH=we("TriangleAlert",TH);/** 381 * @license lucide-react v0.475.0 - ISC 382 * 383 * This source code is licensed under the ISC license. 384 * See the LICENSE file in the root directory of this source tree. 385 */const PH=[["path",{d:"M22 4s-.7 2.1-2 3.4c1.6 10-9.4 17.3-18 11.6 2.2.1 4.4-.6 6-2C3 15.5.5 9.6 3 5c2.2 2.6 5.6 4.1 9 4-.9-4.2 4-6.6 7-3.8 1.1 0 3-1.2 3-1.2z",key:"pff0z6"}]],OH=we("Twitter",PH);/** 386 * @license lucide-react v0.475.0 - ISC 387 * 388 * This source code is licensed under the ISC license. 389 * See the LICENSE file in the root directory of this source tree. 390 */const _H=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["path",{d:"M16 3.13a4 4 0 0 1 0 7.75",key:"1da9ce"}]],OL=we("Users",_H);/** 391 * @license lucide-react v0.475.0 - ISC 392 * 393 * This source code is licensed under the ISC license. 394 * See the LICENSE file in the root directory of this source tree. 395 */const IH=[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z",key:"cbrjhi"}]],RH=we("Wrench",IH);/** 396 * @license lucide-react v0.475.0 - ISC 397 * 398 * This source code is licensed under the ISC license. 399 * See the LICENSE file in the root directory of this source tree. 400 */const DH=[["path",{d:"M18 6 6 18",key:"1bl5f8"}
vendor: 6,080 bytes, lines 400-405
400],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],Pg=we("X",DH);/** 401 * @license lucide-react v0.475.0 - ISC 402 * 403 * This source code is licensed under the ISC license. 404 * See the LICENSE file in the root directory of this source tree. 405 */const MH=[["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"}]],xt=we("Zap",MH),LH=(e,t)=>{const n=new Array(e.length+t.length);for(let r=0;r<e.length;r++)n[r]=e[r];for(let r=0;r<t.length;r++)n[e.length+r]=t[r];return n},FH=(e,t)=>({classGroupId:e,validator:t}),_L=(e=new Map,t=null,n)=>({nextPart:e,validators:t,classGroupId:n}),nm="-",MT=[],BH="arbitrary..",zH=e=>{const t=qH(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:s=>{if(s.startsWith("[")&&s.endsWith("]"))return $H(s);const l=s.split(nm),u=l[0]===""&&l.length>1?1:0;return IL(l,u,t)},getConflictingClassGroupIds:(s,l)=>{if(l){const u=r[s],d=n[s];return u?d?LH(d,u):u:d||MT}return n[s]||MT}}},IL=(e,t,n)=>{if(e.length-t===0)return n.classGroupId;const i=e[t],o=n.nextPart.get(i);if(o){const d=IL(e,t+1,o);if(d)return d}const s=n.validators;if(s===null)return;const l=t===0?e.join(nm):e.slice(t).join(nm),u=s.length;for(let d=0;d<u;d++){const p=s[d];if(p.validator(l))return p.classGroupId}},$H=e=>e.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const t=e.slice(1,-1),n=t.indexOf(":"),r=t.slice(0,n);return r?BH+r:void 0})(),qH=e=>{const{theme:t,classGroups:n}=e;return WH(n,t)},WH=(e,t)=>{const n=_L();for(const r in e){const i=e[r];Yk(i,n,r,t)}return n},Yk=(e,t,n,r)=>{const i=e.length;for(let o=0;o<i;o++){const s=e[o];UH(s,t,n,r)}},UH=(e,t,n,r)=>{if(typeof e=="string"){HH(e,t,n);return}if(typeof e=="function"){VH(e,t,n,r);return}GH(e,t,n,r)},HH=(e,t,n)=>{const r=e===""?t:RL(t,e);r.classGroupId=n},VH=(e,t,n,r)=>{if(YH(e)){Yk(e(r),t,n,r);return}t.validators===null&&(t.validators=[]),t.validators.push(FH(n,e))},GH=(e,t,n,r)=>{const i=Object.entries(e),o=i.length;for(let s=0;s<o;s++){const[l,u]=i[s];Yk(u,RL(t,l),n,r)}},RL=(e,t)=>{let n=e;const r=t.split(nm),i=r.length;for(let o=0;o<i;o++){const s=r[o];let l=n.nextPart.get(s);l||(l=_L(),n.nextPart.set(s,l)),n=l}return n},YH=e=>"isThemeGetter"in e&&e.isThemeGetter===!0,KH=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,n=Object.create(null),r=Object.create(null);const i=(o,s)=>{n[o]=s,t++,t>e&&(t=0,r=n,n=Object.create(null))};return{get(o){let s=n[o];if(s!==void 0)return s;if((s=r[o])!==void 0)return i(o,s),s},set(o,s){o in n?n[o]=s:i(o,s)}}},v2="!",LT=":",XH=[],FT=(e,t,n,r,i)=>({modifiers:e,hasImportantModifier:t,baseClassName:n,maybePostfixModifierPosition:r,isExternal:i}),QH=e=>{const{prefix:t,experimentalParseClassName:n}=e;let r=i=>{const o=[];let s=0,l=0,u=0,d;const p=i.length;for(let w=0;w<p;w++){const v=i[w];if(s===0&&l===0){if(v===LT){o.push(i.slice(u,w)),u=w+1;continue}if(v==="/"){d=w;continue}}v==="["?s++:v==="]"?s--:v==="("?l++:v===")"&&l--}const f=o.length===0?i:i.slice(u);let g=f,y=!1;f.endsWith(v2)?(g=f.slice(0,-1),y=!0):f.startsWith(v2)&&(g=f.slice(1),y=!0);const b=d&&d>u?d-u:void 0;return FT(o,y,g,b)};if(t){const i=t+LT,o=r;r=s=>s.startsWith(i)?o(s.slice(i.length)):FT(XH,!1,s,void 0,!0)}if(n){const i=r;r=o=>n({className:o,parseClassName:i})}return r},JH=e=>{const t=new Map;return e.orderSensitiveModifiers.forEach((n,r)=>{t.set(n,1e6+r)}),n=>{const r=[];let i=[];for(let o=0;o<n.length;o++){const s=n[o],l=s[0]==="[",u=t.has(s);l||u?(i.length>0&&(i.sort(),r.push(...i),i=[]),r.push(s)):i.push(s)}return i.length>0&&(i.sort(),r.push(...i)),r}},ZH=e=>({cache:KH(e.cacheSize),parseClassName:QH(e),sortModifiers:JH(e),...zH(e)}),eV=/\s+/,tV=(e,t)=>{const{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:i,sortModifiers:o}=t,s=[],l=e.trim().split(eV);let u="";for(let d=l.length-1;d>=0;d-=1){const p=l[d],{isExternal:f,modifiers:g,hasImportantModifier:y,baseClassName:b,maybePostfixModifierPosition:w}=n(p);if(f){u=p+(u.length>0?" "+u:u);continue}let v=!!w,j=r(v?b.substring(0,w):b);if(!j){if(!v){u=p+(u.length>0?" "+u:u);continue}if(j=r(b),!j){u=p+(u.length>0?" "+u:u);continue}v=!1}const k=g.length===0?"":g.length===1?g[0]:o(g).join(":"),S=y?k+v2:k,E=S+j;if(s.indexOf(E)>-1)continue;s.push(E);const N=i(j,v);for(let C=0;C<N.length;++C){const P=N[C];s.push(S+P)}u=p+(u.length>0?" "+u:u)}return u},nV=(...e)=>{let t=0,n,r,i="";for(;t<e.length;)(n=e[t++])&&(r=DL(n))&&(i&&(i+=" "),i+=r);return i},DL=e=>{if(typeof e=="string")return e;let t,n="";for(let r=0;r<e.length;r++)e[r]&&(t=DL(e[r]))&&(n&&(n+=" "),n+=t);return n},rV=(e,...t)=>{let n,r,i,o;const s=u=>{const d=t.reduce((p,f)=>f(p),e());return n=ZH(d),r=n.cache.get,i=n.cache.set,o=l,l(u)},l=u=>{const d=r(u);if(d)return d;const p=tV(u,n);return i(u,p),p};return o=s,(...u)=>o(nV(...u))},iV=[],on=e=>{const t=n=>n[e]||iV;return t.isThemeGetter=!0,t},ML=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,LL=/^\((?:(\w[\w-]*):)?(.+)\)$/i,aV=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,oV=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,sV=/\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$/,lV=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,cV=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,uV=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Va=e=>aV.test(e),Xe=e=>!!e&&!Number.isNaN(Number(e)),Ga=e=>!!e&&Number.isInteger(Number(e)),Sv=e=>e.endsWith("%")&&Xe(e.slice(0,-1)),Ji=e=>oV.test(e),FL=()=>!0,dV=e=>sV.test(e)&&!lV.test(e),Kk=()=>!1,hV=e=>cV.test(e),pV=e=>uV.test(e),fV=e=>!Te(e)&&!Ee(e),mV=e=>bo(e,$L,Kk),Te=e=>ML.test(e),Yo=e=>bo(e,qL,dV),BT=e=>bo(e,kV,Xe),gV=e=>bo(e,UL,FL),yV=e=>bo(e,WL,Kk),zT=e=>bo(e,BL,Kk),xV=e=>bo(e,zL,pV),cf=e=>bo(e,HL,hV),Ee=e=>LL.test(e),Lu=e=>$s(e,qL),vV=e=>$s(e,WL),$T=e=>$s(e,BL),bV=e=>$s(e,$L),wV=e=>$s(e,zL),uf=e=>$s(e,HL,!0),jV=e=>$s(e,UL,!0),bo=(e,t,n)=>{const r=ML.exec(e);return r?r[1]?t(r[1]):n(r[2]):!1},$s=(e,t,n=!1)=>{const r=LL.exec(e);return r?r[1]?t(r[1]):n:!1},BL=e=>e==="position"||e==="percentage",zL=e=>
vendor: 8,797 bytes, line 405
405e==="image"||e==="url",$L=e=>e==="length"||e==="size"||e==="bg-size",qL=e=>e==="length",kV=e=>e==="number",WL=e=>e==="family-name",UL=e=>e==="number"||e==="weight",HL=e=>e==="shadow",AV=()=>{const e=on("color"),t=on("font"),n=on("text"),r=on("font-weight"),i=on("tracking"),o=on("leading"),s=on("breakpoint"),l=on("container"),u=on("spacing"),d=on("radius"),p=on("shadow"),f=on("inset-shadow"),g=on("text-shadow"),y=on("drop-shadow"),b=on("blur"),w=on("perspective"),v=on("aspect"),j=on("ease"),k=on("animate"),S=()=>["auto","avoid","all","avoid-page","page","left","right","column"],E=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],N=()=>[...E(),Ee,Te],C=()=>["auto","hidden","clip","visible","scroll"],P=()=>["auto","contain","none"],_=()=>[Ee,Te,u],M=()=>[Va,"full","auto",..._()],D=()=>[Ga,"none","subgrid",Ee,Te],B=()=>["auto",{span:["full",Ga,Ee,Te]},Ga,Ee,Te],F=()=>[Ga,"auto",Ee,Te],V=()=>["auto","min","max","fr",Ee,Te],U=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],q=()=>["start","end","center","stretch","center-safe","end-safe"],Y=()=>["auto",..._()],Z=()=>[Va,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",..._()],J=()=>[Va,"screen","full","dvw","lvw","svw","min","max","fit",..._()],ne=()=>[Va,"screen","full","lh","dvh","lvh","svh","min","max","fit",..._()],I=()=>[e,Ee,Te],z=()=>[...E(),$T,zT,{position:[Ee,Te]}],X=()=>["no-repeat",{repeat:["","x","y","space","round"]}],L=()=>["auto","cover","contain",bV,mV,{size:[Ee,Te]}],me=()=>[Sv,Lu,Yo],xe=()=>["","none","full",d,Ee,Te],le=()=>["",Xe,Lu,Yo],Ie=()=>["solid","dashed","dotted","double"],Oe=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],ae=()=>[Xe,Sv,$T,zT],ke=()=>["","none",b,Ee,Te],Re=()=>["none",Xe,Ee,Te],se=()=>["none",Xe,Ee,Te],rt=()=>[Xe,Ee,Te],qe=()=>[Va,"full",..._()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[Ji],breakpoint:[Ji],color:[FL],container:[Ji],"drop-shadow":[Ji],ease:["in","out","in-out"],font:[fV],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[Ji],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[Ji],shadow:[Ji],spacing:["px",Xe],text:[Ji],"text-shadow":[Ji],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",Va,Te,Ee,v]}],container:["container"],columns:[{columns:[Xe,Te,Ee,l]}],"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"],sr:["sr-only","not-sr-only"],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:N()}],overflow:[{overflow:C()}],"overflow-x":[{"overflow-x":C()}],"overflow-y":[{"overflow-y":C()}],overscroll:[{overscroll:P()}],"overscroll-x":[{"overscroll-x":P()}],"overscroll-y":[{"overscroll-y":P()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:M()}],"inset-x":[{"inset-x":M()}],"inset-y":[{"inset-y":M()}],start:[{"inset-s":M(),start:M()}],end:[{"inset-e":M(),end:M()}],"inset-bs":[{"inset-bs":M()}],"inset-be":[{"inset-be":M()}],top:[{top:M()}],right:[{right:M()}],bottom:[{bottom:M()}],left:[{left:M()}],visibility:["visible","invisible","collapse"],z:[{z:[Ga,"auto",Ee,Te]}],basis:[{basis:[Va,"full","auto",l,..._()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[Xe,Va,"auto","initial","none",Te]}],grow:[{grow:["",Xe,Ee,Te]}],shrink:[{shrink:["",Xe,Ee,Te]}],order:[{order:[Ga,"first","last","none",Ee,Te]}],"grid-cols":[{"grid-cols":D()}],"col-start-end":[{col:B()}],"col-start":[{"col-start":F()}],"col-end":[{"col-end":F()}],"grid-rows":[{"grid-rows":D()}],"row-start-end":[{row:B()}],"row-start":[{"row-start":F()}],"row-end":[{"row-end":F()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":V()}],"auto-rows":[{"auto-rows":V()}],gap:[{gap:_()}],"gap-x":[{"gap-x":_()}],"gap-y":[{"gap-y":_()}],"justify-content":[{justify:[...U(),"normal"]}],"justify-items":[{"justify-items":[...q(),"normal"]}],"justify-self":[{"justify-self":["auto",...q()]}],"align-content":[{content:["normal",...U()]}],"align-items":[{items:[...q(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...q(),{baseline:["","last"]}]}],"place-content":[{"place-content":U()}],"place-items":[{"place-items":[...q(),"baseline"]}],"place-self":[{"place-self":["auto",...q()]}],p:[{p:_()}],px:[{px:_()}],py:[{py:_()}],ps:[{ps:_()}],pe:[{pe:_()}],pbs:[{pbs:_()}],pbe:[{pbe:_()}],pt:[{pt:_()}],pr:[{pr:_()}],pb:[{pb:_()}],pl:[{pl:_()}],m:[{m:Y()}],mx:[{mx:Y()}],my:[{my:Y()}],ms:[{ms:Y()}],me:[{me:Y()}],mbs:[{mbs:Y()}],mbe:[{mbe:Y()}],mt:[{mt:Y()}],mr:[{mr:Y()}],mb:[{mb:Y()}],ml:[{ml:Y()}],"space-x":[{"space-x":_()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":_()}],"space-y-reverse":["space-y-reverse"],size:[{size:Z()}],"inline-size":[{inline:["auto",...J()]}],"min-inline-size":[{"min-inline":["auto",...J()]}],"max-inline-size":[{"max-inline":["none",...J()]}],"block-size":[{block:["auto",...ne()]}],"min-block-size":[{"min-block":["auto",...ne()]}],"max-block-size":[{"max-block":["none",...ne()]}],w:[{w:[l,"screen",...Z()]}],"min-w":[{"min-w":[l,"screen","none",...Z()]}],"max-w":[{"max-w":[l,"screen","none","prose",{screen:[s]},...Z()]}],h:[{h:["screen","lh",...Z()]}],"min-h":[{"min-h":["screen","lh","none",...Z()]}],"max-h":[{"max-h":["screen","lh",...Z()]}],"font-size":[{text:["base",n,Lu,Yo]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[r,jV,gV]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",Sv,Te]}],"font-family":[{font:[vV,yV,t]}],"font-features":[{"font-features":[Te]}],"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:[i,Ee,Te]}],"line-clamp":[{"line-clamp":[Xe,"none",Ee,BT]}],leading:[{leading:[o,..._()]}],"list-image":[{"list-image":["none",Ee,Te]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",Ee,Te]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:I()}],"text-color":[{text:I()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...Ie(),"wavy"]}],"text-decoration-thickness":[{decoration:[Xe,"from-font","auto",Ee,Yo]}],"text-decoration-color":[{decoration:I()}],"underline-offset":[{"underline-offset":[Xe,"auto",Ee,Te]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:_()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",Ee,Te]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",Ee,Te]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:z()}],"bg-repeat":[{bg:X()}],"bg-size":[{bg:L()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},Ga,Ee,Te],radial:["",Ee,Te],conic:[Ga,Ee,Te]},wV,xV]}],"bg-color":[{bg:I()}],"gradient-from-pos":[{from:me()}
405],"gradient-via-pos":[{via:me()}],"gradient-to-pos":[{to:me()}],"gradient-from":[{from:I()}],"gradient-via":[{via:I()}],"gradient-to":[{to:I()}],rounded:[{rounded:xe()}],"rounded-s":[{"rounded-s":xe()}],"rounded-e":[{"rounded-e":xe()}],"rounded-t":[{"rounded-t":xe()}],"rounded-r":[{"rounded-r":xe()}],"rounded-b":[{"rounded-b":xe()}],"rounded-l":[{"rounded-l":xe()}],"rounded-ss":[{"rounded-ss":xe()}],"rounded-se":[{"rounded-se":xe()}],"rounded-ee":[{"rounded-ee":xe()}],"rounded-es":[{"rounded-es":xe()}],"rounded-tl":[{"rounded-tl":xe()}],"rounded-tr":[{"rounded-tr":xe()}],"rounded-br":[{"rounded-br":xe()}],"rounded-bl":[{"rounded-bl":xe()}],"border-w":[{border:le()}],"border-w-x":[{"border-x":le()}],"border-w-y":[{"border-y":le()}],"border-w-s":[{"border-s":le()}],"border-w-e":[{"border-e":le()}],"border-w-bs":[{"border-bs":le()}],"border-w-be":[{"border-be":le()}],"border-w-t":[{"border-t":le()}],"border-w-r":[{"border-r":le()}],"border-w-b":[{"border-b":le()}],"border-w-l":[{"border-l":le()}],"divide-x":[{"divide-x":le()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":le()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...Ie(),"hidden","none"]}],"divide-style":[{divide:[...Ie(),"hidden","none"]}],"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-bs":[{"border-bs":I()}],"border-color-be":[{"border-be":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()}
vendor: 4,751 bytes, line 405
405],"divide-color":[{divide:I()}],"outline-style":[{outline:[...Ie(),"none","hidden"]}],"outline-offset":[{"outline-offset":[Xe,Ee,Te]}],"outline-w":[{outline:["",Xe,Lu,Yo]}],"outline-color":[{outline:I()}],shadow:[{shadow:["","none",p,uf,cf]}],"shadow-color":[{shadow:I()}],"inset-shadow":[{"inset-shadow":["none",f,uf,cf]}],"inset-shadow-color":[{"inset-shadow":I()}],"ring-w":[{ring:le()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:I()}],"ring-offset-w":[{"ring-offset":[Xe,Yo]}],"ring-offset-color":[{"ring-offset":I()}],"inset-ring-w":[{"inset-ring":le()}],"inset-ring-color":[{"inset-ring":I()}],"text-shadow":[{"text-shadow":["none",g,uf,cf]}],"text-shadow-color":[{"text-shadow":I()}],opacity:[{opacity:[Xe,Ee,Te]}],"mix-blend":[{"mix-blend":[...Oe(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":Oe()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[Xe]}],"mask-image-linear-from-pos":[{"mask-linear-from":ae()}],"mask-image-linear-to-pos":[{"mask-linear-to":ae()}],"mask-image-linear-from-color":[{"mask-linear-from":I()}],"mask-image-linear-to-color":[{"mask-linear-to":I()}],"mask-image-t-from-pos":[{"mask-t-from":ae()}],"mask-image-t-to-pos":[{"mask-t-to":ae()}],"mask-image-t-from-color":[{"mask-t-from":I()}],"mask-image-t-to-color":[{"mask-t-to":I()}],"mask-image-r-from-pos":[{"mask-r-from":ae()}],"mask-image-r-to-pos":[{"mask-r-to":ae()}],"mask-image-r-from-color":[{"mask-r-from":I()}],"mask-image-r-to-color":[{"mask-r-to":I()}],"mask-image-b-from-pos":[{"mask-b-from":ae()}],"mask-image-b-to-pos":[{"mask-b-to":ae()}],"mask-image-b-from-color":[{"mask-b-from":I()}],"mask-image-b-to-color":[{"mask-b-to":I()}],"mask-image-l-from-pos":[{"mask-l-from":ae()}],"mask-image-l-to-pos":[{"mask-l-to":ae()}],"mask-image-l-from-color":[{"mask-l-from":I()}],"mask-image-l-to-color":[{"mask-l-to":I()}],"mask-image-x-from-pos":[{"mask-x-from":ae()}],"mask-image-x-to-pos":[{"mask-x-to":ae()}],"mask-image-x-from-color":[{"mask-x-from":I()}],"mask-image-x-to-color":[{"mask-x-to":I()}],"mask-image-y-from-pos":[{"mask-y-from":ae()}],"mask-image-y-to-pos":[{"mask-y-to":ae()}],"mask-image-y-from-color":[{"mask-y-from":I()}],"mask-image-y-to-color":[{"mask-y-to":I()}],"mask-image-radial":[{"mask-radial":[Ee,Te]}],"mask-image-radial-from-pos":[{"mask-radial-from":ae()}],"mask-image-radial-to-pos":[{"mask-radial-to":ae()}],"mask-image-radial-from-color":[{"mask-radial-from":I()}],"mask-image-radial-to-color":[{"mask-radial-to":I()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":E()}],"mask-image-conic-pos":[{"mask-conic":[Xe]}],"mask-image-conic-from-pos":[{"mask-conic-from":ae()}],"mask-image-conic-to-pos":[{"mask-conic-to":ae()}],"mask-image-conic-from-color":[{"mask-conic-from":I()}],"mask-image-conic-to-color":[{"mask-conic-to":I()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:z()}],"mask-repeat":[{mask:X()}],"mask-size":[{mask:L()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",Ee,Te]}],filter:[{filter:["","none",Ee,Te]}],blur:[{blur:ke()}],brightness:[{brightness:[Xe,Ee,Te]}],contrast:[{contrast:[Xe,Ee,Te]}],"drop-shadow":[{"drop-shadow":["","none",y,uf,cf]}],"drop-shadow-color":[{"drop-shadow":I()}],grayscale:[{grayscale:["",Xe,Ee,Te]}],"hue-rotate":[{"hue-rotate":[Xe,Ee,Te]}],invert:[{invert:["",Xe,Ee,Te]}],saturate:[{saturate:[Xe,Ee,Te]}],sepia:[{sepia:["",Xe,Ee,Te]}],"backdrop-filter":[{"backdrop-filter":["","none",Ee,Te]}],"backdrop-blur":[{"backdrop-blur":ke()}],"backdrop-brightness":[{"backdrop-brightness":[Xe,Ee,Te]}],"backdrop-contrast":[{"backdrop-contrast":[Xe,Ee,Te]}],"backdrop-grayscale":[{"backdrop-grayscale":["",Xe,Ee,Te]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[Xe,Ee,Te]}],"backdrop-invert":[{"backdrop-invert":["",Xe,Ee,Te]}],"backdrop-opacity":[{"backdrop-opacity":[Xe,Ee,Te]}],"backdrop-saturate":[{"backdrop-saturate":[Xe,Ee,Te]}],"backdrop-sepia":[{"backdrop-sepia":["",Xe,Ee,Te]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":_()}],"border-spacing-x":[{"border-spacing-x":_()}],"border-spacing-y":[{"border-spacing-y":_()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",Ee,Te]}],"transition-behavior":[{transition:["normal","discrete"]}
vendor: 7,795 bytes, line 405
405],duration:[{duration:[Xe,"initial",Ee,Te]}],ease:[{ease:["linear","initial",j,Ee,Te]}],delay:[{delay:[Xe,Ee,Te]}],animate:[{animate:["none",k,Ee,Te]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[w,Ee,Te]}],"perspective-origin":[{"perspective-origin":N()}],rotate:[{rotate:Re()}],"rotate-x":[{"rotate-x":Re()}],"rotate-y":[{"rotate-y":Re()}],"rotate-z":[{"rotate-z":Re()}],scale:[{scale:se()}],"scale-x":[{"scale-x":se()}],"scale-y":[{"scale-y":se()}],"scale-z":[{"scale-z":se()}],"scale-3d":["scale-3d"],skew:[{skew:rt()}],"skew-x":[{"skew-x":rt()}],"skew-y":[{"skew-y":rt()}],transform:[{transform:[Ee,Te,"","none","gpu","cpu"]}],"transform-origin":[{origin:N()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:qe()}],"translate-x":[{"translate-x":qe()}],"translate-y":[{"translate-y":qe()}],"translate-z":[{"translate-z":qe()}],"translate-none":["translate-none"],accent:[{accent:I()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:I()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],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",Ee,Te]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":_()}],"scroll-mx":[{"scroll-mx":_()}],"scroll-my":[{"scroll-my":_()}],"scroll-ms":[{"scroll-ms":_()}],"scroll-me":[{"scroll-me":_()}],"scroll-mbs":[{"scroll-mbs":_()}],"scroll-mbe":[{"scroll-mbe":_()}],"scroll-mt":[{"scroll-mt":_()}],"scroll-mr":[{"scroll-mr":_()}],"scroll-mb":[{"scroll-mb":_()}],"scroll-ml":[{"scroll-ml":_()}],"scroll-p":[{"scroll-p":_()}],"scroll-px":[{"scroll-px":_()}],"scroll-py":[{"scroll-py":_()}],"scroll-ps":[{"scroll-ps":_()}],"scroll-pe":[{"scroll-pe":_()}],"scroll-pbs":[{"scroll-pbs":_()}],"scroll-pbe":[{"scroll-pbe":_()}],"scroll-pt":[{"scroll-pt":_()}],"scroll-pr":[{"scroll-pr":_()}],"scroll-pb":[{"scroll-pb":_()}],"scroll-pl":[{"scroll-pl":_()}],"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"]}],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",Ee,Te]}],fill:[{fill:["none",...I()]}],"stroke-w":[{stroke:[Xe,Lu,Yo,BT]}],stroke:[{stroke:["none",...I()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","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","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","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-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","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-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","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"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","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-pbs","scroll-pbe","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"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},SV=rV(AV);function wo(...e){return SV(nt(e))}const VL=O.forwardRef(({...e},t)=>a.jsx("div",{ref:t,className:"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}));VL.displayName="ToastProvider";const GL=O.forwardRef(({...e},t)=>a.jsx("div",{ref:t,className:"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}));GL.displayName="ToastViewport";const CV=qW("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"}}),YL=O.forwardRef(({className:e,variant:t,...n},r)=>a.jsx("div",{ref:r,className:wo(CV({variant:t}),e),...n}));YL.displayName="Toast";const NV=O.forwardRef(({className:e,...t},n)=>a.jsx("div",{ref:n,className:wo("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 hover:bg-secondary focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive",e),...t}));
405NV.displayName="ToastAction";const KL=O.forwardRef(({className:e,...t},n)=>a.jsx("button",{ref:n,className:wo("absolute right-2 top-2 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-2 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600",e),"toast-close":"",...t,children:a.jsx(Pg,{className:"h-4 w-4"})}));KL.displayName="ToastClose";const XL=O.forwardRef(({className:e,...t},n)=>a.jsx("div",{ref:n,className:wo("text-sm font-semibold",e),...t}));XL.displayName="ToastTitle";const QL=O.forwardRef(({className:e,...t},n)=>a.jsx("div",{ref:n,className:wo("text-sm opacity-90",e),...t}));QL.displayName="ToastDescription";function TV(){const{toasts:e}=$W();return a.jsxs(VL,{children:[e.map(function({id:t,title:n,description:r,action:i,...o}){return a.jsxs(YL,{...o,children:[a.jsxs("div",{className:"grid gap-1",children:[n&&a.jsx(XL,{children:n}),r&&a.jsx(QL,{children:r})]}),i,a.jsx(KL,{})]},t)}),a.jsx(GL,{})]})}var Th=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(){}},EV={setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e)},to,$k,rL,PV=(rL=class{constructor(){Fe(this,to,EV);Fe(this,$k,!1)}setTimeoutProvider(e){je(this,to,e)}setTimeout(e,t){return G(this,to).setTimeout(e,t)}clearTimeout(e){G(this,to).clearTimeout(e)}setInterval(e,t){return G(this,to).setInterval(e,t)}clearInterval(e){G(this,to).clearInterval(e)}},to=new WeakMap,$k=new WeakMap,rL),is=new PV;function OV(e){setTimeout(e,0)}var Ps=typeof window>"u"||"Deno"in globalThis;function sr(){}function _V(e,t){return typeof e=="function"?e(t):e}function b2(e){return typeof e=="number"&&e>=0&&e!==1/0}function JL(e,t){return Math.max(e+(t||0)-Date.now(),0)}function fo(e,t){return typeof e=="function"?e(t):e}function zr(e,t){return typeof e=="function"?e(t):e}function qT(e,t){const{type:n="all",exact:r,fetchStatus:i,predicate:o,queryKey:s,stale:l}=e;if(s){if(r){if(t.queryHash!==Xk(s,t.options))return!1}else if(!Nd(t.queryKey,s))return!1}if(n!=="all"){const u=t.isActive();if(n==="active"&&!u||n==="inactive"&&u)return!1}return!(typeof l=="boolean"&&t.isStale()!==l||i&&i!==t.state.fetchStatus||o&&!o(t))}function WT(e,t){const{exact:n,status:r,predicate:i,mutationKey:o}=e;if(o){if(!t.options.mutationKey)return!1;if(n){if(Cd(t.options.mutationKey)!==Cd(o))return!1}else if(!Nd(t.options.mutationKey,o))return!1}return!(r&&t.state.status!==r||i&&!i(t))}function Xk(e,t){return((t==null?void 0:t.queryKeyHashFn)||Cd)(e)}function Cd(e){return JSON.stringify(e,(t,n)=>j2(n)?Object.keys(n).sort().reduce((r,i)=>(r[i]=n[i],r),{}):n)}function Nd(e,t){return e===t?!0:typeof e!=typeof t?!1:e&&t&&typeof e=="object"&&typeof t=="object"?Object.keys(t).every(n=>Nd(e[n],t[n])):!1}var IV=Object.prototype.hasOwnProperty;function ZL(e,t,n=0){if(e===t)return e;if(n>500)return t;const r=UT(e)&&UT(t);if(!r&&!(j2(e)&&j2(t)))return t;const o=(r?e:Object.keys(e)).length,s=r?t:Object.keys(t),l=s.length,u=r?new Array(l):{};let d=0;for(let p=0;p<l;p++){const f=r?p:s[p],g=e[f],y=t[f];if(g===y){u[f]=g,(r?p<o:IV.call(e,f))&&d++;continue}if(g===null||y===null||typeof g!="object"||typeof y!="object"){u[f]=y;continue}const b=ZL(g,y,n+1);u[f]=b,b===g&&d++}return o===l&&d===o?e:u}function w2(e,t){if(!t||Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(e[n]!==t[n])return!1;return!0}function UT(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function j2(e){if(!HT(e))return!1;const t=e.constructor;if(t===void 0)return!0;const n=t.prototype;return!(!HT(n)||!n.hasOwnProperty("isPrototypeOf")||Object.getPrototypeOf(e)!==Object.prototype)}function HT(e){return Object.prototype.toString.call(e)==="[object Object]"}function RV(e){return new Promise(t=>{is.setTimeout(t,e)})}function k2(e,t,n){return typeof n.structuralSharing=="function"?n.structuralSharing(e,t):n.structuralSharing!==!1?ZL(e,t):t}function DV(e,t,n=0){const r=[...e,t];return n&&r.length>n?r.slice(1):r}function MV(e,t,n=0){const r=[t,...e];return n&&r.length>n?r.slice(0,-1):r}var Qk=Symbol();function eF(e,t){return!e.queryFn&&(t!=null&&t.initialPromise)?()=>t.initialPromise:!e.queryFn||e.queryFn===Qk?()=>Promise.reject(new Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}function tF(e,t){return typeof e=="function"?e(...t):!!e}function LV(e,t,n){let r=!1,i;return Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(i??(i=t()),r||(r=!0,i.aborted?n():i.addEventListener("abort",n,{once:!0})),i)}),e}var ps,no,Yl,iL,FV=(iL=class extends Th{constructor(){super();Fe(this,ps);Fe(this,no);Fe(this,Yl);je(this,Yl,t=>{if(!Ps&&window.addEventListener){const n=()=>t();return window.addEventListener("visibilitychange",n,!1),()=>{window.removeEventListener("visibilitychange",n)}}})}onSubscribe(){G(this,no)||this.setEventListener(G(this,Yl))}onUnsubscribe(){var t;this.hasListeners()||((t=G(this,no))==null||t.call(this),je(this,no,void 0))}setEventListener(t){var n;je(this,Yl,t),(n=G(this,no))==null||n.call(this),je(this,no,t(r=>{typeof r=="boolean"?this.setFocused(r):this.onFocus()}))}setFocused(t){G(this,ps)!==t&&(je(this,ps,t),this.onFocus())}onFocus(){const t=this.isFocused();
405this.listeners.forEach(n=>{n(t)})}isFocused(){var t;return typeof G(this,ps)=="boolean"?G(this,ps):((t=globalThis.document)==null?void 0:t.visibilityState)!=="hidden"}},ps=new WeakMap,no=new WeakMap,Yl=new WeakMap,iL),Jk=new FV;function A2(){let e,t;const n=new Promise((i,o)=>{e=i,t=o});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}var BV=OV;function zV(){let e=[],t=0,n=l=>{l()},r=l=>{l()},i=BV;const o=l=>{t?e.push(l):i(()=>{n(l)})},s=()=>{const l=e;e=[],l.length&&i(()=>{r(()=>{l.forEach(u=>{n(u)})})})};return{batch:l=>{let u;t++;try{u=l()}finally{t--,t||s()}return u},batchCalls:l=>(...u)=>{o(()=>{l(...u)})},schedule:o,setNotifyFunction:l=>{n=l},setBatchNotifyFunction:l=>{r=l},setScheduler:l=>{i=l}}}var Nn=zV(),Kl,ro,Xl,aL,$V=(aL=class extends Th{constructor(){super();Fe(this,Kl,!0);Fe(this,ro);Fe(this,Xl);je(this,Xl,t=>{if(!Ps&&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(){G(this,ro)||this.setEventListener(G(this,Xl))}onUnsubscribe(){var t;this.hasListeners()||((t=G(this,ro))==null||t.call(this),je(this,ro,void 0))}setEventListener(t){var n;je(this,Xl,t),(n=G(this,ro))==null||n.call(this),je(this,ro,t(this.setOnline.bind(this)))}setOnline(t){G(this,Kl)!==t&&(je(this,Kl,t),this.listeners.forEach(r=>{r(t)}))}isOnline(){return G(this,Kl)}},Kl=new WeakMap,ro=new WeakMap,Xl=new WeakMap,aL),rm=new $V;function qV(e){return Math.min(1e3*2**e,3e4)}function nF(e){return(e??"online")==="online"?rm.isOnline():!0}var S2=class extends Error{constructor(e){super("CancelledError"),this.revert=e==null?void 0:e.revert,this.silent=e==null?void 0:e.silent}};function rF(e){let t=!1,n=0,r;const i=A2(),o=()=>i.status!=="pending",s=w=>{var v;if(!o()){const j=new S2(w);g(j),(v=e.onCancel)==null||v.call(e,j)}},l=()=>{t=!0},u=()=>{t=!1},d=()=>Jk.isFocused()&&(e.networkMode==="always"||rm.isOnline())&&e.canRun(),p=()=>nF(e.networkMode)&&e.canRun(),f=w=>{o()||(r==null||r(),i.resolve(w))},g=w=>{o()||(r==null||r(),i.reject(w))},y=()=>new Promise(w=>{var v;r=j=>{(o()||d())&&w(j)},(v=e.onPause)==null||v.call(e)}).then(()=>{var w;r=void 0,o()||(w=e.onContinue)==null||w.call(e)}),b=()=>{if(o())return;let w;const v=n===0?e.initialPromise:void 0;try{w=v??e.fn()}catch(j){w=Promise.reject(j)}Promise.resolve(w).then(f).catch(j=>{var C;if(o())return;const k=e.retry??(Ps?0:3),S=e.retryDelay??qV,E=typeof S=="function"?S(n,j):S,N=k===!0||typeof k=="number"&&n<k||typeof k=="function"&&k(n,j);if(t||!N){g(j);return}n++,(C=e.onFail)==null||C.call(e,n,j),RV(E).then(()=>d()?void 0:y()).then(()=>{t?g(j):b()})})};return{promise:i,status:()=>i.status,cancel:s,continue:()=>(r==null||r(),i),cancelRetry:l,continueRetry:u,canStart:p,start:()=>(p()?b():y().then(b),i)}}var fs,oL,iF=(oL=class{constructor(){Fe(this,fs)}destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),b2(this.gcTime)&&je(this,fs,is.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(Ps?1/0:300*1e3))}clearGcTimeout(){G(this,fs)&&(is.clearTimeout(G(this,fs)),je(this,fs,void 0))}},fs=new WeakMap,oL),ms,Ql,Br,gs,gn,jh,ys,ai,ea,sL,WV=(sL=class extends iF{constructor(t){super();Fe(this,ai);Fe(this,ms);Fe(this,Ql);Fe(this,Br);Fe(this,gs);Fe(this,gn);Fe(this,jh);Fe(this,ys);je(this,ys,!1),je(this,jh,t.defaultOptions),this.setOptions(t.options),this.observers=[],je(this,gs,t.client),je(this,Br,G(this,gs).getQueryCache()),this.queryKey=t.queryKey,this.queryHash=t.queryHash,je(this,ms,GT(this.options)),this.state=t.state??G(this,ms),this.scheduleGc()}get meta(){return this.options.meta}get promise(){var t;return(t=G(this,gn))==null?void 0:t.promise}setOptions(t){if(this.options={...G(this,jh),...t},this.updateGcTime(this.options.gcTime),this.state&&this.state.data===void 0){const n=GT(this.options);n.data!==void 0&&(this.setState(VT(n.data,n.dataUpdatedAt)),je(this,ms,n))}}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&G(this,Br).remove(this)}setData(t,n){const r=k2(this.state.data,t,this.options);return ot(this,ai,ea).call(this,{data:r,type:"success",dataUpdatedAt:n==null?void 0:n.updatedAt,manual:n==null?void 0:n.manual}),r}setState(t,n){ot(this,ai,ea).call(this,{type:"setState",state:t,setStateOptions:n})}cancel(t){var r,i;const n=(r=G(this,gn))==null?void 0:r.promise;return(i=G(this,gn))==null||i.cancel(t),n?n.then(sr).catch(sr):Prom
405ise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}reset(){this.destroy(),this.setState(G(this,ms))}isActive(){return this.observers.some(t=>zr(t.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===Qk||this.state.dataUpdateCount+this.state.errorUpdateCount===0}isStatic(){return this.getObserversCount()>0?this.observers.some(t=>fo(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:!JL(this.state.dataUpdatedAt,t)}onFocus(){var n;const t=this.observers.find(r=>r.shouldFetchOnWindowFocus());t==null||t.refetch({cancelRefetch:!1}),(n=G(this,gn))==null||n.continue()}onOnline(){var n;const t=this.observers.find(r=>r.shouldFetchOnReconnect());t==null||t.refetch({cancelRefetch:!1}),(n=G(this,gn))==null||n.continue()}addObserver(t){this.observers.includes(t)||(this.observers.push(t),this.clearGcTimeout(),G(this,Br).notify({type:"observerAdded",query:this,observer:t}))}removeObserver(t){this.observers.includes(t)&&(this.observers=this.observers.filter(n=>n!==t),this.observers.length||(G(this,gn)&&(G(this,ys)?G(this,gn).cancel({revert:!0}):G(this,gn).cancelRetry()),this.scheduleGc()),G(this,Br).notify({type:"observerRemoved",query:this,observer:t}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||ot(this,ai,ea).call(this,{type:"invalidate"})}async fetch(t,n){var u,d,p,f,g,y,b,w,v,j,k,S;if(this.state.fetchStatus!=="idle"&&((u=G(this,gn))==null?void 0:u.status())!=="rejected"){if(this.state.data!==void 0&&(n!=null&&n.cancelRefetch))this.cancel({silent:!0});else if(G(this,gn))return G(this,gn).continueRetry(),G(this,gn).promise}if(t&&this.setOptions(t),!this.options.queryFn){const E=this.observers.find(N=>N.options.queryFn);E&&this.setOptions(E.options)}const r=new AbortController,i=E=>{Object.defineProperty(E,"signal",{enumerable:!0,get:()=>(je(this,ys,!0),r.signal)})},o=()=>{const E=eF(this.options,n),C=(()=>{const P={client:G(this,gs),queryKey:this.queryKey,meta:this.meta};return i(P),P})();return je(this,ys,!1),this.options.persister?this.options.persister(E,C,this):E(C)},l=(()=>{const E={fetchOptions:n,options:this.options,queryKey:this.queryKey,client:G(this,gs),state:this.state,fetchFn:o};return i(E),E})();(d=this.options.behavior)==null||d.onFetch(l,this),je(this,Ql,this.state),(this.state.fetchStatus==="idle"||this.state.fetchMeta!==((p=l.fetchOptions)==null?void 0:p.meta))&&ot(this,ai,ea).call(this,{type:"fetch",meta:(f=l.fetchOptions)==null?void 0:f.meta}),je(this,gn,rF({initialPromise:n==null?void 0:n.initialPromise,fn:l.fetchFn,onCancel:E=>{E instanceof S2&&E.revert&&this.setState({...G(this,Ql),fetchStatus:"idle"}),r.abort()},onFail:(E,N)=>{ot(this,ai,ea).call(this,{type:"failed",failureCount:E,error:N})},onPause:()=>{ot(this,ai,ea).call(this,{type:"pause"})},onContinue:()=>{ot(this,ai,ea).call(this,{type:"continue"})},retry:l.options.retry,retryDelay:l.options.retryDelay,networkMode:l.options.networkMode,canRun:()=>!0}));try{const E=await G(this,gn).start();if(E===void 0)throw new Error(`${this.queryHash} data is undefined`);return this.setData(E),(y=(g=G(this,Br).config).onSuccess)==null||y.call(g,E,this),(w=(b=G(this,Br).config).onSettled)==null||w.call(b,E,this.state.error,this),E}catch(E){if(E instanceof S2){if(E.silent)return G(this,gn).promise;if(E.revert){if(this.state.data===void 0)throw E;return this.state.data}}throw ot(this,ai,ea).call(this,{type:"error",error:E}),(j=(v=G(this,Br).config).onError)==null||j.call(v,E,this),(S=(k=G(this,Br).config).onSettled)==null||S.call(k,this.state.data,E,this),E}finally{this.scheduleGc()}}},ms=new WeakMap,Ql=new WeakMap,Br=new WeakMap,gs=new WeakMap,gn=new WeakMap,jh=new WeakMap,ys=new WeakMap,ai=new WeakSet,ea=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,...aF(r.data,this.options),fetchMeta:t.meta??null};case"success":const i={...r,...VT(t.data,t.dataUpdatedAt),dataUpdateCount:r.dataUpdateCount+1,...!t.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};return je(this,Ql,t.manual?i:void 0),i;case"error":const o=t.error;
405return{...r,error:o,errorUpdateCount:r.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:r.fetchFailureCount+1,fetchFailureReason:o,fetchStatus:"idle",status:"error",isInvalidated:!0};case"invalidate":return{...r,isInvalidated:!0};case"setState":return{...r,...t.state}}};this.state=n(this.state),Nn.batch(()=>{this.observers.forEach(r=>{r.onQueryUpdate()}),G(this,Br).notify({query:this,type:"updated",action:t})})},sL);function aF(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:nF(t.networkMode)?"fetching":"paused",...e===void 0&&{error:null,status:"pending"}}}function VT(e,t){return{data:e,dataUpdatedAt:t??Date.now(),error:null,isInvalidated:!1,status:"success"}}function GT(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 or,st,kh,Yn,xs,Jl,na,io,Ah,Zl,ec,vs,bs,ao,tc,vt,td,C2,N2,T2,E2,P2,O2,_2,oF,lL,UV=(lL=class extends Th{constructor(t,n){super();Fe(this,vt);Fe(this,or);Fe(this,st);Fe(this,kh);Fe(this,Yn);Fe(this,xs);Fe(this,Jl);Fe(this,na);Fe(this,io);Fe(this,Ah);Fe(this,Zl);Fe(this,ec);Fe(this,vs);Fe(this,bs);Fe(this,ao);Fe(this,tc,new Set);this.options=n,je(this,or,t),je(this,io,null),je(this,na,A2()),this.bindMethods(),this.setOptions(n)}bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(G(this,st).addObserver(this),YT(G(this,st),this.options)?ot(this,vt,td).call(this):this.updateResult(),ot(this,vt,E2).call(this))}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return I2(G(this,st),this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return I2(G(this,st),this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,ot(this,vt,P2).call(this),ot(this,vt,O2).call(this),G(this,st).removeObserver(this)}setOptions(t){const n=this.options,r=G(this,st);if(this.options=G(this,or).defaultQueryOptions(t),this.options.enabled!==void 0&&typeof this.options.enabled!="boolean"&&typeof this.options.enabled!="function"&&typeof zr(this.options.enabled,G(this,st))!="boolean")throw new Error("Expected enabled to be a boolean or a callback that returns a boolean");ot(this,vt,_2).call(this),G(this,st).setOptions(this.options),n._defaulted&&!w2(this.options,n)&&G(this,or).getQueryCache().notify({type:"observerOptionsUpdated",query:G(this,st),observer:this});const i=this.hasListeners();i&&KT(G(this,st),r,this.options,n)&&ot(this,vt,td).call(this),this.updateResult(),i&&(G(this,st)!==r||zr(this.options.enabled,G(this,st))!==zr(n.enabled,G(this,st))||fo(this.options.staleTime,G(this,st))!==fo(n.staleTime,G(this,st)))&&ot(this,vt,C2).call(this);const o=ot(this,vt,N2).call(this);i&&(G(this,st)!==r||zr(this.options.enabled,G(this,st))!==zr(n.enabled,G(this,st))||o!==G(this,ao))&&ot(this,vt,T2).call(this,o)}getOptimisticResult(t){const n=G(this,or).getQueryCache().build(G(this,or),t),r=this.createResult(n,t);return VV(this,r)&&(je(this,Yn,r),je(this,Jl,this.options),je(this,xs,G(this,st).state)),r}getCurrentResult(){return G(this,Yn)}trackResult(t,n){return new Proxy(t,{get:(r,i)=>(this.trackProp(i),n==null||n(i),i==="promise"&&(this.trackProp("data"),!this.options.experimental_prefetchInRender&&G(this,na).status==="pending"&&G(this,na).reject(new Error("experimental_prefetchInRender feature flag is not enabled"))),Reflect.get(r,i))})}trackProp(t){G(this,tc).add(t)}getCurrentQuery(){return G(this,st)}refetch({...t}={}){return this.fetch({...t})}fetchOptimistic(t){const n=G(this,or).defaultQueryOptions(t),r=G(this,or).getQueryCache().build(G(this,or),n);return r.fetch().then(()=>this.createResult(r,n))}fetch(t){return ot(this,vt,td).call(this,{...t,cancelRefetch:t.cancelRefetch??!0}).then(()=>(this.updateResult(),G(this,Yn)))}createResult(t,n){var M;const r=G(this,st),i=this.options,o=G(this,Yn),s=G(this,xs),l=G(this,Jl),d=t!==r?t.state:G(this,kh),{state:p}=t;let f={...p},g=!1,y;if(n._optimisticResults){const D=this.hasListeners(),B=!D&&YT(t,n),F=D&&KT(t,r,n,i);(B||F)&&(f={...f,...aF(p.data,t.options)}),n._optimisticResults==="isRestoring"&&(f.fetchStatus="idle")}let{error:b,errorUpdatedAt:w,status:v}=f;y=f.data;let j=!1;if(n.placeholderData!==void 0&&y===void 0&&v==="pending"){let D;o!=null&&o.isPlaceholderData&&n.placeholderData===(l==null?void 0:l.placeholderData)?(D=o.data,j=!0):D=typeof n.placeholderData=="function"?n.placeholderData((M=G(this,ec))==null?void 0:M.state.data,G(this,ec)):n.placeholderData,D!==void 0&&(v="success",y=k2(o==null?void 0:o.data,D,n),g=!0)}if(n.select&&y!==void 0&&!j)if(o&&y===(s==null?void 0:s.data)&&n.select===G(this,Ah))y=G(this,Zl);else try{je(this,Ah,n.select),y=n.select(y),y=k2(o==null?void 0:o.data,y,n),je(this,Zl,y),je(this,io,null)}catch(D){je(this,io,D)}G(this,io)&&(b=G(this,io),y=G(this,Zl),w=Date.now(),v="error");const k=f.fetchStatus==="fetching",S=v==="pending",E=v==="error",N=S&&k,C=y!==void 0,_={status:v,fetchStatus:f.fetchStatus,isPending:S,isSuccess:v==="success",isError:E,isInitialLoading:N,isLoading:N,data:y,dataUpdatedAt:f.dataUpdatedAt,error:b,errorUpdatedAt:w,failureCount:f.fetchFailureCount,failureReason:f.fetchFailureReason,errorUpdate
405Count:f.errorUpdateCount,isFetched:f.dataUpdateCount>0||f.errorUpdateCount>0,isFetchedAfterMount:f.dataUpdateCount>d.dataUpdateCount||f.errorUpdateCount>d.errorUpdateCount,isFetching:k,isRefetching:k&&!S,isLoadingError:E&&!C,isPaused:f.fetchStatus==="paused",isPlaceholderData:g,isRefetchError:E&&C,isStale:Zk(t,n),refetch:this.refetch,promise:G(this,na),isEnabled:zr(n.enabled,t)!==!1};if(this.options.experimental_prefetchInRender){const D=_.data!==void 0,B=_.status==="error"&&!D,F=q=>{B?q.reject(_.error):D&&q.resolve(_.data)},V=()=>{const q=je(this,na,_.promise=A2());F(q)},U=G(this,na);switch(U.status){case"pending":t.queryHash===r.queryHash&&F(U);break;case"fulfilled":(B||_.data!==U.value)&&V();break;case"rejected":(!B||_.error!==U.reason)&&V();break}}return _}updateResult(){const t=G(this,Yn),n=this.createResult(G(this,st),this.options);if(je(this,xs,G(this,st).state),je(this,Jl,this.options),G(this,xs).data!==void 0&&je(this,ec,G(this,st)),w2(n,t))return;je(this,Yn,n);const r=()=>{if(!t)return!0;const{notifyOnChangeProps:i}=this.options,o=typeof i=="function"?i():i;if(o==="all"||!o&&!G(this,tc).size)return!0;const s=new Set(o??G(this,tc));return this.options.throwOnError&&s.add("error"),Object.keys(G(this,Yn)).some(l=>{const u=l;return G(this,Yn)[u]!==t[u]&&s.has(u)})};ot(this,vt,oF).call(this,{listeners:r()})}onQueryUpdate(){this.updateResult(),this.hasListeners()&&ot(this,vt,E2).call(this)}},or=new WeakMap,st=new WeakMap,kh=new WeakMap,Yn=new WeakMap,xs=new WeakMap,Jl=new WeakMap,na=new WeakMap,io=new WeakMap,Ah=new WeakMap,Zl=new WeakMap,ec=new WeakMap,vs=new WeakMap,bs=new WeakMap,ao=new WeakMap,tc=new WeakMap,vt=new WeakSet,td=function(t){ot(this,vt,_2).call(this);let n=G(this,st).fetch(this.options,t);return t!=null&&t.throwOnError||(n=n.catch(sr)),n},C2=function(){ot(this,vt,P2).call(this);const t=fo(this.options.staleTime,G(this,st));if(Ps||G(this,Yn).isStale||!b2(t))return;const r=JL(G(this,Yn).dataUpdatedAt,t)+1;je(this,vs,is.setTimeout(()=>{G(this,Yn).isStale||this.updateResult()},r))},N2=function(){return(typeof this.options.refetchInterval=="function"?this.options.refetchInterval(G(this,st)):this.options.refetchInterval)??!1},T2=function(t){ot(this,vt,O2).call(this),je(this,ao,t),!(Ps||zr(this.options.enabled,G(this,st))===!1||!b2(G(this,ao))||G(this,ao)===0)&&je(this,bs,is.setInterval(()=>{(this.options.refetchIntervalInBackground||Jk.isFocused())&&ot(this,vt,td).call(this)},G(this,ao)))},E2=function(){ot(this,vt,C2).call(this),ot(this,vt,T2).call(this,ot(this,vt,N2).call(this))},P2=function(){G(this,vs)&&(is.clearTimeout(G(this,vs)),je(this,vs,void 0))},O2=function(){G(this,bs)&&(is.clearInterval(G(this,bs)),je(this,bs,void 0))},_2=function(){const t=G(this,or).getQueryCache().build(G(this,or),this.options);if(t===G(this,st))return;const n=G(this,st);je(this,st,t),je(this,kh,t.state),this.hasListeners()&&(n==null||n.removeObserver(this),t.addObserver(this))},oF=function(t){Nn.batch(()=>{t.listeners&&this.listeners.forEach(n=>{n(G(this,Yn))}),G(this,or).getQueryCache().notify({query:G(this,st),type:"observerResultsUpdated"})})},lL);function HV(e,t){return zr(t.enabled,e)!==!1&&e.state.data===void 0&&!(e.state.status==="error"&&t.retryOnMount===!1)}function YT(e,t){return HV(e,t)||e.state.data!==void 0&&I2(e,t,t.refetchOnMount)}function I2(e,t,n){if(zr(t.enabled,e)!==!1&&fo(t.staleTime,e)!=="static"){const r=typeof n=="function"?n(e):n;return r==="always"||r!==!1&&Zk(e,t)}return!1}function KT(e,t,n,r){return(e!==t||zr(r.enabled,e)===!1)&&(!n.suspense||e.state.status!=="error")&&Zk(e,n)}function Zk(e,t){return zr(t.enabled,e)!==!1&&e.isStaleByTime(fo(t.staleTime,e))}function VV(e,t){return!w2(e.getCurrentResult(),t)}function XT(e){return{onFetch:(t,n)=>{var p,f,g,y,b;const r=t.options,i=(g=(f=(p=t.fetchOptions)==null?void 0:p.meta)==null?void 0:f.fetchMore)==null?void 0:g.direction,o=((y=t.state.data)==null?void 0:y.pages)||[],s=((b=t.state.data)==null?void 0:b.pageParams)||[];let l={pages:[],pageParams:[]},u=0;const d=async()=>{let w=!1;const v=S=>{LV(S,()=>t.signal,()=>w=!0)},j=eF(t.options,t.fetchOptions),k=async(S,E,N)=>{if(w)return Promise.reject();if(E==null&&S.pages.length)return Promise.resolve(S);const P=(()=>{const B={client:t.client,queryKey:t.queryKey,pageParam:E,direction:N?"backward":"forward",meta:t.options.meta};return v(B),B})(),_=await j(P),{maxPages:M}=t.options,D=N?MV:DV;return{pages:D(S.pages,_,M),pageParams:D(S.pageParams,E,M)}};if(i&&o.length){const S=i==="backward",E=S?GV:QT,N={pages:o,pageParams:s},C=E(r,N);l=await k(N,C,S)}else{const S=e??o.length;do{const E=u===0?s[0]??r.initialPageParam:QT(r,l);if(u>0&&E==null)break;l=await k(l,E),u++}while(u<S)}return l};t.options.persister?t.fetchFn=()=>{var w,v;return(v=(w=t.options).persister)==null?void 0:v.call(w,d,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},n)}:t.fetchFn=d}}}function QT(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 GV(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 Sh,Si,Ln,ws,Ci,Xa,cL,YV=(cL=class extends iF{constructor(t){super();Fe(this,Ci);Fe(this,Sh);Fe(this,Si);Fe(this,Ln);Fe(this,ws);je(this,Sh,t.client),this.mutationId=t.mutationId,je(this,Ln,t.mutationCache),je(this,Si,[]),this.state=t.state||KV(),this.setOptions(t.options),this.scheduleGc()}setOptions(t){this.options=t,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(t){G(this,Si).includes(t)||(G(this,Si).push(t),this.clearGcTimeout(),G(this,Ln).notify({type:"observerAdded",mutation:this,observer:t}))}removeObserver(t){je(this,Si,G(this,Si).filter(n=>n!==t)),this.scheduleGc(),G(this,Ln).notify({type:"observerRemoved",mutation:this,observer:t})}optionalRemove(){G(this,Si).length||(this.state.status==="pending"?this.scheduleGc():G(this,Ln).remove(this))}continue(){var t;return((t=G(this,ws))==null?void 0:t.continue())??this.execute(this.state.variables)}async execute(t){var s,l,u,d,p,f,g,y,b,w,v,j,k,S,E,N,C,P;
405const n=()=>{ot(this,Ci,Xa).call(this,{type:"continue"})},r={client:G(this,Sh),meta:this.options.meta,mutationKey:this.options.mutationKey};je(this,ws,rF({fn:()=>this.options.mutationFn?this.options.mutationFn(t,r):Promise.reject(new Error("No mutationFn found")),onFail:(_,M)=>{ot(this,Ci,Xa).call(this,{type:"failed",failureCount:_,error:M})},onPause:()=>{ot(this,Ci,Xa).call(this,{type:"pause"})},onContinue:n,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>G(this,Ln).canRun(this)}));const i=this.state.status==="pending",o=!G(this,ws).canStart();try{if(i)n();else{ot(this,Ci,Xa).call(this,{type:"pending",variables:t,isPaused:o}),G(this,Ln).config.onMutate&&await G(this,Ln).config.onMutate(t,this,r);const M=await((l=(s=this.options).onMutate)==null?void 0:l.call(s,t,r));M!==this.state.context&&ot(this,Ci,Xa).call(this,{type:"pending",context:M,variables:t,isPaused:o})}const _=await G(this,ws).start();return await((d=(u=G(this,Ln).config).onSuccess)==null?void 0:d.call(u,_,t,this.state.context,this,r)),await((f=(p=this.options).onSuccess)==null?void 0:f.call(p,_,t,this.state.context,r)),await((y=(g=G(this,Ln).config).onSettled)==null?void 0:y.call(g,_,null,this.state.variables,this.state.context,this,r)),await((w=(b=this.options).onSettled)==null?void 0:w.call(b,_,null,t,this.state.context,r)),ot(this,Ci,Xa).call(this,{type:"success",data:_}),_}catch(_){try{await((j=(v=G(this,Ln).config).onError)==null?void 0:j.call(v,_,t,this.state.context,this,r))}catch(M){Promise.reject(M)}try{await((S=(k=this.options).onError)==null?void 0:S.call(k,_,t,this.state.context,r))}catch(M){Promise.reject(M)}try{await((N=(E=G(this,Ln).config).onSettled)==null?void 0:N.call(E,void 0,_,this.state.variables,this.state.context,this,r))}catch(M){Promise.reject(M)}try{await((P=(C=this.options).onSettled)==null?void 0:P.call(C,void 0,_,t,this.state.context,r))}catch(M){Promise.reject(M)}throw ot(this,Ci,Xa).call(this,{type:"error",error:_}),_}finally{G(this,Ln).runNext(this)}}},Sh=new WeakMap,Si=new WeakMap,Ln=new WeakMap,ws=new WeakMap,Ci=new WeakSet,Xa=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),Nn.batch(()=>{G(this,Si).forEach(r=>{r.onMutationUpdate(t)}),G(this,Ln).notify({mutation:this,type:"updated",action:t})})},cL);function KV(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var ra,oi,Ch,uL,XV=(uL=class extends Th{constructor(t={}){super();Fe(this,ra);Fe(this,oi);Fe(this,Ch);this.config=t,je(this,ra,new Set),je(this,oi,new Map),je(this,Ch,0)}build(t,n,r){const i=new YV({client:t,mutationCache:this,mutationId:++of(this,Ch)._,options:t.defaultMutationOptions(n),state:r});return this.add(i),i}add(t){G(this,ra).add(t);const n=df(t);if(typeof n=="string"){const r=G(this,oi).get(n);r?r.push(t):G(this,oi).set(n,[t])}this.notify({type:"added",mutation:t})}remove(t){if(G(this,ra).delete(t)){const n=df(t);if(typeof n=="string"){const r=G(this,oi).get(n);if(r)if(r.length>1){const i=r.indexOf(t);i!==-1&&r.splice(i,1)}else r[0]===t&&G(this,oi).delete(n)}}this.notify({type:"removed",mutation:t})}canRun(t){const n=df(t);if(typeof n=="string"){const r=G(this,oi).get(n),i=r==null?void 0:r.find(o=>o.state.status==="pending");return!i||i===t}else return!0}runNext(t){var r;const n=df(t);if(typeof n=="string"){const i=(r=G(this,oi).get(n))==null?void 0:r.find(o=>o!==t&&o.state.isPaused);return(i==null?void 0:i.continue())??Promise.resolve()}else return Promise.resolve()}clear(){Nn.batch(()=>
405{G(this,ra).forEach(t=>{this.notify({type:"removed",mutation:t})}),G(this,ra).clear(),G(this,oi).clear()})}getAll(){return Array.from(G(this,ra))}find(t){const n={exact:!0,...t};return this.getAll().find(r=>WT(n,r))}findAll(t={}){return this.getAll().filter(n=>WT(t,n))}notify(t){Nn.batch(()=>{this.listeners.forEach(n=>{n(t)})})}resumePausedMutations(){const t=this.getAll().filter(n=>n.state.isPaused);return Nn.batch(()=>Promise.all(t.map(n=>n.continue().catch(sr))))}},ra=new WeakMap,oi=new WeakMap,Ch=new WeakMap,uL);function df(e){var t;return(t=e.options.scope)==null?void 0:t.id}var Ni,dL,QV=(dL=class extends Th{constructor(t={}){super();Fe(this,Ni);this.config=t,je(this,Ni,new Map)}build(t,n,r){const i=n.queryKey,o=n.queryHash??Xk(i,n);let s=this.get(o);return s||(s=new WV({client:t,queryKey:i,queryHash:o,options:t.defaultQueryOptions(n),state:r,defaultOptions:t.getQueryDefaults(i)}),this.add(s)),s}add(t){G(this,Ni).has(t.queryHash)||(G(this,Ni).set(t.queryHash,t),this.notify({type:"added",query:t}))}remove(t){const n=G(this,Ni).get(t.queryHash);n&&(t.destroy(),n===t&&G(this,Ni).delete(t.queryHash),this.notify({type:"removed",query:t}))}clear(){Nn.batch(()=>{this.getAll().forEach(t=>{this.remove(t)})})}get(t){return G(this,Ni).get(t)}getAll(){return[...G(this,Ni).values()]}find(t){const n={exact:!0,...t};return this.getAll().find(r=>qT(n,r))}findAll(t={}){const n=this.getAll();return Object.keys(t).length>0?n.filter(r=>qT(t,r)):n}notify(t){Nn.batch(()=>{this.listeners.forEach(n=>{n(t)})})}onFocus(){Nn.batch(()=>{this.getAll().forEach(t=>{t.onFocus()})})}onOnline(){Nn.batch(()=>{this.getAll().forEach(t=>{t.onOnline()})})}},Ni=new WeakMap,dL),qt,oo,so,nc,rc,lo,ic,ac,hL,JV=(hL=class{constructor(e={}){Fe(this,qt);Fe(this,oo);Fe(this,so);Fe(this,nc);Fe(this,rc);Fe(this,lo);Fe(this,ic);Fe(this,ac);je(this,qt,e.queryCache||new QV),je(this,oo,e.mutationCache||new XV),je(this,so,e.defaultOptions||{}),je(this,nc,new Map),je(this,rc,new Map),je(this,lo,0)}mount(){of(this,lo)._++,G(this,lo)===1&&(je(this,ic,Jk.subscribe(async e=>{e&&(await this.resumePausedMutations(),G(this,qt).onFocus())})),je(this,ac,rm.subscribe(async e=>{e&&(await this.resumePausedMutations(),G(this,qt).onOnline())})))}unmount(){var e,t;of(this,lo)._--,G(this,lo)===0&&((e=G(this,ic))==null||e.call(this),je(this,ic,void 0),(t=G(this,ac))==null||t.call(this),je(this,ac,void 0))}isFetching(e){return G(this,qt).findAll({...e,fetchStatus:"fetching"}).length}isMutating(e){return G(this,oo).findAll({...e,status:"pending"}).length}getQueryData(e){var n;const t=this.defaultQueryOptions({queryKey:e});return(n=G(this,qt).get(t.queryHash))==null?void 0:n.state.data}ensureQueryData(e){const t=this.defaultQueryOptions(e),n=G(this,qt).build(this,t),r=n.state.data;return r===void 0?this.fetchQuery(e):(e.revalidateIfStale&&n.isStaleByTime(fo(t.staleTime,n))&&this.prefetchQuery(t),Promise.resolve(r))}getQueriesData(e){return G(this,qt).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=G(this,qt).get(r.queryHash),o=i==null?void 0:i.state.data,s=_V(t,o);if(s!==void 0)return G(this,qt).build(this,r).setData(s,{...n,manual:!0})}setQueriesData(e,t,n){return Nn.batch(()=>G(this,qt).findAll(e).map(({queryKey:r})=>[r,this.setQueryData(r,t,n)]))}getQueryState(e){var n;const t=this.defaultQueryOptions({queryKey:e});return(n=G(this,qt).get(t.queryHash))==null?void 0:n.state}removeQueries(e){const t=G(this,qt);Nn.batch(()=>{t.findAll(e).forEach(n=>{t.remove(n)})})}resetQueries(e,t){const n=G(this,qt);return Nn.batch(()=>(n.findAll(e).forEach(r=>{r.reset()}),this.refetchQueries({type:"active",...e},t)))}cancelQueries(e,t={}){const n={revert:!0,...t},r=Nn.batch(()=>G(this,qt).findAll(e).map(i=>i.cancel(n)));return Promise.all(r).then(sr).catch(sr)}invalidateQueries(e,t={}){return Nn.batch(()=>(G(this,qt).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=Nn.batch(()=>G(this,qt).findAll(e).filter(i=>!i.isDisabled()&&!i.isStatic()).map(i=>{let o=i.fetch(void 0,n);return n.throwOnError||(o=o.catch(sr)),i.state.fetchStatus==="paused"?Promise.resolve():o}));return Promise.all(r).then(sr)}fetchQuery(e){const t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);const n=G(this,qt).build(this,t);return n.isStaleByTime(fo(t.staleTime,n))?n.fetch(t):Promise.resolve(n.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(sr).catch(sr)}fetchInfiniteQuery(e){return e.behavior=XT(e.pages),this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(sr).catch(sr)}ensureInfiniteQueryData(e){return e.behavior=XT(e.pages),this.ensureQueryData(e)}resumePausedMutations(){return rm.isOnline()?G(this,oo).resumePausedMutations():Promise.resolve()}getQueryCache(){return G(this,qt)}getMutationCache(){return G(this,oo)}getDefaultOptions(){return G(this,so)}setDefaultOptions(e){je(this,so,e)}setQueryDefaults(e,t){G(this,nc).set(Cd(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){const t=[...G(this,nc).values()],n={};return t.forEach(r=>{Nd(e,r.queryKey)&&Object.assign(n,r.defaultOptions)}),n}setMutationDefaults(e,t){G(this,rc).set(Cd(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){const t=[...G(this,rc).values()],n={};return t.forEach(r=>{Nd(e,r.mutationKey)&&Object.assign(n,r.defaultOptions)}),n}defaultQueryOptions(e){if(e._defaulted)return e;const t={...G(this,so).queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||(t.queryHash=Xk(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===Qk&&(t.enabled=!1),t}defaultMutationOptions(e){return e!=null&&e._defaulted?e:{...G(this,so).mutations,...(e==null?void 0:e.mutationKey)&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){G(this,qt).clear(),G(this,oo).clear()}},qt=new WeakMap,oo=new WeakMap,so=new WeakMap,nc=new WeakMap,rc=new WeakMap,lo=new WeakMap,ic=new WeakMap,ac=new WeakMap,hL),sF=O.createContext(void 0),ZV=e=>{const t=O.useContext(sF);if(!t)throw new Error("No QueryClient set, use QueryClientProvider to set one");return t},eG=({client:e,children:t})=>(O.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),a.jsx(sF.Provider,{value:e,children:t})),lF=O.createContext(!1),tG=()=>O.useContext(lF);lF.Provider;function nG(){let e=!1;return{clearReset:()=>{e=!1},reset:()=>{e=!0},isReset:()=>e}}
405var rG=O.createContext(nG()),iG=()=>O.useContext(rG),aG=(e,t,n)=>{const r=n!=null&&n.state.error&&typeof e.throwOnError=="function"?tF(e.throwOnError,[n.state.error,n]):e.throwOnError;(e.suspense||e.experimental_prefetchInRender||r)&&(t.isReset()||(e.retryOnMount=!1))},oG=e=>{O.useEffect(()=>{e.clearReset()},[e])},sG=({result:e,errorResetBoundary:t,throwOnError:n,query:r,suspense:i})=>e.isError&&!t.isReset()&&!e.isFetching&&r&&(i&&e.data===void 0||tF(n,[e.error,r])),lG=e=>{if(e.suspense){const n=i=>i==="static"?i:Math.max(i??1e3,1e3),r=e.staleTime;e.staleTime=typeof r=="function"?(...i)=>n(r(...i)):n(r),typeof e.gcTime=="number"&&(e.gcTime=Math.max(e.gcTime,1e3))}},cG=(e,t)=>e.isLoading&&e.isFetching&&!t,uG=(e,t)=>(e==null?void 0:e.suspense)&&t.isPending,JT=(e,t,n)=>t.fetchOptimistic(e).catch(()=>{n.clearReset()});function dG(e,t,n){var g,y,b,w;const r=tG(),i=iG(),o=ZV(),s=o.defaultQueryOptions(e);(y=(g=o.getDefaultOptions().queries)==null?void 0:g._experimental_beforeQuery)==null||y.call(g,s);const l=o.getQueryCache().get(s.queryHash);s._optimisticResults=r?"isRestoring":"optimistic",lG(s),aG(s,i,l),oG(i);const u=!o.getQueryCache().get(s.queryHash),[d]=O.useState(()=>new t(o,s)),p=d.getOptimisticResult(s),f=!r&&e.subscribed!==!1;if(O.useSyncExternalStore(O.useCallback(v=>{const j=f?d.subscribe(Nn.batchCalls(v)):sr;return d.updateResult(),j},[d,f]),()=>d.getCurrentResult(),()=>d.getCurrentResult()),O.useEffect(()=>{d.setOptions(s)},[s,d]),uG(s,p))throw JT(s,d,i);if(sG({result:p,errorResetBoundary:i,throwOnError:s.throwOnError,query:l,suspense:s.suspense}))throw p.error;if((w=(b=o.getDefaultOptions().queries)==null?void 0:b._experimental_afterQuery)==null||w.call(b,s,p),s.experimental_prefetchInRender&&!Ps&&cG(p,r)){const v=u?JT(s,d,i):l==null?void 0:l.promise;v==null||v.catch(sr).finally(()=>{d.updateResult()})}return s.notifyOnChangeProps?p:d.trackResult(p)}function cF(e,t){return dG(e,UV)}const hG=new JV({defaultOptions:{queries:{refetchOnWindowFocus:!1,retry:1}}});fL();/** 406 * @remix-run/router v1.23.2 407 * 408 * Copyright (c) Remix Software Inc. 409 * 410 * This source code is licensed under the MIT license found in the 411 * LICENSE.md file in the root directory of this source tree. 412 * 413 * @license MIT 414 */function Td(){return Td=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},Td.apply(this,arguments)}var co;(function(e){e.Pop="POP",e.Push="PUSH",e.Replace="REPLACE"})(co||(co={}));const ZT="popstate";function pG(e){e===void 0&&(e={});function t(r,i){let{pathname:o,search:s,hash:l}=r.location;return R2("",{pathname:o,search:s,hash:l},i.state&&i.state.usr||null,i.state&&i.state.key||"default")}function n(r,i){return typeof i=="string"?i:im(i)}return mG(t,n,null,e)}function Kt(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function eA(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function fG(){return Math.random().toString(36).substr(2,8)}function eE(e,t){return{usr:e.state,key:e.key,idx:t}}function R2(e,t,n,r){return n===void 0&&(n=null),Td({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?Mc(t):t,{state:n,key:t&&t.key||r||fG()})}function im(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 Mc(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 mG(e,t,n,r){r===void 0&&(r={});let{window:i=document.defaultView,v5Compat:o=!1}=r,s=i.history,l=co.Pop,u=null,d=p();d==null&&(d=0,s.replaceState(Td({},s.state,{idx:d}),""));function p(){return(s.state||{idx:null}).idx}function f(){l=co.Pop;let v=p(),j=v==null?null:v-d;d=v,u&&u({action:l,location:w.location,delta:j})}function g(v,j){l=co.Push;let k=R2(w.location,v,j);d=p()+1;let S=eE(k,d),E=w.createHref(k);try{s.pushState(S,"",E)}catch(N){if(N instanceof DOMException&&N.name==="DataCloneError")throw N;i.location.assign(E)}o&&u&&u({action:l,location:w.location,delta:1})}function y(v,j){l=co.Replace;let k=R2(w.location,v,j);d=p();let S=eE(k,d),E=w.createHref(k);s.replaceState(S,"",E),o&&u&&u({action:l,location:w.location,delta:0})}function b(v){let j=i.location.origin!=="null"?i.location.origin:i.location.href,k=typeof v=="string"?v:im(v);return k=k.replace(/ $/,"%20"),Kt(j,"No window.location.(origin|href) available to create URL for href: "+k),new URL(k,j)}let w={get action(){return l},get location(){return e(i,s)},listen(v){if(u)throw new Error("A history only accepts one active listener");return i.addEventListener(ZT,f),u=v,()=>{i.removeEventListener(ZT,f),u=null}},createHref(v){return t(i,v)},createURL:b,encodeLocation(v){let j=b(v);return{pathname:j.pathname,search:j.search,hash:j.hash}},push:g,replace:y,go(v){return s.go(v)}};return w}var tE;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(tE||(tE={}));function gG(e,t,n){return n===void 0&&(n="/"),yG(e,t,n)}function yG(e,t,n,r){let i=typeof t=="string"?Mc(t):t,o=tA(i.pathname||"/",n);if(o==null)return null;let s=uF(e);xG(s);let l=null;for(let u=0;l==null&&u<s.length;++u){let d=PG(o);l=NG(s[u],d)}return l}function uF(e,t,n,r){t===void 0&&(t=[]),n===void 0&&(n=[]),r===void 0&&(r="");let i=(o,s,l)=>{let u={relativePath:l===void 0?o.path||"":l,caseSensitive:o.caseSensitive===!0,childrenIndex:s,route:o};u.relativePath.startsWith("/")&&(Kt(u.relativePath.startsWith(r),'Absolute route path "'+u.relativePath+'" nested under path '+('"'+r+'" is not val
414id. An absolute child route path ')+"must start with the combined path of all its parent routes."),u.relativePath=u.relativePath.slice(r.length));let d=mo([r,u.relativePath]),p=n.concat(u);o.children&&o.children.length>0&&(Kt(o.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+d+'".')),uF(o.children,t,p,d)),!(o.path==null&&!o.index)&&t.push({path:d,score:SG(d,o.index),routesMeta:p})};return e.forEach((o,s)=>{var l;if(o.path===""||!((l=o.path)!=null&&l.includes("?")))i(o,s);else for(let u of dF(o.path))i(o,s,u)}),t}function dF(e){let t=e.split("/");if(t.length===0)return[];let[n,...r]=t,i=n.endsWith("?"),o=n.replace(/\?$/,"");if(r.length===0)return i?[o,""]:[o];let s=dF(r.join("/")),l=[];return l.push(...s.map(u=>u===""?o:[o,u].join("/"))),i&&l.push(...s),l.map(u=>e.startsWith("/")&&u===""?"/":u)}function xG(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:CG(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}const vG=/^:[\w-]+$/,bG=3,wG=2,jG=1,kG=10,AG=-2,nE=e=>e==="*";function SG(e,t){let n=e.split("/"),r=n.length;return n.some(nE)&&(r+=AG),t&&(r+=wG),n.filter(i=>!nE(i)).reduce((i,o)=>i+(vG.test(o)?bG:o===""?jG:kG),r)}function CG(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 NG(e,t,n){let{routesMeta:r}=e,i={},o="/",s=[];for(let l=0;l<r.length;++l){let u=r[l],d=l===r.length-1,p=o==="/"?t:t.slice(o.length)||"/",f=TG({path:u.relativePath,caseSensitive:u.caseSensitive,end:d},p),g=u.route;if(!f)return null;
414Object.assign(i,f.params),s.push({params:i,pathname:mo([o,f.pathname]),pathnameBase:DG(mo([o,f.pathnameBase])),route:g}),f.pathnameBase!=="/"&&(o=mo([o,f.pathnameBase]))}return s}function TG(e,t){typeof e=="string"&&(e={path:e,caseSensitive:!1,end:!0});let[n,r]=EG(e.path,e.caseSensitive,e.end),i=t.match(n);if(!i)return null;let o=i[0],s=o.replace(/(.)\/+$/,"$1"),l=i.slice(1);return{params:r.reduce((d,p,f)=>{let{paramName:g,isOptional:y}=p;if(g==="*"){let w=l[f]||"";s=o.slice(0,o.length-w.length).replace(/(.)\/+$/,"$1")}const b=l[f];return y&&!b?d[g]=void 0:d[g]=(b||"").replace(/%2F/g,"/"),d},{}),pathname:o,pathnameBase:s,pattern:e}}function EG(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!0),eA(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,(s,l,u)=>(r.push({paramName:l,isOptional:u!=null}),u?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(r.push({paramName:"*"}),i+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?i+="\\/*$":e!==""&&e!=="/"&&(i+="(?:(?=\\/|$))"),[new RegExp(i,t?void 0:"i"),r]}function PG(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return eA(!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 tA(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)||"/"}const OG=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,_G=e=>OG.test(e);function IG(e,t){t===void 0&&(t="/");let{pathname:n,search:r="",hash:i=""}=typeof e=="string"?Mc(e):e,o;if(n)if(_G(n))o=n;else{if(n.includes("//")){let s=n;n=n.replace(/\/\/+/g,"/"),eA(!1,"Pathnames cannot have embedded double slashes - normalizing "+(s+" -> "+n))}n.startsWith("/")?o=rE(n.substring(1),"/"):o=rE(n,t)}else o=t;return{pathname:o,search:MG(r),hash:LG(i)}}function rE(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 Cv(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 RG(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function nA(e,t){let n=RG(e);return t?n.map((r,i)=>i===n.length-1?r.pathname:r.pathnameBase):n.map(r=>r.pathnameBase)}function rA(e,t,n,r){r===void 0&&(r=!1);let i;typeof e=="string"?i=Mc(e):(i=Td({},e),Kt(!i.pathname||!i.pathname.includes("?"),Cv("?","pathname","search",i)),Kt(!i.pathname||!i.pathname.includes("#"),Cv("#","pathname","hash",i)),Kt(!i.search||!i.search.includes("#"),Cv("#","search","hash",i)));let o=e===""||i.pathname==="",s=o?"/":i.pathname,l;if(s==null)l=n;else{let f=t.length-1;if(!r&&s.startsWith("..")){let g=s.split("/");for(;g[0]==="..";)g.shift(),f-=1;i.pathname=g.join("/")}l=f>=0?t[f]:"/"}let u=IG(i,l),d=s&&s!=="/"&&s.endsWith("/"),p=(o||s===".")&&n.endsWith("/");return!u.pathname.endsWith("/")&&(d||p)&&(u.pathname+="/"),u}const mo=e=>e.join("/").replace(/\/\/+/g,"/"),DG=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),MG=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,LG=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function FG(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const hF=["post","put","patch","delete"];new Set(hF);const BG=["get",...hF];new Set(BG);/** 415 * React Router v6.30.3 416 * 417 * Copyright (c) Remix Software Inc. 418 * 419 * This source code is licensed under the MIT license found in the 420 * LICENSE.md file in the root directory of this source tree. 421 * 422 * @license MIT 423 */function Ed(){return Ed=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},Ed.apply(this,arguments)}const iA=O.createContext(null),zG=O.createContext(null),jo=O.createContext(null),Og=O.createContext(null),va=O.createContext({outlet:null,matches:[],isDataRoute:!1}),pF=O.createContext(null);function $G(e,t){let{relative:n}=t===void 0?{}:t;Lc()||Kt(!1);let{basename:r,navigator:i}=O.useContext(jo),{hash:o,pathname:s,search:l}=gF(e,{relative:n}),u=s;return r!=="/"&&(u=s==="/"?r:mo([r,s])),i.createHref({pathname:u,search:l,hash:o})}function Lc(){return O.useContext(Og)!=null}function ba(){return Lc()||Kt(!1),O.useContext(Og).location}function fF(e){O.useContext(jo).static||O.useLayoutEffect(e)}function _g(){let{isDataRoute:e}=O.useContext(va);return e?eY():qG()}function qG(){Lc()||Kt(!1);let e=O.useContext(iA),{basename:t,future:n,navigator:r}=O.useContext(jo),{matches:i}=O.useContext(va),{pathname:o}=ba(),s=JSON.stringify(nA(i,n.v7_relativeSplatPath)),l=O.useRef(!1);return fF(()=>{l.current=!0}
423),O.useCallback(function(d,p){if(p===void 0&&(p={}),!l.current)return;if(typeof d=="number"){r.go(d);return}let f=rA(d,JSON.parse(s),o,p.relative==="path");e==null&&t!=="/"&&(f.pathname=f.pathname==="/"?t:mo([t,f.pathname])),(p.replace?r.replace:r.push)(f,p.state,p)},[t,r,s,o,e])}function mF(){let{matches:e}=O.useContext(va),t=e[e.length-1];return t?t.params:{}}function gF(e,t){let{relative:n}=t===void 0?{}:t,{future:r}=O.useContext(jo),{matches:i}=O.useContext(va),{pathname:o}=ba(),s=JSON.stringify(nA(i,r.v7_relativeSplatPath));return O.useMemo(()=>rA(e,JSON.parse(s),o,n==="path"),[e,s,o,n])}function WG(e,t){return UG(e,t)}function UG(e,t,n,r){Lc()||Kt(!1);let{navigator:i}=O.useContext(jo),{matches:o}=O.useContext(va),s=o[o.length-1],l=s?s.params:{};s&&s.pathname;let u=s?s.pathnameBase:"/";s&&s.route;let d=ba(),p;if(t){var f;let v=typeof t=="string"?Mc(t):t;u==="/"||(f=v.pathname)!=null&&f.startsWith(u)||Kt(!1),p=v}else p=d;let g=p.pathname||"/",y=g;if(u!=="/"){let v=u.replace(/^\//,"").split("/");y="/"+g.replace(/^\//,"").split("/").slice(v.length).join("/")}let b=gG(e,{pathname:y}),w=KG(b&&b.map(v=>Object.assign({},v,{params:Object.assign({},l,v.params),pathname:mo([u,i.encodeLocation?i.encodeLocation(v.pathname).pathname:v.pathname]),pathnameBase:v.pathnameBase==="/"?u:mo([u,i.encodeLocation?i.encodeLocation(v.pathnameBase).pathname:v.pathnameBase])})),o,n,r);return t&&w?O.createElement(Og.Provider,{value:{location:Ed({pathname:"/",search:"",hash:"",state:null,key:"default"},p),navigationType:co.Pop}},w):w}function HG(){let e=ZG(),t=FG(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 O.createElement(O.Fragment,null,O.createElement("h2",null,"Unexpected Application Error!"),O.createElement("h3",{style:{fontStyle:"italic"}},t),n?O.createElement("pre",{style:i},n):null,null)}const VG=O.createElement(HG,null);class GG extends O.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?O.createElement(va.Provider,{value:this.props.routeContext},O.createElement(pF.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function YG(e){let{routeContext:t,match:n,children:r}=e,i=O.useContext(iA);return i&&i.static&&i.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(i.staticContext._deepestRenderedBoundaryId=n.route.id),O.createElement(va.Provider,{value:t},r)}function KG(e,t,n,r){var i;if(t===void 0&&(t=[]),n===void 0&&(n=null),r===void 0&&(r=null),e==null){var o;if(!n)return null;if(n.errors)e=n.matches;else if((o=r)!=null&&o.v7_partialHydration&&t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let s=e,l=(i=n)==null?void 0:i.errors;if(l!=null){let p=s.findIndex(f=>f.route.id&&(l==null?void 0:l[f.route.id])!==void 0);p>=0||Kt(!1),s=s.slice(0,Math.min(s.length,p+1))}let u=!1,d=-1;if(n&&r&&r.v7_partialHydration)for(let p=0;p<s.length;p++){let f=s[p];if((f.route.HydrateFallback||f.route.hydrateFallbackElement)&&(d=p),f.route.id){let{loaderData:g,errors:y}=n,b=f.route.loader&&g[f.route.id]===void 0&&(!y||y[f.route.id]===void 0);if(f.route.lazy||b){u=!0,d>=0?s=s.slice(0,d+1):s=[s[0]];break}}}return s.reduceRight((p,f,g)=>{let y,b=!1,w=null,v=null;n&&(y=l&&f.route.id?l[f.route.id]:void 0,w=f.route.errorElement||VG,u&&(d<0&&g===0?(tY("route-fallback"),b=!0,v=null):d===g&&(b=!0,v=f.route.hydrateFallbackElement||null)));let j=t.concat(s.slice(0,g+1)),k=()=>{let S;return y?S=w:b?S=v:f.route.Component?S=O.createElement(f.route.Component,null):f.route.element?S=f.route.element:S=p,O.createElement(YG,{match:f,routeContext:{outlet:p,matches:j,isDataRoute:n!=null},children:S})};return n&&(f.route.ErrorBoundary||f.route.errorElement||g===0)?O.createElement(GG,{location:n.location,revalidation:n.revalidation,component:w,error:y,children:k(),routeC
423ontext:{outlet:null,matches:j,isDataRoute:!0}}):k()},null)}var yF=(function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e})(yF||{}),xF=(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})(xF||{});function XG(e){let t=O.useContext(iA);return t||Kt(!1),t}function QG(e){let t=O.useContext(zG);return t||Kt(!1),t}function JG(e){let t=O.useContext(va);return t||Kt(!1),t}function vF(e){let t=JG(),n=t.matches[t.matches.length-1];return n.route.id||Kt(!1),n.route.id}function ZG(){var e;let t=O.useContext(pF),n=QG(),r=vF();return t!==void 0?t:(e=n.errors)==null?void 0:e[r]}function eY(){let{router:e}=XG(yF.UseNavigateStable),t=vF(xF.UseNavigateStable),n=O.useRef(!1);return fF(()=>{n.current=!0}),O.useCallback(function(i,o){o===void 0&&(o={}),n.current&&(typeof i=="number"?e.navigate(i):e.navigate(i,Ed({fromRouteId:t},o)))},[e,t])}const iE={};function tY(e,t,n){iE[e]||(iE[e]=!0)}function nY(e,t){e==null||e.v7_startTransition,e==null||e.v7_relativeSplatPath}function Nv(e){let{to:t,replace:n,state:r,relative:i}=e;Lc()||Kt(!1);let{future:o,static:s}=O.useContext(jo),{matches:l}=O.useContext(va),{pathname:u}=ba(),d=_g(),p=rA(t,nA(l,o.v7_relativeSplatPath),u,i==="path"),f=JSON.stringify(p);return O.useEffect(()=>d(JSON.parse(f),{replace:n,state:r,relative:i}),[d,f,i,n,r]),null}function $e(e){Kt(!1)}function rY(e){let{basename:t="/",children:n=null,location:r,navigationType:i=co.Pop,navigator:o,static:s=!1,future:l}=e;Lc()&&Kt(!1);let u=t.replace(/^\/*/,"/"),d=O.useMemo(()=>({basename:u,navigator:o,static:s,future:Ed({v7_relativeSplatPath:!1},l)}),[u,l,o,s]);typeof r=="string"&&(r=Mc(r));let{pathname:p="/",search:f="",hash:g="",state:y=null,key:b="default"}=r,w=O.useMemo(()=>{let v=tA(p,u);return v==null?null:{location:{pathname:v,search:f,hash:g,state:y,key:b},navigationType:i}},[u,p,f,g,y,b,i]);return w==null?null:O.createElement(jo.Provider,{value:d},O.createElement(Og.Provider,{children:n,value:w}))}function iY(e){let{children:t,location:n}=e;return WG(D2(t),n)}new Promise(()=>{});function D2(e,t){t===void 0&&(t=[]);let n=[];return O.Children.forEach(e,(r,i)=>{if(!O.isValidElement(r))return;let o=[...t,i];if(r.type===O.Fragment){n.push.apply(n,D2(r.props.children,o));return}r.type!==$e&&Kt(!1),!r.props.index||!r.props.children||Kt(!1);let s={id:r.props.id||o.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&&(s.children=D2(r.props.children,o)),n.push(s)}),n}/** 424 * React Router DOM v6.30.3 425 * 426 * Copyright (c) Remix Software Inc. 427 * 428 * This source code is licensed under the MIT license found in the 429 * LICENSE.md file in the root directory of this source tree. 430 * 431 * @license MIT 432 */function M2(){return M2=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},M2.apply(this,arguments)}function aY(e,t){if(e==null)return{};var n={},r=Object.keys(e),i,o;for(o=0;o<r.length;o++)i=r[o],!(t.indexOf(i)>=0)&&(n[i]=e[i]);return n}function oY(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function sY(e,t){return e.button===0&&(!t||t==="_self")&&!oY(e)}const lY=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],cY="6";try{window.__reactRouterVersion=cY}catch{}const uY="startTransition",aE=Wk[uY];function dY(e){let{basename:t,children:n,future:r,window:i}=e,o=O.useRef();o.current==null&&(o.current=pG({window:i,v5Compat:!0}));let s=o.current,[l,u]=O.useState({action:s.action,location:s.location}),{v7_startTransition:d}=r||{},p=O.useCallback(f=>{d&&aE?aE(()=>u(f)):u(f)},[u,d]);return O.useLayoutEffect(()=>s.listen(p),[s,p]),O.useEffect(()=>nY(r),[r]),O.createElement(rY,{basename:t,children:n,location:l.location,navigationType:l.action,navigator:s,future:r})}const hY=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",pY=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,ye=O.forwardRef(function(t,n){let{onClick:r,relative:i,reloadDocument:o,replace:s,state:l,target:u,to:d,preventScrollReset:p,viewTransition:f}
432=t,g=aY(t,lY),{basename:y}=O.useContext(jo),b,w=!1;if(typeof d=="string"&&pY.test(d)&&(b=d,hY))try{let S=new URL(window.location.href),E=d.startsWith("//")?new URL(S.protocol+d):new URL(d),N=tA(E.pathname,y);E.origin===S.origin&&N!=null?d=N+E.search+E.hash:w=!0}catch{}let v=$G(d,{relative:i}),j=fY(d,{replace:s,state:l,target:u,preventScrollReset:p,relative:i,viewTransition:f});function k(S){r&&r(S),S.defaultPrevented||j(S)}return O.createElement("a",M2({},g,{href:b||v,onClick:w||o?r:k,ref:n,target:u}))});var oE;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(oE||(oE={}));var sE;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(sE||(sE={}));function fY(e,t){let{target:n,replace:r,state:i,preventScrollReset:o,relative:s,viewTransition:l}=t===void 0?{}:t,u=_g(),d=ba(),p=gF(e,{relative:s});return O.useCallback(f=>{if(sY(f,n)){f.preventDefault();let g=r!==void 0?r:im(d)===im(p);u(e,{replace:g,state:i,preventScrollReset:o,relative:s,viewTransition:l})}},[d,u,p,r,i,n,e,o,s,l])}function bF(e,t){return function(){return e.apply(t,arguments)}}const{toString:mY}=Object.prototype,{getPrototypeOf:oc}=Object,{iterator:Eh,toStringTag:wF}=Symbol,am=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),Pd=(e,t)=>{let n=e;const r=[];for(;n!=null&&n!==Object.prototype;){if(r.indexOf(n)!==-1)return!1;if(r.push(n),am(n,t))return!0;n=oc(n)}return!1},gY=(e,t)=>
vendor: 44,002 bytes, lines 432-440
432e!=null&&Pd(e,t)?e[t]:void 0,aA=(e=>t=>{const n=mY.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),fi=e=>(e=e.toLowerCase(),t=>aA(t)===e),Ig=e=>t=>typeof t===e,{isArray:Os}=Array,sc=Ig("undefined");function Fc(e){return e!==null&&!sc(e)&&e.constructor!==null&&!sc(e.constructor)&&cr(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const jF=fi("ArrayBuffer");function yY(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&jF(e.buffer),t}const xY=Ig("string"),cr=Ig("function"),kF=Ig("number"),Bc=e=>e!==null&&typeof e=="object",vY=e=>e===!0||e===!1,Hf=e=>{if(!Bc(e))return!1;const t=oc(e);return(t===null||t===Object.prototype||oc(t)===null)&&!Pd(e,wF)&&!Pd(e,Eh)},bY=e=>{if(!Bc(e)||Fc(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},wY=fi("Date"),jY=fi("File"),kY=e=>!!(e&&typeof e.uri<"u"),AY=e=>e&&typeof e.getParts<"u",SY=fi("Blob"),CY=fi("FileList"),NY=e=>Bc(e)&&cr(e.pipe);function TY(){return typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{}}const lE=TY(),cE=typeof lE.FormData<"u"?lE.FormData:void 0,EY=e=>{if(!e)return!1;if(cE&&e instanceof cE)return!0;const t=oc(e);if(!t||t===Object.prototype||!cr(e.append))return!1;const n=aA(e);return n==="formdata"||n==="object"&&cr(e.toString)&&e.toString()==="[object FormData]"},PY=fi("URLSearchParams"),[OY,_Y,IY,RY]=["ReadableStream","Request","Response","Headers"].map(fi),DY=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Ph(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,i;if(typeof e!="object"&&(e=[e]),Os(e))for(r=0,i=e.length;r<i;r++)t.call(null,e[r],r,e);else{if(Fc(e))return;const o=n?Object.getOwnPropertyNames(e):Object.keys(e),s=o.length;let l;for(r=0;r<s;r++)l=o[r],t.call(null,e[l],l,e)}}function AF(e,t){if(Fc(e))return null;t=t.toLowerCase();const n=Object.keys(e);let r=n.length,i;for(;r-- >0;)if(i=n[r],t===i.toLowerCase())return i;return null}const as=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,SF=e=>!sc(e)&&e!==as;function L2(...e){const{caseless:t,skipUndefined:n}=SF(this)&&this||{},r={},i=(o,s)=>{if(s==="__proto__"||s==="constructor"||s==="prototype")return;const l=t&&typeof s=="string"&&AF(r,s)||s,u=am(r,l)?r[l]:void 0;Hf(u)&&Hf(o)?r[l]=L2(u,o):Hf(o)?r[l]=L2({},o):Os(o)?r[l]=o.slice():(!n||!sc(o))&&(r[l]=o)};for(let o=0,s=e.length;o<s;o++){const l=e[o];if(!l||Fc(l)||(Ph(l,i),typeof l!="object"||Os(l)))continue;const u=Object.getOwnPropertySymbols(l);for(let d=0;d<u.length;d++){const p=u[d];GY.call(l,p)&&i(l[p],p)}}return r}const MY=(e,t,n,{allOwnKeys:r}={})=>(Ph(t,(i,o)=>{n&&cr(i)?Object.defineProperty(e,o,{__proto__:null,value:bF(i,n),writable:!0,enumerable:!0,configurable:!0}):Object.defineProperty(e,o,{__proto__:null,value:i,writable:!0,enumerable:!0,configurable:!0})},{allOwnKeys:r}),e),LY=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),FY=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),Object.defineProperty(e.prototype,"constructor",{__proto__:null,value:e,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(e,"super",{__proto__:null,value:t.prototype}),n&&Object.assign(e.prototype,n)},BY=(e,t,n,r)=>{let i,o,s;const l={};if(t=t||{},e==null)return t;do{for(i=Object.getOwnPropertyNames(e),o=i.length;o-- >0;)s=i[o],(!r||r(s,e,t))&&!l[s]&&(t[s]=e[s],l[s]=!0);e=n!==!1&&oc(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},zY=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},$Y=e=>{if(!e)return null;if(Os(e))return e;let t=e.length;if(!kF(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},qY=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&oc(Uint8Array)),WY=(e,t)=>{const r=(e&&e[Eh]).call(e);let i;for(;(i=r.next())&&!i.done;){const o=i.value;t.call(e,o[0],o[1])}},UY=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},HY=fi("HTMLFormElement"),VY=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,i){return r.toUpperCase()+i}),{propertyIsEnumerable:GY}=Object.prototype,YY=fi("RegExp"),CF=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};Ph(n,(i,o)=>{let s;(s=t(i,o,e))!==!1&&(r[o]=s||i)}),Object.defineProperties(e,r)},KY=e=>{CF(e,(t,n)=>{if(cr(e)&&["arguments","caller","callee"].includes(n))return!1;const r=e[n];if(cr(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},XY=(e,t)=>{const n={},r=i=>{i.forEach(o=>{n[o]=!0})};return Os(e)?r(e):r(String(e).split(t)),n},QY=()=>{},JY=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function ZY(e){return!!(e&&cr(e.append)&&e[wF]==="FormData"&&e[Eh])}const eK=e=>{const t=new WeakSet,n=r=>{if(Bc(r)){if(t.has(r))return;if(Fc(r))return r;if(!("toJSON"in r)){t.add(r);const i=Os(r)?[]:{};return Ph(r,(o,s)=>{const l=n(o);!sc(l)&&(i[s]=l)}),t.delete(r),i}}return r};return n(e)},tK=fi("AsyncFunction"),nK=e=>e&&(Bc(e)||cr(e))&&cr(e.then)&&cr(e.catch),NF=((e,t)=>e?setImmediate:t?((n,r)=>(as.addEventListener("message",({source:i,data:o})=>{i===as&&o===n&&r.length&&r.shift()()},!1),i=>{r.push(i),as.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",cr(as.postMessage)),rK=typeof queueMicrotask<"u"?queueMicrotask.bind(as):typeof process<"u"&&process.nextTick||NF,TF=e=>e!=null&&cr(e[Eh]),iK=e=>e!=null&&Pd(e,Eh)&&TF(e),Q={isArray:Os,isArrayBuffer:jF,isBuffer:Fc,isFormData:EY,isArrayBufferView:yY,isString:xY,isNumber:kF,isBoolean:vY,isObject:Bc,isPlainObject:Hf,isEmptyObject:bY,isReadableStream:OY,isRequest:_Y,isResponse:IY,isHeaders:RY,isUndefined:sc,isDate:wY,isFile:jY,isReactNativeBlob:kY,isReactNative:AY,isBlob:SY,isRegExp:YY,isFunction:cr,isStream:NY,isURLSearchParams:PY,isTypedArray:qY,isFileList:CY,forEach:Ph,merge:L2,extend:MY,trim:DY,stripBOM:LY,inherits:FY,toFlatObject:BY,kindOf:aA,kindOfTest:fi,endsWith:zY,toArray:$Y,forEachEntry:WY,matchAll:UY,isHTMLForm:HY,hasOwnProperty:am,hasOwnProp:am,hasOwnInPrototypeChain:Pd,getSafeProp:gY,reduceDescriptors:CF,freezeMethods:KY,toObjectSet:XY,toCamelCase:VY,noop:QY,toFiniteNumber:JY,findKey:AF,global:as,isContextDefined:SF,isSpecCompliantForm:ZY,toJSONObject:eK,isAsyncFn:tK,isThenable:nK,setImmediate:NF,asap:rK,isIterable:TF,isSafeIterable:iK},aK=Q.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),oK=e=>{const t={};let n,r,i;return e&&e.split(` 433`).forEach(function(s){i=s.indexOf(":"),n=s.substring(0,i).trim().toLowerCase(),r=s.substring(i+1).trim(),!(!n||t[n]&&aK[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t};function sK(e){let t=0,n=e.length;for(;t<n;){const r=e.charCodeAt(t);if(r!==9&&r!==32)break;t+=1}for(;n>t;){const r=e.charCodeAt(n-1);if(r!==9&&r!==32)break;n-=1}return t===0&&n===e.length?e:e.slice(t,n)}const lK=new RegExp("[\\u0000-\\u0008\\u000a-\\u001f\\u007f]+","g"),cK=new RegExp("[^\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+","g");function oA(e,t){return Q.isArray(e)?e.map(n=>oA(n,t)):sK(String(e).replace(t,""))}const uK=e=>oA(e,lK),dK=e=>oA(e,cK);function EF(e){const t=Object.create(null);return Q.forEach(e.toJSON(),(n,r)=>{t[r]=dK(n)}),t}const uE=Symbol("internals");function Fu(e){return e&&String(e).trim().toLowerCase()}function Vf(e){return e===!1||e==null?e:Q.isArray(e)?e.map(Vf):uK(String(e))}function hK(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const pK=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Tv(e,t,n,r,i){if(Q.isFunction(r))return r.call(this,t,n);if(i&&(t=n),!!Q.isString(t)){if(Q.isString(r))return t.indexOf(r)!==-1;if(Q.isRegExp(r))return r.test(t)}}function fK(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function mK(e,t){const n=Q.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{__proto__:null,value:function(i,o,s){return this[r].call(this,t,i,o,s)},configurable:!0})})}let Un=class{constructor(t){t&&this.set(t)}set(t,n,r){const i=this;function o(l,u,d){const p=Fu(u);if(!p)return;const f=Q.findKey(i,p);(!f||i[f]===void 0||d===!0||d===void 0&&i[f]!==!1)&&(i[f||u]=Vf(l))}const s=(l,u)=>Q.forEach(l,(d,p)=>o(d,p,u));if(Q.isPlainObject(t)||t instanceof this.constructor)s(t,n);else if(Q.isString(t)&&(t=t.trim())&&!pK(t))s(oK(t),n);else if(Q.isObject(t)&&Q.isSafeIterable(t)){let l=Object.create(null),u,d;for(const p of t){if(!Q.isArray(p))throw new TypeError("Object iterator must return a key-value pair");d=p[0],Q.hasOwnProp(l,d)?(u=l[d],l[d]=Q.isArray(u)?[...u,p[1]]:[u,p[1]]):l[d]=p[1]}s(l,n)}else t!=null&&o(n,t,r);return this}get(t,n){if(t=Fu(t),t){const r=Q.findKey(this,t);if(r){const i=this[r];if(!n)return i;if(n===!0)return hK(i);if(Q.isFunction(n))return n.call(this,i,r);if(Q.isRegExp(n))return n.exec(i);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=Fu(t),t){const r=Q.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||Tv(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let i=!1;function o(s){if(s=Fu(s),s){const l=Q.findKey(r,s);l&&(!n||Tv(r,r[l],l,n))&&(delete r[l],i=!0)}}return Q.isArray(t)?t.forEach(o):o(t),i}clear(t){const n=Object.keys(this);let r=n.length,i=!1;for(;r--;){const o=n[r];(!t||Tv(this,this[o],o,t,!0))&&(delete this[o],i=!0)}return i}normalize(t){const n=this,r={};return Q.forEach(this,(i,o)=>{const s=Q.findKey(r,o);if(s){n[s]=Vf(i),delete n[o];return}const l=t?fK(o):String(o).trim();l!==o&&delete n[o],n[l]=Vf(i),r[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return Q.forEach(this,(r,i)=>{r!=null&&r!==!1&&(n[i]=t&&Q.isArray(r)?r.join(", "):r)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,n])=>t+": "+n).join(` 434`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...n){const r=new this(t);return n.forEach(i=>r.set(i)),r}static accessor(t){const r=(this[uE]=this[uE]={accessors:{}}).accessors,i=this.prototype;function o(s){const l=Fu(s);r[l]||(mK(i,s),r[l]=!0)}return Q.isArray(t)?t.forEach(o):o(t),this}};Un.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);Q.reduceDescriptors(Un.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});Q.freezeMethods(Un);const gK="[REDACTED ****]";function yK(e){if(Q.hasOwnProp(e,"toJSON"))return!0;let t=Object.getPrototypeOf(e);for(;t&&t!==Object.prototype;){if(Q.hasOwnProp(t,"toJSON"))return!0;t=Object.getPrototypeOf(t)}return!1}function xK(e,t){const n=new Set(t.map(o=>String(o).toLowerCase())),r=[],i=o=>{if(o===null||typeof o!="object"||Q.isBuffer(o))return o;if(r.indexOf(o)!==-1)return;o instanceof Un&&(o=o.toJSON()),r.push(o);let s;if(Q.isArray(o))s=[],o.forEach((l,u)=>{const d=i(l);Q.isUndefined(d)||(s[u]=d)});else{if(!Q.isPlainObject(o)&&yK(o))return r.pop(),o;s=Object.create(null);for(const[l,u]of Object.entries(o)){const d=n.has(l.toLowerCase())?gK:i(u);Q.isUndefined(d)||(s[l]=d)}}return r.pop(),s};return i(e)}let ve=class PF extends Error{static from(t,n,r,i,o,s){const l=new PF(t.message,n||t.code,r,i,o);return Object.defineProperty(l,"cause",{__proto__:null,value:t,writable:!0,enumerable:!1,configurable:!0}),l.name=t.name,t.status!=null&&l.status==null&&(l.status=t.status),s&&Object.assign(l,s),l}constructor(t,n,r,i,o){super(t),Object.defineProperty(this,"message",{__proto__:null,value:t,enumerable:!0,writable:!0,configurable:!0}),this.name="AxiosError",this.isAxiosError=!0,n&&(this.code=n),r&&(this.config=r),i&&(this.request=i),o&&(this.response=o,this.status=o.status)}toJSON(){const t=this.config,n=t&&Q.hasOwnProp(t,"redact")?t.redact:void 0,r=Q.isArray(n)&&n.length>0?xK(t,n):Q.toJSONObject(t);return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:r,code:this.code,status:this.status}}};ve.ERR_BAD_OPTION_VALUE="ERR_BAD_OPTION_VALUE";ve.ERR_BAD_OPTION="ERR_BAD_OPTION";ve.ECONNABORTED="ECONNABORTED";ve.ETIMEDOUT="ETIMEDOUT";ve.ECONNREFUSED="ECONNREFUSED";ve.ERR_NETWORK="ERR_NETWORK";ve.ERR_FR_TOO_MANY_REDIRECTS="ERR_FR_TOO_MANY_REDIRECTS";ve.ERR_DEPRECATED="ERR_DEPRECATED";ve.ERR_BAD_RESPONSE="ERR_BAD_RESPONSE";ve.ERR_BAD_REQUEST="ERR_BAD_REQUEST";ve.ERR_CANCELED="ERR_CANCELED";ve.ERR_NOT_SUPPORT="ERR_NOT_SUPPORT";ve.ERR_INVALID_URL="ERR_INVALID_URL";ve.ERR_FORM_DATA_DEPTH_EXCEEDED="ERR_FORM_DATA_DEPTH_EXCEEDED";const vK=null,OF=100;function F2(e){return Q.isPlainObject(e)||Q.isArray(e)}function _F(e){return Q.endsWith(e,"[]")?e.slice(0,-2):e}function Ev(e,t,n){return e?e.concat(t).map(function(i,o){return i=_F(i),!n&&o?"["+i+"]":i}).join(n?".":""):t}function bK(e){return Q.isArray(e)&&!e.some(F2)}const wK=Q.toFlatObject(Q,{},null,function(t){return/^is[A-Z]/.test(t)});function Rg(e,t,n){if(!Q.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=Q.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(k,S){return!Q.isUndefined(S[k])});const r=n.metaTokens,i=n.visitor||b,o=n.dots,s=n.indexes,l=n.Blob||typeof Blob<"u"&&Blob,u=n.maxDepth===void 0?OF:n.maxDepth,d=l&&Q.isSpecCompliantForm(t),p=[];if(!Q.isFunction(i))throw new TypeError("visitor must be a function");function f(j){if(j===null)return"";if(Q.isDate(j))return j.toISOString();if(Q.isBoolean(j))return j.toString();if(!d&&Q.isBlob(j))throw new ve("Blob is not supported. Use a Buffer instead.");if(Q.isArrayBuffer(j)||Q.isTypedArray(j)){if(d&&typeof l=="function")return new l([j]);if(typeof Buffer<"u")return Buffer.from(j);throw new ve("Blob is not supported. Use a Buffer instead.",ve.ERR_NOT_SUPPORT)}return j}function g(j){if(j>u)throw new ve("Object is too deeply nested ("+j+" levels). Max depth: "+u,ve.ERR_FORM_DATA_DEPTH_EXCEEDED)}function y(j,k){if(u===1/0)return JSON.stringify(j);const S=[];return JSON.stringify(j,function(N,C){if(!Q.isObject(C))return C;for(;S.length&&S[S.length-1]!==this;)S.pop();return S.push(C),g(k+S.length-1),C})}function b(j,k,S){let E=j;if(Q.isReactNative(t)&&Q.isReactNativeBlob(j))return t.append(Ev(S,k,o),f(j)),!1;if(j&&!S&&typeof j=="object"){if(Q.endsWith(k,"{}"))k=r?k:k.slice(0,-2),j=y(j,1);else if(Q.isArray(j)&&bK(j)||(Q.isFileList(j)||Q.endsWith(k,"[]"))&&(E=Q.toArray(j)))return k=_F(k),E.forEach(function(C,P){!(Q.isUndefined(C)||C===null)&&t.append(s===!0?Ev([k],P,o):s===null?k:k+"[]",f(C))}),!1}return F2(j)?!0:(t.append(Ev(S,k,o),f(j)),!1)}const w=Object.assign(wK,{defaultVisitor:b,convertValue:f,isVisitable:F2});function v(j,k,S=0){if(!Q.isUndefined(j)){if(g(S),p.indexOf(j)!==-1)throw new Error("Circular reference detected in "+k.join("."));p.push(j),Q.forEach(j,function(N,C){(!(Q.isUndefined(N)||N===null)&&i.call(t,N,Q.isString(C)?C.trim():C,k,w))===!0&&v(N,k?k.concat(C):[C],S+1)}),p.pop()}}if(!Q.isObject(e))throw new TypeError("data must be an object");return v(e),t}function dE(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"};return encodeURIComponent(e).replace(/[!'()~]|%20/g,function(r){return t[r]})}function sA(e,t){this._pairs=[],e&&Rg(e,this,t)}const IF=sA.prototype;IF.append=function(t,n){this._pairs.push([t,n])};IF.toString=function(t){const n=t?r=>t.call(this,r,dE):dE;return this._pairs.map(function(i){return n(i[0])+"="+n(i[1])},"").join("&")};function jK(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function RF(e,t,n){if(!t)return e;e=e||"";const r=Q.isFunction(n)?{serialize:n}:n,i=Q.getSafeProp(r,"encode")||jK,o=Q.getSafeProp(r,"serialize");let s;if(o?s=o(t,r):s=Q.isURLSearchParams(t)?t.toString():new sA(t,r).toString(i),s){const l=e.indexOf("#");l!==-1&&(e=e.slice(0,l)),e+=(e.indexOf("?")===-1?"?":"&")+s}return e}class hE{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){Q.forEach(this.handlers,function(r){r!==null&&t(r)})}}const lA={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1,legacyInterceptorReqResOrdering:!0,advertiseZstdAcceptEncoding:!1,validateStatusUndefinedResolves:!0},kK=typeof URLSearchParams<"u"?URLSearchParams:sA,AK=typeof FormData<"u"?FormData:null,SK=typeof Blob<"u"?Blob:null,CK={isBrowser:!0,classes:{URLSearchParams:kK,FormData:AK,Blob:SK},protocols:["http","https","file","blob","url","data"]},cA=typeof window<"u"&&typeof document<"u",B2=typeof navigator=="object"&&navigator||void 0,NK=cA&&(!B2||["ReactNative","NativeScript","NS"].indexOf(B2.product)<0),TK=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",EK=cA&&window.location.href||"http://localhost",PK=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:cA,hasStandardBrowserEnv:NK,hasStandardBrowserWebWorkerEnv:TK,navigator:B2,origin:EK},Symbol.toStringTag,{value:"Module"})),En={...PK,...CK};function OK(e,t){return Rg(e,new En.classes.URLSearchParams,{visitor:function(n,r,i,o){return En.isNode&&Q.isBuffer(n)?(this.append(r,n.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)},...t})}const pE=OF;function DF(e){if(e>pE)throw new ve("FormData field is too deeply nested ("+e+" levels). Max depth: "+pE,ve.ERR_FORM_DATA_DEPTH_EXCEEDED)}function _K(e){const t=[],n=/\w+|\[(\w*)]/g;let r;for(;(r=n.exec(e))!==null;)DF(t.length),t.push(r[0]==="[]"?"":r[1]||r[0]);return t}function IK(e){const t={},n=Object.keys(e);let r;const i=n.length;let o;for(r=0;r<i;r++)o=n[r],t[o]=e[o];return t}function MF(e){function t(n,r,i,o){DF(o);let s=n[o++];if(s==="__proto__")return!0;const l=Number.isFinite(+s),u=o>=n.length;return s=!s&&Q.isArray(i)?i.length:s,u?(Q.hasOwnProp(i,s)?i[s]=Q.isArray(i[s])?i[s].concat(r):[i[s],r]:i[s]=r,!l):((!Q.hasOwnProp(i,s)||!Q.isObject(i[s]))&&(i[s]=[]),t(n,r,i[s],o)&&Q.isArray(i[s])&&(i[s]=IK(i[s])),!l)}if(Q.isFormData(e)&&Q.isFunction(e.entries)){const n={};return Q.forEachEntry(e,(r,i)=>{t(_K(r),i,n,0)}),n}return null}const bl=(e,t)=>e!=null&&Q.hasOwnProp(e,t)?e[t]:void 0;function RK(e,t,n){if(Q.isString(e))try{return(t||JSON.parse)(e),Q.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const Oh={transitional:lA,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",i=r.indexOf("application/json")>-1,o=Q.isObject(t);if(o&&Q.isHTMLForm(t)&&(t=new FormData(t)),Q.isFormData(t))return i?JSON.stringify(MF(t)):t;if(Q.isArrayBuffer(t)||Q.isBuffer(t)||Q.isStream(t)||Q.isFile(t)||Q.isBlob(t)||Q.isReadableStream(t))return t;if(Q.isArrayBufferView(t))return t.buffer;if(Q.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let l;if(o){const u=bl(this,"formSerializer");if(r.indexOf("application/x-www-form-urlencoded")>-1)return OK(t,u).toString();if((l=Q.isFileList(t))||r.indexOf("multipart/form-data")>-1){const d=bl(this,"env"),p=d&&d.FormData;return Rg(l?{"files[]":t}:t,p&&new p,u)}}return o||i?(n.setContentType("application/json",!1),RK(t)):t}],transformResponse:[function(t){const n=bl(this,"transitional")||Oh.transitional,r=n&&n.forcedJSONParsing,i=bl(this,"responseType"),o=i==="json";if(Q.isResponse(t)||Q.isReadableStream(t))return t;if(t&&Q.isString(t)&&(r&&!i||o)){const l=!(n&&n.silentJSONParsing)&&o;try{return JSON.parse(t,bl(this,"parseReviver"))}catch(u){if(l)throw u.name==="SyntaxError"?ve.from(u,ve.ERR_BAD_RESPONSE,this,null,bl(this,"response")):u}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:En.classes.FormData,Blob:En.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};Q.forEach(["delete","get","head","post","put","patch","query"],e=>{Oh.headers[e]={}});function Pv(e,t){const n=this||Oh,r=t||n,i=Un.from(r.headers);let o=r.data;return Q.forEach(e,function(l){o=l.call(n,o,i.normalize(),t?t.status:void 0)}),i.normalize(),o}function LF(e){return!!(e&&e.__CANCEL__)}let _h=class extends ve{constructor(t,n,r){super(t??"canceled",ve.ERR_CANCELED,n,r),this.name="CanceledError",this.__CANCEL__=!0}};function FF(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new ve("Request failed with status code "+n.status,n.status>=400&&n.status<500?ve.ERR_BAD_REQUEST:ve.ERR_BAD_RESPONSE,n.config,n.request,n))}function DK(e){const t=/^([-+\w]{1,25}):(?:\/\/)?/.exec(e);return t&&t[1]||""}function MK(e,t){e=e||10;const n=new Array(e),r=new Array(e);let i=0,o=0,s;return t=t!==void 0?t:1e3,function(u){const d=Date.now(),p=r[o];s||(s=d),n[i]=u,r[i]=d;let f=o,g=0;for(;f!==i;)g+=n[f++],f=f%e;if(i=(i+1)%e,i===o&&(o=(o+1)%e),d-s<t)return;const y=p&&d-p;return y?Math.round(g*1e3/y):void 0}}function LK(e,t){let n=0,r=1e3/t,i,o;const s=(d,p=Date.now())=>{n=p,i=null,o&&(clearTimeout(o),o=null),e(...d)};return[(...d)=>{const p=Date.now(),f=p-n;f>=r?s(d,p):(i=d,o||(o=setTimeout(()=>{o=null,s(i)},r-f)))},()=>i&&s(i)]}const om=(e,t,n=3)=>{let r=0;const i=MK(50,250);return LK(o=>{if(!o||typeof o.loaded!="number")return;const s=o.loaded,l=o.lengthComputable?o.total:void 0,u=l!=null?Math.min(s,l):s,d=Math.max(0,u-r),p=i(d);r=Math.max(r,u);const f={loaded:u,total:l,progress:l?u/l:void 0,bytes:d,rate:p||void 0,estimated:p&&l?(l-u)/p:void 0,event:o,lengthComputable:l!=null,[t?"download":"upload"]:!0};e(f)},n)},fE=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},mE=e=>(...t)=>Q.asap(()=>e(...t)),FK=En.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,En.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(En.origin),En.navigator&&/(msie|trident)/i.test(En.navigator.userAgent)):()=>!0,BK=En.hasStandardBrowserEnv?{write(e,t,n,r,i,o,s){if(typeof document>"u")return;const l=[`${e}=${encodeURIComponent(t)}`];Q.isNumber(n)&&l.push(`expires=${new Date(n).toUTCString()}`),Q.isString(r)&&l.push(`path=${r}`),Q.isString(i)&&l.push(`domain=${i}`),o===!0&&l.push("secure"),Q.isString(s)&&l.push(`SameSite=${s}`),document.cookie=l.join("; ")},read(e){if(typeof document>"u")return null;const t=document.cookie.split(";");for(let n=0;n<t.length;n++){const r=t[n].replace(/^\s+/,""),i=r.indexOf("=");if(i!==-1&&r.slice(0,i)===e)try{return decodeURIComponent(r.slice(i+1))}catch{return r.slice(i+1)}}return null},remove(e){this.write(e,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};function zK(e){return typeof e!="string"?!1:/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function $K(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}const qK=/^https?:(?!\/\/)/i,WK=/[\t\n\r]/g;function UK(e){let t=0;for(;t<e.length&&e.charCodeAt(t)<=32;)t++;return e.slice(t)}function HK(e){return UK(e).replace(WK,"")}function gE(e,t){if(typeof e=="string"&&qK.test(HK(e)))throw new ve('Invalid URL: missing "//" after protocol',ve.ERR_INVALID_URL,t)}function BF(e,t,n,r){gE(t,r);let i=!zK(t);return e&&(i||n===!1)?(gE(e,r),$K(e,t)):t}const yE=e=>e instanceof Un?{...e}:e;function _s(e,t){e=e||{},t=t||{};const n=Object.create(null);Object.defineProperty(n,"hasOwnProperty",{__proto__:null,value:Object.prototype.hasOwnProperty,enumerable:!1,writable:!0,configurable:!0});function r(p,f,g,y){return Q.isPlainObject(p)&&Q.isPlainObject(f)?Q.merge.call({caseless:y},p,f):Q.isPlainObject(f)?Q.merge({},f):Q.isArray(f)?f.slice():f}function i(p,f,g,y){if(Q.isUndefined(f)){if(!Q.isUndefined(p))return r(void 0,p,g,y)}else return r(p,f,g,y)}function o(p,f){if(!Q.isUndefined(f))return r(void 0,f)}function s(p,f){if(Q.isUndefined(f)){if(!Q.isUndefined(p))return r(void 0,p)}else return r(void 0,f)}function l(p){const f=Q.hasOwnProp(t,"transitional")?t.transitional:void 0;if(!Q.isUndefined(f))if(Q.isPlainObject(f)){if(Q.hasOwnProp(f,p))return f[p]}else return;const g=Q.hasOwnProp(e,"transitional")?e.transitional:void 0;if(Q.isPlainObject(g)&&Q.hasOwnProp(g,p))return g[p]}function u(p,f,g){if(Q.hasOwnProp(t,g))return r(p,f);if(Q.hasOwnProp(e,g))return r(void 0,p)}const d={url:o,method:o,data:o,baseURL:s,transformRequest:s,transformResponse:s,paramsSerializer:s,timeout:s,timeoutMessage:s,withCredentials:s,withXSRFToken:s,adapter:s,responseType:s,xsrfCookieName:s,xsrfHeaderName:s,onUploadProgress:s,onDownloadProgress:s,decompress:s,maxContentLength:s,maxBodyLength:s,beforeRedirect:s,transport:s,httpAgent:s,httpsAgent:s,cancelToken:s,socketPath:s,allowedSocketPaths:s,responseEncoding:s,validateStatus:u,headers:(p,f,g)=>i(yE(p),yE(f),g,!0)};return Q.forEach(Object.keys({...e,...t}),function(f){if(f==="__proto__"||f==="constructor"||f==="prototype")return;const g=Q.hasOwnProp(d,f)?d[f]:i,y=Q.hasOwnProp(e,f)?e[f]:void 0,b=Q.hasOwnProp(t,f)?t[f]:void 0,w=g(y,b,f);Q.isUndefined(w)&&g!==u||(n[f]=w)}),Q.hasOwnProp(t,"validateStatus")&&Q.isUndefined(t.validateStatus)&&l("validateStatusUndefinedResolves")===!1&&(Q.hasOwnProp(e,"validateStatus")?n.validateStatus=r(void 0,e.validateStatus):delete n.validateStatus),n}const VK=["content-type","content-length"];function GK(e,t,n){if(n!=="content-only"){e.set(t);return}Object.entries(t||{}).forEach(([r,i])=>{VK.includes(r.toLowerCase())&&e.set(r,i)})}const YK=e=>encodeURIComponent(e).replace(/%([0-9A-F]{2})/gi,(t,n)=>String.fromCharCode(parseInt(n,16)));function zF(e){const t=_s({},e),n=g=>Q.hasOwnProp(t,g)?t[g]:void 0,r=n("data");let i=n("withXSRFToken");const o=n("xsrfHeaderName"),s=n("xsrfCookieName");let l=n("headers");const u=n("auth"),d=n("baseURL"),p=n("allowAbsoluteUrls"),f=n("url");if(t.headers=l=Un.from(l),t.url=RF(BF(d,f,p,t),n("params"),n("paramsSerializer")),u){const g=Q.getSafeProp(u,"username")||"",y=Q.getSafeProp(u,"password")||"";try{l.set("Authorization","Basic "+btoa(g+":"+(y?YK(y):"")))}catch(b){throw ve.from(b,ve.ERR_BAD_OPTION_VALUE,e)}}if(Q.isFormData(r)&&(En.hasStandardBrowserEnv||En.hasStandardBrowserWebWorkerEnv||Q.isReactNative(r)?l.setContentType(void 0):Q.isFunction(r.getHeaders)&&GK(l,r.getHeaders(),n("formDataHeaderPolicy"))),En.hasStandardBrowserEnv&&(Q.isFunction(i)&&(i=i(t)),i===!0||i==null&&FK(t.url))){const y=o&&s&&BK.read(s);y&&l.set(o,y)}return t}const KK=typeof XMLHttpRequest<"u",XK=KK&&function(e){return new Promise(function(n,r){const i=zF(e);let o=i.data;const s=Un.from(i.headers).normalize();let{responseType:l,onUploadProgress:u,onDownloadProgress:d}=i,p,f,g,y,b;function w(){y&&y(),b&&b(),i.cancelToken&&i.cancelToken.unsubscribe(p),i.signal&&i.signal.removeEventListener("abort",p)}let v=new XMLHttpRequest;v.open(i.method.toUpperCase(),i.url,!0),v.timeout=i.timeout;function j(){if(!v)return;const S=Un.from("getAllResponseHeaders"in v&&v.getAllResponseHeaders()),N={data:!l||l==="text"||l==="json"?v.responseText:v.response,status:v.status,statusText:v.statusText,headers:S,config:e,request:v};FF(function(P){n(P),w()},function(P){r(P),w()},N),v=null}"onloadend"in v?v.onloadend=j:v.onreadystatechange=function(){!v||v.readyState!==4||v.status===0&&!(v.responseURL&&v.responseURL.startsWith("file:"))||setTimeout(j)},v.onabort=function(){v&&(r(new ve("Request aborted",ve.ECONNABORTED,e,v)),w(),v=null)},v.onerror=function(E){const N=E&&E.message?E.message:"Network Error",C=new ve(N,ve.ERR_NETWORK,e,v);C.event=E||null,r(C),w(),v=null},v.ontimeout=function(){let E=i.timeout?"timeout of "+i.timeout+"ms exceeded":"timeout exceeded";const N=i.transitional||lA;i.timeoutErrorMessage&&(E=i.timeoutErrorMessage),r(new ve(E,N.clarifyTimeoutError?ve.ETIMEDOUT:ve.ECONNABORTED,e,v)),w(),v=null},o===void 0&&s.setContentType(null),"setRequestHeader"in v&&Q.forEach(EF(s),function(E,N){v.setRequestHeader(N,E)}),Q.isUndefined(i.withCredentials)||(v.withCredentials=!!i.withCredentials),l&&l!=="json"&&(v.responseType=i.responseType),d&&([g,b]=om(d,!0),v.addEventListener("progress",g)),u&&v.upload&&([f,y]=om(u),v.upload.addEventListener("progress",f),v.upload.addEventListener("loadend",y)),(i.cancelToken||i.signal)&&(p=S=>{v&&(r(!S||S.type?new _h(null,e,v):S),v.abort(),w(),v=null)},i.cancelToken&&i.cancelToken.subscribe(p),i.signal&&(i.signal.aborted?p():i.signal.addEventListener("abort",p)));const k=DK(i.url);if(k&&!En.protocols.includes(k)){r(new ve("Unsupported protocol "+k+":",ve.ERR_BAD_REQUEST,e)),w();return}v.send(o||null)})},QK=(e,t)=>{if(e=e?e.filter(Boolean):[],!t&&!e.length)return;const n=new AbortController;let r=!1;const i=function(u){if(!r){r=!0,s();const d=u instanceof Error?u:this.reason;n.abort(d instanceof ve?d:new _h(d instanceof Error?d.message:d))}};let o=t&&setTimeout(()=>{o=null,i(new ve(`timeout of ${t}ms exceeded`,ve.ETIMEDOUT))},t);const s=()=>{e&&(o&&clearTimeout(o),o=null,e.forEach(u=>{u.unsubscribe?u.unsubscribe(i):u.removeEventListener("abort",i)}),e=null)};e.forEach(u=>u.addEventListener("abort",i,{once:!0}));const{signal:l}=n;return l.unsubscribe=()=>Q.asap(s),l},JK=function*(e,t){let n=e.byteLength;if(n<t){yield e;return}let r=0,i;for(;r<n;)i=r+t,yield e.slice(r,i),r=i},ZK=async function*(e,t){for await(const n of eX(e))yield*JK(n,t)},eX=async function*(e){if(e[Symbol.asyncIterator]){yield*e;return}const t=e.getReader();try{for(;;){const{done:n,value:r}=await t.read();if(n)break;yield r}}finally{await t.cancel()}},xE=(e,t,n,r)=>{const i=ZK(e,t);let o=0,s,l=u=>{s||(s=!0,r&&r(u))};return new ReadableStream({async pull(u){try{const{done:d,value:p}=await i.next();if(d){l(),u.close();return}let f=p.byteLength;if(n){let g=o+=f;n(g)}u.enqueue(new Uint8Array(p))}catch(d){throw l(d),d}},cancel(u){return l(u),i.return()}},{highWaterMark:2})},sm=e=>e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102,tX=(e,t,n)=>t+2<n&&sm(e.charCodeAt(t+1))&&sm(e.charCodeAt(t+2));function nX(e){if(!e||typeof e!="string"||!e.startsWith("data:"))return 0;const t=e.indexOf(",");if(t<0)return 0;const n=e.slice(5,t),r=e.slice(t+1);if(/;base64/i.test(n)){let s=r.length;const l=r.length;for(let y=0;y<l;y++)if(r.charCodeAt(y)===37&&y+2<l){const b=r.charCodeAt(y+1),w=r.charCodeAt(y+2);sm(b)&&sm(w)&&(s-=2,y+=2)}let u=0,d=l-1;const p=y=>y>=2&&r.charCodeAt(y-2)===37&&r.charCodeAt(y-1)===51&&(r.charCodeAt(y)===68||r.charCodeAt(y)===100);d>=0&&(r.charCodeAt(d)===61?(u++,d--):p(d)&&(u++,d-=3)),u===1&&d>=0&&(r.charCodeAt(d)===61||p(d))&&u++;const g=Math.floor(s/4)*3-(u||0);return g>0?g:0}let o=0;for(let s=0,l=r.length;s<l;s++){const u=r.charCodeAt(s);if(u===37&&tX(r,s,l))o+=1,s+=2;else if(u<128)o+=1;else if(u<2048)o+=2;else if(u>=55296&&u<=56319&&s+1<l){const d=r.charCodeAt(s+1);d>=56320&&d<=57343?(o+=4,s++):o+=3}else o+=3}return o}const uA="1.18.1",vE=64*1024,{isFunction:hf}=Q,rX=e=>encodeURIComponent(e).replace(/%([0-9A-F]{2})/gi,(t,n)=>String.fromCharCode(parseInt(n,16))),bE=e=>{if(!Q.isString(e))return e;try{return decodeURIComponent(e)}catch{return e}},wE=(e,...t)=>{try{return!!e(...t)}catch{return!1}},iX=e=>{const t=e.indexOf("://");let n=e;return t!==-1&&(n=n.slice(t+3)),n.includes("@")||n.includes(":")},aX=e=>{const t=Q.global!==void 0&&Q.global!==null?Q.global:globalThis,{ReadableStream:n,TextEncoder:r}=t;e=Q.merge.call({skipUndefined:!0},{Request:t.Request,Response:t.Response},e);const{fetch:i,Request:o,Response:s}=e,l=i?hf(i):typeof fetch=="function",u=hf(o),d=hf(s);if(!l)return!1;const p=l&&hf(n),f=l&&(typeof r=="function"?(j=>k=>j.encode(k))(new r):async j=>new Uint8Array(await new o(j).arrayBuffer())),g=u&&p&&wE(()=>{let j=!1;const k=new o(En.origin,{body:new n,method:"POST",get duplex(){return j=!0,"half"}}),S=k.headers.has("Content-Type");return k.body!=null&&k.body.cancel(),j&&!S}),y=d&&p&&wE(()=>Q.isReadableStream(new s("").body)),b={stream:y&&(j=>j.body)};l&&["text","arrayBuffer","blob","formData","stream"].forEach(j=>{!b[j]&&(b[j]=(k,S)=>{let E=k&&k[j];if(E)return E.call(k);throw new ve(`Response type '${j}' is not supported`,ve.ERR_NOT_SUPPORT,S)})});const w=async j=>{if(j==null)return 0;if(Q.isBlob(j))return j.size;if(Q.isSpecCompliantForm(j))return(await new o(En.origin,{method:"POST",body:j}).arrayBuffer()).byteLength;if(Q.isArrayBufferView(j)||Q.isArrayBuffer(j))return j.byteLength;if(Q.isURLSearchParams(j)&&(j=j+""),Q.isString(j))return(await f(j)).byteLength},v=async(j,k)=>{const S=Q.toFiniteNumber(j.getContentLength());return S??w(k)};return async j=>{let{url:k,method:S,data:E,signal:N,cancelToken:C,timeout:P,onDownloadProgress:_,onUploadProgress:M,responseType:D,headers:B,withCredentials:F="same-origin",fetchOptions:V,maxContentLength:U,maxBodyLength:q}=zF(j);const Y=Q.isNumber(U)&&U>-1,Z=Q.isNumber(q)&&q>-1,J=le=>Q.hasOwnProp(j,le)?j[le]:void 0;let ne=i||fetch;D=D?(D+"").toLowerCase():"text";let I=QK([N,C&&C.toAbortSignal()],P),z=null;const X=I&&I.unsubscribe&&(()=>{I.unsubscribe()});let L,me=null;const xe=()=>new ve("Request body larger than maxBodyLength limit",ve.ERR_BAD_REQUEST,j,z);try{let le;const Ie=J("auth");if(Ie){const Ae=Q.getSafeProp(Ie,"username")||"",at=Q.getSafeProp(Ie,"password")||"";le={username:Ae,password:at}}if(iX(k)){const Ae=new URL(k,En.origin);if(!le&&(Ae.username||Ae.password)){const at=bE(Ae.username),zt=bE(Ae.password);le={username:at,password:zt}}(Ae.username||Ae.password)&&(Ae.username="",Ae.password="",k=Ae.href)}if(le&&(B.delete("authorization"),B.set("Authorization","Basic "+btoa(rX((le.username||"")+":"+(le.password||""))))),Y&&typeof k=="string"&&k.startsWith("data:")&&nX(k)>U)throw new ve("maxContentLength size of "+U+" exceeded",ve.ERR_BAD_RESPONSE,j,z);if(Z&&S!=="get"&&S!=="head"){const Ae=await w(E);if(typeof Ae=="number"&&isFinite(Ae)&&(L=Ae,Ae>q))throw xe()}const Oe=Z&&(Q.isReadableStream(E)||Q.isStream(E)),ae=(Ae,at,zt)=>xE(Ae,vE,Ht=>{if(Z&&Ht>q)throw me=xe();at&&at(Ht)},zt);if(g&&S!=="get"&&S!=="head"&&(M||Oe)){if(L=L??await v(B,E),L!==0||Oe){let Ae=new o(k,{method:"POST",body:E,duplex:"half"}),at;if(Q.isFormData(E)&&(at=Ae.headers.get("content-type"))&&B.setContentType(at),Ae.body){const[zt,Ht]=M&&fE(L,om(mE(M)))||[];E=ae(Ae.body,zt,Ht)}}}else if(Oe&&!u&&p&&S!=="get"&&S!=="head")E=ae(E);else if(Oe&&u&&!g&&S!=="get"&&S!=="head")throw new ve("Stream request bodies are not supported by the current fetch implementation",ve.ERR_NOT_SUPPORT,j,z);Q.isString(F)||(F=F?"include":"omit");const ke=u&&"credentials"in o.prototype;if(Q.isFormData(E)){const Ae=B.getContentType();Ae&&/^multipart\/form-data/i.test(Ae)&&!/boundary=/i.test(Ae)&&B.delete("content-type")}B.set("User-Agent","axios/"+uA,!1);const Re={...V,signal:I,method:S.toUpperCase(),headers:EF(B.normalize()),body:E,duplex:"half",credentials:ke?F:void 0};z=u&&new o(k,Re);let se=await(u?ne(z,V):ne(k,Re));const rt=Un.from(se.headers);if(Y){const Ae=Q.toFiniteNumber(rt.getContentLength());if(Ae!=null&&Ae>U)throw new ve("maxContentLength size of "+U+" exceeded",ve.ERR_BAD_RESPONSE,j,z)}const qe=y&&(D==="stream"||D==="response");if(y&&se.body&&(_||Y||qe&&X)){const Ae={};["status","statusText","headers"].forEach(nn=>{Ae[nn]=se[nn]});const at=Q.toFiniteNumber(rt.getContentLength()),[zt,Ht]=_&&fE(at,om(mE(_),!0))||[];let On=0;const hn=nn=>{if(Y&&(On=nn,On>U))throw new ve("maxContentLength size of "+U+" exceeded",ve.ERR_BAD_RESPONSE,j,z);zt&&zt(nn)};se=new s(xE(se.body,vE,hn,()=>{Ht&&Ht(),X&&X()}),Ae)}D=D||"text";let it=await b[Q.findKey(b,D)||"text"](se,j);if(Y&&!y&&!qe){let Ae;if(it!=null&&(typeof it.byteLength=="number"?Ae=it.byteLength:typeof it.size=="number"?Ae=it.size:typeof it=="string"&&(Ae=typeof r=="function"?new r().encode(it).byteLength:it.length)),typeof Ae=="number"&&Ae>U)throw new ve("maxContentLength size of "+U+" exceeded",ve.ERR_BAD_RESPONSE,j,z)}return!qe&&X&&X(),await new Promise((Ae,at)=>{FF(Ae,at,{data:it,headers:Un.from(se.headers),status:se.status,statusText:se.statusText,config:j,request:z})})}catch(le){if(X&&X(),I&&I.aborted&&I.reason instanceof ve){const Ie=I.reason;throw Ie.config=j,z&&(Ie.request=z),le!==Ie&&Object.defineProperty(Ie,"cause",{__proto__:null,value:le,writable:!0,enumerable:!1,configurable:!0}),Ie}if(me)throw z&&!me.request&&(me.request=z),me;if(le instanceof ve)throw z&&!le.request&&(le.request=z),le;if(le&&le.name==="TypeError"&&/Load failed|fetch/i.test(le.message)){const Ie=new ve("Network Error",ve.ERR_NETWORK,j,z,le&&le.response);throw Object.defineProperty(Ie,"cause",{__proto__:null,value:le.cause||le,writable:!0,enumerable:!1,configurable:!0}),Ie}throw ve.from(le,le&&le.code,j,z,le&&le.response)}}},oX=new Map,$F=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:i}=t,o=[r,i,n];let s=o.length,l=s,u,d,p=oX;for(;l--;)u=o[l],d=p.get(u),d===void 0&&p.set(u,d=l?new Map:aX(t)),p=d;return d};$F();const dA={http:vK,xhr:XK,fetch:{get:$F}};Q.forEach(dA,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{__proto__:null,value:t})}catch{}Object.defineProperty(e,"adapterName",{__proto__:null,value:t})}});const jE=e=>`- ${e}`,sX=e=>Q.isFunction(e)||e===null||e===!1;function lX(e,t){e=Q.isArray(e)?e:[e];const{length:n}=e;let r,i;const o={};for(let s=0;s<n;s++){r=e[s];let l;if(i=r,!sX(r)&&(i=dA[(l=String(r)).toLowerCase()],i===void 0))throw new ve(`Unknown adapter '${l}'`);if(i&&(Q.isFunction(i)||(i=i.get(t))))break;o[l||"#"+s]=i}if(!i){const s=Object.entries(o).map(([u,d])=>`adapter ${u} `+(d===!1?"is not supported by the environment":"is not available in the build"));let l=n?s.length>1?`since : 435`+s.map(jE).join(` 436`):" "+jE(s[0]):"as no adapter specified";throw new ve("There is no suitable adapter to dispatch the request "+l,ve.ERR_NOT_SUPPORT)}return i}const qF={getAdapter:lX,adapters:dA};function Ov(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new _h(null,e)}function kE(e){return Ov(e),e.headers=Un.from(e.headers),e.data=Pv.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),qF.getAdapter(e.adapter||Oh.adapter,e)(e).then(function(r){Ov(e),e.response=r;try{r.data=Pv.call(e,e.transformResponse,r)}finally{delete e.response}return r.headers=Un.from(r.headers),r},function(r){if(!LF(r)&&(Ov(e),r&&r.response)){e.response=r.response;try{r.response.data=Pv.call(e,e.transformResponse,r.response)}finally{delete e.response}r.response.headers=Un.from(r.response.headers)}return Promise.reject(r)})}const Dg={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Dg[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const AE={};Dg.transitional=function(t,n,r){function i(o,s){return"[Axios v"+uA+"] Transitional option '"+o+"'"+s+(r?". "+r:"")}return(o,s,l)=>{if(t===!1)throw new ve(i(s," has been removed"+(n?" in "+n:"")),ve.ERR_DEPRECATED);return n&&!AE[s]&&(AE[s]=!0,console.warn(i(s," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(o,s,l):!0}};Dg.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function cX(e,t,n){if(typeof e!="object"||e===null)throw new ve("options must be an object",ve.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let i=r.length;for(;i-- >0;){const o=r[i],s=Object.prototype.hasOwnProperty.call(t,o)?t[o]:void 0;if(s){const l=e[o],u=l===void 0||s(l,o,e);if(u!==!0)throw new ve("option "+o+" must be "+u,ve.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new ve("Unknown option "+o,ve.ERR_BAD_OPTION)}}const Gf={assertOptions:cX,validators:Dg},Mn=Gf.validators;let js=class{constructor(t){this.defaults=t||{},this.interceptors={request:new hE,response:new hE}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let i={};Error.captureStackTrace?Error.captureStackTrace(i):i=new Error;const o=(()=>{if(!i.stack)return"";const s=i.stack.indexOf(` 437`);return s===-1?"":i.stack.slice(s+1)})();try{if(!r.stack)r.stack=o;else if(o){const s=o.indexOf(` 438`),l=s===-1?-1:o.indexOf(` 439`,s+1),u=l===-1?"":o.slice(l+1);String(r.stack).endsWith(u)||(r.stack+=` 440`+o)}}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=_s(this.defaults,n);const{transitional:r,paramsSerializer:i,headers:o}=n;r!==void 0&&Gf.assertOptions(r,{silentJSONParsing:Mn.transitional(Mn.boolean),forcedJSONParsing:Mn.transitional(Mn.boolean),clarifyTimeoutError:Mn.transitional(Mn.boolean),legacyInterceptorReqResOrdering:Mn.transitional(Mn.boolean),advertiseZstdAcceptEncoding:Mn.transitional(Mn.boolean),validateStatusUndefinedResolves:Mn.transitional(Mn.boolean)},!1),i!=null&&(Q.isFunction(i)?n.paramsSerializer={serialize:i}:Gf.assertOptions(i,{encode:Mn.function,serialize:Mn.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),Gf.assertOptions(n,{baseUrl:Mn.spelling("baseURL"),withXsrfToken:Mn.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let s=o&&Q.merge(o.common,o[n.method]);o&&Q.forEach(["delete","get","head","post","put","patch","query","common"],b=>{delete o[b]}),n.headers=Un.concat(s,o);const l=[];let u=!0;this.interceptors.request.forEach(function(w){if(typeof w.runWhen=="function"&&w.runWhen(n)===!1)return;u=u&&w.synchronous;const v=n.transitional||lA;v&&v.legacyInterceptorReqResOrdering?l.unshift(w.fulfilled,w.rejected):l.push(w.fulfilled,w.rejected)});const d=[];this.interceptors.response.forEach(function(w){d.push(w.fulfilled,w.rejected)});let p,f=0,g;if(!u){const b=[kE.bind(this),void 0];for(b.unshift(...l),b.push(...d),g=b.length,p=Promise.resolve(n);f<g;)p=p.then(b[f++],b[f++]);return p}g=l.length;let y=n;for(;f<g;){const b=l[f++],w=l[f++];try{y=b(y)}catch(v){w.call(this,v);break}}try{p=kE.call(this,y)}catch(b){return Promise.reject(b)}for(f=0,g=d.length;f<g;)p=p.then(d[f++],d[f++]);return p}getUri(t){t=_s(this.defaults,t);const n=BF(t.baseURL,t.url,t.allowAbsoluteUrls,t);return RF(n,t.params,t.paramsSerializer)}};Q.forEach(["delete","get","head","options"],function(t){js.prototype[t]=function(n,r){return this.request(_s(r||{},{method:t,url:n,data:r&&Q.hasOwnProp(r,"data")?r.data:void 0}))}});Q.forEach(["post","put","patch","query"],function(t){function n(r){return function(o,s,l){return this.request(_s(l||{},{method:t,headers:r?{"Content-Type":"multipart/form-data"}:{},url:o,data:s}))}}js.prototype[t]=n(),t!=="query"&&(js.prototype[t+"Form"]=n(!0))});let uX=class WF{constructor(t){if(typeof t!="function")throw new TypeError("executor must be a function.");let n;this.promise=new Promise(function(o){n=o});const r=this;this.promise.then(i=>{if(!r._listeners)return;let o=r._listeners.length;for(;o-- >0;)r._listeners[o](i);r._listeners=null}),this.promise.then=i=>{let o;const s=new Promise(l=>{r.subscribe(l),o=l}).then(i);return s.cancel=function(){r.unsubscribe(o)},s},t(function(o,s,l){r.reason||(r.reason=new _h(o,s,l),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const t=new AbortController,n=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new WF(function(i){t=i}),cancel:t}}};function dX(e){return function(n){return e.apply(null,n)}}function hX(e){return Q.isObject(e)&&e.isAxiosError===!0}const z2={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,Parti
440alContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(z2).forEach(([e,t])=>{z2[t]=e});function UF(e){const t=new js(e),n=bF(js.prototype.request,t);return Q.extend(n,js.prototype,t,{allOwnKeys:!0}),Q.extend(n,t,null,{allOwnKeys:!0}),n.create=function(i){return UF(_s(e,i))},n}const Xt=UF(Oh);Xt.Axios=js;Xt.CanceledError=_h;Xt.CancelToken=uX;Xt.isCancel=LF;Xt.VERSION=uA;Xt.toFormData=Rg;Xt.AxiosError=ve;Xt.Cancel=Xt.CanceledError;Xt.all=function(t){return Promise.all(t)};Xt.spread=dX;Xt.isAxiosError=hX;Xt.mergeConfig=_s;Xt.AxiosHeaders=Un;Xt.formToJSON=e=>MF(Q.isHTMLForm(e)?new FormData(e):e);Xt.getAdapter=qF.getAdapter;Xt.HttpStatusCode=z2;Xt.default=Xt;const{Axios:uNe,AxiosError:dNe,CanceledError:hNe,isCancel:pNe,CancelToken:fNe,VERSION:mNe,all:gNe,Cancel:yNe,isAxiosError:xNe,spread:vNe,toFormData:bNe,AxiosHeaders:wNe,HttpStatusCode:jNe,formToJSON:kNe,getAdapter:ANe,mergeConfig:SNe,create:CNe}=Xt,HF=typeof window>"u",SE=!HF&&window.self!==window.top,pX=!HF&&typeof document>"u",VF=()=>Math.random().toString(36).substring(2,15)+Math.random().toString(36).substring(2,15),An=[];for(let e=0;e<256;++e)An.push((e+256).toString(16).slice(1));function fX(e,t=0){return(An[e[t+0]]+An[e[t+1]]+An[e[t+2]]+An[e[t+3]]+"-"+An[e[t+4]]+An[e[t+5]]+"-"+An[e[t+6]]+An[e[t+7]]+"-"+An[e[t+8]]+An[e[t+9]]+"-"+An[e[t+10]]+An[e[t+11]]+An[e[t+12]]+An[e[t+13]]+An[e[t+14]]+An[e[t+15]]).toLowerCase()}let _v;const mX=new Uint8Array(16);function gX(){if(!_v){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");_v=crypto.getRandomValues.bind(crypto)}return _v(mX)}const yX=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),CE={randomUUID:yX};function xX(e,t,n){var i;e=e||{};const r=e.random??((i=e.rng)==null?void 0:i.call(e))??gX();if(r.length<16)throw new Error("Random bytes length must be >= 16");return r[6]=r[6]&15|64,r[8]=r[8]&63|128,fX(r)}function vX(e,t,n){return CE.randomUUID&&!e?CE.randomUUID():xX(e)}const Bu=typeof window<"u"?window:{base44SharedInstances:{}};function bX(e,t){return Bu.base44SharedInstances||(Bu.base44SharedInstances={}),Bu.base44SharedInstances[e]||(Bu.base44SharedInstances[e]={instance:t()}),Bu.base44SharedInstances[e].instance}const wX="__user_heartbeat_event__",jX="__initialization_event__",kX="__session_duration_event__",NE="analytics-enable",TE="base44_analytics_session_id",AX={enabled:!0,maxQueueSize:1e3,throttleTime:1e3,batchSize:30,heartBeatInterval:60*1e3},SX="analytics",yt=bX(SX,()=>({requestsQueue:[],isProcessing:!1,isHeartBeatProcessing:!1,wasInitializationTracked:!1,sessionContext:null,sessionStartTime:null,fallbackSessionId:null,config:{...AX,...IX()}})),CX=({axiosClient:e,serverUrl:t,appId:n,userAuthModule:r,enabled:i})=>{var o;const{maxQueueSize:s,throttleTime:l,batchSize:u}=yt.config;if(!i||!(!((o=yt.config)===null||o===void 0)&&o.enabled)||pX)return{track:()=>{},cleanup:()=>{}};let d;const p=`${t}/api/apps/${n}/analytics/track/batch`,f=async E=>{await e.request({method:"POST",url:`/apps/${n}/analytics/track/batch`,data:{events:E}})},g=E=>{try{const N=JSON.stringify({events:E}),C=new Blob([N],{type:"application/json"});return typeof navigator>"u"||N.length>6e4||!navigator.sendBeacon(p,C)}catch{return!1}},y=async(E,N={})=>
440{if(E.length===0)return;const C=await _X(r),P=E.map(OX(C));try{(!N.isBeacon||!g(P))&&await f(P)}catch{}},b=()=>{PE(y,{throttleTime:l,batchSize:u})},w=E=>{if(yt.requestsQueue.length>=s)return;const N=PX();yt.requestsQueue.push({...E,...N}),b()},v=()=>{PE(y,{throttleTime:l,batchSize:u}),d=OE(w),TX()},j=()=>{EE(),d==null||d(),EX(w);const E=yt.requestsQueue.splice(0);y(E,{isBeacon:!0})},k=()=>{typeof window>"u"||(document.visibilityState==="hidden"?j():document.visibilityState==="visible"&&v())},S=()=>{EE(),d==null||d(),typeof window<"u"&&window.removeEventListener("visibilitychange",k)};return b(),d=OE(w),NX(w),typeof window<"u"&&window.addEventListener("visibilitychange",k),{track:w,cleanup:S}};function EE(){yt.isProcessing=!1}async function PE(e,t){if(yt.isProcessing)return;yt.isProcessing=!0;const{throttleTime:n=1e3,batchSize:r=30}=t??{};for(;yt.isProcessing&&yt.requestsQueue.length>0;){const i=yt.requestsQueue.splice(0,r);i.length&&await e(i),await new Promise(o=>setTimeout(o,n))}yt.isProcessing=!1}function OE(e){var t;if(typeof window>"u"||yt.isHeartBeatProcessing||((t=yt.config.heartBeatInterval)!==null&&t!==void 0?t:0)<10)return()=>{};yt.isHeartBeatProcessing=!0;const n=setInterval(()=>{e({eventName:wX})},yt.config.heartBeatInterval);return()=>{clearInterval(n),yt.isHeartBeatProcessing=!1}}function NX(e){typeof window>"u"||yt.wasInitializationTracked||(yt.wasInitializationTracked=!0,e({eventName:jX,properties:{referrer:document==null?void 0:document.referrer}}))}function TX(){typeof window>"u"||yt.sessionStartTime!==null||(yt.sessionStartTime=new Date().toISOString())}function EX(e){if(typeof window>"u"||yt.sessionStartTime===null)return;const t=new Date().getTime()-new Date(yt.sessionStartTime).getTime();yt.sessionStartTime=null,e({eventName:kX,properties:{sessionDuration:t}})}function PX(){var e,t;return{timestamp:new Date().toISOString(),pageUrl:typeof window<"u"&&(t=(e=window.location)===null||e===void 0?void 0:e.pathname)!==null&&t!==void 0?t:null}}function OX(e){return t=>({event_name:t.eventName,properties:t.properties,timestamp:t.timestamp,page_url:t.pageUrl,...e})}let nd=null;function _E(){yt.sessionContext=null,nd=null}async function _X(e){if(!yt.sessionContext){if(!e.hasToken())return{user_id:null,session_id:lm()};if(!nd){const r=lm();nd=e.me().then(i=>({user_id:i.id,session_id:r})).catch(()=>({user_id:null,session_id:r}))}const t=nd,n=await t;return nd===t&&(yt.sessionContext=n),n}return yt.sessionContext}function IX(){if(typeof window>"u"||!window.location)return;const t=new URLSearchParams(window.location.search).get(NE);if(t==null||!t.length)return;const n=new URLSearchParams(window.location.search);n.delete(NE);const r=window.location.pathname+(n.toString()?"?"+n.toString():"");return window.history.replaceState({},"",r),{enabled:t==="true"}}function IE(){var e;return(e=yt.fallbackSessionId)!==null&&e!==void 0?e:yt.fallbackSessionId=VF()}function lm(){if(typeof window>"u")return IE();try{const e=localStorage.getItem(TE);if(!e){const t=VF();return localStorage.setItem(TE,t),t}return e}catch{return IE()}}class RX extends Error{constructor(t,n,r,i,o){super(t),this.name="Base44Error",this.status=n,this.code=r,this.data=i,this.originalError=o}toJSON(){return{name:this.name,message:this.message,status:this.status,code:this.code,data:this.data}}}function _l({baseURL:e,headers:t={},token:n,interceptResponses:r=!0,onError:i}){const o=Xt.create({baseURL:e,headers:{"Content-Type":"application/json",Accept:"application/json",...t}});return n&&(o.defaults.headers.common.Authorization=`Bearer ${n}`),o.interceptors.request.use(s=>{typeof window<"u"&&(window.location&&s.headers.set("X-Origin-URL",window.location.href),s.headers.get("Authorization")||s.headers.set("X-Base44-Anonymous-Id",lm()));const l=vX();if(s.requestId=l,SE)try{window.parent.postMessage({type:"api-request-start",requestId:l,data:{url:e+s.url,method:s.method,body:s.data instanceof FormData?"[FormData object]":s.data}},"*")}catch{}return s}),r&&o.interceptors.response.use(s=>{var l;const u=(l=s.config)===null||l===void 0?void 0:l.requestId;try{SE&&u&&window.parent.postMessage({type:"api-request-end",requestId:u,data:{statusCode:s.status,response:s.data}},"*")}catch{}return s.data},s=>{var l,u,d,p,f,g,y,b,w,v,j,k,S,E,N;const C=((u=(l=s.response)===null||l===void 0?void 0:l.data)===null||u===void 0?void 0:u.message)||((p=(d=s.response)===null||d===void 0?void 0:d.data)===null||p===void 0?void 0:p.detail)||s.message,P=new RX(C,(f=s.response)===null||f===void 0?void 0:f.status,(k=(b=(y=(g=s.response)===null||g===void 0?void 0:g.data)===null||y===void 0?void 0:y.code)!==null&&b!==void 0?b:(j=(v=(w=s.response)===null||w===void 0?void 0:w.headers)===null||v===void 0?void 0:v.get)===null||j===void 0?void 0:j.call(v,"x-base44-connector-error"))!==null&&k!==void 0?k:(E=(S=s.response)===null||S===void 0?void 0:S.headers)===null||E===void 0?void 0:E["x-base44-connector-error"],(N=s.response)===null||N===void 0?void 0:N.data,s);return i==null||i(P),Promise.reject(P)}),o}function RE(e){const{axios:t,appId:n,getSocket:r}=e;return new Proxy({},{get(i,o){if(!(typeof o!="string"||o==="then"||o.startsWith("_")))return MX(t,n,o,r)}})}function DX(e){var t;try{const n=JSON.parse(e);return{type:n.type,data:n.data,id:n.id||((t=n.data)===null||t===void 0?void 0:t.id),timestamp:n.timestamp||new Date().toISOString()}}catch(n){return console.warn("[Base44 SDK] Failed to parse realtime message:",n),null}}function MX(e,t,n,r){const i=`/apps/${t}/entities/${n}`;
440return{async list(o,s,l,u){const d={};return o&&(d.sort=o),s&&(d.limit=s),l&&(d.skip=l),u&&(d.fields=Array.isArray(u)?u.join(","):u),e.get(i,{params:d})},async filter(o,s,l,u,d){const p={q:JSON.stringify(o)};return s&&(p.sort=s),l&&(p.limit=l),u&&(p.skip=u),d&&(p.fields=Array.isArray(d)?d.join(","):d),e.get(i,{params:p})},async get(o){return e.get(`${i}/${o}`)},async create(o){return e.post(i,o)},async update(o,s){return e.put(`${i}/${o}`,s)},async delete(o){return e.delete(`${i}/${o}`)},async deleteMany(o){return e.delete(i,{data:o})},async bulkCreate(o){return e.post(`${i}/bulk`,o)},async updateMany(o,s){return e.patch(`${i}/update-many`,{query:o,data:s})},async bulkUpdate(o){return e.put(`${i}/bulk`,o)},async importEntities(o){const s=new FormData;return s.append("file",o,o.name),e.post(`${i}/import`,s,{headers:{"Content-Type":"multipart/form-data"}})},subscribe(o){const s=`entities:${t}:${n}`;return r().subscribeToRoom(s,{update_model:d=>{var p;const f=DX(d.data);if(f){f.type!=="delete"&&(!((p=f.data)===null||p===void 0)&&p._oversize)&&console.error(`[Base44 SDK] Realtime broadcast for ${n}#${f.id} was oversize and got slimmed for transport. Fields >10 KB are empty and the rest of the record may be a stub. Call \`entities.${n}.get("${f.id}")\` to fetch the full record.`);try{o(f)}catch(g){console.error("[Base44 SDK] Subscription callback error:",g)}}}})}}}function LX(e,t){return{async call(n,r,i){if(!(n!=null&&n.trim()))throw new Error("Integration slug is required and cannot be empty");if(!(r!=null&&r.trim()))throw new Error("Operation ID is required and cannot be empty");const{pathParams:o,queryParams:s,...l}=i??{},u={...l,...o&&{path_params:o},...s&&{query_params:s}};return await e.post(`/apps/${t}/integrations/custom/${n}/${r}`,u)}}}function DE(e,t){const n=LX(e,t);return new Proxy({},{get(r,i){if(!(typeof i!="string"||i==="then"||i.startsWith("_")))return i==="custom"?n:new Proxy({},{get(o,s){if(!(typeof s!="string"||s==="then"||s.startsWith("_")))return async l=>{if(typeof l=="string")throw new Error(`Integration ${s} must receive an object with named parameters, received: ${l}`);let u,d;return l instanceof FormData||l&&Object.values(l).some(p=>p instanceof File)?(u=new FormData,Object.keys(l).forEach(p=>{l[p]instanceof File?u.append(p,l[p],l[p].name):typeof l[p]=="object"&&l[p]!==null?u.append(p,JSON.stringify(l[p])):u.append(p,l[p])}),d="multipart/form-data"):(u=l,d="application/json"),i==="Core"?e.post(`/apps/${t}/integration-endpoints/Core/${s}`,u||l,{headers:{"Content-Type":d}}):e.post(`/apps/${t}/integration-endpoints/installable/${i}/integration-endpoints/${s}`,u||l,{headers:{"Content-Type":d}})}}})}})}function FX(){return typeof window>"u"?!1:window!==window.parent}function BX(e,t,n){const o=Math.round(window.screenX+(window.outerWidth-500)/2),s=Math.round(window.screenY+(window.outerHeight-600)/2),l=window.open(e,"base44_auth",`width=500,height=600,left=${o},top=${s},resizable=yes,scrollbars=yes`);if(!l)return;const u=()=>{window.removeEventListener("message",d),clearInterval(p),l.closed||l.close()},d=f=>{var g;if(f.origin!==n||f.source!==l||!(!((g=f.data)===null||g===void 0)&&g.access_token))return;u();const y=new URL(t),{access_token:b,is_new_user:w}=f.data;y.searchParams.set("access_token",b),w!=null&&y.searchParams.set("is_new_user",String(w)),window.location.href=y.toString()},p=setInterval(()=>{l.closed&&u()},500);window.addEventListener("message",d)}function zX(e,t,n,r){let i=null;const o=()=>{i=null};let s=!!r.token;return{hasToken(){return s},async me(){const l=i??e.get(`/apps/${n}/entities/User/me`).finally(()=>{i===l&&(i=null)});return i=l,l},async updateMe(l){return e.put(`/apps/${n}/entities/User/me`,l)},redirectToLogin(l){if(typeof window>"u")throw new Error("Login method can only be used in a browser environment");const u=l?new URL(l,window.location.origin).toString():window.location.href,d=`${r.appBaseUrl}/login?from_url=${encodeURIComponent(u)}`;window.location.href=d},loginWithProvider(l,u="/"){const d=new URL(u,window.location.origin).toString(),p=`app_id=${n}&from_url=${encodeURIComponent(d)}`;let f;l==="sso"?f=`/apps/${n}/auth/sso/login`:f=`/apps/auth${l==="google"?"":`/${l}`}/login`;const g=`${r.appBaseUrl}/api${f}?${p}`;if(FX()){const y=`${g}&popup_origin=${encodeURIComponent(window.location.origin)}`;return BX(y,d,window.location.origin)}window.location.href=g},logout(l){if(delete e.defaults.headers.common.Authorization,o(),_E(),s=!1,t
440ypeof window<"u"){if(window.localStorage)try{window.localStorage.removeItem("base44_access_token"),window.localStorage.removeItem("token")}catch(p){console.error("Failed to remove token from localStorage:",p)}const u=l||window.location.href,d=`${r.appBaseUrl}/api/apps/auth/logout?from_url=${encodeURIComponent(u)}`;window.location.href=d}},setToken(l,u=!0){if(l&&(o(),_E(),s=!0,e.defaults.headers.common.Authorization=`Bearer ${l}`,t.defaults.headers.common.Authorization=`Bearer ${l}`,u&&typeof window<"u"&&window.localStorage))try{window.localStorage.setItem("base44_access_token",l),window.localStorage.setItem("token",l)}catch(d){console.error("Failed to save token to localStorage:",d)}},async loginViaEmailPassword(l,u,d){var p;try{const f=await e.post(`/apps/${n}/auth/login`,{email:l,password:u,...d&&{turnstile_token:d}}),{access_token:g,user:y}=f;return g&&this.setToken(g),{access_token:g,user:y}}catch(f){throw((p=f.response)===null||p===void 0?void 0:p.status)===401&&await this.logout(),f}},async isAuthenticated(){try{return await this.me(),!0}catch{return!1}},inviteUser(l,u){return e.post(`/apps/${n}/users/invite-user`,{user_email:l,role:u})},register(l){return e.post(`/apps/${n}/auth/register`,l)},verifyOtp({email:l,otpCode:u}){return e.post(`/apps/${n}/auth/verify-otp`,{email:l,otp_code:u})},resendOtp(l){return e.post(`/apps/${n}/auth/resend-otp`,{email:l})},resetPasswordRequest(l){return e.post(`/apps/${n}/auth/reset-password-request`,{email:l})},resetPassword({resetToken:l,newPassword:u}){return e.post(`/apps/${n}/auth/reset-password`,{reset_token:l,new_password:u})},changePassword({userId:l,currentPassword:u,newPassword:d}){return e.post(`/apps/${n}/auth/change-password`,{user_id:l,current_password:u,new_password:d})}}}function $X(e,t){return{async getAccessToken(n){const r=`/apps/${t}/auth/sso/accesstoken/${n}`;return e.get(r)},async getIdToken(n){const r=`/apps/${t}/auth/sso/idtoken/${n}`;return e.get(r)}}}const qX=new Set(["GET","POST","PUT","PATCH","DELETE","HEAD"]);function WX(e,t){return{async getAccessToken(n){if(!n||typeof n!="string")throw new Error("Integration type is required and must be a string");return(await e.get(`/apps/${t}/external-auth/tokens/${encodeURIComponent(n)}`)).access_token},async getConnection(n){var r;if(!n||typeof n!="string")throw new Error("Integration type is required and must be a string");const o=await e.get(`/apps/${t}/external-auth/tokens/${encodeURIComponent(n)}`);return{accessToken:o.access_token,connectionConfig:(r=o.connection_config)!==null&&r!==void 0?r:null}},async getWorkspaceConnection(n){var r;if(!n||typeof n!="string")throw new Error("Connector ID is required and must be a string");const o=await e.get(`/apps/${t}/external-auth/tokens/connectors/${encodeURIComponent(n)}`);return{accessToken:o.access_token,connectionConfig:(r=o.connection_config)!==null&&r!==void 0?r:null}},async getCurrentAppUserAccessToken(n){if(!n||typeof n!="string")throw new Error("Connector ID is required and must be a string");return(await e.get(`/apps/${t}/app-user-auth/connectors/${encodeURIComponent(n)}/token`)).access_token},async getCurrentAppUserConnection(n){var r;if(!n||typeof n!="string")throw new Error("Connector ID is required and must be a string");const o=await e.get(`/apps/${t}/app-user-auth/connectors/${encodeURIComponent(n)}/token`);return{accessToken:o.access_token,connectionConfig:(r=o.connection_config)!==null&&r!==void 0?r:null}},async callApi(n,r){return GF(n,"Integration type"),UX(e,`/apps/${t}/connectors/${encodeURIComponent(n)}/call`,r)}}}function GF(e,t){if(!e||typeof e!="string")throw new Error(`${t} is required and must be a string`)}async function UX(e,t,n){var r,i,o,s,l,u,d,p,f;if(!n||typeof n!="object")throw new Error("Request is required and must be an object");GF(n.path,"Request path");const g=(r=n.method)!==null&&r!==void 0?r:"GET";if(!qX.has(g))throw new Error("Request method must be one of GET, POST, PUT, PATCH, DELETE, or HEAD");const b=await e.post(t,{method:g,...n.host==null?{}:{host:n.host},path:n.path,query:(i=n.query)!==null&&i!==void 0?i:{},headers:(o=n.headers)!==null&&o!==void 0?o:{},body:(s=n.body)!==null&&s!==void 0?s:null});return{success:b.success,phase:b.phase,status:(l=b.status_code)!==null&&l!==void 0?l:null,data:b.data,dataBase64:(u=b.data_base64)!==null&&u!==void 0?u:null,contentType:(d=b.content_type)!==null&&d!==void 0?d:null,headers:(p=b.headers)!==null&&p!==void 0?p:{},creditsCharged:(f=b.credits_charged)!==null&&f!==void 0?f:0}}function HX(e,t){return{async connectAppUser(n){if(!n||typeof n!="str
440ing")throw new Error("Connector ID is required and must be a string");return(await e.post(`/apps/${t}/app-user-auth/connectors/${encodeURIComponent(n)}/initiate`)).redirect_url},async disconnectAppUser(n){if(!n||typeof n!="string")throw new Error("Connector ID is required and must be a string");await e.delete(`/apps/${t}/app-user-auth/connectors/${encodeURIComponent(n)}`)}}}function uo(e={}){const{storageKey:t="base44_access_token",paramName:n="access_token",saveToStorage:r=!0,removeFromUrl:i=!0}=e;let o=null;if(typeof window<"u"&&window.location)try{const s=new URLSearchParams(window.location.search);if(o=s.get(n),o){if(r&&VX(o,{storageKey:t}),i){s.delete(n);const l=`${window.location.pathname}${s.toString()?`?${s.toString()}`:""}${window.location.hash}`;window.history.replaceState({},document.title,l)}return o}}catch(s){console.error("Error retrieving token from URL:",s)}if(typeof window<"u"&&window.localStorage)try{return o=window.localStorage.getItem(t),o}catch(s){console.error("Error retrieving token from local storage:",s)}return null}function VX(e,t){const{storageKey:n="base44_access_token"}=t;if(typeof window>"u"||!window.localStorage||!e)return!1;try{return window.localStorage.setItem(n,e),window.localStorage.setItem("token",e),!0}catch(r){return console.error("Error saving token to local storage:",r),!1}}function GX({axios:e,serviceRoleAxios:t,appId:n,serverUrl:r,functionsVersion:i,platformHeaders:o}){const s=new Headers(o),l=u=>{const d=u.defaults.headers.common.Authorization;return typeof d=="string"&&d.startsWith("Bearer ")?d:null};return async function(d,p={}){YX(d);const{fetch:f=fetch,...g}=p,y=new Headers(p.headers),b=(w,v)=>{v&&!y.has(w)&&y.set(w,v)};return b("Authorization",l(e)),b("Base44-Service-Authorization",l(t)),b("Base44-App-Id",n),b("Base44-Api-Url",r),b("Base44-Functions-Version",i),b("Base44-State",s.get("Base44-State")),b("X-Data-Env",s.get("X-Data-Env")),f(d,{...g,headers:y})}}function YX(e){if(typeof e!="string"||e==="")throw new Error("fetchWithAuth() requires a path, such as '/api/orders'.");const t=e.replace(/[\t\n\r]/g,"").replace(/^[\x00-\x20]+/,"");if(!t.startsWith("/")||t.startsWith("//")||t.startsWith("/\\"))throw new Error(`fetchWithAuth() only sends requests to your app's own origin, so your app's credentials never reach a third party. "${e}" is not a path on it â pass a relative path such as '/api/orders'. Use base44.functions.fetch() to call a Base44 backend function, or plain fetch() for another origin.`)}function ME(e,t,n){const r=(o,s)=>o?`${String(o).replace(/\/$/,"")}${s}`:s,i=o=>{const s=new Headers;if(n!=null&&n.getAuthHeaders){const l=n.getAuthHeaders();Object.entries(l).forEach(([u,d])=>{d!=null&&s.set(u,String(d))})}return o&&new Headers(o).forEach((l,u)=>{s.set(u,l)}),s};return{async invoke(o,s){if(typeof s=="string")throw new Error(`Function ${o} must receive an object with named parameters, received: ${s}`);let l,u;return s instanceof FormData||s&&Object.values(s).some(d=>d instanceof File)?(l=new FormData,Object.keys(s).forEach(d=>{s[d]instanceof File?l.append(d,s[d],s[d].name):typeof s[d]=="object"&&s[d]!==null?l.append(d,JSON.stringify(s[d])):l.append(d,s[d])}),u="multipart/form-data"):(l=s,u="application/json"),e.post(`/apps/${t}/functions/${o}`,l||s,{headers:{"Content-Type":u}})},async fetch(o,s={}){const u=`/functions${o.startsWith("/")?o:`/${o}`}`,d=i(s.headers),p={...s,headers:d};return await fetch(r(n==null?void 0:n.baseURL,u),p)}}}function LE({axios:e,getSocket:t,appId:n,serverUrl:r,token:i}){const o=`/apps/${n}/agents`,s={},l=()=>e.get(`${o}/conversations`),u=w=>e.get(`${o}/conversations/${w}`);return{getConversations:l,getConversation:u,listConversations:w=>e.get(`${o}/conversations`,{params:w}),createConversation:w=>e.post(`${o}/conversations`,w),addMessage:async(w,v)=>e.post(`${o}/conversations/v2/${w.id}/messages`,v),subscribeToConversation:(w,v)=>{const j=`/agent-conversations/${w}`,k=t(),S=u(w).then(E=>(s[w]=E,E));return k.subscribeToRoom(j,{connect:()=>{},update_model:async({data:E})=>{const N=JSON.parse(E);if(N._message){await S;const C=N._message,P=s[w];if(P){const _=P.messages||[],M=_.findIndex(B=>B.id===C.id),D=M!==-1?_.map((B,F)=>F===M?C:B):[..._,C];s[w]={...P,messages:D},v==null||v(s[w])}}}})},getWhatsAppConnectURL:w=>{const v=`${r}/api/apps/${n}/agents/${encodeURIComponent(w)}/whatsapp`,j=i??uo();return j?`${v}?token=${j}`:v},getTelegramConnectURL:w=>{const v=`${r}/api/apps/${n}/agents/${encodeURIComponent(w)}/telegram`,j=i??uo();return j?`${v}?token=${j}`:v}}}function FE({serverUrl:e,token:t,appId:n}){return{connection:()=>{var i;return{baseURL:`${e}/api/apps/${n}/ai/openai/v1`,token:(i=t??uo())!==null&&i!==void 0?i:""}}}}function BE(e,t){const n=`/app-logs/${t}`;return{async logUserInApp(r){await e.post(`${n}/log-user-in-app/${r}`)},async fetchLogs(r={}){return await e.get(n,{params:r})},async getStats(r={}){return await e.get(`${n}/stats`,{params:r})}}}function KX(e,t){return{async getPublicSettings(){return e.get(`/apps/public/prod/public-settings/by-id/${t}`)}}}function XX(e,t){return{async inviteUser(n,r){if(r!=="user"&&r!=="admin")throw new Error(`Invalid role: "${r}". Role must be either "user" or "admin".`);return await e.post(`/apps/${t}/runtime/users/invite-user`,{user_email:n,role:r})}}}const Li=Object.create(null);Li.open="0";Li.close="1";Li.ping="2";Li.pong="3";Li.message="4";Li.upgrade="5";Li.noop="6";
440const Yf=Object.create(null);Object.keys(Li).forEach(e=>{Yf[Li[e]]=e});const $2={type:"error",data:"parser error"},YF=typeof Blob=="function"||typeof Blob<"u"&&Object.prototype.toString.call(Blob)==="[object BlobConstructor]",KF=typeof ArrayBuffer=="function",XF=e=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(e):e&&e.buffer instanceof ArrayBuffer,hA=({type:e,data:t},n,r)=>YF&&t instanceof Blob?n?r(t):zE(t,r):KF&&(t instanceof ArrayBuffer||XF(t))?n?r(t):zE(new Blob([t]),r):r(Li[e]+(t||"")),zE=(e,t)=>{const n=new FileReader;return n.onload=function(){const r=n.result.split(",")[1];t("b"+(r||""))},n.readAsDataURL(e)};function $E(e){return e instanceof Uint8Array?e:e instanceof ArrayBuffer?new Uint8Array(e):new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}let Iv;function QX(e,t){if(YF&&e.data instanceof Blob)return e.data.arrayBuffer().then($E).then(t);if(KF&&(e.data instanceof ArrayBuffer||XF(e.data)))return t($E(e.data));hA(e,!1,n=>{Iv||(Iv=new TextEncoder),t(Iv.encode(n))})}const qE="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",rd=typeof Uint8Array>"u"?[]:new Uint8Array(256);for(let e=0;e<qE.length;e++)rd[qE.charCodeAt(e)]=e;const JX=e=>{let t=e.length*.75,n=e.length,r,i=0,o,s,l,u;e[e.length-1]==="="&&(t--,e[e.length-2]==="="&&t--);const d=new ArrayBuffer(t),p=new Uint8Array(d);for(r=0;r<n;r+=4)o=rd[e.charCodeAt(r)],s=rd[e.charCodeAt(r+1)],l=rd[e.charCodeAt(r+2)],u=rd[e.charCodeAt(r+3)],p[i++]=o<<2|s>>4,p[i++]=(s&15)<<4|l>>2,p[i++]=(l&3)<<6|u&63;return d},ZX=typeof ArrayBuffer=="function",pA=(e,t)=>{if(typeof e!="string")return{type:"message",data:QF(e,t)};const n=e.charAt(0);return n==="b"?{type:"message",data:eQ(e.substring(1),t)}:Yf[n]?e.length>1?{type:Yf[n],data:e.substring(1)}:{type:Yf[n]}:$2},eQ=(e,t)=>{if(ZX){const n=JX(e);return QF(n,t)}else return{base64:!0,data:e}},QF=(e,t)=>{switch(t){case"blob":return e instanceof Blob?e:new Blob([e]);case"arraybuffer":default:return e instanceof ArrayBuffer?e:e.buffer}},JF="�",tQ=(e,t)=>{const n=e.length,r=new Array(n);let i=0;e.forEach((o,s)=>{hA(o,!1,l=>{r[s]=l,++i===n&&t(r.join(JF))})})},nQ=(e,t)=>{const n=e.split(JF),r=[];for(let i=0;i<n.length;i++){const o=pA(n[i],t);if(r.push(o),o.type==="error")break}return r};function rQ(){return new TransformStream({transform(e,t){QX(e,n=>{const r=n.length;let i;if(r<126)i=new Uint8Array(1),new DataView(i.buffer).setUint8(0,r);else if(r<65536){i=new Uint8Array(3);const o=new DataView(i.buffer);o.setUint8(0,126),o.setUint16(1,r)}else{i=new Uint8Array(9);const o=new DataView(i.buffer);o.setUint8(0,127),o.setBigUint64(1,BigInt(r))}e.data&&typeof e.data!="string"&&(i[0]|=128),t.enqueue(i),t.enqueue(n)})}})}let Rv;function pf(e){return e.reduce((t,n)=>t+n.length,0)}function ff(e,t){if(e[0].length===t)return e.shift();const n=new Uint8Array(t);let r=0;for(let i=0;i<t;i++)n[i]=e[0][r++],r===e[0].length&&(e.shift(),r=0);return e.length&&r<e[0].length&&(e[0]=e[0].slice(r)),n}function iQ(e,t){Rv||(Rv=new TextDecoder);const n=[];let r=0,i=-1,o=!1;return new TransformStream({transform(s,l){for(n.push(s);;){if(r===0){if(pf(n)<1)break;const u=ff(n,1);o=(u[0]&128)===128,i=u[0]&127,i<126?r=3:i===126?r=1:r=2}else if(r===1){if(pf(n)<2)break;const u=ff(n,2);i=new DataView(u.buffer,u.byteOffset,u.length).getUint16(0),r=3}else if(r===2){if(pf(n)<8)break;const u=ff(n,8),d=new DataView(u.buffer,u.byteOffset,u.length),p=d.getUint32(0);if(p>Math.pow(2,21)-1){l.enqueue($2);break}i=p*Math.pow(2,32)+d.getUint32(4),r=3}else{if(pf(n)<i)break;const u=ff(n,i);l.enqueue(pA(o?u:Rv.decode(u),t)),r=0}if(i===0||i>e){l.enqueue($2);break}}}})}const ZF=4;function en(e){if(e)return aQ(e)}function aQ(e){for(var t in en.prototype)e[t]=en.prototype[t];return e}en.prototype.on=en.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks["$"+e]=this._callbacks["$"+e]||[]).push(t),this};en.prototype.once=function(e,t){function n(){this.off(e,n),t.apply(this,arguments)}return n.fn=t,this.on(e,n),this};en.prototype.off=en.prototype.removeListener=en.prototype.removeAllListeners=en.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},arguments.length==0)return this._callbacks={},this;var n=this._callbacks["$"+e];if(!n)return this;if(arguments.length==1)return delete this._callbacks["$"+e],this;for(var r,i=0;i<n.length;i++)if(r=n[i],r===t||r.fn===t){n.splice(i,1);break}return n.length===0&&delete this._callbacks["$"+e],this};en.prototype.emit=function(e){this._callbacks=this._callbacks||{};for(var t=new Array(arguments.length-1),n=this._callbacks["$"+e],r=1;r<arguments.length;r++)t[r-1]=arguments[r];if(n){n=n.slice(0);for(var r=0,i=n.length;r<i;++r)n[r].apply(this,t)}return this};en.prototype.emitReserved=en.prototype.emit;en.prototype.listeners=function(e){return this._callbacks=this._callbacks||{},this._callbacks["$"+e]||[]};en.prototype.hasListeners=function(e){return!!this.listeners(e).length};const Mg=typeof Promise=="function"&&typeof Promise.resolve=="function"?t=>Promise.resolve().then(t):(t,n)=>n(t,0),$r=typeof self<"u"?self:typeof window<"u"?window:Function("return this")(),oQ="arraybuffer";function e6(e,...t){return t.reduce((n,r)=>(e.hasOwnProperty(r)&&(n[r]=e[r]),n),{})}const sQ=$r.setTimeout,lQ=$r.clearTimeout;function Lg(e,t){t.useNativeTimers?(e.setTimeoutFn=sQ.bind($r),e.clearTimeoutFn=lQ.bind($r)):(e.setTimeoutFn=$r.setTimeout.bind($r),e.clearTimeoutFn=$r.clearTimeout.bind($r))}const cQ=1.33;function uQ(e){return typeof e=="string"?dQ(e):Math.ceil((e.byteLength||e.size)*cQ)}function dQ(e){let t=0,n=0;for(let r=0,i=e.length;r<i;r++)t=e.charCodeAt(r),t<128?n+=1:t<2048?n+=2:t<55296||t>=57344?n+=3:(r++,n+=4);return n}function t6(){return Date.now().toString(36).substring(3)+Math.random().toString(36).substring(2,5)}function hQ(e){let t="";for(let n in e)e.hasOwnProperty(n)&&(t.length&&(t+="&"),t+=encodeURIComponent(n)+"="+encodeURIComponent(e[n]));return t}function pQ(e){let t={},n=e.split("&");for(let r=0,i=n.length;r<i;r++){let o=n[r].split("=");
440t[decodeURIComponent(o[0])]=decodeURIComponent(o[1])}return t}class fQ extends Error{constructor(t,n,r){super(t),this.description=n,this.context=r,this.type="TransportError"}}class fA extends en{constructor(t){super(),this.writable=!1,Lg(this,t),this.opts=t,this.query=t.query,this.socket=t.socket,this.supportsBinary=!t.forceBase64}onError(t,n,r){return super.emitReserved("error",new fQ(t,n,r)),this}open(){return this.readyState="opening",this.doOpen(),this}close(){return(this.readyState==="opening"||this.readyState==="open")&&(this.doClose(),this.onClose()),this}send(t){this.readyState==="open"&&this.write(t)}onOpen(){this.readyState="open",this.writable=!0,super.emitReserved("open")}onData(t){const n=pA(t,this.socket.binaryType);this.onPacket(n)}onPacket(t){super.emitReserved("packet",t)}onClose(t){this.readyState="closed",super.emitReserved("close",t)}pause(t){}createUri(t,n={}){return t+"://"+this._hostname()+this._port()+this.opts.path+this._query(n)}_hostname(){const t=this.opts.hostname;return t.indexOf(":")===-1?t:"["+t+"]"}_port(){return this.opts.port&&(this.opts.secure&&Number(this.opts.port)!==443||!this.opts.secure&&Number(this.opts.port)!==80)?":"+this.opts.port:""}_query(t){const n=hQ(t);return n.length?"?"+n:""}}class mQ extends fA{constructor(){super(...arguments),this._polling=!1}get name(){return"polling"}doOpen(){this._poll()}pause(t){this.readyState="pausing";const n=()=>{this.readyState="paused",t()};if(this._polling||!this.writable){let r=0;this._polling&&(r++,this.once("pollComplete",function(){--r||n()})),this.writable||(r++,this.once("drain",function(){--r||n()}))}else n()}_poll(){this._polling=!0,this.doPoll(),this.emitReserved("poll")}onData(t){const n=r=>{if(this.readyState==="opening"&&r.type==="open"&&this.onOpen(),r.type==="close")return this.onClose({description:"transport closed by the server"}),!1;this.onPacket(r)};nQ(t,this.socket.binaryType).forEach(n),this.readyState!=="closed"&&(this._polling=!1,this.emitReserved("pollComplete"),this.readyState==="open"&&this._poll())}doClose(){const t=()=>{this.write([{type:"close"}])};this.readyState==="open"?t():this.once("open",t)}write(t){this.writable=!1,tQ(t,n=>{this.doWrite(n,()=>{this.writable=!0,this.emitReserved("drain")})})}uri(){const t=this.opts.secure?"https":"http",n=this.query||{};return this.opts.timestampRequests!==!1&&(n[this.opts.timestampParam]=t6()),!this.supportsBinary&&!n.sid&&(n.b64=1),this.createUri(t,n)}}let n6=!1;try{n6=typeof XMLHttpRequest<"u"&&"withCredentials"in new XMLHttpRequest}catch{}const gQ=n6;function yQ(){}class xQ extends mQ{constructor(t){if(super(t),typeof location<"u"){const n=location.protocol==="https:";let r=location.port;r||(r=n?"443":"80"),this.xd=typeof location<"u"&&t.hostname!==location.hostname||r!==t.port}}doWrite(t,n){const r=this.request({method:"POST",data:t});r.on("success",n),r.on("error",(i,o)=>{this.onError("xhr post error",i,o)})}doPoll(){const t=this.request();t.on("data",this.onData.bind(this)),t.on("error",(n,r)=>{this.onError("xhr poll error",n,r)}),this.pollXhr=t}}class Pi extends en{constructor(t,n,r){super(),this.createRequest=t,Lg(this,r),this._opts=r,this._method=r.method||"GET",this._uri=n,this._data=r.data!==void 0?r.data:null,this._create()}_create(){var t;const n=e6(this._opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");n.xdomain=!!this._opts.xd;const r=this._xhr=this.createRequest(n);try{r.open(this._method,this._uri,!0);try{if(this._opts.extraHeaders){r.setDisableHeaderCheck&&r.setDisableHeaderCheck(!0);for(let i in this._opts.extraHeaders)this._opts.extraHeaders.hasOwnProperty(i)&&r.setRequestHeader(i,this._opts.extraHeaders[i])}}catch{}if(this._method==="POST")try{r.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch{}try{r.setRequestHeader("Accept","*/*")}catch{}(t=this._opts.cookieJar)===null||t===void 0||t.addCookies(r),"withCredentials"in r&&(r.withCredentials=this._opts.withCredentials),this._opts.requestTimeout&&(r.timeout=this._opts.requestTimeout),r.onreadystatechange=()=>{var i;r.readyState===3&&((i=this._opts.cookieJar)===null||i===void 0||i.parseCookies(r.getResponseHeader("set-cookie"))),r.readyState===4&&(r.status===200||r.status===1223?this._onLoad():this.setTimeoutFn(()=>{this._onError(typeof r.status=="number"?r.status:0)},0))},r.send(this._data)}catch(i){this.setTimeoutFn(()=>{this._onError(i)},0);return}typeof document<"u"&&(this._index=Pi.requestsCount++,Pi.requests[this._index]=this)}_onError(t){this.emitReserved("error",t,this._xhr),this._cleanup(!0)}_cleanup(t){if(!(typeof this._xhr>"u"||this._xhr===null)){if(this._xhr.onreadystatechange=yQ,t)try{this._xhr.abort()}catch{}typeof document<"u"&&delete Pi.requests[this._index],this._xhr=null}}_onLoad(){const t=this._xhr.responseText;t!==null&&(this.emitReserved("data",t),this.emitReserved("success"),this._cleanup())}abort(){this._cleanup()}}Pi.requestsCount=0;Pi.requests={};if(typeof document<"u"){if(typeof attachEvent=="function")attachEvent("onunload",WE);else if(typeof addEventListener=="function"){const e="onpagehide"in $r?"pagehide":"unload";addEventListener(e,WE,!1)}}function WE(){for(let e in Pi.requests)Pi.requests.hasOwnProperty(e)&&Pi.requests[e].abort()}const vQ=(function(){const e=r6({xdomain:!1});return e&&e.responseType!==null})();class bQ extends xQ{constructor(t){super(t);const n=t&&t.forceBase64;this.supportsBinary=vQ&&!n}request(t={}){return Object.assign(t,{xd:this.xd},this.opts),new Pi(r6,this.uri(),t)}}function r6(e){const t=e.xdomain;try{if(typeof XMLHttpRequest<"u"&&(!t||gQ))return new XMLHttpRequest}catch{}if(!t)try{return new $r[["Active"].concat("Object").join("X")]("Microsoft.XMLHTTP")}catch{}}const i6=typeof navigator<"u"&&typeof navigator.product=="string"&&navigator.product.toLowerCase()==="reactnative";class wQ extends fA{get name(){return"websocket"}doOpen(){const t=this.uri(),n=this.opts.protocols,r=i6?{}:e6(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(r.headers=this.opts.extraHeaders);try{this.ws=this.createSocket(t,n,r)}catch(i){return this.emitReserved("error",i)}
440this.ws.binaryType=this.socket.binaryType,this.addEventListeners()}addEventListeners(){this.ws.onopen=()=>{this.opts.autoUnref&&this.ws._socket.unref(),this.onOpen()},this.ws.onclose=t=>this.onClose({description:"websocket connection closed",context:t}),this.ws.onmessage=t=>this.onData(t.data),this.ws.onerror=t=>this.onError("websocket error",t)}write(t){this.writable=!1;for(let n=0;n<t.length;n++){const r=t[n],i=n===t.length-1;hA(r,this.supportsBinary,o=>{try{this.doWrite(r,o)}catch{}i&&Mg(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){typeof this.ws<"u"&&(this.ws.onerror=()=>{},this.ws.close(),this.ws=null)}uri(){const t=this.opts.secure?"wss":"ws",n=this.query||{};return this.opts.timestampRequests&&(n[this.opts.timestampParam]=t6()),this.supportsBinary||(n.b64=1),this.createUri(t,n)}}const Dv=$r.WebSocket||$r.MozWebSocket;class jQ extends wQ{createSocket(t,n,r){return i6?new Dv(t,n,r):n?new Dv(t,n):new Dv(t)}doWrite(t,n){this.ws.send(n)}}class kQ extends fA{get name(){return"webtransport"}doOpen(){try{this._transport=new WebTransport(this.createUri("https"),this.opts.transportOptions[this.name])}catch(t){return this.emitReserved("error",t)}this._transport.closed.then(()=>{this.onClose()}).catch(t=>{this.onError("webtransport error",t)}),this._transport.ready.then(()=>{this._transport.createBidirectionalStream().then(t=>{const n=iQ(Number.MAX_SAFE_INTEGER,this.socket.binaryType),r=t.readable.pipeThrough(n).getReader(),i=rQ();i.readable.pipeTo(t.writable),this._writer=i.writable.getWriter();const o=()=>{r.read().then(({done:l,value:u})=>{l||(this.onPacket(u),o())}).catch(l=>{})};o();const s={type:"open"};this.query.sid&&(s.data=`{"sid":"${this.query.sid}"}`),this._writer.write(s).then(()=>this.onOpen())})})}write(t){this.writable=!1;for(let n=0;n<t.length;n++){const r=t[n],i=n===t.length-1;this._writer.write(r).then(()=>{i&&Mg(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){var t;(t=this._transport)===null||t===void 0||t.close()}}const AQ={websocket:jQ,webtransport:kQ,polling:bQ},SQ=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,CQ=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function q2(e){if(e.length>8e3)throw"URI too long";const t=e,n=e.indexOf("["),r=e.indexOf("]");n!=-1&&r!=-1&&(e=e.substring(0,n)+e.substring(n,r).replace(/:/g,";")+e.substring(r,e.length));let i=SQ.exec(e||""),o={},s=14;for(;s--;)o[CQ[s]]=i[s]||"";return n!=-1&&r!=-1&&(o.source=t,o.host=o.host.substring(1,o.host.length-1).replace(/;/g,":"),o.authority=o.authority.replace("[","").replace("]","").replace(/;/g,":"),o.ipv6uri=!0),o.pathNames=NQ(o,o.path),o.queryKey=TQ(o,o.query),o}function NQ(e,t){const n=/\/{2,9}/g,r=t.replace(n,"/").split("/");return(t.slice(0,1)=="/"||t.length===0)&&r.splice(0,1),t.slice(-1)=="/"&&r.splice(r.length-1,1),r}function TQ(e,t){const n={};return t.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(r,i,o){i&&(n[i]=o)}),n}const W2=typeof addEventListener=="function"&&typeof removeEventListener=="function",Kf=[];W2&&addEventListener("offline",()=>{Kf.forEach(e=>e())},!1);class go extends en{constructor(t,n){if(super(),this.binaryType=oQ,this.writeBuffer=[],this._prevBufferLen=0,this._pingInterval=-1,this._pingTimeout=-1,this._maxPayload=-1,this._pingTimeoutTime=1/0,t&&typeof t=="object"&&(n=t,t=null),t){const r=q2(t);n.hostname=r.host,n.secure=r.protocol==="https"||r.protocol==="wss",n.port=r.port,r.query&&(n.query=r.query)}else n.host&&(n.hostname=q2(n.host).host);Lg(this,n),this.secure=n.secure!=null?n.secure:typeof location<"u"&&location.protocol==="https:",n.hostname&&!n.port&&(n.port=this.secure?"443":"80"),this.hostname=n.hostname||(typeof location<"u"?location.hostname:"localhost"),this.port=n.port||(typeof location<"u"&&location.port?location.port:this.secure?"443":"80"),this.transports=[],this._transportsByName={}
440,n.transports.forEach(r=>{const i=r.prototype.name;this.transports.push(i),this._transportsByName[i]=r}),this.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},n),this.opts.path=this.opts.path.replace(/\/$/,"")+(this.opts.addTrailingSlash?"/":""),typeof this.opts.query=="string"&&(this.opts.query=pQ(this.opts.query)),W2&&(this.opts.closeOnBeforeunload&&(this._beforeunloadEventListener=()=>{this.transport&&(this.transport.removeAllListeners(),this.transport.close())},addEventListener("beforeunload",this._beforeunloadEventListener,!1)),this.hostname!=="localhost"&&(this._offlineEventListener=()=>{this._onClose("transport close",{description:"network connection lost"})},Kf.push(this._offlineEventListener))),this.opts.withCredentials&&(this._cookieJar=void 0),this._open()}createTransport(t){const n=Object.assign({},this.opts.query);n.EIO=ZF,n.transport=t,this.id&&(n.sid=this.id);const r=Object.assign({},this.opts,{query:n,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[t]);return new this._transportsByName[t](r)}_open(){if(this.transports.length===0){this.setTimeoutFn(()=>{this.emitReserved("error","No transports available")},0);return}const t=this.opts.rememberUpgrade&&go.priorWebsocketSuccess&&this.transports.indexOf("websocket")!==-1?"websocket":this.transports[0];this.readyState="opening";const n=this.createTransport(t);n.open(),this.setTransport(n)}setTransport(t){this.transport&&this.transport.removeAllListeners(),this.transport=t,t.on("drain",this._onDrain.bind(this)).on("packet",this._onPacket.bind(this)).on("error",this._onError.bind(this)).on("close",n=>this._onClose("transport close",n))}onOpen(){this.readyState="open",go.priorWebsocketSuccess=this.transport.name==="websocket",this.emitReserved("open"),this.flush()}_onPacket(t){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing")switch(this.emitReserved("packet",t),this.emitReserved("heartbeat"),t.type){case"open":this.onHandshake(JSON.parse(t.data));break;case"ping":this._sendPacket("pong"),this.emitReserved("ping"),this.emitReserved("pong"),this._resetPingTimeout();break;case"error":const n=new Error("server error");n.code=t.data,this._onError(n);break;case"message":this.emitReserved("data",t.data),this.emitReserved("message",t.data);break}}onHandshake(t){this.emitReserved("handshake",t),this.id=t.sid,this.transport.query.sid=t.sid,this._pingInterval=t.pingInterval,this._pingTimeout=t.pingTimeout,this._maxPayload=t.maxPayload,this.onOpen(),this.readyState!=="closed"&&this._resetPingTimeout()}_resetPingTimeout(){this.clearTimeoutFn(this._pingTimeoutTimer);const t=this._pingInterval+this._pingTimeout;this._pingTimeoutTime=Date.now()+t,this._pingTimeoutTimer=this.setTimeoutFn(()=>{this._onClose("ping timeout")},t),this.opts.autoUnref&&this._pingTimeoutTimer.unref()}_onDrain(){this.writeBuffer.splice(0,this._prevBufferLen),this._prevBufferLen=0,this.writeBuffer.length===0?this.emitReserved("drain"):this.flush()}flush(){if(this.readyState!=="closed"&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){const t=this._getWritablePackets();this.transport.send(t),this._prevBufferLen=t.length,this.emitReserved("flush")}}_getWritablePackets(){if(!(this._maxPayload&&this.transport.name==="polling"&&this.writeBuffer.length>1))return this.writeBuffer;let n=1;for(let r=0;r<this.writeBuffer.length;r++){const i=this.writeBuffer[r].data;if(i&&(n+=uQ(i)),r>0&&n>this._maxPayload)return this.writeBuffer.slice(0,r);n+=2}return this.writeBuffer}_hasPingExpired(){if(!this._pingTimeoutTime)return!0;const t=Date.now()>this._pingTimeoutTime;return t&&(this._pingTimeoutTime=0,Mg(()=>{this._onClose("ping timeout")},this.setTimeoutFn)),t}write(t,n,r){return this._sendPacket("message",t,n,r),this}send(t,n,r){return this._sendPacket("message",t,n,r),this}_sendPacket(t,n,r,i){if(typeof n=="function"&&(i=n,n=void 0),typeof r=="function"&&(i=r,r=null),this.readyState==="closing"||this.readyState==="closed")return;r=r||{},r.compress=r.compress!==!1;const o={type:t,data:n,options:r};this.emitReserved("packetCreate",o),this.writeBuffer.push(o),i&&this.once("flush",i),this.flush()}close(){const t=()=>{this._onClose("forced close"),this.transport.close()},n=()=>{this.off("upgrade",n),this.off("upgradeError",n),t()},r=()=>{this.once("upgrade",n),this.once("upgradeError",n)};return(this.readyState==="opening"||this.readyState==="open")&&(this.readyState="closing",this.writeBuffer.length?this.once("drain",()=>{this.upgrading?r():t()}):this.upgrading?r():t()),this}_onError(t){if(go.priorWebsocketSuccess=!1,this.opts.tryAllTransports&&this.transports.length>1&&this.readyState==="opening")return this.transports.shift(),this._open();this.emitReserved("error",t),this._onClose("transport error",t)}_onClose(t,n){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing"){if(this.clearTimeoutFn(this._pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),W2&&(this._beforeunloadEventListener&&removeEventListener("beforeunload",this._beforeunloadEventListener,!1),this._offlineEventListener)){const r=Kf.indexOf(this._offlineEventListener);r!==-1&&Kf.splice(r,1)}this.readyState="closed",this.id=null,this.emitReserved("close",t,n),this.writeBuffer=[],this._prevBufferLen=0}}}go.protocol=ZF;class EQ extends go{constructor(){super(...arguments),this._upgrades=[]}onOpen(){if(super.onOpen(),this.readyState==="open"&&this.opts.upgrade)for(let t=0;t<this._upgrades.length;t++)this._probe(this._upgrades[t])}_probe(t){let n=this.createTransport(t),r=!1;go.priorWebsocketSuccess=!1;const i=()=>{r||(n.send([{type:"ping",data:"probe"}]),n.once("packet",f=>{if(!r)if(f.type==="pong"&&f.data==="probe"){if(this.upgrading=!0,this.emitReserved("upgrading",n),!n)return;go.priorWebsocketSuccess=n.name==="websocket",this.transport.pause(()=>{r||this.readyState!=="closed"&&(p(),this.setTransport(n),n.send([{type:"upgrade"}
440]),this.emitReserved("upgrade",n),n=null,this.upgrading=!1,this.flush())})}else{const g=new Error("probe error");g.transport=n.name,this.emitReserved("upgradeError",g)}}))};function o(){r||(r=!0,p(),n.close(),n=null)}const s=f=>{const g=new Error("probe error: "+f);g.transport=n.name,o(),this.emitReserved("upgradeError",g)};function l(){s("transport closed")}function u(){s("socket closed")}function d(f){n&&f.name!==n.name&&o()}const p=()=>{n.removeListener("open",i),n.removeListener("error",s),n.removeListener("close",l),this.off("close",u),this.off("upgrading",d)};n.once("open",i),n.once("error",s),n.once("close",l),this.once("close",u),this.once("upgrading",d),this._upgrades.indexOf("webtransport")!==-1&&t!=="webtransport"?this.setTimeoutFn(()=>{r||n.open()},200):n.open()}onHandshake(t){this._upgrades=this._filterUpgrades(t.upgrades),super.onHandshake(t)}_filterUpgrades(t){const n=[];for(let r=0;r<t.length;r++)~this.transports.indexOf(t[r])&&n.push(t[r]);return n}}let PQ=class extends EQ{constructor(t,n={}){const r=typeof t=="object"?t:n;(!r.transports||r.transports&&typeof r.transports[0]=="string")&&(r.transports=(r.transports||["polling","websocket","webtransport"]).map(i=>AQ[i]).filter(i=>!!i)),super(t,r)}};function OQ(e,t="",n){let r=e;n=n||typeof location<"u"&&location,e==null&&(e=n.protocol+"//"+n.host),typeof e=="string"&&(e.charAt(0)==="/"&&(e.charAt(1)==="/"?e=n.protocol+e:e=n.host+e),/^(https?|wss?):\/\//.test(e)||(typeof n<"u"?e=n.protocol+"//"+e:e="https://"+e),r=q2(e)),r.port||(/^(http|ws)$/.test(r.protocol)?r.port="80":/^(http|ws)s$/.test(r.protocol)&&(r.port="443")),r.path=r.path||"/";const o=r.host.indexOf(":")!==-1?"["+r.host+"]":r.host;return r.id=r.protocol+"://"+o+":"+r.port+t,r.href=r.protocol+"://"+o+(n&&n.port===r.port?"":":"+r.port),r}const _Q=typeof ArrayBuffer=="function",IQ=e=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(e):e.buffer instanceof ArrayBuffer,a6=Object.prototype.toString,RQ=typeof Blob=="function"||typeof Blob<"u"&&a6.call(Blob)==="[object BlobConstructor]",DQ=typeof File=="function"||typeof File<"u"&&a6.call(File)==="[object FileConstructor]";function mA(e){return _Q&&(e instanceof ArrayBuffer||IQ(e))||RQ&&e instanceof Blob||DQ&&e instanceof File}function Xf(e,t){if(!e||typeof e!="object")return!1;if(Array.isArray(e)){for(let n=0,r=e.length;n<r;n++)if(Xf(e[n]))return!0;return!1}if(mA(e))return!0;if(e.toJSON&&typeof e.toJSON=="function"&&arguments.length===1)return Xf(e.toJSON(),!0);for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&Xf(e[n]))return!0;return!1}function MQ(e){const t=[],n=e.data,r=e;return r.data=U2(n,t),r.attachments=t.length,{packet:r,buffers:t}}function U2(e,t){if(!e)return e;if(mA(e)){const n={_placeholder:!0,num:t.length};return t.push(e),n}else if(Array.isArray(e)){const n=new Array(e.length);for(let r=0;r<e.length;r++)n[r]=U2(e[r],t);return n}else if(typeof e=="object"&&!(e instanceof Date)){const n={};for(const r in e)Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=U2(e[r],t));return n}return e}function LQ(e,t){return e.data=H2(e.data,t),delete e.attachments,e}function H2(e,t){if(!e)return e;if(e&&e._placeholder===!0){if(typeof e.num=="number"&&e.num>=0&&e.num<t.length)return t[e.num];throw new Error("illegal attachments")}else if(Array.isArray(e))for(let n=0;n<e.length;n++)e[n]=H2(e[n],t);else if(typeof e=="object")for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&(e[n]=H2(e[n],t));return e}const FQ=["connect","connect_error","disconnect","disconnecting","newListener","removeListener"];var lt;(function(e){e[e.CONNECT=0]="CONNECT",e[e.DISCONNECT=1]="DISCONNECT",e[e.EVENT=2]="EVENT",e[e.ACK=3]="ACK",e[e.CONNECT_ERROR=4]="CONNECT_ERROR",e[e.BINARY_EVENT=5]="BINARY_EVENT",e[e.BINARY_ACK=6]="BINARY_ACK"})(lt||(lt={}));class BQ{constructor(t){this.replacer=t}encode(t){return(t.type===lt.EVENT||t.type===lt.ACK)&&Xf(t)?this.encodeAsBinary({type:t.type===lt.EVENT?lt.BINARY_EVENT:lt.BINARY_ACK,nsp:t.nsp,data:t.data,id:t.id}):[this.encodeAsString(t)]}encodeAsString(t){let n=""+t.type;return(t.type===lt.BINARY_EVENT||t.type===lt.BINARY_ACK)&&(n+=t.attachments+"-"),t.nsp&&t.nsp!=="/"&&(n+=t.nsp+","),t.id!=null&&(n+=t.id),t.data!=null&&(n+=JSON.stringify(t.data,this.replacer)),n}encodeAsBinary(t){const n=MQ(t),r=this.encodeAsString(n.packet),i=n.buffers;return i.unshift(r),i}}class gA extends en{constructor(t){super(),this.reviver=t}add(t){let n;if(typeof t=="string"){if(this.reconstructor)throw new Error("got plaintext data when reconstructing a packet");n=this.decodeString(t);const r=n.type===lt.BINARY_EVENT;r||n.type===lt.BINARY_ACK?(n.type=r?lt.EVENT:lt.ACK,this.reconstructor=new zQ(n),n.attachments===0&&super.emitReserved("decoded",n)):super.emitReserved("decoded",n)}else if(mA(t)||t.base64)if(this.reconstructor)n=this.reconstructor.takeBinaryData(t),n&&(this.reconstructor=null,super.emitReserved("decoded",n));else throw new Error("got binary data when not reconstructing a packet");else throw new Error("Unknown type: "+t)}decodeString(t){let n=0;const r={type:Number(t.charAt(0))};if(lt[r.type]===void 0)throw new Error("unknown packet type "+r.type);if(r.type===lt.BINARY_EVENT||r.type===lt.BINARY_ACK){const o=n+1;for(;t.charAt(++n)!=="-"&&n!=t.length;);const s=t.substring(o,n);if(s!=Number(s)||t.charAt(n)!=="-")throw new Error("Illegal attachments");r.attachments=Number(s)}if(t.charAt(n+1)==="/"){const o=n+1;for(;++n&&!(t.charAt(n)===","||n===t.length););r.nsp=t.substring(o,n)}else r.nsp="/";const i=t.charAt(n+1);if(i!==""&&Number(i)==i){const o=n+1;for(;++n;){const s=t.charAt(n);if(s==null||Number(s)!=s){--n;break}if(n===t.length)break}r.id=Number(t.substring(o,n+1))}
440if(t.charAt(++n)){const o=this.tryParse(t.substr(n));if(gA.isPayloadValid(r.type,o))r.data=o;else throw new Error("invalid payload")}return r}tryParse(t){try{return JSON.parse(t,this.reviver)}catch{return!1}}static isPayloadValid(t,n){switch(t){case lt.CONNECT:return UE(n);case lt.DISCONNECT:return n===void 0;case lt.CONNECT_ERROR:return typeof n=="string"||UE(n);case lt.EVENT:case lt.BINARY_EVENT:return Array.isArray(n)&&(typeof n[0]=="number"||typeof n[0]=="string"&&FQ.indexOf(n[0])===-1);case lt.ACK:case lt.BINARY_ACK:return Array.isArray(n)}}destroy(){this.reconstructor&&(this.reconstructor.finishedReconstruction(),this.reconstructor=null)}}class zQ{constructor(t){this.packet=t,this.buffers=[],this.reconPack=t}takeBinaryData(t){if(this.buffers.push(t),this.buffers.length===this.reconPack.attachments){const n=LQ(this.reconPack,this.buffers);return this.finishedReconstruction(),n}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}}function UE(e){return Object.prototype.toString.call(e)==="[object Object]"}const $Q=Object.freeze(Object.defineProperty({__proto__:null,Decoder:gA,Encoder:BQ,get PacketType(){return lt}},Symbol.toStringTag,{value:"Module"}));function si(e,t,n){return e.on(t,n),function(){e.off(t,n)}}const qQ=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1});class o6 extends en{constructor(t,n,r){super(),this.connected=!1,this.recovered=!1,this.receiveBuffer=[],this.sendBuffer=[],this._queue=[],this._queueSeq=0,this.ids=0,this.acks={},this.flags={},this.io=t,this.nsp=n,r&&r.auth&&(this.auth=r.auth),this._opts=Object.assign({},r),this.io._autoConnect&&this.open()}get disconnected(){return!this.connected}subEvents(){if(this.subs)return;const t=this.io;this.subs=[si(t,"open",this.onopen.bind(this)),si(t,"packet",this.onpacket.bind(this)),si(t,"error",this.onerror.bind(this)),si(t,"close",this.onclose.bind(this))]}get active(){return!!this.subs}connect(){return this.connected?this:(this.subEvents(),this.io._reconnecting||this.io.open(),this.io._readyState==="open"&&this.onopen(),this)}open(){return this.connect()}send(...t){return t.unshift("message"),this.emit.apply(this,t),this}emit(t,...n){var r,i,o;if(qQ.hasOwnProperty(t))throw new Error('"'+t.toString()+'" is a reserved event name');if(n.unshift(t),this._opts.retries&&!this.flags.fromQueue&&!this.flags.volatile)return this._addToQueue(n),this;const s={type:lt.EVENT,data:n};if(s.options={},s.options.compress=this.flags.compress!==!1,typeof n[n.length-1]=="function"){const p=this.ids++,f=n.pop();this._registerAckCallback(p,f),s.id=p}const l=(i=(r=this.io.engine)===null||r===void 0?void 0:r.transport)===null||i===void 0?void 0:i.writable,u=this.connected&&!(!((o=this.io.engine)===null||o===void 0)&&o._hasPingExpired());return this.flags.volatile&&!l||(u?(this.notifyOutgoingListeners(s),this.packet(s)):this.sendBuffer.push(s)),this.flags={},this}_registerAckCallback(t,n){var r;const i=(r=this.flags.timeout)!==null&&r!==void 0?r:this._opts.ackTimeout;if(i===void 0){this.acks[t]=n;return}const o=this.io.setTimeoutFn(()=>{delete this.acks[t];for(let l=0;l<this.sendBuffer.length;l++)this.sendBuffer[l].id===t&&this.sendBuffer.splice(l,1);n.call(this,new Error("operation has timed out"))},i),s=(...l)=>{this.io.clearTimeoutFn(o),n.apply(this,l)};s.withError=!0,this.acks[t]=s}emitWithAck(t,...n){return new Promise((r,i)=>{const o=(s,l)=>s?i(s):r(l);o.withError=!0,n.push(o),this.emit(t,...n)})}_addToQueue(t){let n;typeof t[t.length-1]=="function"&&(n=t.pop());const r={id:this._queueSeq++,tryCount:0,pending:!1,args:t,flags:Object.assign({fromQueue:!0},this.flags)};t.push((i,...o)=>(this._queue[0],i!==null?r.tryCount>this._opts.retries&&(this._queue.shift(),n&&n(i)):(this._queue.shift(),n&&n(null,...o)),r.pending=!1,this._drainQueue())),this._queue.push(r),this._drainQueue()}_drainQueue(t=!1){if(!this.connected||this._queue.length===0)return;const n=this._queue[0];n.pending&&!t||(n.pending=!0,n.tryCount++,this.flags=n.flags,this.emit.apply(this,n.args))}packet(t){t.nsp=this.nsp,this.io._packet(t)}onopen(){typeof this.auth=="function"?this.auth(t=>{this._sendConnectPacket(t)}):this._sendConnectPacket(this.auth)}_sendConnectPacket(t){this.packet({type:lt.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},t):t})}onerror(t){this.connected||this.emitReserved("connect_error",t)}onclose(t,n){this.connected=!1,delete this.id,this.emitReserved("disconnect",t,n),this._clearAcks()}
vendor: 7,087 bytes, line 440
440_clearAcks(){Object.keys(this.acks).forEach(t=>{if(!this.sendBuffer.some(r=>String(r.id)===t)){const r=this.acks[t];delete this.acks[t],r.withError&&r.call(this,new Error("socket has been disconnected"))}})}onpacket(t){if(t.nsp===this.nsp)switch(t.type){case lt.CONNECT:t.data&&t.data.sid?this.onconnect(t.data.sid,t.data.pid):this.emitReserved("connect_error",new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case lt.EVENT:case lt.BINARY_EVENT:this.onevent(t);break;case lt.ACK:case lt.BINARY_ACK:this.onack(t);break;case lt.DISCONNECT:this.ondisconnect();break;case lt.CONNECT_ERROR:this.destroy();const r=new Error(t.data.message);r.data=t.data.data,this.emitReserved("connect_error",r);break}}onevent(t){const n=t.data||[];t.id!=null&&n.push(this.ack(t.id)),this.connected?this.emitEvent(n):this.receiveBuffer.push(Object.freeze(n))}emitEvent(t){if(this._anyListeners&&this._anyListeners.length){const n=this._anyListeners.slice();for(const r of n)r.apply(this,t)}super.emit.apply(this,t),this._pid&&t.length&&typeof t[t.length-1]=="string"&&(this._lastOffset=t[t.length-1])}ack(t){const n=this;let r=!1;return function(...i){r||(r=!0,n.packet({type:lt.ACK,id:t,data:i}))}}onack(t){const n=this.acks[t.id];typeof n=="function"&&(delete this.acks[t.id],n.withError&&t.data.unshift(null),n.apply(this,t.data))}onconnect(t,n){this.id=t,this.recovered=n&&this._pid===n,this._pid=n,this.connected=!0,this.emitBuffered(),this._drainQueue(!0),this.emitReserved("connect")}emitBuffered(){this.receiveBuffer.forEach(t=>this.emitEvent(t)),this.receiveBuffer=[],this.sendBuffer.forEach(t=>{this.notifyOutgoingListeners(t),this.packet(t)}),this.sendBuffer=[]}ondisconnect(){this.destroy(),this.onclose("io server disconnect")}destroy(){this.subs&&(this.subs.forEach(t=>t()),this.subs=void 0),this.io._destroy(this)}disconnect(){return this.connected&&this.packet({type:lt.DISCONNECT}),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}close(){return this.disconnect()}compress(t){return this.flags.compress=t,this}get volatile(){return this.flags.volatile=!0,this}timeout(t){return this.flags.timeout=t,this}onAny(t){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(t),this}prependAny(t){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(t),this}offAny(t){if(!this._anyListeners)return this;if(t){const n=this._anyListeners;for(let r=0;r<n.length;r++)if(t===n[r])return n.splice(r,1),this}else this._anyListeners=[];return this}listenersAny(){return this._anyListeners||[]}onAnyOutgoing(t){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.push(t),this}prependAnyOutgoing(t){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.unshift(t),this}offAnyOutgoing(t){if(!this._anyOutgoingListeners)return this;if(t){const n=this._anyOutgoingListeners;for(let r=0;r<n.length;r++)if(t===n[r])return n.splice(r,1),this}else this._anyOutgoingListeners=[];return this}listenersAnyOutgoing(){return this._anyOutgoingListeners||[]}notifyOutgoingListeners(t){if(this._anyOutgoingListeners&&this._anyOutgoingListeners.length){const n=this._anyOutgoingListeners.slice();for(const r of n)r.apply(this,t.data)}}}function zc(e){e=e||{},this.ms=e.min||100,this.max=e.max||1e4,this.factor=e.factor||2,this.jitter=e.jitter>0&&e.jitter<=1?e.jitter:0,this.attempts=0}zc.prototype.duration=function(){var e=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var t=Math.random(),n=Math.floor(t*this.jitter*e);e=(Math.floor(t*10)&1)==0?e-n:e+n}return Math.min(e,this.max)|0};zc.prototype.reset=function(){this.attempts=0};zc.prototype.setMin=function(e){this.ms=e};zc.prototype.setMax=function(e){this.max=e};zc.prototype.setJitter=function(e){this.jitter=e};class V2 extends en{constructor(t,n){var r;super(),this.nsps={},this.subs=[],t&&typeof t=="object"&&(n=t,t=void 0),n=n||{},n.path=n.path||"/socket.io",this.opts=n,Lg(this,n),this.reconnection(n.reconnection!==!1),this.reconnectionAttempts(n.reconnectionAttempts||1/0),this.reconnectionDelay(n.reconnectionDelay||1e3),this.reconnectionDelayMax(n.reconnectionDelayMax||5e3),this.randomizationFactor((r=n.randomizationFactor)!==null&&r!==void 0?r:.5),this.backoff=new zc({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(n.timeout==null?2e4:n.timeout),this._readyState="closed",this.uri=t;const i=n.parser||$Q;this.encoder=new i.Encoder,this.decoder=new i.Decoder,this._autoConnect=n.autoConnect!==!1,this._autoConnect&&this.open()}reconnection(t){return arguments.length?(this._reconnection=!!t,t||(this.skipReconnect=!0),this):this._reconnection}reconnectionAttempts(t){return t===void 0?this._reconnectionAttempts:(this._reconnectionAttempts=t,this)}reconnectionDelay(t){var n;return t===void 0?this._reconnectionDelay:(this._reconnectionDelay=t,(n=this.backoff)===null||n===void 0||n.setMin(t),this)}randomizationFactor(t){var n;return t===void 0?this._randomizationFactor:(this._randomizationFactor=t,(n=this.backoff)===null||n===void 0||n.setJitter(t),this)}reconnectionDelayMax(t){var n;return t===void 0?this._reconnectionDelayMax:(this._reconnectionDelayMax=t,(n=this.backoff)===null||n===void 0||n.setMax(t),this)}timeout(t){return arguments.length?(this._timeout=t,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&this.backoff.attempts===0&&this.reconnect()}open(t){if(~this._readyState.indexOf("open"))return this;this.engine=new PQ(this.uri,this.opts);const n=this.engine,r=this;this._readyState="opening",this.skipReconnect=!1;const i=si(n,"open",function(){r.onopen(),t&&t()}),o=l=>{this.cleanup(),this._readyState="closed",this.emitReserved("error",l),t?t(l):this.maybeReconnectOnOpen()},s=si(n,"error",o);if(this._timeout!==!1){const l=this._timeout,u=this.setTimeoutFn(()=>{i(),o(new Error("timeout")),n.close()},l);this.opts.autoUnref&&u.unref(),this.subs.push(()=>{this.clearTimeoutFn(u)})}return this.subs.push(i),this.subs.push(s),this}connect(t){return this.open(t)}onopen(){this.cleanup(),this._readyState="open",this.emitReserved("open");const t=this.engine;this.subs.push(si(t,"ping",this.onping.bind(this)),si(t,"data",this.ondata.bind(this)),si(t,"error",this.onerror.bind(this)),si(t,"close",this.onclose.bind(this)),si(this.decoder,"decoded",this.ondecoded.bind(this)))}onping(){this.emitReserved("ping")}ondata(t){try{this.decoder.add(t)}catch(n){this.onclose("parse error",n)}}ondecoded(t){Mg(()=>{this.emitReserved("packet",t)},this.setTimeoutFn)}onerror(t){this.emitReserved("error",t)}socket(t,n){let r=this.nsps[t];return r?this._autoConnect&&!r.active&&r.connect():(r=new o6(this,t,n),this.nsps[t]=r),r}_destroy(t){const n=Object.keys(this.nsps);for(const r of n)if(this.nsps[r].active)return;this._close()}_packet(t){const n=this.encoder.encode(t);for(let r=0;r<n.length;r++)this.engine.write(n[r],t.options)}
440cleanup(){this.subs.forEach(t=>t()),this.subs.length=0,this.decoder.destroy()}_close(){this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close")}disconnect(){return this._close()}onclose(t,n){var r;this.cleanup(),(r=this.engine)===null||r===void 0||r.close(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",t,n),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;const t=this;if(this.backoff.attempts>=this._reconnectionAttempts)this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{const n=this.backoff.duration();this._reconnecting=!0;const r=this.setTimeoutFn(()=>{t.skipReconnect||(this.emitReserved("reconnect_attempt",t.backoff.attempts),!t.skipReconnect&&t.open(i=>{i?(t._reconnecting=!1,t.reconnect(),this.emitReserved("reconnect_error",i)):t.onreconnect()}))},n);this.opts.autoUnref&&r.unref(),this.subs.push(()=>{this.clearTimeoutFn(r)})}}onreconnect(){const t=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",t)}}const zu={};function Qf(e,t){typeof e=="object"&&(t=e,e=void 0),t=t||{};const n=OQ(e,t.path||"/socket.io"),r=n.source,i=n.id,o=n.path,s=zu[i]&&o in zu[i].nsps,l=t.forceNew||t["force new connection"]||t.multiplex===!1||s;let u;return l?u=new V2(r,t):(zu[i]||(zu[i]=new V2(r,t)),u=zu[i]),n.query&&!t.query&&(t.query=n.queryKey),u.socket(n.path,t)}Object.assign(Qf,{Manager:V2,Socket:o6,io:Qf,connect:Qf});const WQ=250;function HE(e,t){var n;const r=(n=e.token)!==null&&n!==void 0?n:uo(),i={app_id:e.appId,token:r};r||(i.anonymous_id=lm());const o=Qf(e.serverUrl,{path:e.mountPath,transports:e.transports,query:i});return o.on("connect",async()=>{var s;return console.log("connect",o.id),(s=t.connect)===null||s===void 0?void 0:s.call(t)}),o.on("update_model",async s=>{var l;return(l=t.update_model)===null||l===void 0?void 0:l.call(t,s)}),o.on("error",async s=>{var l;return(l=t.error)===null||l===void 0?void 0:l.call(t,s)}),o.on("connect_error",async s=>{var l;return console.error("connect_error",s),(l=t.error)===null||l===void 0?void 0:l.call(t,s)}),o}function UQ({config:e}){let t={...e};const n={},r={},i={connect:async()=>{const j=[];Object.keys(n).forEach(k=>{const S=g(k);S.length!==0&&(d(k),S.forEach(({connect:E})=>{const N=async()=>E==null?void 0:E();j.push(N())}))}),await Promise.all(j)},update_model:async j=>{const S=g(j.room).map(E=>{var N;return(N=E.update_model)===null||N===void 0?void 0:N.call(E,j)});await Promise.all(S)},error:async j=>{console.error("error",j);const k=Object.values(n).flat().map(S=>{var E;return(E=S.error)===null||E===void 0?void 0:E.call(S,j)});await Promise.all(k)}};let o=HE(e,i);function s(){l()}function l(){b(),o&&o.disconnect()}function u(j){s(),t={...t,...j},o=HE(t,i)}function d(j){o.emit("join",j)}function p(j){o.emit("leave",j)}async function f(j,k){var S;const E=JSON.stringify(k);return(S=i.update_model)===null||S===void 0?void 0:S.call(i,{room:j,data:E})}function g(j){var k;return(k=n[j])!==null&&k!==void 0?k:[]}function y(j){const k=r[j];k&&(clearTimeout(k),delete r[j])}function b(){Object.keys(r).forEach(j=>{var k,S;clearTimeout(r[j]),delete r[j],((S=(k=n[j])===null||k===void 0?void 0:k.length)!==null&&S!==void 0?S:0)===0&&delete n[j]})}function w(j){y(j),r[j]=setTimeout(()=>{var k,S;delete r[j],!(((S=(k=n[j])===null||k===void 0?void 0:k.length)!==null&&S!==void 0?S:0)>0)&&(p(j),delete n[j])},WQ)}return{socket:o,subscribeToRoom:(j,k)=>{n[j]?y(j):(d(j),n[j]=[]),n[j].push(k);let S=!1;return()=>{var E,N;S||(S=!0,n[j]=(N=(E=n[j])===null||E===void 0?void 0:E.filter(C=>C!==k))!==null&&N!==void 0?N:[],n[j].length===0&&w(j))}},updateConfig:u,updateModel:f,disconnect:l}}(!globalThis.EventTarget||!globalThis.Event)&&console.error(` 441 PartySocket requires a global 'EventTarget' class to be available! 442 You can polyfill this global by adding this to your code before any partysocket imports: 443 444 \`\`\` 445 import 'partysocket/event-target-polyfill'; 446 \`\`\` 447 Please file an issue at https://github.com/partykit/partykit if you're still having trouble. 448`);
448var s6=class extends Event{constructor(t,n){super("error",n);Ct(this,"message");Ct(this,"error");this.message=t.message,this.error=t}},l6=class extends Event{constructor(t=1e3,n="",r){super("close",r);Ct(this,"code");Ct(this,"reason");Ct(this,"wasClean",!0);this.code=t,this.reason=n}},Mv={Event,ErrorEvent:s6,CloseEvent:l6};function HQ(e,t){if(!e)throw new Error(t)}function VQ(e){return new e.constructor(e.type,e)}function GQ(e){return"data"in e?new MessageEvent(e.type,e):"code"in e||"reason"in e?new l6(e.code||1999,e.reason||"unknown reason",e):"error"in e?new s6(e.error,e):new Event(e.type,e)}var pL,YQ=typeof process<"u"&&typeof((pL=process.versions)==null?void 0:pL.node)<"u"&&typeof document>"u",mf=YQ?GQ:VQ,Ko={maxReconnectionDelay:1e4,minReconnectionDelay:1e3+Math.random()*4e3,minUptime:5e3,reconnectionDelayGrowFactor:1.3,connectionTimeout:4e3,maxRetries:1/0,maxEnqueuedMessages:1/0},VE=!1,KQ=class Zo extends EventTarget{constructor(n,r,i={}){super();Ct(this,"_ws");Ct(this,"_retryCount",-1);Ct(this,"_uptimeTimeout");Ct(this,"_connectTimeout");Ct(this,"_shouldReconnect",!0);Ct(this,"_connectLock",!1);Ct(this,"_binaryType","blob");Ct(this,"_closeCalled",!1);Ct(this,"_messageQueue",[]);Ct(this,"_url");Ct(this,"_protocols");Ct(this,"_options");Ct(this,"onclose",null);Ct(this,"onerror",null);Ct(this,"onmessage",null);Ct(this,"onopen",null);Ct(this,"_handleOpen",n=>{this._debug("open event");const{minUptime:r=Ko.minUptime}=this._options;clearTimeout(this._connectTimeout),this._uptimeTimeout=setTimeout(()=>this._acceptOpen(),r),HQ(this._ws,"WebSocket is not defined"),this._ws.binaryType=this._binaryType,this._messageQueue.forEach(i=>{var o;return(o=this._ws)==null?void 0:o.send(i)}),this._messageQueue=[],this.onopen&&this.onopen(n),this.dispatchEvent(mf(n))});Ct(this,"_handleMessage",n=>{this._debug("message event"),this.onmessage&&this.onmessage(n),this.dispatchEvent(mf(n))});Ct(this,"_handleError",n=>{this._debug("error event",n.message),this._disconnect(void 0,n.message==="TIMEOUT"?"timeout":void 0),this.onerror&&this.onerror(n),this._debug("exec error listeners"),this.dispatchEvent(mf(n)),this._connect()});Ct(this,"_handleClose",n=>{this._debug("close event"),this._clearTimeouts(),this._shouldReconnect&&this._connect(),this.onclose&&this.onclose(n),this.dispatchEvent(mf(n))});this._url=n,this._protocols=r,this._options=i,this._options.startClosed&&(this._shouldReconnect=!1),this._connect()}static get CONNECTING(){return 0}static get OPEN(){return 1}static get CLOSING(){return 2}static get CLOSED(){return 3}get CONNECTING(){return Zo.CONNECTING}get OPEN(){return Zo.OPEN}get CLOSING(){return Zo.CLOSING}get CLOSED(){return Zo.CLOSED}get binaryType(){return this._ws?this._ws.binaryType:this._binaryType}set binaryType(n){this._binaryType=n,this._ws&&(this._ws.binaryType=n)}get retryCount(){return Math.max(this._retryCount,0)}get bufferedAmount(){return this._messageQueue.reduce((r,i)=>(typeof i=="string"?r+=i.length:i instanceof Blob?r+=i.size:r+=i.byteLength,r),0)+(this._ws?this._ws.bufferedAmount:0)}get extensions(){return this._ws?this._ws.extensions:""}get protocol(){return this._ws?this._ws.protocol:""}get readyState(){return this._ws?this._ws.readyState:this._options.startClosed?Zo.CLOSED:Zo.CONNECTING}get url(){return this._ws?this._ws.url:""}get shouldReconnect(){return this._shouldReconnect}close(n=1e3,r){if(this._closeCalled=!0,this._shouldReconnect=!1,this._clearTimeouts(),!this._ws){this._debug("close enqueued: no ws instance");return}if(this._ws.readyState===this.CLOSED){this._debug("close: already closed");return}this._ws.close(n,r)}reconnect(n,r){this._shouldReconnect=!0,this._closeCalled=!1,this._retryCount=-1,!this._ws||this._ws.readyState===this.CLOSED?this._connect():(this._disconnect(n,r),this._connect())}send(n){if(this._ws&&this._ws.readyState===this.OPEN)this._debug("send",n),this._ws.send(n);else{const{maxEnqueuedMessages:r=Ko.maxEnqueuedMessages}=this._options;this._messageQueue.length<r&&(this._debug("enqueue",n),this._messageQueue.push(n))}}_debug(...n){this._options.debug&&console.log.apply(console,["RWS>",...n])}_getNextDelay(){const{reconnectionDelayGrowFactor:n=Ko.reconnectionDelayGrowFactor,minReconnectionDelay:r=Ko.minReconnectionDelay,maxReconnectionDelay:i=Ko.maxReconnectionDelay}=this._options;let o=0;return this._retryCount>0&&(o=r*Math.pow(n,this._retryCount-1),o>i&&(o=i)),this._debug("next delay",o),o}_wait(){return new Promise(n=>{setTimeout(n,this._getNextDelay())})}_getNextProtocols(n){if(!n)return Promise.resolve(null);if(typeof n=="string"||Array.isArray(n))return Promise.resolve(n);if(typeof n=="function"){const r=n();if(!r)return Promise.resolve(null);if(typeof r=="string"||Array.isArray(r))return Promise.resolve(r);if(r.then)return r}throw Error("Invalid protocols")}_getNextUrl(n){if(typeof n=="string")return Promise.resolve(n);if(typeof n=="function"){const r=n();if(typeof r=="string")return Promise.resolve(r);if(r.then)return r}throw Error("Invalid URL")}_connect(){if(this._connectLock||!this._shouldReconnect)return;this._connectLock=!0;
448const{maxRetries:n=Ko.maxRetries,connectionTimeout:r=Ko.connectionTimeout}=this._options;if(this._retryCount>=n){this._debug("max retries reached",this._retryCount,">=",n);return}this._retryCount++,this._debug("connect",this._retryCount),this._removeListeners(),this._wait().then(()=>Promise.all([this._getNextUrl(this._url),this._getNextProtocols(this._protocols||null)])).then(([i,o])=>{if(this._closeCalled){this._connectLock=!1;return}!this._options.WebSocket&&typeof WebSocket>"u"&&!VE&&(console.error(`â¼ï¸ No WebSocket implementation available. You should define options.WebSocket. 449 450For example, if you're using node.js, run \`npm install ws\`, and then in your code: 451 452import PartySocket from 'partysocket'; 453import WS from 'ws'; 454 455const partysocket = new PartySocket({ 456 host: "127.0.0.1:1999", 457 room: "test-room", 458 WebSocket: WS 459}); 460 461`),VE=!0);const s=this._options.WebSocket||WebSocket;this._debug("connect",{url:i,protocols:o}),this._ws=o?new s(i,o):new s(i),this._ws.binaryType=this._binaryType,this._connectLock=!1,this._addListeners(),this._connectTimeout=setTimeout(()=>this._handleTimeout(),r)}).catch(i=>{this._connectLock=!1,this._handleError(new Mv.ErrorEvent(Error(i.message),this))})}_handleTimeout(){this._debug("timeout event"),this._handleError(new Mv.ErrorEvent(Error("TIMEOUT"),this))}_disconnect(n=1e3,r){if(this._clearTimeouts(),!!this._ws){this._removeListeners();try{this._ws.close(n,r),this._handleClose(new Mv.CloseEvent(n,r,this))}catch{}}}_acceptOpen(){this._debug("accept open"),this._retryCount=0}_removeListeners(){this._ws&&(this._debug("removeListeners"),this._ws.removeEventListener("open",this._handleOpen),this._ws.removeEventListener("close",this._handleClose),this._ws.removeEventListener("message",this._handleMessage),this._ws.removeEventListener("error",this._handleError))}_addListeners(){this._ws&&(this._debug("addListeners"),this._ws.addEventListener("open",this._handleOpen),this._ws.addEventListener("close",this._handleClose),this._ws.addEventListener("message",this._handleMessage),this._ws.addEventListener("error",this._handleError))}_clearTimeouts(){clearTimeout(this._connectTimeout),clearTimeout(this._uptimeTimeout)}};/*! 462 * Reconnecting WebSocket 463 * by Pedro Ladaria <[email protected]> 464 * https://github.com/pladaria/reconnecting-websocket 465 * License MIT 466 */const XQ=1e3,QQ=3e3,JQ=new Set([405,409,422,503]),ZQ=new Set([400,403,404]);function eJ(e){const t=e&&typeof e=="object"?e.status:void 0;return typeof t=="number"?t:void 0}function tJ(e){return e instanceof Error?e:new Error(String(e))}class nJ{constructor(t,n,r,i,o){var s;this.onClose=o,this.listeners=new Set,this.heartbeat=null,this.closed=!1,this.id=(s=i==null?void 0:i.id)!==null&&s!==void 0?s:crypto.randomUUID();let l=r.transport==="proxy";const u=async()=>{var g;if(this.closed)throw new Error("Actor connection is closed");if(!l)try{const{websocket_url:y,token:b}=await r.mintConnectionToken(t,n,this.id),w=y.includes("?")?"&":"?";return`${y}${w}token=${encodeURIComponent(b)}`}catch(y){const b=eJ(y);if(!(r.transport!=="direct"&&b!==void 0&&JQ.has(b))){b!==void 0&&ZQ.has(b)&&this.close();try{(g=r.onMintError)===null||g===void 0||g.call(r,tJ(y))}catch{}throw y}l=!0}return iJ(r.host,t,n,this.id,r.appId,r.getAuthToken(),r.functionsVersion)},d=new KQ(u);this.ws=d;let p=Date.now();const f=()=>{p=Date.now()};d.addEventListener("open",f),d.addEventListener("message",g=>{f();let y;try{y=JSON.parse(g.data)}catch{return}if((y&&typeof y=="object"?y.type:void 0)!=="__pong")for(const w of this.listeners)w(y)}),this.heartbeat=setInterval(()=>{if(Date.now()-p>QQ){f(),d.readyState===d.OPEN&&d.reconnect();return}try{d.send(JSON.stringify({type:"__ping"}))}catch{}},XQ)}subscribe(t){return this.listeners.add(t),{unsubscribe:()=>{this.listeners.delete(t)}}}send(t){this.closed||this.ws.send(JSON.stringify(t))}close(){this.closed||(this.closed=!0,this.heartbeat&&(clearInterval(this.heartbeat),this.heartbeat=null),this.listeners.clear(),this.ws.close(),this.onClose())}}function rJ(e,t,n,r){let i=null;return{connect(o){if(i)return i;const s=new nJ(e,t,n,o,()=>{r.delete(s),i===s&&(i=null)});return i=s,r.add(s),s}}}function iJ(e,t,n,r,i,o,s){let l=e.replace(/^(http|https|ws|wss):\/\//,"");l.endsWith("/")&&(l=l.slice(0,-1));const u=l.startsWith("localhost:")||l.startsWith("127.0.0.1:")||l.startsWith("192.168.")||l.startsWith("10.")||l.startsWith("172.")&&l.split(".")[1]>="16"&&l.split(".")[1]<="31"||l.startsWith("[::ffff:7f00:1]:"),d=new URLSearchParams([["_pk",r],["app_id",i],["handler",t]]);return o&&d.append("token",o),s&&d.append("fv",s),`${u?"ws":"wss"}://${l}/parties/${t}/${n}?${d}`}function aJ(e,t){return e&&!e.startsWith("/")?e:t??e}function oJ(e){const t=new Set;return{module:new Proxy({}
466,{get(r,i){if(!(typeof i!="string"||i==="then"))return o=>rJ(i,o,e,t)}}),closeAll:()=>{for(const r of[...t])r.close()}}}function sJ(e){var t,n,r,i;const{serverUrl:o="https://base44.app",appId:s,analytics:l,token:u,serviceToken:d,requiresAuth:p=!1,appBaseUrl:f,options:g,functionsVersion:y,headers:b}=e,w=typeof f=="string"?f:"",v={serverUrl:o,mountPath:"/ws-user-apps/socket.io/",transports:["websocket"],appId:s,token:u};let j=null;const k=()=>(j||(j=UQ({config:v})),j),S={...b,"X-App-Id":String(s)},E=y?{...S,"Base44-Functions-Version":y}:S,N=_l({baseURL:`${o}/api`,headers:S,token:u,onError:g==null?void 0:g.onError}),C=_l({baseURL:`${o}/api`,headers:E,token:u,interceptResponses:!1,onError:g==null?void 0:g.onError}),P={...S,...u?{"on-behalf-of":`Bearer ${u}`}:{}},_=_l({baseURL:`${o}/api`,headers:P,token:d,onError:g==null?void 0:g.onError}),M=_l({baseURL:`${o}/api`,headers:E,token:d,interceptResponses:!1}),D=_l({baseURL:`${o}/api`,headers:S}),B=zX(N,C,s,{appBaseUrl:w,token:u});if(typeof window<"u"){const Y=u||uo();Y&&B.setToken(Y)}const F=oJ({appId:s,host:aJ(o,typeof window<"u"?(t=window.location)===null||t===void 0?void 0:t.origin:void 0),functionsVersion:y,getAuthToken:()=>u||uo(),mintConnectionToken:async(Y,Z,J)=>{const ne=u||uo();return await D.post(`/apps/${s}/actors/${encodeURIComponent(Y)}/connection-token`,{room:Z,connection_id:J},{headers:{...ne?{Authorization:`Bearer ${ne}`}:{},...y?{"Base44-Functions-Version":y}:{}}})},transport:g==null?void 0:g.actorsTransport,onMintError:g==null?void 0:g.onError}),V={entities:RE({axios:N,appId:s,getSocket:k}),integrations:DE(N,s),connectors:HX(N,s),auth:B,functions:ME(C,s,{getAuthHeaders:()=>{const Y={},Z=u||uo();return Z&&(Y.Authorization=`Bearer ${Z}`),Y},baseURL:(n=C.defaults)===null||n===void 0?void 0:n.baseURL}),agents:LE({axios:N,getSocket:k,appId:s,serverUrl:o,token:u}),aiGateway:FE({serverUrl:o,token:u,appId:s}),appLogs:BE(N,s),app:KX(N,s),users:XX(N,s),analytics:CX({axiosClient:N,serverUrl:o,appId:s,userAuthModule:B,enabled:(r=l==null?void 0:l.enabled)!==null&&r!==void 0?r:!0}),actors:F.module,cleanup:()=>{V.analytics.cleanup(),F.closeAll(),j&&j.disconnect()}},U={entities:RE({axios:_,appId:s,getSocket:k}),integrations:DE(_,s),sso:$X(_,s),connectors:WX(_,s),functions:ME(M,s,{getAuthHeaders:()=>{const Y={};return d&&(Y.Authorization=`Bearer ${d}`),Y},baseURL:(i=M.defaults)===null||i===void 0?void 0:i.baseURL}),agents:LE({axios:_,getSocket:k,appId:s,serverUrl:o,token:u}),aiGateway:FE({serverUrl:o,token:d,appId:s}),appLogs:BE(_,s),cleanup:()=>{j&&j.disconnect()}};return p&&typeof window<"u"&&setTimeout(async()=>{try{await V.auth.isAuthenticated()||V.auth.redirectToLogin(window.location.href)}catch(Y){console.error("Authentication check failed:",Y),V.auth.redirectToLogin(window.location.href)}},0),{...V,fetchWithAuth:GX({axios:N,serviceRoleAxios:_,appId:String(s),serverUrl:o,functionsVersion:y,platformHeaders:b}),setToken(Y){V.auth.setToken(Y),j&&j.updateConfig({token:Y}),v.token=Y},getConfig(){return{serverUrl:o,appId:s,requiresAuth:p}},get asServiceRole(){if(!d)throw new Error("Service token is required to use asServiceRole. Please provide a serviceToken when creating the client.");return U}}}const c6=typeof window>"u",lJ=c6?{localStorage:new Map}:window,hd=lJ.localStorage,cJ=e=>e.replace(/([A-Z])/g,"_$1").toLowerCase(),wl=(e,{defaultValue:t=void 0,removeFromUrl:n=!1}={})=>{if(c6)return t;const r=`base44_${cJ(e)}`,i=new URLSearchParams(window.location.search),o=i.get(e);if(n){i.delete(e);const l=`${window.location.pathname}${i.toString()?`?${i.toString()}`:""}${window.location.hash}`;window.history.replaceState({},document.title,l)}if(o)return hd.setItem(r,o),o;if(t)return hd.setItem(r,t),t;const s=hd.getItem(r);return s||null},uJ=()=>(wl("clear_access_token")==="true"&&(hd.removeItem("base44_access_token"),hd.removeItem("token")),{appId:wl("app_id",{defaultValue:"69eb97e3a261d40e27688f9d"}),token:wl("access_token",{removeFromUrl:!0}),fromUrl:wl("from_url",{defaultValue:window.location.href}),functionsVersion:wl("functions_version",{defaultValue:"prod"}),appBaseUrl:wl("app_base_url",{defaultValue:void 0})}),id={...uJ()},{appId:dJ,token:hJ,functionsVersion:pJ,appBaseUrl:fJ}=id,xn=sJ({appId:dJ,token:hJ,functionsVersion:pJ,serverUrl:"",requiresAuth:!1,appBaseUrl:fJ});function mJ({}){var i;const t=ba().pathname.substring(1),{data:n,isFetched:r}=cF({queryKey:["user"],queryFn:async()=>{try{return{user:await xn.auth.me(),isAuthenticated:!0}}catch{return{user:null,isAuthenticated:!1}}}});return a.jsx("div",{className:"min-h-screen flex items-center justify-center p-6 bg-slate-50",children:a.jsx("div",{className:"max-w-md w-full",children:a.jsxs("div",{className:"text-center space-y-6",children:[a.jsxs("div",{className:"space-y-2",children:[a.jsx("h1",{className:"text-7xl font-light text-slate-300",children:"404"}),a.jsx("div",{className:"h-0.5 w-16 bg-slate-200 mx-auto"})]}),a.jsxs("div",{className:"space-y-3",children:[a.jsx("h2",{className:"text-2xl font-medium text-slate-800",children:"Page Not Found"}),a.jsxs("p",{className:"text-slate-600 leading-relaxed",children:["The page ",a.jsxs("span",{className:"font-medium text-slate-700",children:['"',t,'"']})," could not be found in this application."]})]}),r&&n.isAuthenticated&&((i=n.user)==null?void 0:i.role)==="admin"&&a.jsx("div",{className:"mt-8 p-4 bg-slate-100 rounded-lg border border-slate-200",children:a.jsxs("div",{className:"flex items-start space-x-3",children:[a.jsx("div",{className:"flex-shrink-0 w-5 h-5 rounded-full bg-orange-100 flex items-center justify-center mt-0.5",children:a.jsx("div",{className:"w-2 h-2 rounded-full bg-orange-400"})}),a.jsxs("div",{className:"text-left space-y-1",children:[a.jsx("p",{className:"text-sm font-medium text-slate-700",children:"Admin Note"}),a.jsx("p",{className:"text-sm text-slate-600 leading-relaxed",children:"This could mean that the AI hasn't implemented this page yet. Ask it to implement it in the chat."})]})]})}),a.jsx("div",{className:"pt-6",children:a.jsxs("button",{onClick:()=>window.location.href="/",className:"inline-flex items-center px-4 py-2 text-sm font-medium text-slate-700 bg-white border border-slate-200 rounded-lg hover:bg-slate-50 hover:border-slate-300 transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-slate-500",children:[a.jsx("svg",{className:"w-4 h-4 mr-2",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:a.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6"})}),"Go Home"]})})]})})})}const u6=O.createContext(),gJ=({children:e})=>{const[t,n]=O.useState(null),[r,i]=O.useState(!1),[o,s]=O.useState(!0),[l,u]=O.useState(!0),[d,p]=O.useState(null),[f,g]=O.useState(!1),[y,b]=O.useState(null);O.useEffect(()=>{w()},[]);const w=async()=>{var S,E;try{u(!0),p(null);const N=_l({baseURL:"/api/apps/public",headers:{"X-App-Id":id.appId},token:id.token,interceptResponses:!0});try{const C=await N.get(`/prod/public-settings/by-id/${id.appId}`);b(C),id.token?await v():(s(!1),i(!1),g(!0)),u(!1)}catch(C){if(console.error("App state check failed:",C),C.status===403&&((E=(S=C.data)==null?void 0:S.extra_data)!=null&&E.reason)){const P=C.data.extra_data.reason;p(P==="auth_required"?{type:"auth_required",message:"Authentication required"}:P==="user_not_registered"?{type:"user_not_registered",message:"User not registered for this app"}:{type:P,message:C.message})}else p({type:"unknown",message:C.message||"Failed to load app"});u(!1),s(!1)}}catch(N){console.error("Unexpected error:",N),p({type:"unknown",message:N.message||"An unexpected error occurred"}),u(!1),s(!1)}},v=async()=>{try{s(!0);const S=await xn.auth.me();n(S),i(!0),s(!1),g(!0)}catch(S){console.error("User auth check failed:",S),s(!1),i(!1),g(!0),(S.status===401||S.status===403)&&p({type:"auth_required",message:"Authentication required"})}},j=(S=!0)=>{n(null),i(!1),S?xn.auth.logout(window.location.href):xn.auth.logout()},k=()=>{xn.auth.redirectToLogin(window.location.href)};return a.jsx(u6.Provider,{value:{user:t,isAuthenticated:r,isLoadingAuth:o,isLoadingPublicSettings:l,authError:d,appPublicSettings:y,authChecked:f,logout:j,navigateToLogin:k,checkUserAuth:v,checkAppState:w},children:e})},yJ=()=>{const e=O.useContext(u6);if(!e)throw new Error("useAuth must be used within an AuthProvider");return e},xJ=()=>a.jsx("div",{className:"flex flex-col items-center justify-center min-h-screen bg-gradient-to-b from-white to-slate-50",children:a.jsx("div",{className:"max-w-md w-full p-8 bg-white rounded-lg shadow-lg border border-slate-100",children:a.jsxs("div",{className:"text-center",children:[a.jsx("div",{className:"inline-flex items-center justify-center w-16 h-16 mb-6 rounded-full bg-orange-100",children:a.jsx("svg",{className:"w-8 h-8 text-orange-600",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:a.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"})})}),a.jsx("h1",{className:"text-3xl font-bold text-slate-900 mb-4",children:"Access Restricted"}),a.jsx("p",{className:"text-slate-600 mb-8",children:"You are not registered to use this application. Please contact the app administrator to request access."}),a.jsxs("div",{className:"p-4 bg-slate-50 rounded-md text-sm text-slate-600",children:[a.jsx("p",{children:"If you believe this is an error, you can:"}),a.jsxs("ul",{className:"list-disc list-inside mt-2 space-y-1",children:[a.jsx("li",{children:"Verify you are logged in with the correct account"}),a.jsx("li",{children:"Contact the app administrator for access"}),a.jsx("li",{children:"Try logging out and back in again"})]})]})]})})});function vJ(){const{pathname:e}=ba();return O.useEffect(()=>{window.scrollTo(0,0)},[e]),null}const d6=["utm_source","utm_medium","utm_campaign","utm_term","utm_content"],GE="https://app.lod.io/";function bJ(){const e=new URLSearchParams(window.location.search);let t=!1;return d6.forEach(n=>{e.has(n)&&(localStorage.setItem(n,e.get(n)),t=!0)}),t}function wJ(){const e=new URLSearchParams;d6.forEach(n=>{const r=localStorage.getItem(n);r&&e.set(n,r)});const t=e.toString();return t?`${GE}?${t}`:GE}const jJ="G-4Y8CSBM4NE";function kJ(){const e=ba();O.useEffect(()=>{typeof window<"u"&&typeof window.gtag=="function"&&window.gtag("event","page_view",{page_path:e.pathname+e.search,page_location:window.location.origin+e.pathname+e.search,page_title:document.title,send_to:jJ})},[e.pathname,e.search])}function cm({className:e,children:t}){const[n,r]=O.useState("https://app.lod.io/");return O.useEffect(()=>{r(wJ())},[]),a.jsx("a",{href:n,target:"_blank",rel:"noopener noreferrer",className:e,children:t})}const YE=[{label:"Products",children:[{label:"LÅD Energy",href:"/lod-energy",desc:"Standardized grid data & dashboards"},{label:"LÅD IoT",href:"/lod-iot",desc:"Automated energy strategy execution"},{label:"LÅD Flexible Compute",href:"/lod-flexible-compute",desc:"Grid-aware AI compute distribution"}]},{label:"Industries",children:[{label:"AI Data Centers",href:"/ai-data-centers",desc:"Uptime, SLA & energy optimization"},{label:"Bitcoin Miners",href:"/bitcoin-mining",desc:"Energy, operations, and revenue streams"},{label:"Neo Clouds",href:"/flexible-compute",desc:"Flexible workload routing"},{label:"Hyperscalers",href:"/hyperscalers",desc:"Fleet-wide energy strategy at scale"},{label:"Utilities",href:"/utilities",desc:"Verified flexibility to allocate more power"}]},{label:"Platform",children:[{label:"Data Layer",href:"/data-layer",desc:"Real-time grid signals & market data"},{label:"Strategy Layer",href:"/strategy-layer",desc:"Rules, automation & optimization"},{label:"Control Layer",href:"/control-layer",desc:"Energy infrastru
466cture, servers, and compute workloads"}]},{label:"For AI Agents",href:"/for-agents"},{label:"Resources",children:[{label:"Blog",href:"/blog",desc:"Energy strategy insights"},{label:"Case Studies",href:"/case-studies",desc:"Real operator results"},{label:"Docs",href:"/docs",desc:"Platform documentation"},{label:"FAQ",href:"/faq",desc:"Common questions answered"}]},{label:"Book a Strategy Call",href:"/contact"}];function AJ(){const[e,t]=O.useState(!1),[n,r]=O.useState(!1),[i,o]=O.useState(null),s=ba();return O.useEffect(()=>{const l=()=>t(window.scrollY>20);return window.addEventListener("scroll",l),()=>window.removeEventListener("scroll",l)},[]),O.useEffect(()=>{r(!1),o(null)},[s]),a.jsxs("nav",{className:"fixed top-0 left-0 right-0 z-50 transition-all duration-300",style:{background:e?"rgba(26,26,26,0.97)":"rgba(26,26,26,0.85)",backdropFilter:"blur(12px)",borderBottom:e?"1px solid rgba(255,255,255,0.08)":"1px solid transparent"},children:[a.jsxs("div",{className:"max-w-[1400px] mx-auto px-6 flex items-center justify-between h-14 pt-1.5",children:[a.jsx(ye,{to:"/",className:"flex items-center",children:a.jsx("img",{src:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/6cf86e0a9_Lod-Green-no-Background.png",alt:"LÅD logo",className:"h-8 w-auto"})}),a.jsx("div",{className:"hidden lg:flex items-center gap-1",children:YE.map(l=>l.children?a.jsxs("div",{className:"relative",onMouseEnter:()=>o(l.label),onMouseLeave:()=>o(null),children:[a.jsxs("button",{className:"flex items-center gap-1 px-3 py-2 text-sm text-lod-gray hover:text-lod-white transition-colors",children:[l.label,a.jsx(kg,{size:12,className:`transition-transform ${i===l.label?"rotate-180":""}`})]}),i===l.label&&a.jsx("div",{className:"absolute top-full left-0 pt-2 z-50",style:{minWidth:"200px"},children:a.jsx("div",{className:"rounded-lg overflow-hidden",style:{background:"#2C2C2C",border:"1px solid rgba(255,255,255,0.08)",minWidth:"220px"},children:l.children.map(u=>a.jsxs("div",{children:[a.jsxs(ye,{to:u.href,className:"block px-4 py-3 hover:bg-white/5 transition-colors border-b border-white/5 group",children:[a.jsx("div",{className:"text-sm text-lod-white group-hover:text-lod-green transition-colors",children:u.label}),u.desc&&a.jsx("div",{className:"text-xs mt-0.5",style:{color:"#606060"},children:u.desc})]}),u.submenu&&a.jsx("div",{className:"bg-white/5 border-t border-white/5",children:u.submenu.map(d=>a.jsxs(ye,{to:d.href,className:"block py-2.5 hover:bg-white/5 transition-colors border-b border-white/5 last:border-0 group text-xs",style:{paddingLeft:"3rem",paddingRight:"1rem"},children:[a.jsx("div",{className:"text-lod-white group-hover:text-lod-green transition-colors",children:d.label}),d.desc&&a.jsx("div",{className:"text-xs mt-0.5",style:{color:"#606060"},children:d.desc})]},d.href))})]},u.href))})})]},l.label):a.jsx(ye,{to:l.href,className:"px-3 py-2 text-sm text-lod-gray hover:text-lod-white transition-colors",children:l.label},l.label))}),a.jsx("div",{className:"hidden lg:flex items-center gap-3",children:a.jsx(cm,{className:"btn-primary text-xs py-2 px-5",children:"Login / Register"})}),a.jsx("button",{className:"lg:hidden text-lod-white p-2",onClick:()=>r(!n),children:n?a.jsx(Pg,{size:20}):a.jsx(Vk,{size:20})})]}),n&&a.jsx("div",{className:"lg:hidden",style:{background:"#1A1A1A",borderTop:"1px solid rgba(255,255,255,0.08)"},children:a.jsxs("div",{className:"px-6 py-4 space-y-2 max-h-[80vh] overflow-y-auto",children:[YE.map(l=>l.children?a.jsxs("div",{children:[a.jsx("div",{className:"text-xs font-mono text-lod-gray uppercase tracking-wider py-2",children:l.label}),l.children.map(u=>a.jsxs("div",{children:[a.jsx(ye,{to:u.href,className:"block py-2 pl-4 text-sm text-lod-white hover:text-lod-green transition-colors",children:u.label}),u.submenu&&a.jsx("div",{children:u.submenu.map(d=>a.jsx(ye,{to:d.href,className:"block py-2 pl-8 text-sm text-lod-gray hover:text-lod-green transition-colors",children:d.label},d.href))})]},u.href))]},l.label):a.jsx(ye,{to:l.href,className:"block py-2 text-sm text-lod-white hover:text-lod-green transition-colors",children:l.label},l.label)),a.jsx("div",{className:"pt-4",children:a.jsx(cm,{className:"btn-primary w-full justify-center",children:"Login / Register"})})]})})]})}function SJ(){const[e,t]=O.useState(""),[n,r]=O.useState(!1),[i,o]=O.useState(!1),[s,l]=O.useState("idle"),u=async d=>{if(d.preventDefault(),!n){o(!0);return}o(!1),l("submitting"),await fetch("https://lod-crm-api.vercel.app/api/v1/forms/bf718d46-467d-403f-9245-eef8c83bf4c6/submit",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({payload:{email:e,marketingConsent:n,consentTimestamp:new Date().toISOString()},source:"web"})}),l("success"),t("")};return a.jsx("footer",{style:{background:"#111",borderTop:"1px solid rgba(255,255,255,0.08)"},children:a.jsxs("div",{className:"max-w-[1400px] mx-auto px-6 py-16",children:[a.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-4 gap-10",children:[a.jsxs("div",{className:"md:col-span-1",children:[a.jsx("div",{className:"mb-6",children:a.jsx("img",{src:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/6cf86e0a9_Lod-Green-no-Backgroun
466d.png",alt:"LÅD",className:"h-8 w-auto"})}),a.jsx("p",{className:"text-lod-gray text-sm mb-4",children:"Subscribe to the Energy Pulse Newsletter"}),s==="success"?a.jsx("p",{className:"font-mono text-xs",style:{color:"#BFF589"},children:"You're subscribed!"}):a.jsxs("form",{onSubmit:u,className:"flex flex-col gap-2",children:[a.jsx("input",{type:"email",value:e,onChange:d=>t(d.target.value),placeholder:"[email protected]",required:!0,className:"w-full px-3 py-2 rounded-lg text-sm outline-none",style:{background:"#1A1A1A",border:"1px solid rgba(255,255,255,0.12)",color:"#F9F9F9"}}),a.jsxs("label",{className:"flex items-start gap-2 text-xs leading-relaxed cursor-pointer",style:{color:"#707070"},children:[a.jsx("input",{type:"checkbox",checked:n,onChange:d=>{r(d.target.checked),d.target.checked&&o(!1)},className:"mt-0.5 w-3.5 h-3.5 shrink-0 accent-lod-green"}),a.jsxs("span",{children:["I agree to receive marketing communications from LÅD, subject to our"," ",a.jsx(ye,{to:"/privacy",className:"text-lod-green hover:underline",children:"Privacy Policy"}),". *"]})]}),i&&a.jsx("p",{className:"text-xs",style:{color:"#FF3B30"},children:"Please agree to continue"}),a.jsx("button",{type:"submit",disabled:s==="submitting",className:"btn-primary justify-center text-xs py-2",style:{opacity:s==="submitting"?.7:1},children:s==="submitting"?"Subscribing...":"Subscribe"})]})]}),a.jsxs("div",{children:[a.jsx("h2",{className:"text-lod-white text-sm font-semibold mb-4 uppercase tracking-wider",children:"Company"}),a.jsx("ul",{className:"space-y-3",children:[{label:"About Us",href:"/about"},{label:"Team",href:"/team"},{label:"Careers",href:"/careers"},{label:"Security",href:"/security"},{label:"Book a Strategy Call",href:"/contact"}].map(d=>a.jsx("li",{children:a.jsx(ye,{to:d.href,className:"text-lod-gray text-sm hover:text-lod-green transition-colors",children:d.label})},d.label))})]}),a.jsxs("div",{children:[a.jsx("h2",{className:"text-lod-white text-sm font-semibold mb-4 uppercase tracking-wider",children:"Resources"}),a.jsx("ul",{className:"space-y-3",children:[{label:"Blog",href:"/blog"},{label:"Docs",href:"/docs"},{label:"Docs (ES)",href:"/es/docs"},{label:"Privacy Policy",href:"/privacy"},{label:"Terms of Use",href:"/terms-of-use"},{label:"Case Studies",href:"/case-studies"}].map(d=>a.jsx("li",{children:a.jsx(ye,{to:d.href,className:"text-lod-gray text-sm hover:text-lod-green transition-colors",children:d.label})},d.label))})]}),a.jsxs("div",{children:[a.jsx("h2",{className:"text-lod-white text-sm font-semibold mb-4 uppercase tracking-wider",children:"Social Media"}),a.jsxs("div",{className:"flex gap-3",children:[a.jsx("a",{href:"https://www.linkedin.com/company/lodenergy/",target:"_blank",rel:"noopener noreferrer",className:"w-9 h-9 rounded-sm flex items-center justify-center transition-colors hover:border-lod-green",style:{border:"1px solid rgba(255,255,255,0.15)",color:"#A0A0A0"},children:a.jsx(KU,{size:15})}),a.jsx("a",{href:"https://x.com/Lod_io",target:"_blank",rel:"noopener noreferrer",className:"w-9 h-9 rounded-sm flex items-center justify-center transition-colors hover:border-lod-green",style:{border:"1px solid rgba(255,255,255,0.15)",color:"#A0A0A0"},children:a.jsx(OH,{size:15})})]})]})]}),a.jsxs("div",{className:"mt-12 pt-8 flex flex-col md:flex-row items-center justify-between gap-4",style:{borderTop:"1px solid rgba(255,255,255,0.06)"},children:[a.jsx("p",{className:"text-lod-gray text-xs font-mono",children:"© 2026 LÅD Technologies. All rights reserved."}),a.jsxs("div",{className:"flex gap-6",children:[a.jsx(ye,{to:"/privacy",className:"text-lod-gray text-xs hover:text-lod-green transition-colors",children:"Privacy Policy"}),a.jsx(ye,{to:"/terms-of-use",className:"text-lod-gray text-xs hover:text-lod-green transition-colors",children:"Terms of Use"})]})]})]})})}function CJ(){const[e,t]=O.useState(0);return O.useEffect(()=>{const n=()=>{const r=window.scrollY,i=document.documentElement.scrollHeight-window.innerHeight,o=i>0?Math.round(r/i*100):0;t(o)};return window.addEventListener("scroll",n),()=>window.removeEventListener("scroll",n)},[]),a.jsx("div",{className:"fixed left-0 top-14 bottom-0 z-40 flex flex-col items-center",style:{width:"3px"},children:a.jsx("div",{className:"w-full h-full relative",style:{background:"rgba(255,255,255,0.04)"},children:a.jsx("div",{className:"w-full transition-all duration-100",style:{height:`${e}%`,background:"#BFF589",boxShadow:"0 0 8px rgba(191,245,137,0.6)"}})})})}const KE="lod_cookie_consent";function NJ(){const[e,t]=O.useState(!1);O.useEffect(()=>{localStorage.getItem(KE)||t(!0)},[]);const n=r=>{localStorage.setItem(KE,r),t(!1)};return e?a.jsx("div",{role:"region","aria-label":"Cookie consent",className:"fixed bottom-0 left-0 right-0 z-50 p-4 md:p-5",style:{background:"#232323",borderTop:"1px solid rgba(255,255,255,0.1)"},children:a.jsxs("div",{className:"max-w-[1200px] mx-auto flex flex-col sm:flex-row items-center gap-4 justify-between",children:[a.jsxs("p",{className:"text-sm text-lod-gray leading-relaxed",children:["We use cookies to improve your experience and understand how our site is used. By continuing, you agree to our"," ",a.jsx("a",{href:"/privacy",className:"text-lod-green hover:underline",children:"Privacy Policy"}),"."]}),a.jsxs("div",{className:"flex items-center gap-3 shrink-0",children:[a.jsx("button",{onClick:()=>n("declined"),className:"btn-outline text-xs px-4 py-2",children:"Decline"}),a.jsx("button",{onClick:()=>
466n("accepted"),className:"btn-primary text-xs px-4 py-2",children:"Accept"})]})]})}):null}function Je({children:e}){return a.jsxs("div",{style:{background:"#1A1A1A",minHeight:"100vh"},children:[a.jsx(CJ,{}),a.jsx(AJ,{}),a.jsx("main",{className:"pt-14",children:e}),a.jsx(SJ,{}),a.jsx(NJ,{})]})}const XE=[{src:"https://cdn.prod.website-files.com/68aca8c8fe05d65de8d26346/68deb5353c41988012e21d7d_Voltus.png",alt:"Voltus"},{src:"https://cdn.prod.website-files.com/68aca8c8fe05d65de8d26346/68deb5513355260a5170c4f4_Ammper.png",alt:"Ammper"},{src:"https://cdn.prod.website-files.com/68aca8c8fe05d65de8d26346/68deb59bccb53e21d3dc75a4_Texas%20Energy%20Group.png",alt:"Texas Energy Group"},{src:"https://cdn.prod.website-files.com/68aca8c8fe05d65de8d26346/68deb62b89dba52a2a24c49c_Cholla%20Energy.png",alt:"Cholla Energy"},{src:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/5dacca727_image.png",alt:"Keel Infrastructure"},{src:"https://cdn.prod.website-files.com/68aca8c8fe05d65de8d26346/68deb6e1b106a407af212012_CPower.png",alt:"CPower"},{src:"https://cdn.prod.website-files.com/68aca8c8fe05d65de8d26346/68deb74475a2c4dca2098277_Energy%20Network.png",alt:"Energy Network"},{src:"https://cdn.prod.website-files.com/68aca8c8fe05d65de8d26346/68deb7aae5a2ca02a8e3c45e_Crypto%20Power.png",alt:"Crypto Power"},{src:"https://cdn.prod.website-files.com/68aca8c8fe05d65de8d26346/68deb8d865628c730f35202c_Grid%20Beyond.png",alt:"Grid Beyond"},{src:"https://cdn.prod.website-files.com/68aca8c8fe05d65de8d26346/68deb8fce2ef0a0b4b81e26e_Nuenergen.png",alt:"Nuenergen"},{src:"https://cdn.prod.website-files.com/68aca8c8fe05d65de8d26346/68deb921dbebae24c1307802_Priority%20Power.png",alt:"Priority Power"}],TJ=[...XE,...XE];function qs({headline:e="TRUSTED BY LEADERS IN ENERGY AND COMPUTE",subtext:t="20,000+ Grid Nodes Globally | Integrated with ALL major QSE/CSP"}){const n=O.useRef(null),r=O.useRef(null),i=O.useRef(0);return O.useEffect(()=>{const o=n.current;if(!o)return;const s=.5,l=()=>{i.current-=s;const u=o.scrollWidth/2;Math.abs(i.current)>=u&&(i.current=0),o.style.transform=`translateX(${i.current}px)`,r.current=requestAnimationFrame(l)};return r.current=requestAnimationFrame(l),()=>cancelAnimationFrame(r.current)},[]),a.jsxs("section",{style:{background:"#111",borderTop:"1px solid rgba(255,255,255,0.08)",borderBottom:"1px solid rgba(255,255,255,0.08)"},children:[a.jsx("div",{className:"max-w-[1400px] mx-auto px-6 py-[3px] text-center",children:a.jsx("p",{className:"font-mono text-xs tracking-widest",style:{color:"#BFF589"},children:e})}),a.jsx("div",{className:"overflow-hidden",style:{maskImage:"linear-gradient(90deg, transparent, black 8%, black 92%, transparent)",WebkitMaskImage:"linear-gradient(90deg, transparent, black 8%, black 92%, transparent)"},children:a.jsx("div",{ref:n,className:"flex items-center gap-1",style:{width:"max-content"},children:TJ.map((o,s)=>a.jsx("div",{className:"flex-shrink-0 flex items-center justify-center",style:{height:"98px",minWidth:"160px"},children:a.jsx("img",{src:o.src,alt:o.alt,style:{height:o.alt==="Keel Infrastructure"?"34px":"84px",width:"auto",maxWidth:"360px",objectFit:"contain",opacity:.75,filter:"brightness(0) invert(1)"}})},s))})}),a.jsx("div",{className:"text-center py-[1px]",children:a.jsx("p",{className:"font-mono text-xs opacity-60",style:{color:"#A0A0A0"},children:t})})]})}function un({headline:e="INTERESTED?",subline:t="LET'S WORK TOGETHER!",ctaLabel:n="Book an Energy Strategy Call",ctaHref:r="/contact"}){return a.jsxs("section",{className:"py-24 text-center relative overflow-hidden",style:{backgroundImage:"url(https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/60e492244_SectionGreenmountainsMediumBannerUSLandscape.png)",backgroundSize:"cover",backgroundPosition:"center",borderTop:"1px solid rgba(191,245,137,0.18)",borderBottom:"1px solid rgba(191,245,137,0.18)"},children:[a.jsx("div",{"aria-hidden":"true",style:{position:"absolute",inset:0,pointerEvents:"none",background:"rgba(0,0,0,0.35)"}}),a.jsxs("div",{className:"max-w-2xl mx-auto px-6 relative z-10",children:[a.jsx("p",{className:"font-mono text-sm uppercase tracking-widest mb-3",style:{color:"#BFF589"},children:e}),a.jsx("h2",{className:"font-display text-4xl md:text-6xl text-lod-white mb-8 leading-none",children:t}),a.jsx("a",{href:r,className:"btn-primary text-base px-10 py-4",children:n})]})]})}var Lv,QE;function ur(){if(QE)return Lv;QE=1;var e=Array.isArray;return Lv=e,Lv}var Fv,JE;function h6(){if(JE)return Fv;JE=1;var e=typeof sf=="object"&&sf&&sf.Object===Object&&sf;return Fv=e,Fv}var Bv,ZE;
vendor: 10,546 bytes, lines 466-474
466function $i(){if(ZE)return Bv;ZE=1;var e=h6(),t=typeof self=="object"&&self&&self.Object===Object&&self,n=e||t||Function("return this")();return Bv=n,Bv}var zv,eP;function Ih(){if(eP)return zv;eP=1;var e=$i(),t=e.Symbol;return zv=t,zv}var $v,tP;function EJ(){if(tP)return $v;tP=1;var e=Ih(),t=Object.prototype,n=t.hasOwnProperty,r=t.toString,i=e?e.toStringTag:void 0;function o(s){var l=n.call(s,i),u=s[i];try{s[i]=void 0;var d=!0}catch{}var p=r.call(s);return d&&(l?s[i]=u:delete s[i]),p}return $v=o,$v}var qv,nP;function PJ(){if(nP)return qv;nP=1;var e=Object.prototype,t=e.toString;function n(r){return t.call(r)}return qv=n,qv}var Wv,rP;function wa(){if(rP)return Wv;rP=1;var e=Ih(),t=EJ(),n=PJ(),r="[object Null]",i="[object Undefined]",o=e?e.toStringTag:void 0;function s(l){return l==null?l===void 0?i:r:o&&o in Object(l)?t(l):n(l)}return Wv=s,Wv}var Uv,iP;function ja(){if(iP)return Uv;iP=1;function e(t){return t!=null&&typeof t=="object"}return Uv=e,Uv}var Hv,aP;function $c(){if(aP)return Hv;aP=1;var e=wa(),t=ja(),n="[object Symbol]";function r(i){return typeof i=="symbol"||t(i)&&e(i)==n}return Hv=r,Hv}var Vv,oP;function yA(){if(oP)return Vv;oP=1;var e=ur(),t=$c(),n=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,r=/^\w*$/;function i(o,s){if(e(o))return!1;var l=typeof o;return l=="number"||l=="symbol"||l=="boolean"||o==null||t(o)?!0:r.test(o)||!n.test(o)||s!=null&&o in Object(s)}return Vv=i,Vv}var Gv,sP;function ko(){if(sP)return Gv;sP=1;function e(t){var n=typeof t;return t!=null&&(n=="object"||n=="function")}return Gv=e,Gv}var Yv,lP;function xA(){if(lP)return Yv;lP=1;var e=wa(),t=ko(),n="[object AsyncFunction]",r="[object Function]",i="[object GeneratorFunction]",o="[object Proxy]";function s(l){if(!t(l))return!1;var u=e(l);return u==r||u==i||u==n||u==o}return Yv=s,Yv}var Kv,cP;function OJ(){if(cP)return Kv;cP=1;var e=$i(),t=e["__core-js_shared__"];return Kv=t,Kv}var Xv,uP;function _J(){if(uP)return Xv;uP=1;var e=OJ(),t=(function(){var r=/[^.]+$/.exec(e&&e.keys&&e.keys.IE_PROTO||"");return r?"Symbol(src)_1."+r:""})();function n(r){return!!t&&t in r}return Xv=n,Xv}var Qv,dP;function p6(){if(dP)return Qv;dP=1;var e=Function.prototype,t=e.toString;function n(r){if(r!=null){try{return t.call(r)}catch{}try{return r+""}catch{}}return""}return Qv=n,Qv}var Jv,hP;function IJ(){if(hP)return Jv;hP=1;var e=xA(),t=_J(),n=ko(),r=p6(),i=/[\\^$.*+?()[\]{}|]/g,o=/^\[object .+?Constructor\]$/,s=Function.prototype,l=Object.prototype,u=s.toString,d=l.hasOwnProperty,p=RegExp("^"+u.call(d).replace(i,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function f(g){if(!n(g)||t(g))return!1;var y=e(g)?p:o;return y.test(r(g))}return Jv=f,Jv}var Zv,pP;function RJ(){if(pP)return Zv;pP=1;function e(t,n){return t==null?void 0:t[n]}return Zv=e,Zv}var eb,fP;function Ws(){if(fP)return eb;fP=1;var e=IJ(),t=RJ();function n(r,i){var o=t(r,i);return e(o)?o:void 0}return eb=n,eb}var tb,mP;function Fg(){if(mP)return tb;mP=1;var e=Ws(),t=e(Object,"create");return tb=t,tb}var nb,gP;function DJ(){if(gP)return nb;gP=1;var e=Fg();function t(){this.__data__=e?e(null):{},this.size=0}return nb=t,nb}var rb,yP;function MJ(){if(yP)return rb;yP=1;function e(t){var n=this.has(t)&&delete this.__data__[t];return this.size-=n?1:0,n}return rb=e,rb}var ib,xP;function LJ(){if(xP)return ib;xP=1;var e=Fg(),t="__lodash_hash_undefined__",n=Object.prototype,r=n.hasOwnProperty;function i(o){var s=this.__data__;if(e){var l=s[o];return l===t?void 0:l}return r.call(s,o)?s[o]:void 0}return ib=i,ib}var ab,vP;function FJ(){if(vP)return ab;vP=1;var e=Fg(),t=Object.prototype,n=t.hasOwnProperty;function r(i){var o=this.__data__;return e?o[i]!==void 0:n.call(o,i)}return ab=r,ab}var ob,bP;function BJ(){if(bP)return ob;bP=1;var e=Fg(),t="__lodash_hash_undefined__";function n(r,i){var o=this.__data__;return this.size+=this.has(r)?0:1,o[r]=e&&i===void 0?t:i,this}return ob=n,ob}var sb,wP;function zJ(){if(wP)return sb;wP=1;var e=DJ(),t=MJ(),n=LJ(),r=FJ(),i=BJ();function o(s){var l=-1,u=s==null?0:s.length;for(this.clear();++l<u;){var d=s[l];this.set(d[0],d[1])}}return o.prototype.clear=e,o.prototype.delete=t,o.prototype.get=n,o.prototype.has=r,o.prototype.set=i,sb=o,sb}var lb,jP;function $J(){if(jP)return lb;jP=1;function e(){this.__data__=[],this.size=0}return lb=e,lb}var cb,kP;function vA(){if(kP)return cb;kP=1;function e(t,n){return t===n||t!==t&&n!==n}return cb=e,cb}var ub,AP;function Bg(){if(AP)return ub;AP=1;var e=vA();function t(n,r){for(var i=n.length;i--;)if(e(n[i][0],r))return i;return-1}return ub=t,ub}var db,SP;function qJ(){if(SP)return db;SP=1;var e=Bg(),t=Array.prototype,n=t.splice;function r(i){var o=this.__data__,s=e(o,i);if(s<0)return!1;var l=o.length-1;return s==l?o.pop():n.call(o,s,1),--this.size,!0}return db=r,db}var hb,CP;function WJ(){if(CP)return hb;CP=1;var e=Bg();function t(n){var r=this.__data__,i=e(r,n);return i<0?void 0:r[i][1]}return hb=t,hb}var pb,NP;function UJ(){if(NP)return pb;NP=1;var e=Bg();function t(n){return e(this.__data__,n)>-1}return pb=t,pb}var fb,TP;function HJ(){if(TP)return fb;TP=1;var e=Bg();function t(n,r){var i=this.__data__,o=e(i,n);return o<0?(++this.size,i.push([n,r])):i[o][1]=r,this}return fb=t,fb}var mb,EP;function zg(){if(EP)return mb;EP=1;var e=$J(),t=qJ(),n=WJ(),r=UJ(),i=HJ();function o(s){var l=-1,u=s==null?0:s.length;for(this.clear();++l<u;){var d=s[l];this.set(d[0],d[1])}}return o.prototype.clear=e,o.prototype.delete=t,o.prototype.get=n,o.prototype.has=r,o.prototype.set=i,mb=o,mb}var gb,PP;function bA(){if(PP)return gb;PP=1;var e=Ws(),t=$i(),n=e(t,"Map");return gb=n,gb}var yb,OP;function VJ(){if(OP)return yb;OP=1;var e=zJ(),t=zg(),n=bA();function r(){this.size=0,this.__data__={hash:new e,map:new(n||t),string:new e}}return yb=r,yb}var xb,_P;function GJ(){if(_P)return xb;_P=1;function e(t){var n=typeof t;return n=="string"||n=="number"||n=="symbol"||n=="boolean"?t!=="__proto__":t===null}return xb=e,xb}var vb,IP;function $g(){if(IP)return vb;IP=1;var e=GJ();function t(n,r){var i=n.__data__;return e(r)?i[typeof r=="string"?"string":"hash"]:i.map}return vb=t,vb}var bb,RP;function YJ(){if(RP)return bb;RP=1;var e=$g();function t(n){var r=e(this,n).delete(n);return this.size-=r?1:0,r}return bb=t,bb}var wb,DP;function KJ(){if(DP)return wb;DP=1;var e=$g();function t(n){return e(this,n).get(n)}return wb=t,wb}var jb,MP;function XJ(){if(MP)return jb;MP=1;var e=$g();function t(n){return e(this,n).has(n)}return jb=t,jb}var kb,LP;function QJ(){if(LP)return kb;LP=1;var e=$g();function t(n,r){var i=e(this,n),o=i.size;return i.set(n,r),this.size+=i.size==o?0:1,this}return kb=t,kb}var Ab,FP;function wA(){if(FP)return Ab;FP=1;var e=VJ(),t=YJ(),n=KJ(),r=XJ(),i=QJ();function o(s){var l=-1,u=s==null?0:s.length;for(this.clear();++l<u;){var d=s[l];this.set(d[0],d[1])}}return o.prototype.clear=e,o.prototype.delete=t,o.prototype.get=n,o.prototype.has=r,o.prototype.set=i,Ab=o,Ab}var Sb,BP;function f6(){if(BP)return Sb;BP=1;var e=wA(),t="Expected a function";function n(r,i){if(typeof r!="function"||i!=null&&typeof i!="function")throw new TypeError(t);var o=function(){var s=arguments,l=i?i.apply(this,s):s[0],u=o.cache;if(u.has(l))return u.get(l);var d=r.apply(this,s);return o.cache=u.set(l,d)||u,d};return o.cache=new(n.Cache||e),o}return n.Cache=e,Sb=n,Sb}var Cb,zP;function JJ(){if(zP)return Cb;zP=1;var e=f6(),t=500;function n(r){var i=e(r,function(s){return o.size===t&&o.clear(),s}),o=i.cache;return i}return Cb=n,Cb}var Nb,$P;function ZJ(){if($P)return Nb;$P=1;var e=JJ(),t=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,n=/\\(\\)?/g,r=e(function(i){var o=[];return i.charCodeAt(0)===46&&o.push(""),i.replace(t,function(s,l,u,d){o.push(u?d.replace(n,"$1"):l||s)}),o});return Nb=r,Nb}var Tb,qP;function jA(){if(qP)return Tb;qP=1;function e(t,n){for(var r=-1,i=t==null?0:t.length,o=Array(i);++r<i;)o[r]=n(t[r],r,t);return o}return Tb=e,Tb}var Eb,WP;function eZ(){if(WP)return Eb;WP=1;var e=Ih(),t=jA(),n=ur(),r=$c(),i=e?e.prototype:void 0,o=i?i.toString:void 0;function s(l){if(typeof l=="string")return l;if(n(l))return t(l,s)+"";if(r(l))return o?o.call(l):"";var u=l+"";return u=="0"&&1/l==-1/0?"-0":u}return Eb=s,Eb}var Pb,UP;function m6(){if(UP)return Pb;UP=1;var e=eZ();function t(n){return n==null?"":e(n)}return Pb=t,Pb}var Ob,HP;function g6(){if(HP)return Ob;HP=1;var e=ur(),t=yA(),n=ZJ(),r=m6();function i(o,s){return e(o)?o:t(o,s)?[o]:n(r(o))}return Ob=i,Ob}var _b,VP;function qg(){if(VP)return _b;VP=1;var e=$c();function t(n){if(typeof n=="string"||e(n))return n;var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}return _b=t,_b}var Ib,GP;function kA(){if(GP)return Ib;GP=1;var e=g6(),t=qg();function n(r,i){i=e(i,r);for(var o=0,s=i.length;r!=null&&o<s;)r=r[t(i[o++])];return o&&o==s?r:void 0}return Ib=n,Ib}var Rb,YP;function y6(){if(YP)return Rb;YP=1;var e=kA();function t(n,r,i){var o=n==null?void 0:e(n,r);return o===void 0?i:o}return Rb=t,Rb}var tZ=y6();const Ur=bt(tZ);var Db,KP;function nZ(){if(KP)return Db;KP=1;function e(t){return t==null}return Db=e,Db}var rZ=nZ();const Qe=bt(rZ);var Mb,XP;function iZ(){if(XP)return Mb;XP=1;var e=wa(),t=ur(),n=ja(),r="[object String]";function i(o){return typeof o=="string"||!t(o)&&n(o)&&e(o)==r}return Mb=i,Mb}var aZ=iZ();const Is=bt(aZ);var oZ=xA();const Ge=bt(oZ);var sZ=ko();const qc=bt(sZ);var Lb={exports:{}},mt={};/** 467 * @license React 468 * react-is.production.min.js 469 * 470 * Copyright (c) Facebook, Inc. and its affiliates. 471 * 472 * This source code is licensed under the MIT license found in the 473 * LICENSE file in the root directory of this source tree. 474 */var QP;function lZ(){if(QP)return mt;QP=1;var e=Symbol.for("react.element"),t=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),o=Symbol.for("react.provider"),s=Symbol.for("react.context"),l=Symbol.for("react.server_context"),u=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),p=Symbol.for("react.suspense_list"),f=Symbol.for("react.memo"),g=Symbol.for("react.lazy"),y=Symbol.for("react.offscreen"),b;b=Symbol.for("react.module.reference");function w(v){if(typeof v=="object"&&v!==null){var j=v.$$typeof;switch(j){case e:switch(v=v.type,v){case n:case i:case r:case d:case p:return v;default:switch(v=v&&v.$$typeof,v){case l:case s:case u:case g:case f:case o:return v;default:return j}}case t:return j}}}return mt.ContextConsumer=s,mt.ContextProvider=o,mt.Element=e,mt.ForwardRef=u,mt.Fragment=n,mt.Lazy=g,mt.Memo=f,mt.Portal=t,mt.Profiler=i,mt.StrictMode=r,mt.Suspense=
474d,mt.SuspenseList=p,mt.isAsyncMode=function(){return!1},mt.isConcurrentMode=function(){return!1},mt.isContextConsumer=function(v){return w(v)===s},mt.isContextProvider=function(v){return w(v)===o},mt.isElement=function(v){return typeof v=="object"&&v!==null&&v.$$typeof===e},mt.isForwardRef=function(v){return w(v)===u},mt.isFragment=function(v){return w(v)===n},mt.isLazy=function(v){return w(v)===g},mt.isMemo=function(v){return w(v)===f},mt.isPortal=function(v){return w(v)===t},mt.isProfiler=function(v){return w(v)===i},mt.isStrictMode=function(v){return w(v)===r},mt.isSuspense=function(v){return w(v)===d},mt.isSuspenseList=function(v){return w(v)===p},mt.isValidElementType=function(v){return typeof v=="string"||typeof v=="function"||v===n||v===i||v===r||v===d||v===p||v===y||typeof v=="object"&&v!==null&&(v.$$typeof===g||v.$$typeof===f||v.$$typeof===o||v.$$typeof===s||v.$$typeof===u||v.$$typeof===b||v.getModuleId!==void 0)},mt.typeOf=w,mt}var JP;function cZ(){return JP||(JP=1,Lb.exports=lZ()),Lb.exports}var uZ=cZ(),Fb,ZP;function x6(){if(ZP)return Fb;ZP=1;var e=wa(),t=ja(),n="[object Number]";function r(i){return typeof i=="number"||t(i)&&e(i)==n}return Fb=r,Fb}var Bb,eO;function dZ(){if(eO)return Bb;eO=1;var e=x6();function t(n){return e(n)&&n!=+n}return Bb=t,Bb}var hZ=dZ();const Wc=bt(hZ);var pZ=x6();const fZ=bt(pZ);var hi=function(t){return t===0?0:t>0?1:-1},os=function(t){return Is(t)&&t.indexOf("%")===t.length-1},fe=function(t){return fZ(t)&&!Wc(t)},mZ=function(t){return Qe(t)},cn=function(t){return fe(t)||Is(t)},gZ=0,Uc=function(t){var n=++gZ;return"".concat(t||"").concat(n)},Rs=function(t,n){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!fe(t)&&!Is(t))return r;var o;if(os(t)){var s=t.indexOf("%");o=n*parseFloat(t.slice(0,s))/100}else o=+t;return Wc(o)&&(o=r),i&&o>n&&(o=n),o},eo=function(t){if(!t)return null;var n=Object.keys(t);return n&&n.length?t[n[0]]:null},yZ=function(t){if(!Array.isArray(t))return!1;for(var n=t.length,r={},i=0;i<n;i++)if(!r[t[i]])r[t[i]]=!0;else return!0;return!1},Tn=function(t,n){return fe(t)&&fe(n)?function(r){return t+r*(n-t)}:function(){return n}};function um(e,t,n){return!e||!e.length?null:e.find(function(r){return r&&(typeof t=="function"?t(r):Ur(r,t))===n})}var xZ=function(t,n){return fe(t)&&fe(n)?t-n:Is(t)&&Is(n)?t.localeCompare(n):t instanceof Date&&n instanceof Date?t.getTime()-n.getTime():String(t).localeCompare(String(n))};function ql(e,t){for(var n in e)if({}.hasOwnProperty.call(e,n)&&(!{}.hasOwnProperty.call(t,n)||e[n]!==t[n]))return!1;for(var r in t)if({}.hasOwnProperty.call(t,r)&&!{}.hasOwnProperty.call(e,r))return!1;return!0}function G2(e){"@babel/helpers - typeof";return G2=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},G2(e)}var vZ=["viewBox","children"],bZ=["aria-activedescendant","aria-atomic","aria-autocomplete","aria-busy","aria-checked","aria-colcount","aria-colindex","aria-colspan","aria-controls","aria-current","aria-describedby","aria-details","aria-disabled","aria-errormessage","aria-expanded","aria-flowto","aria-haspopup","aria-hidden","aria-invalid","aria-keyshortcuts","aria-label","aria-labelledby","aria-level","aria-live","aria-modal","aria-multiline","aria-multiselectable","aria-orientation","aria-owns","aria-placeholder","aria-posinset","aria-pressed","aria-readonly","aria-relevant","aria-required","aria-roledescription","aria-rowcount","aria-rowindex","aria-rowspan","aria-selected","aria-setsize","aria-sort","aria-valuemax","aria-valuemin","aria-valuenow","aria-valuetext","className","color","height","id","lang","max","media","method","min","name","style","target","width","role","tabIndex","accentHeight","accumulate","additive","alignmentBaseline","allowReorder","alphabetic","amplitude","arabicForm","ascent","attributeName","attributeType","autoReverse","azimuth","baseFrequency","baselineShift","baseProfile","bbox","begin","bias","by","calcMode","capHeight","clip","clipPath","clipPathUnits","clipRule","colorInterpolation","colorInterpolationFilters","colorProfile","colorRen
474dering","contentScriptType","contentStyleType","cursor","cx","cy","d","decelerate","descent","diffuseConstant","direction","display","divisor","dominantBaseline","dur","dx","dy","edgeMode","elevation","enableBackground","end","exponent","externalResourcesRequired","fill","fillOpacity","fillRule","filter","filterRes","filterUnits","floodColor","floodOpacity","focusable","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","fontWeight","format","from","fx","fy","g1","g2","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","glyphRef","gradientTransform","gradientUnits","hanging","horizAdvX","horizOriginX","href","ideographic","imageRendering","in2","in","intercept","k1","k2","k3","k4","k","kernelMatrix","kernelUnitLength","kerning","keyPoints","keySplines","keyTimes","lengthAdjust","letterSpacing","lightingColor","limitingConeAngle","local","markerEnd","markerHeight","markerMid","markerStart","markerUnits","markerWidth","mask","maskContentUnits","maskUnits","mathematical","mode","numOctaves","offset","opacity","operator","order","orient","orientation","origin","overflow","overlinePosition","overlineThickness","paintOrder","panose1","pathLength","patternContentUnits","patternTransform","patternUnits","pointerEvents","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","r","radius","refX","refY","renderingIntent","repeatCount","repeatDur","requiredExtensions","requiredFeatures","restart","result","rotate","rx","ry","seed","shapeRendering","slope","spacing","specularConstant","specularExponent","speed","spreadMethod","startOffset","stdDeviation","stemh","stemv","stitchTiles","stopColor","stopOpacity","strikethroughPosition","strikethroughThickness","string","stroke","strokeDasharray","strokeDashoffset","strokeLinecap","strokeLinejoin","strokeMiterlimit","strokeOpacity","strokeWidth","surfaceScale","systemLanguage","tableValues","targetX","targetY","textAnchor","textDecoration","textLength","textRendering","to","transform","u1","u2","underlinePosition","underlineThickness","unicode","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","values","vectorEffect","version","vertAdvY","vertOriginX","vertOriginY","vHanging","vIdeographic","viewTarget","visibility","vMathematical","widths","wordSpacing","writingMode","x1","x2","x","xChannelSelector","xHeight","xlinkActuate","xlinkArcrole","xlinkHref","xlinkRole","xlinkShow","xlinkTitle","xlinkType","xmlBase","xmlLang","xmlns","xmlnsXlink","xmlSpace","y1","y2","y","yChannelSelector","z","zoomAndPan","ref","key","angle"],tO=["points","pathLength"],zb={svg:vZ,polygon:tO,polyline:tO},AA=["dangerouslySetInnerHTML","onCopy","onCopyCapture","onCut","onCutCapture","onPaste","onPasteCapture","onCompositionEnd","onCompositionEndCapture","onCompositionStart","onCompositionStartCapture","onCompositionUpdate","onCompositionUpdateCapture","onFocus","onFocusCapture","onBlur","onBlurCapture","onChange","onChangeCapture","onBeforeInput","onBeforeInputCapture","onInput","onInputCapture","onReset","onResetCapture","onSubmit","onSubmitCapture","onInvalid","onInvalidCapture","onLoad","onLoadCapture","onError","onErrorCapture","onKeyDown","onKeyDownCapture","onKeyPress","onKeyPressCapture","onKeyUp","onKeyUpCapture","onAbort","onAbortCapture","onCanPlay","onCanPlayCapture","onCanPlayThrough","onCanPlayThroughCapture","onDurationChange","onDurationChangeCapture","onEmptied","onEmptiedCapture","onEncrypted","onEncryptedCapture","onEnded","onEndedCapture","onLoadedData","onLoadedDataCapture","onLoadedMetadata","onLoadedMetadataCapture","onLoadStart","onLoadStartCapture","onPause","onPauseCapture","onPlay","onPlayCapture","onPlaying","onPlayingCapture","onProgress","onProgressCapture","onRateChange","onRateChangeCapture","onSeeked","onSeekedCapture","onSeeking","onSeekingCapture","onStalled","onStalledCapture","onSuspend","onSuspendCapture","onTimeUpdate","onTimeUpdateCapture","onVolumeChange","onVolumeChangeCapture","onWaiting","onWaitingCapture","onAuxClick","onAuxClickCapture","onClick","onClickCapture","onContextMenu","onContextMenuCapture","onDoubleClick","onDoubleClickCapture","onDrag","onDrag
474Capture","onDragEnd","onDragEndCapture","onDragEnter","onDragEnterCapture","onDragExit","onDragExitCapture","onDragLeave","onDragLeaveCapture","onDragOver","onDragOverCapture","onDragStart","onDragStartCapture","onDrop","onDropCapture","onMouseDown","onMouseDownCapture","onMouseEnter","onMouseLeave","onMouseMove","onMouseMoveCapture","onMouseOut","onMouseOutCapture","onMouseOver","onMouseOverCapture","onMouseUp","onMouseUpCapture","onSelect","onSelectCapture","onTouchCancel","onTouchCancelCapture","onTouchEnd","onTouchEndCapture","onTouchMove","onTouchMoveCapture","onTouchStart","onTouchStartCapture","onPointerDown","onPointerDownCapture","onPointerMove","onPointerMoveCapture","onPointerUp","onPointerUpCapture","onPointerCancel","onPointerCancelCapture","onPointerEnter","onPointerEnterCapture","onPointerLeave","onPointerLeaveCapture","onPointerOver","onPointerOverCapture","onPointerOut","onPointerOutCapture","onGotPointerCapture","onGotPointerCaptureCapture","onLostPointerCapture","onLostPointerCaptureCapture","onScroll","onScrollCapture","onWheel","onWheelCapture","onAnimationStart","onAnimationStartCapture","onAnimationEnd","onAnimationEndCapture","onAnimationIteration","onAnimationIterationCapture","onTransitionEnd","onTransitionEndCapture"],dm=function(t,n){if(!t||typeof t=="function"||typeof t=="boolean")return null;var r=t;if(O.isValidElement(t)&&(r=t.props),!qc(r))return null;var i={};return Object.keys(r).forEach(function(o){AA.includes(o)&&(i[o]=n||function(s){return r[o](r,s)})}),i},wZ=function(t,n,r){return function(i){return t(n,r,i),null}},hm=function(t,n,r){if(!qc(t)||G2(t)!=="object")return null;var i=null;return Object.keys(t).forEach(function(o){var s=t[o];AA.includes(o)&&typeof s=="function"&&(i||(i={}),i[o]=wZ(s,n,r))}),i},jZ=["children"],kZ=["children"];function nO(e,t){if(e==null)return{};var n=AZ(e,t),r,i;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i<o.length;i++)r=o[i],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function AZ(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function Y2(e){"@babel/helpers - typeof";return Y2=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Y2(e)}var rO={click:"onClick",mousedown:"onMouseDown",mouseup:"onMouseUp",mouseover:"onMouseOver",mousemove:"onMouseMove",mouseout:"onMouseOut",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",touchcancel:"onTouchCancel",touchend:"onTouchEnd",touchmove:"onTouchMove",touchstart:"onTouchStart",contextmenu:"onContextMenu",dblclick:"onDoubleClick"},ca=function(t){return typeof t=="string"?t:t?t.displayName||t.name||"Component":""},iO=null,$b=null,SA=function e(t){if(t===iO&&Array.isArray($b))return $b;var n=[];return O.Children.forEach(t,function(r){Qe(r)||(uZ.isFragment(r)?n=n.concat(e(r.props.children)):n.push(r))}),$b=n,iO=t,n};function Hr(e,t){var n=[],r=[];return Array.isArray(t)?r=t.map(function(i){return ca(i)}):r=[ca(t)],SA(e).forEach(function(i){var o=Ur(i,"type.displayName")||Ur(i,"type.name");r.indexOf(o)!==-1&&n.push(i)}),n}function wr(e,t){var n=Hr(e,t);return n&&n[0]}var aO=function(t){if(!t||!t.props)return!1;var n=t.props,r=n.width,i=n.height;return!(!fe(r)||r<=0||!fe(i)||i<=0)},SZ=["a","altGlyph","altGlyphDef","altGlyphItem","animate","animateColor","animateMotion","animateTransform","circle","clipPath","color-profile","cursor","defs","desc","ellipse","feBlend","feColormatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","font","font-face","font-face-format","font-face-name","font-face-url","foreignObject","g","glyph","glyphRef","hkern","image","line","lineGradient","marker","mask","metadata","missing-glyph","mpath","path","pattern","polygon","polyline","radialGradient","rect","script","set","stop","style","svg","switch","symbol","text","textPath","title","tref","tspan","use","view","vkern"],CZ=function(t){return t&&t.type&&Is(t.type)&&SZ.indexOf(t.type)>=0},v6=function(t){return t&&Y2(t)==="object"&&"clipDot"in t},NZ=function(t,n,r,i){var o,s=(o=zb==null?void 0:zb[i])!==null&&o!==void 0?o:[];return n.startsWith("data-")||!Ge(t)&&(i&&s.includes(n)||bZ.includes(n))||r&&AA.includes(n)},Ke=function(t,n,r){if(!t||typeof t=="function"||typeof t=="boolean")return null;var i=t;if(O.isValidElement(t)&&(i=t.props),!qc(i))return null;var o={};
474return Object.keys(i).forEach(function(s){var l;NZ((l=i)===null||l===void 0?void 0:l[s],s,n,r)&&(o[s]=i[s])}),o},K2=function e(t,n){if(t===n)return!0;var r=O.Children.count(t);if(r!==O.Children.count(n))return!1;if(r===0)return!0;if(r===1)return oO(Array.isArray(t)?t[0]:t,Array.isArray(n)?n[0]:n);for(var i=0;i<r;i++){var o=t[i],s=n[i];if(Array.isArray(o)||Array.isArray(s)){if(!e(o,s))return!1}else if(!oO(o,s))return!1}return!0},oO=function(t,n){if(Qe(t)&&Qe(n))return!0;if(!Qe(t)&&!Qe(n)){var r=t.props||{},i=r.children,o=nO(r,jZ),s=n.props||{},l=s.children,u=nO(s,kZ);return i&&l?ql(o,u)&&K2(i,l):!i&&!l?ql(o,u):!1}return!1},sO=function(t,n){var r=[],i={};return SA(t).forEach(function(o,s){if(CZ(o))r.push(o);else if(o){var l=ca(o.type),u=n[l]||{},d=u.handler,p=u.once;if(d&&(!p||!i[l])){var f=d(o,l,s);r.push(f),i[l]=!0}}}),r},TZ=function(t){var n=t&&t.type;return n&&rO[n]?rO[n]:null},EZ=function(t,n){return SA(n).indexOf(t)},PZ=["children","width","height","viewBox","className","style","title","desc"];function X2(){return X2=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},X2.apply(this,arguments)}function OZ(e,t){if(e==null)return{};var n=_Z(e,t),r,i;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i<o.length;i++)r=o[i],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function _Z(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function Q2(e){var t=e.children,n=e.width,r=e.height,i=e.viewBox,o=e.className,s=e.style,l=e.title,u=e.desc,d=OZ(e,PZ),p=i||{width:n,height:r,x:0,y:0},f=nt("recharts-surface",o);return W.createElement("svg",X2({},Ke(d,!0,"svg"),{className:f,width:n,height:r,style:s,viewBox:"".concat(p.x," ").concat(p.y," ").concat(p.width," ").concat(p.height)}),W.createElement("title",null,l),W.createElement("desc",null,u),t)}var IZ=["children","className"];function J2(){return J2=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},J2.apply(this,arguments)}function RZ(e,t){if(e==null)return{};var n=DZ(e,t),r,i;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i<o.length;i++)r=o[i],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function DZ(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var Et=W.forwardRef(function(e,t){var n=e.children,r=e.className,i=RZ(e,IZ),o=nt("recharts-layer",r);return W.createElement("g",J2({className:o},Ke(i,!0),{ref:t}),n)}),ua=function(t,n){for(var r=arguments.length,i=new Array(r>2?r-2:0),o=2;o<r;o++)i[o-2]=arguments[o]},qb,lO;function MZ(){if(lO)return qb;lO=1;function e(t,n,r){var i=-1,o=t.length;n<0&&(n=-n>o?0:o+n),r=r>o?o:r,r<0&&(r+=o),o=n>r?0:r-n>>>0,n>>>=0;for(var s=Array(o);++i<o;)s[i]=t[i+n];return s}return qb=e,qb}var Wb,cO;function LZ(){if(cO)return Wb;cO=1;var e=MZ();function t(n,r,i){var o=n.length;return i=i===void 0?o:i,!r&&i>=o?n:e(n,r,i)}return Wb=t,Wb}var Ub,uO;function b6(){if(uO)return Ub;uO=1;var e="\\ud800-\\udfff",t="\\u0300-\\u036f",n="\\ufe20-\\ufe2f",r="\\u20d0-\\u20ff",i=t+n+r,o="\\ufe0e\\ufe0f",s="\\u200d",l=RegExp("["+s+e+i+o+"]");function u(d){return l.test(d)}return Ub=u,Ub}var Hb,dO;function FZ(){if(dO)return Hb;dO=1;function e(t){return t.split("")}return Hb=e,Hb}var Vb,hO;function BZ(){if(hO)return Vb;hO=1;var e="\\ud800-\\udfff",t="\\u0300-\\u036f",n="\\ufe20-\\ufe2f",r="\\u20d0-\\u20ff",i=t+n+r,o="\\ufe0e\\ufe0f",s="["+e+"]",l="["+i+"]",u="\\ud83c[\\udffb-\\udfff]",d="(?:"+l+"|"+u+")",p="[^"+e+"]",f="(?:\\ud83c[\\udde6-\\uddff]){2}",g="[\\ud800-\\udbff][\\udc00-\\udfff]",y="\\u200d",b=d+"?",w="["+o+"]?",v="(?:"+y+"(?:"+[p,f,g].join("|")+")"+w+b+")*",j=w+b+v,k="(?:"+[p+l+"?",l,f,g,s].join("|")+")",S=RegExp(u+"(?="+u+")|"+k+j,"g");function E(N){return N.match(S)||[]}return Vb=E,Vb}var Gb,pO;function zZ(){if(pO)return Gb;pO=1;var e=FZ(),t=b6(),n=BZ();function r(i){return t(i)?n(i):e(i)}return Gb=r,Gb}var Yb,fO;function $Z(){if(fO)return Yb;fO=1;var e=LZ(),t=b6(),n=zZ(),r=m6();function i(o){return function(s){s=r(s);
474var l=t(s)?n(s):void 0,u=l?l[0]:s.charAt(0),d=l?e(l,1).join(""):s.slice(1);return u[o]()+d}}return Yb=i,Yb}var Kb,mO;function qZ(){if(mO)return Kb;mO=1;var e=$Z(),t=e("toUpperCase");return Kb=t,Kb}var WZ=qZ();const Wg=bt(WZ);function Tt(e){return function(){return e}}const w6=Math.cos,pm=Math.sin,mi=Math.sqrt,fm=Math.PI,Ug=2*fm,Z2=Math.PI,ej=2*Z2,es=1e-6,UZ=ej-es;function j6(e){this._+=e[0];for(let t=1,n=e.length;t<n;++t)this._+=arguments[t]+e[t]}function HZ(e){let t=Math.floor(e);if(!(t>=0))throw new Error(`invalid digits: ${e}`);if(t>15)return j6;const n=10**t;return function(r){this._+=r[0];for(let i=1,o=r.length;i<o;++i)this._+=Math.round(arguments[i]*n)/n+r[i]}}class VZ{constructor(t){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=t==null?j6:HZ(t)}moveTo(t,n){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+n}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(t,n){this._append`L${this._x1=+t},${this._y1=+n}`}quadraticCurveTo(t,n,r,i){this._append`Q${+t},${+n},${this._x1=+r},${this._y1=+i}`}bezierCurveTo(t,n,r,i,o,s){this._append`C${+t},${+n},${+r},${+i},${this._x1=+o},${this._y1=+s}`}arcTo(t,n,r,i,o){if(t=+t,n=+n,r=+r,i=+i,o=+o,o<0)throw new Error(`negative radius: ${o}`);let s=this._x1,l=this._y1,u=r-t,d=i-n,p=s-t,f=l-n,g=p*p+f*f;if(this._x1===null)this._append`M${this._x1=t},${this._y1=n}`;else if(g>es)if(!(Math.abs(f*u-d*p)>es)||!o)this._append`L${this._x1=t},${this._y1=n}`;else{let y=r-s,b=i-l,w=u*u+d*d,v=y*y+b*b,j=Math.sqrt(w),k=Math.sqrt(g),S=o*Math.tan((Z2-Math.acos((w+g-v)/(2*j*k)))/2),E=S/k,N=S/j;Math.abs(E-1)>es&&this._append`L${t+E*p},${n+E*f}`,this._append`A${o},${o},0,0,${+(f*y>p*b)},${this._x1=t+N*u},${this._y1=n+N*d}`}}arc(t,n,r,i,o,s){if(t=+t,n=+n,r=+r,s=!!s,r<0)throw new Error(`negative radius: ${r}`);let l=r*Math.cos(i),u=r*Math.sin(i),d=t+l,p=n+u,f=1^s,g=s?i-o:o-i;this._x1===null?this._append`M${d},${p}`:(Math.abs(this._x1-d)>es||Math.abs(this._y1-p)>es)&&this._append`L${d},${p}`,r&&(g<0&&(g=g%ej+ej),g>UZ?this._append`A${r},${r},0,1,${f},${t-l},${n-u}A${r},${r},0,1,${f},${this._x1=d},${this._y1=p}`:g>es&&this._append`A${r},${r},0,${+(g>=Z2)},${f},${this._x1=t+r*Math.cos(o)},${this._y1=n+r*Math.sin(o)}`)}rect(t,n,r,i){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+n}h${r=+r}v${+i}h${-r}Z`}toString(){return this._}}function CA(e){let t=3;return e.digits=function(n){if(!arguments.length)return t;if(n==null)t=null;else{const r=Math.floor(n);if(!(r>=0))throw new RangeError(`invalid digits: ${n}`);t=r}return e},()=>new VZ(t)}function NA(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function k6(e){this._context=e}k6.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t);break}}};function Hg(e){return new k6(e)}function A6(e){return e[0]}function S6(e){return e[1]}function C6(e,t){var n=Tt(!0),r=null,i=Hg,o=null,s=CA(l);e=typeof e=="function"?e:e===void 0?A6:Tt(e),t=typeof t=="function"?t:t===void 0?S6:Tt(t);function l(u){var d,p=(u=NA(u)).length,f,g=!1,y;for(r==null&&(o=i(y=s())),d=0;d<=p;++d)!(d<p&&n(f=u[d],d,u))===g&&((g=!g)?o.lineStart():o.lineEnd()),g&&o.point(+e(f,d,u),+t(f,d,u));if(y)return o=null,y+""||null}return l.x=function(u){return arguments.length?(e=typeof u=="function"?u:Tt(+u),l):e},l.y=function(u){return arguments.length?(t=typeof u=="function"?u:Tt(+u),l):t},l.defined=function(u){return arguments.length?(n=typeof u=="function"?u:Tt(!!u),l):n},l.curve=function(u){return arguments.length?(i=u,r!=null&&(o=i(r)),l):i},l.context=function(u){return arguments.length?(u==null?r=o=null:o=i(r=u),l):r},l}function gf(e,t,n){var r=null,i=Tt(!0),o=null,s=Hg,l=null,u=CA(d);e=typeof e=="function"?e:e===void 0?A6:Tt(+e),t=typeof t=="function"?t:Tt(t===void 0?0:+t),n=typeof n=="function"?n:n===void 0?S6:Tt(+n);function d(f){var g,y,b,w=(f=NA(f)).length,v,j=!1,k,S=new Array(w),E=new Array(w);for(o==null&&(l=s(k=u())),g=0;g<=w;++g){if(!(g<w&&i(v=f[g],g,f))===j)if(j=!j)y=g,l.areaStart(),l.lineStart();else{for(l.lineEnd(),l.lineStart(),b=g-1;b>=y;--b)l.point(S[b],E[b]);l.lineEnd(),l.areaEnd()}j&&(S[g]=+e(v,g,f),E[g]=+t(v,g,f),l.point(r?+r(v,g,f):S[g],n?+n(v,g,f):E[g]))}if(k)return l=null,k+""||null}
vendor: 9,625 bytes, line 474
474function p(){return C6().defined(i).curve(s).context(o)}return d.x=function(f){return arguments.length?(e=typeof f=="function"?f:Tt(+f),r=null,d):e},d.x0=function(f){return arguments.length?(e=typeof f=="function"?f:Tt(+f),d):e},d.x1=function(f){return arguments.length?(r=f==null?null:typeof f=="function"?f:Tt(+f),d):r},d.y=function(f){return arguments.length?(t=typeof f=="function"?f:Tt(+f),n=null,d):t},d.y0=function(f){return arguments.length?(t=typeof f=="function"?f:Tt(+f),d):t},d.y1=function(f){return arguments.length?(n=f==null?null:typeof f=="function"?f:Tt(+f),d):n},d.lineX0=d.lineY0=function(){return p().x(e).y(t)},d.lineY1=function(){return p().x(e).y(n)},d.lineX1=function(){return p().x(r).y(t)},d.defined=function(f){return arguments.length?(i=typeof f=="function"?f:Tt(!!f),d):i},d.curve=function(f){return arguments.length?(s=f,o!=null&&(l=s(o)),d):s},d.context=function(f){return arguments.length?(f==null?o=l=null:l=s(o=f),d):o},d}class N6{constructor(t,n){this._context=t,this._x=n}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(t,n){switch(t=+t,n=+n,this._point){case 0:{this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+t)/2,this._y0,this._x0,n,t,n):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+n)/2,t,this._y0,t,n);break}}this._x0=t,this._y0=n}}function GZ(e){return new N6(e,!0)}function YZ(e){return new N6(e,!1)}const TA={draw(e,t){const n=mi(t/fm);e.moveTo(n,0),e.arc(0,0,n,0,Ug)}},KZ={draw(e,t){const n=mi(t/5)/2;e.moveTo(-3*n,-n),e.lineTo(-n,-n),e.lineTo(-n,-3*n),e.lineTo(n,-3*n),e.lineTo(n,-n),e.lineTo(3*n,-n),e.lineTo(3*n,n),e.lineTo(n,n),e.lineTo(n,3*n),e.lineTo(-n,3*n),e.lineTo(-n,n),e.lineTo(-3*n,n),e.closePath()}},T6=mi(1/3),XZ=T6*2,QZ={draw(e,t){const n=mi(t/XZ),r=n*T6;e.moveTo(0,-n),e.lineTo(r,0),e.lineTo(0,n),e.lineTo(-r,0),e.closePath()}},JZ={draw(e,t){const n=mi(t),r=-n/2;e.rect(r,r,n,n)}},ZZ=.8908130915292852,E6=pm(fm/10)/pm(7*fm/10),eee=pm(Ug/10)*E6,tee=-w6(Ug/10)*E6,nee={draw(e,t){const n=mi(t*ZZ),r=eee*n,i=tee*n;e.moveTo(0,-n),e.lineTo(r,i);for(let o=1;o<5;++o){const s=Ug*o/5,l=w6(s),u=pm(s);e.lineTo(u*n,-l*n),e.lineTo(l*r-u*i,u*r+l*i)}e.closePath()}},Xb=mi(3),ree={draw(e,t){const n=-mi(t/(Xb*3));e.moveTo(0,n*2),e.lineTo(-Xb*n,-n),e.lineTo(Xb*n,-n),e.closePath()}},Ir=-.5,Rr=mi(3)/2,tj=1/mi(12),iee=(tj/2+1)*3,aee={draw(e,t){const n=mi(t/iee),r=n/2,i=n*tj,o=r,s=n*tj+n,l=-o,u=s;e.moveTo(r,i),e.lineTo(o,s),e.lineTo(l,u),e.lineTo(Ir*r-Rr*i,Rr*r+Ir*i),e.lineTo(Ir*o-Rr*s,Rr*o+Ir*s),e.lineTo(Ir*l-Rr*u,Rr*l+Ir*u),e.lineTo(Ir*r+Rr*i,Ir*i-Rr*r),e.lineTo(Ir*o+Rr*s,Ir*s-Rr*o),e.lineTo(Ir*l+Rr*u,Ir*u-Rr*l),e.closePath()}};function oee(e,t){let n=null,r=CA(i);e=typeof e=="function"?e:Tt(e||TA),t=typeof t=="function"?t:Tt(t===void 0?64:+t);function i(){let o;if(n||(n=o=r()),e.apply(this,arguments).draw(n,+t.apply(this,arguments)),o)return n=null,o+""||null}return i.type=function(o){return arguments.length?(e=typeof o=="function"?o:Tt(o),i):e},i.size=function(o){return arguments.length?(t=typeof o=="function"?o:Tt(+o),i):t},i.context=function(o){return arguments.length?(n=o??null,i):n},i}function mm(){}function gm(e,t,n){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+n)/6)}function P6(e){this._context=e}P6.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:gm(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:gm(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function see(e){return new P6(e)}function O6(e){this._context=e}O6.prototype={areaStart:mm,areaEnd:mm,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x2=e,this._y2=t;break;case 1:this._point=2,this._x3=e,this._y3=t;break;case 2:this._point=3,this._x4=e,this._y4=t,this._context.moveTo((this._x0+4*this._x1+e)/6,(this._y0+4*this._y1+t)/6);break;default:gm(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function lee(e){return new O6(e)}function _6(e){this._context=e}_6.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+e)/6,r=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(n,r):this._context.moveTo(n,r);break;case 3:this._point=4;default:gm(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function cee(e){return new _6(e)}function I6(e){this._context=e}I6.prototype={areaStart:mm,areaEnd:mm,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(e,t){e=+e,t=+t,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))}};function uee(e){return new I6(e)}function gO(e){return e<0?-1:1}function yO(e,t,n){var r=e._x1-e._x0,i=t-e._x1,o=(e._y1-e._y0)/(r||i<0&&-0),s=(n-e._y1)/(i||r<0&&-0),l=(o*i+s*r)/(r+i);return(gO(o)+gO(s))*Math.min(Math.abs(o),Math.abs(s),.5*Math.abs(l))||0}function xO(e,t){var n=e._x1-e._x0;return n?(3*(e._y1-e._y0)/n-t)/2:t}function Qb(e,t,n){var r=e._x0,i=e._y0,o=e._x1,s=e._y1,l=(o-r)/3;e._context.bezierCurveTo(r+l,i+l*t,o-l,s-l*n,o,s)}function ym(e){this._context=e}ym.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:Qb(this,this._t0,xO(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var n=NaN;if(e=+e,t=+t,!(e===this._x1&&t===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,Qb(this,xO(this,n=yO(this,e,t)),n);break;default:Qb(this,this._t0,n=yO(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=n}}};function R6(e){this._context=new D6(e)}(R6.prototype=Object.create(ym.prototype)).point=function(e,t){ym.prototype.point.call(this,t,e)};function D6(e){this._context=e}D6.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,n,r,i,o){this._context.bezierCurveTo(t,e,r,n,o,i)}};function dee(e){return new ym(e)}function hee(e){return new R6(e)}function M6(e){this._context=e}M6.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var e=this._x,t=this._y,n=e.length;if(n)if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),n===2)this._context.lineTo(e[1],t[1]);else for(var r=vO(e),i=vO(t),o=0,s=1;s<n;++o,++s)this._context.bezierCurveTo(r[0][o],i[0][o],r[1][o],i[1][o],e[s],t[s]);(this._line||this._line!==0&&n===1)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(e,t){this._x.push(+e),this._y.push(+t)}};function vO(e){var t,n=e.length-1,r,i=new Array(n),o=new Array(n),s=new Array(n);for(i[0]=0,o[0]=2,s[0]=e[0]+2*e[1],t=1;t<n-1;++t)i[t]=1,o[t]=4,s[t]=4*e[t]+2*e[t+1];for(i[n-1]=2,o[n-1]=7,s[n-1]=8*e[n-1]+e[n],t=1;t<n;++t)r=i[t]/o[t-1],o[t]-=r,s[t]-=r*s[t-1];for(i[n-1]=s[n-1]/o[n-1],t=n-2;t>=0;--t)i[t]=(s[t]-i[t+1])/o[t];for(o[n-1]=(e[n]+i[n-1])/2,t=0;t<n-1;++t)o[t]=2*e[t+1]-i[t+1];return[i,o]}function pee(e){return new M6(e)}function Vg(e,t){this._context=e,this._t=t}Vg.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&this._point===2&&this._context.lineTo(this._x,this._y),(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;
474default:{if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var n=this._x*(1-this._t)+e*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,t)}break}}this._x=e,this._y=t}};function fee(e){return new Vg(e,.5)}function mee(e){return new Vg(e,0)}function gee(e){return new Vg(e,1)}function lc(e,t){if((s=e.length)>1)for(var n=1,r,i,o=e[t[0]],s,l=o.length;n<s;++n)for(i=o,o=e[t[n]],r=0;r<l;++r)o[r][1]+=o[r][0]=isNaN(i[r][1])?i[r][0]:i[r][1]}function nj(e){for(var t=e.length,n=new Array(t);--t>=0;)n[t]=t;return n}function yee(e,t){return e[t]}function xee(e){const t=[];return t.key=e,t}function vee(){var e=Tt([]),t=nj,n=lc,r=yee;function i(o){var s=Array.from(e.apply(this,arguments),xee),l,u=s.length,d=-1,p;for(const f of o)for(l=0,++d;l<u;++l)(s[l][d]=[0,+r(f,s[l].key,d,o)]).data=f;for(l=0,p=NA(t(s));l<u;++l)s[p[l]].index=l;return n(s,p),s}return i.keys=function(o){return arguments.length?(e=typeof o=="function"?o:Tt(Array.from(o)),i):e},i.value=function(o){return arguments.length?(r=typeof o=="function"?o:Tt(+o),i):r},i.order=function(o){return arguments.length?(t=o==null?nj:typeof o=="function"?o:Tt(Array.from(o)),i):t},i.offset=function(o){return arguments.length?(n=o??lc,i):n},i}function bee(e,t){if((r=e.length)>0){for(var n,r,i=0,o=e[0].length,s;i<o;++i){for(s=n=0;n<r;++n)s+=e[n][i][1]||0;if(s)for(n=0;n<r;++n)e[n][i][1]/=s}lc(e,t)}}function wee(e,t){if((i=e.length)>0){for(var n=0,r=e[t[0]],i,o=r.length;n<o;++n){for(var s=0,l=0;s<i;++s)l+=e[s][n][1]||0;r[n][1]+=r[n][0]=-l/2}lc(e,t)}}function jee(e,t){if(!(!((s=e.length)>0)||!((o=(i=e[t[0]]).length)>0))){for(var n=0,r=1,i,o,s;r<o;++r){for(var l=0,u=0,d=0;l<s;++l){for(var p=e[t[l]],f=p[r][1]||0,g=p[r-1][1]||0,y=(f-g)/2,b=0;b<l;++b){var w=e[t[b]],v=w[r][1]||0,j=w[r-1][1]||0;y+=v-j}u+=f,d+=y*f}i[r-1][1]+=i[r-1][0]=n,u&&(n-=d/u)}i[r-1][1]+=i[r-1][0]=n,lc(e,t)}}function Od(e){"@babel/helpers - typeof";return Od=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Od(e)}var kee=["type","size","sizeType"];function rj(){return rj=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},rj.apply(this,arguments)}function bO(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function wO(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?bO(Object(n),!0).forEach(function(r){Aee(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):bO(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function Aee(e,t,n){return t=See(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function See(e){var t=Cee(e,"string");return Od(t)=="symbol"?t:t+""}function Cee(e,t){if(Od(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Od(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Nee(e,t){if(e==null)return{};var n=Tee(e,t),r,i;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i<o.length;i++)r=o[i],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Tee(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var L6={symbolCircle:TA,symbolCross:KZ,symbolDiamond:QZ,symbolSquare:JZ,symbolStar:nee,symbolTriangle:ree,symbolWye:aee},Eee=Math.PI/180,Pee=function(t){var n="symbol".concat(Wg(t));return L6[n]||TA},Oee=function(t,n,r){if(n==="area")return t;switch(r){case"cross":return 5*t*t/9;case"diamond":return .5*t*t/Math.sqrt(3);case"square":return t*t;case"star":{var i=18*Eee;return 1.25*t*t*(Math.tan(i)-Math.tan(i*2)*Math.pow(Math.tan(i),2))}case"triangle":return Math.sqrt(3)*t*t/4;case"wye":return(21-10*Math.sqrt(3))*t*t/8;default:return Math.PI*t*t/4}},_ee=function(t,n){L6["symbol".concat(Wg(t))]=n},EA=function(t){var n=t.type,r=n===void 0?"circle":n,i=t.size,o=i===void 0?64:i,s=t.sizeType,l=s===void 0?"area":s,u=Nee(t,kee),d=wO(wO({},u),{},{type:r,size:o,sizeType:l}
474),p=function(){var v=Pee(r),j=oee().type(v).size(Oee(o,l,r));return j()},f=d.className,g=d.cx,y=d.cy,b=Ke(d,!0);return g===+g&&y===+y&&o===+o?W.createElement("path",rj({},b,{className:nt("recharts-symbols",f),transform:"translate(".concat(g,", ").concat(y,")"),d:p()})):null};EA.registerSymbol=_ee;function cc(e){"@babel/helpers - typeof";return cc=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},cc(e)}function ij(){return ij=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},ij.apply(this,arguments)}function jO(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function Iee(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?jO(Object(n),!0).forEach(function(r){_d(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):jO(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function Ree(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Dee(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,B6(r.key),r)}}function Mee(e,t,n){return t&&Dee(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function Lee(e,t,n){return t=xm(t),Fee(e,F6()?Reflect.construct(t,n||[],xm(e).constructor):t.apply(e,n))}function Fee(e,t){if(t&&(cc(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Bee(e)}function Bee(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function F6(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(F6=function(){return!!e})()}function xm(e){return xm=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},xm(e)}function zee(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&aj(e,t)}function aj(e,t){return aj=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,i){return r.__proto__=i,r},aj(e,t)}function _d(e,t,n){return t=B6(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function B6(e){var t=$ee(e,"string");return cc(t)=="symbol"?t:t+""}function $ee(e,t){if(cc(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(cc(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var Dr=32,PA=(function(e){function t(){return Ree(this,t),Lee(this,t,arguments)}return zee(t,e),Mee(t,[{key:"renderIcon",value:function(r){var i=this.props.inactiveColor,o=Dr/2,s=Dr/6,l=Dr/3,u=r.inactive?i:r.color;if(r.type==="plainline")return W.createElement("line",{strokeWidth:4,fill:"none",stroke:u,strokeDasharray:r.payload.strokeDasharray,x1:0,y1:o,x2:Dr,y2:o,className:"recharts-legend-icon"});if(r.type==="line")return W.createElement("path",{strokeWidth:4,fill:"none",stroke:u,d:"M0,".concat(o,"h").concat(l,` 475 A`).concat(s,",").concat(s,",0,1,1,").concat(2*l,",").concat(o,` 476 H`).concat(Dr,"M").concat(2*l,",").concat(o,` 477 A`).concat(s,",").concat(s,",0,1,1,").concat(l,",").concat(o),className:"recharts-legend-icon"});if(r.type==="rect")return W.createElement("path",{stroke:"none",fill:u,d:"M0,".concat(Dr/8,"h").concat(Dr,"v").concat(Dr*3/4,"h").concat(-Dr,"z"),className:"recharts-legend-icon"});if(W.isValidElement(r.legendIcon)){var d=Iee({},r);return delete d.legendIcon,W.cloneElement(r.legendIcon,d)}return W.createElement(EA,{fill:u,cx:o,cy:o,size:Dr,sizeType:"diameter",type:r.type})}},{key:"renderItems",value:function(){var r=this,i=this.props,o=i.payload,s=i.iconSize,l=i.layout,u=i.formatter,d=i.inactiveColor,p={x:0,y:0,width:Dr,height:Dr}
477,f={display:l==="horizontal"?"inline-block":"block",marginRight:10},g={display:"inline-block",verticalAlign:"middle",marginRight:4};return o.map(function(y,b){var w=y.formatter||u,v=nt(_d(_d({"recharts-legend-item":!0},"legend-item-".concat(b),!0),"inactive",y.inactive));if(y.type==="none")return null;var j=Ge(y.value)?null:y.value;ua(!Ge(y.value),`The name property is also required when using a function for the dataKey of a chart's cartesian components. Ex: <Bar name="Name of my Data"/>`);var k=y.inactive?d:y.color;return W.createElement("li",ij({className:v,style:f,key:"legend-item-".concat(b)},hm(r.props,y,b)),W.createElement(Q2,{width:s,height:s,viewBox:p,style:g},r.renderIcon(y)),W.createElement("span",{className:"recharts-legend-item-text",style:{color:k}},w?w(j,y,b):j))})}},{key:"render",value:function(){var r=this.props,i=r.payload,o=r.layout,s=r.align;if(!i||!i.length)return null;var l={padding:0,margin:0,textAlign:o==="horizontal"?s:"left"};return W.createElement("ul",{className:"recharts-default-legend",style:l},this.renderItems())}}])})(O.PureComponent);_d(PA,"displayName","Legend");_d(PA,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"middle",inactiveColor:"#ccc"});var Jb,kO;function qee(){if(kO)return Jb;kO=1;var e=zg();function t(){this.__data__=new e,this.size=0}return Jb=t,Jb}var Zb,AO;function Wee(){if(AO)return Zb;AO=1;function e(t){var n=this.__data__,r=n.delete(t);return this.size=n.size,r}return Zb=e,Zb}var e0,SO;function Uee(){if(SO)return e0;SO=1;function e(t){return this.__data__.get(t)}return e0=e,e0}var t0,CO;function Hee(){if(CO)return t0;CO=1;function e(t){return this.__data__.has(t)}return t0=e,t0}var n0,NO;function Vee(){if(NO)return n0;NO=1;var e=zg(),t=bA(),n=wA(),r=200;function i(o,s){var l=this.__data__;if(l instanceof e){var u=l.__data__;if(!t||u.length<r-1)return u.push([o,s]),this.size=++l.size,this;l=this.__data__=new n(u)}return l.set(o,s),this.size=l.size,this}return n0=i,n0}var r0,TO;function z6(){if(TO)return r0;TO=1;var e=zg(),t=qee(),n=Wee(),r=Uee(),i=Hee(),o=Vee();function s(l){var u=this.__data__=new e(l);this.size=u.size}return s.prototype.clear=t,s.prototype.delete=n,s.prototype.get=r,s.prototype.has=i,s.prototype.set=o,r0=s,r0}var i0,EO;function Gee(){if(EO)return i0;EO=1;var e="__lodash_hash_undefined__";function t(n){return this.__data__.set(n,e),this}return i0=t,i0}var a0,PO;function Yee(){if(PO)return a0;PO=1;function e(t){return this.__data__.has(t)}return a0=e,a0}var o0,OO;function $6(){if(OO)return o0;OO=1;var e=wA(),t=Gee(),n=Yee();function r(i){var o=-1,s=i==null?0:i.length;for(this.__data__=new e;++o<s;)this.add(i[o])}return r.prototype.add=r.prototype.push=t,r.prototype.has=n,o0=r,o0}var s0,_O;function q6(){if(_O)return s0;_O=1;function e(t,n){for(var r=-1,i=t==null?0:t.length;++r<i;)if(n(t[r],r,t))return!0;return!1}return s0=e,s0}var l0,IO;function W6(){if(IO)return l0;IO=1;function e(t,n){return t.has(n)}return l0=e,l0}var c0,RO;function U6(){if(RO)return c0;RO=1;var e=$6(),t=q6(),n=W6(),r=1,i=2;function o(s,l,u,d,p,f){var g=u&r,y=s.length,b=l.length;if(y!=b&&!(g&&b>y))return!1;var w=f.get(s),v=f.get(l);if(w&&v)return w==l&&v==s;var j=-1,k=!0,S=u&i?new e:void 0;for(f.set(s,l),f.set(l,s);++j<y;){var E=s[j],N=l[j];if(d)var C=g?d(N,E,j,l,s,f):d(E,N,j,s,l,f);if(C!==void 0){if(C)continue;k=!1;break}if(S){if(!t(l,function(P,_){if(!n(S,_)&&(E===P||p(E,P,u,d,f)))return S.push(_)})){k=!1;break}}else if(!(E===N||p(E,N,u,d,f))){k=!1;break}}return f.delete(s),f.delete(l),k}return c0=o,c0}var u0,DO;function Kee(){if(DO)return u0;DO=1;var e=$i(),t=e.Uint8Array;return u0=t,u0}var d0,MO;function Xee(){if(MO)return d0;MO=1;function e(t){var n=-1,r=Array(t.size);return t.forEach(function(i,o){r[++n]=[o,i]}),r}return d0=e,d0}var h0,LO;function OA(){if(LO)return h0;LO=1;function e(t){var n=-1,r=Array(t.size);return t.forEach(function(i){r[++n]=i}),r}return h0=e,h0}var p0,FO;function Qee(){if(FO)return p0;FO=1;var e=Ih(),t=Kee(),n=vA(),r=U6(),i=Xee(),o=OA(),s=1,l=2,u="[object Boolean]",d="[object Date]",p="[object Error]",f="[object Map]",g="[object Number]",y="[object RegExp]",b="[object Set]",w="[object String]",v="[object Symbol]",j="[object ArrayBuffer]",k="[object DataView]",S=e?e.prototype:void 0,E=S?S.valueOf
vendor: 4,261 bytes, line 477
477:void 0;function N(C,P,_,M,D,B,F){switch(_){case k:if(C.byteLength!=P.byteLength||C.byteOffset!=P.byteOffset)return!1;C=C.buffer,P=P.buffer;case j:return!(C.byteLength!=P.byteLength||!B(new t(C),new t(P)));case u:case d:case g:return n(+C,+P);case p:return C.name==P.name&&C.message==P.message;case y:case w:return C==P+"";case f:var V=i;case b:var U=M&s;if(V||(V=o),C.size!=P.size&&!U)return!1;var q=F.get(C);if(q)return q==P;M|=l,F.set(C,P);var Y=r(V(C),V(P),M,D,B,F);return F.delete(C),Y;case v:if(E)return E.call(C)==E.call(P)}return!1}return p0=N,p0}var f0,BO;function H6(){if(BO)return f0;BO=1;function e(t,n){for(var r=-1,i=n.length,o=t.length;++r<i;)t[o+r]=n[r];return t}return f0=e,f0}var m0,zO;function Jee(){if(zO)return m0;zO=1;var e=H6(),t=ur();function n(r,i,o){var s=i(r);return t(r)?s:e(s,o(r))}return m0=n,m0}var g0,$O;function Zee(){if($O)return g0;$O=1;function e(t,n){for(var r=-1,i=t==null?0:t.length,o=0,s=[];++r<i;){var l=t[r];n(l,r,t)&&(s[o++]=l)}return s}return g0=e,g0}var y0,qO;function ete(){if(qO)return y0;qO=1;function e(){return[]}return y0=e,y0}var x0,WO;function tte(){if(WO)return x0;WO=1;var e=Zee(),t=ete(),n=Object.prototype,r=n.propertyIsEnumerable,i=Object.getOwnPropertySymbols,o=i?function(s){return s==null?[]:(s=Object(s),e(i(s),function(l){return r.call(s,l)}))}:t;return x0=o,x0}var v0,UO;function nte(){if(UO)return v0;UO=1;function e(t,n){for(var r=-1,i=Array(t);++r<t;)i[r]=n(r);return i}return v0=e,v0}var b0,HO;function rte(){if(HO)return b0;HO=1;var e=wa(),t=ja(),n="[object Arguments]";function r(i){return t(i)&&e(i)==n}return b0=r,b0}var w0,VO;function _A(){if(VO)return w0;VO=1;var e=rte(),t=ja(),n=Object.prototype,r=n.hasOwnProperty,i=n.propertyIsEnumerable,o=e((function(){return arguments})())?e:function(s){return t(s)&&r.call(s,"callee")&&!i.call(s,"callee")};return w0=o,w0}var ad={exports:{}},j0,GO;function ite(){if(GO)return j0;GO=1;function e(){return!1}return j0=e,j0}ad.exports;var YO;function V6(){return YO||(YO=1,(function(e,t){var n=$i(),r=ite(),i=t&&!t.nodeType&&t,o=i&&!0&&e&&!e.nodeType&&e,s=o&&o.exports===i,l=s?n.Buffer:void 0,u=l?l.isBuffer:void 0,d=u||r;e.exports=d})(ad,ad.exports)),ad.exports}var k0,KO;function IA(){if(KO)return k0;KO=1;var e=9007199254740991,t=/^(?:0|[1-9]\d*)$/;function n(r,i){var o=typeof r;return i=i??e,!!i&&(o=="number"||o!="symbol"&&t.test(r))&&r>-1&&r%1==0&&r<i}return k0=n,k0}var A0,XO;function RA(){if(XO)return A0;XO=1;var e=9007199254740991;function t(n){return typeof n=="number"&&n>-1&&n%1==0&&n<=e}return A0=t,A0}var S0,QO;function ate(){if(QO)return S0;QO=1;var e=wa(),t=RA(),n=ja(),r="[object Arguments]",i="[object Array]",o="[object Boolean]",s="[object Date]",l="[object Error]",u="[object Function]",d="[object Map]",p="[object Number]",f="[object Object]",g="[object RegExp]",y="[object Set]",b="[object String]",w="[object WeakMap]",v="[object ArrayBuffer]",j="[object DataView]",k="[object Float32Array]",S="[object Float64Array]",E="[object Int8Array]",N="[object Int16Array]",C="[object Int32Array]",P="[object Uint8Array]",_="[object Uint8ClampedArray]",M="[object Uint16Array]",D="[object Uint32Array]",B={};B[k]=B[S]=B[E]=B[N]=B[C]=B[P]=B[_]=B[M]=B[D]=!0,B[r]=B[i]=B[v]=B[o]=B[j]=B[s]=B[l]=B[u]=B[d]=B[p]=B[f]=B[g]=B[y]=B[b]=B[w]=!1;function F(V){return n(V)&&t(V.length)&&!!B[e(V)]}return S0=F,S0}var C0,JO;function G6(){if(JO)return C0;JO=1;function e(t){return function(n){return t(n)}}return C0=e,C0}var od={exports:{}};od.exports;var ZO;function ote(){return ZO||(ZO=1,(function(e,t){var n=h6(),r=t&&!t.nodeType&&t,i=r&&!0&&e&&!e.nodeType&&e,o=i&&i.exports===r,s=o&&n.process,l=(function(){try{var u=i&&i.require&&i.require("util").types;return u||s&&s.binding&&s.binding("util")}catch{}})();e.exports=l})(od,od.exports)),od.exports}var N0,e_;function Y6(){if(e_)return N0;e_=1;var e=ate(),t=G6(),n=ote(),r=n&&n.isTypedArray,i=r?t(r):e;return N0=i,N0}var T0,t_;function ste(){if(t_)return T0;t_=1;var e=nte(),t=_A(),n=ur(),r=V6(),i=IA(),o=Y6(),s=Object.prototype,l=s.hasOwnProperty;function u(d,p){var f=n(d),g=!f&&t(d),y=!f&&!g&&r(d),b=!f&&!g&&!y&&o(d),w=f||g||y||b,v=w?e(d.length,String):[],j=v.length;for(var k in d)(p||l.call(d,k))&&!(w&&(k=="length"||y&&(k=="offset"||k=="parent")||b&&(k=="buffer"||k=="byteLength"||k=="b
477yteOffset")||i(k,j)))&&v.push(k);return v}return T0=u,T0}var E0,n_;function lte(){if(n_)return E0;n_=1;var e=Object.prototype;function t(n){var r=n&&n.constructor,i=typeof r=="function"&&r.prototype||e;return n===i}return E0=t,E0}var P0,r_;function K6(){if(r_)return P0;r_=1;function e(t,n){return function(r){return t(n(r))}}return P0=e,P0}var O0,i_;function cte(){if(i_)return O0;i_=1;var e=K6(),t=e(Object.keys,Object);return O0=t,O0}var _0,a_;function ute(){if(a_)return _0;a_=1;var e=lte(),t=cte(),n=Object.prototype,r=n.hasOwnProperty;function i(o){if(!e(o))return t(o);var s=[];for(var l in Object(o))r.call(o,l)&&l!="constructor"&&s.push(l);return s}return _0=i,_0}var I0,o_;function Rh(){if(o_)return I0;o_=1;var e=xA(),t=RA();function n(r){return r!=null&&t(r.length)&&!e(r)}return I0=n,I0}var R0,s_;function Gg(){if(s_)return R0;s_=1;var e=ste(),t=ute(),n=Rh();function r(i){return n(i)?e(i):t(i)}return R0=r,R0}var D0,l_;function dte(){if(l_)return D0;l_=1;var e=Jee(),t=tte(),n=Gg();function r(i){return e(i,n,t)}return D0=r,D0}var M0,c_;function hte(){if(c_)return M0;c_=1;var e=dte(),t=1,n=Object.prototype,r=n.hasOwnProperty;function i(o,s,l,u,d,p){var f=l&t,g=e(o),y=g.length,b=e(s),w=b.length;if(y!=w&&!f)return!1;for(var v=y;v--;){var j=g[v];if(!(f?j in s:r.call(s,j)))return!1}var k=p.get(o),S=p.get(s);if(k&&S)return k==s&&S==o;var E=!0;p.set(o,s),p.set(s,o);for(var N=f;++v<y;){j=g[v];var C=o[j],P=s[j];if(u)var _=f?u(P,C,j,s,o,p):u(C,P,j,o,s,p);if(!(_===void 0?C===P||d(C,P,l,u,p):_)){E=!1;break}N||(N=j=="constructor")}if(E&&!N){var M=o.constructor,D=s.constructor;M!=D&&"constructor"in o&&"constructor"in s&&!(typeof M=="function"&&M instanceof M&&typeof D=="function"&&D instanceof D)&&(E=!1)}return p.delete(o),p.delete(s),E}return M0=i,M0}var L0,u_;function pte(){if(u_)return L0;u_=1;var e=Ws(),t=$i(),n=e(t,"DataView");return L0=n,L0}var F0,d_;function fte(){if(d_)return F0;d_=1;var e=Ws(),t=$i(),n=e(t,"Promise");return F0=n,F0}var B0,h_;function X6(){if(h_)return B0;h_=1;var e=Ws(),t=$i(),n=e(t,"Set");return B0=n,B0}var z0,p_;function mte(){if(p_)return z0;p_=1;var e=Ws(),t=$i(),n=e(t,"WeakMap");return z0=n,z0}var $0,f_;function gte(){if(f_)return $0;f_=1;var e=pte(),t=bA(),n=fte(),r=X6(),i=mte(),o=wa(),s=p6(),l="[object Map]",u="[object Object]",d="[object Promise]",p="[object Set]",f="[object WeakMap]",g="[object DataView]",y=s(e),b=s(t),w=s(n),v=s(r),j=s(i),k=o;return(e&&k(new e(new ArrayBuffer(1)))!=g||t&&k(new t)!=l||n&&k(n.resolve())!=d||r&&k(new r)!=p||i&&k(new i)!=f)&&(k=function(S){var E=o(S),N=E==u?S.constructor:void 0,C=N?s(N):"";if(C)switch(C){case y:return g;case b:return l;case w:return d;case v:return p;case j:return f}return E}),$0=k,$0}var q0,m_;function yte(){if(m_)return q0;m_=1;var e=z6(),t=U6(),n=Qee(),r=hte(),i=gte(),o=ur(),s=V6(),l=Y6(),u=1,d="[object Arguments]",p="[object Array]",f="[object Object]",g=Object.prototype,y=g.hasOwnProperty;function b(w,v,j,k,S,E){var N=o(w),C=o(v),P=N?p:i(w),_=C?p:i(v);P=P==d?f:P,_=_==d?f:_;var M=P==f,D=_==f,B=P==_;if(B&&s(w)){if(!s(v))return!1;N=!0,M=!1}if(B&&!M)return E||(E=new e),N||l(w)?t(w,v,j,k,S,E):n(w,v,P,j,k,S,E);if(!(j&u)){var F=M&&y.call(w,"__wrapped__"),V=D&&y.call(v,"__wrapped__");
477if(F||V){var U=F?w.value():w,q=V?v.value():v;return E||(E=new e),S(U,q,j,k,E)}}return B?(E||(E=new e),r(w,v,j,k,S,E)):!1}return q0=b,q0}var W0,g_;function DA(){if(g_)return W0;g_=1;var e=yte(),t=ja();function n(r,i,o,s,l){return r===i?!0:r==null||i==null||!t(r)&&!t(i)?r!==r&&i!==i:e(r,i,o,s,n,l)}return W0=n,W0}var U0,y_;function xte(){if(y_)return U0;y_=1;var e=z6(),t=DA(),n=1,r=2;function i(o,s,l,u){var d=l.length,p=d,f=!u;if(o==null)return!p;for(o=Object(o);d--;){var g=l[d];if(f&&g[2]?g[1]!==o[g[0]]:!(g[0]in o))return!1}for(;++d<p;){g=l[d];var y=g[0],b=o[y],w=g[1];if(f&&g[2]){if(b===void 0&&!(y in o))return!1}else{var v=new e;if(u)var j=u(b,w,y,o,s,v);if(!(j===void 0?t(w,b,n|r,u,v):j))return!1}}return!0}return U0=i,U0}var H0,x_;function Q6(){if(x_)return H0;x_=1;var e=ko();function t(n){return n===n&&!e(n)}return H0=t,H0}var V0,v_;function vte(){if(v_)return V0;v_=1;var e=Q6(),t=Gg();function n(r){for(var i=t(r),o=i.length;o--;){var s=i[o],l=r[s];i[o]=[s,l,e(l)]}return i}return V0=n,V0}var G0,b_;function J6(){if(b_)return G0;b_=1;function e(t,n){return function(r){return r==null?!1:r[t]===n&&(n!==void 0||t in Object(r))}}return G0=e,G0}var Y0,w_;function bte(){if(w_)return Y0;w_=1;var e=xte(),t=vte(),n=J6();function r(i){var o=t(i);return o.length==1&&o[0][2]?n(o[0][0],o[0][1]):function(s){return s===i||e(s,i,o)}}return Y0=r,Y0}var K0,j_;function wte(){if(j_)return K0;j_=1;function e(t,n){return t!=null&&n in Object(t)}return K0=e,K0}var X0,k_;function jte(){if(k_)return X0;k_=1;var e=g6(),t=_A(),n=ur(),r=IA(),i=RA(),o=qg();function s(l,u,d){u=e(u,l);for(var p=-1,f=u.length,g=!1;++p<f;){var y=o(u[p]);if(!(g=l!=null&&d(l,y)))break;l=l[y]}return g||++p!=f?g:(f=l==null?0:l.length,!!f&&i(f)&&r(y,f)&&(n(l)||t(l)))}return X0=s,X0}var Q0,A_;function kte(){if(A_)return Q0;A_=1;var e=wte(),t=jte();function n(r,i){return r!=null&&t(r,i,e)}return Q0=n,Q0}var J0,S_;function Ate(){if(S_)return J0;S_=1;var e=DA(),t=y6(),n=kte(),r=yA(),i=Q6(),o=J6(),s=qg(),l=1,u=2;function d(p,f){return r(p)&&i(f)?o(s(p),f):function(g){var y=t(g,p);return y===void 0&&y===f?n(g,p):e(f,y,l|u)}}return J0=d,J0}var Z0,C_;function Hc(){if(C_)return Z0;C_=1;function e(t){return t}return Z0=e,Z0}var ew,N_;function Ste(){if(N_)return ew;N_=1;function e(t){return function(n){return n==null?void 0:n[t]}}return ew=e,ew}var tw,T_;function Cte(){if(T_)return tw;T_=1;var e=kA();function t(n){return function(r){return e(r,n)}}return tw=t,tw}var nw,E_;function Nte(){if(E_)return nw;E_=1;var e=Ste(),t=Cte(),n=yA(),r=qg();function i(o){return n(o)?e(r(o)):t(o)}return nw=i,nw}var rw,P_;function Ao(){if(P_)return rw;P_=1;var e=bte(),t=Ate(),n=Hc(),r=ur(),i=Nte();function o(s){return typeof s=="function"?s:s==null?n:typeof s=="object"?r(s)?t(s[0],s[1]):e(s):i(s)}return rw=o,rw}var iw,O_;function Z6(){if(O_)return iw;O_=1;function e(t,n,r,i){for(var o=t.length,s=r+(i?1:-1);i?s--:++s<o;)if(n(t[s],s,t))return s;return-1}return iw=e,iw}var aw,__;function Tte(){if(__)return aw;__=1;function e(t){return t!==t}return aw=e,aw}var ow,I_;function Ete(){if(I_)return ow;I_=1;function e(t,n,r){for(var i=r-1,o=t.length;++i<o;)if(t[i]===n)return i;return-1}return ow=e,ow}var sw,R_;function Pte(){if(R_)return sw;R_=1;var e=Z6(),t=Tte(),n=Ete();function r(i,o,s){return o===o?n(i,o,s):e(i,t,s)}return sw=r,sw}var lw,D_;function Ote(){if(D_)return lw;D_=1;var e=Pte();function t(n,r){var i=n==null?0:n.length;return!!i&&e(n,r,0)>-1}return lw=t,lw}var cw,M_;function _te(){if(M_)return cw;M_=1;function e(t,n,r){for(var i=-1,o=t==null?0:t.length;++i<o;)if(r(n,t[i]))return!0;return!1}return cw=e,cw}var uw,L_;function Ite(){if(L_)return uw;L_=1;function e(){}return uw=e,uw}var dw,F_;function Rte(){if(F_)return dw;F_=1;var e=X6(),t=Ite(),n=OA(),r=1/0,i=e&&1/n(new e([,-0]))[1]==r?function(o){return new e(o)}:t;return dw=i,dw}var hw,B_;function Dte(){if(B_)return hw;B_=1;var e=$6(),t=Ote(),n=_te(),r=W6(),i=Rte(),o=OA(),s=200;function l(u,d,p){var f=-1,g=t,y=u.length,b=!0,w=[],v=w;if(p)b=!1,g=n;else if(y>=s){var j=d?null:i(u);if(j)return o(j);b=!1,g=r,v=new e}else v=d?[]:w;e:for(;++f<y;){var k=u[f],S=d?d(k):k;if(k=p||k!==0?k:0,b&&S===S){for(var E=v.length;E--;)if(v[E]===S)continue e;d&&v.push(S),w.push(k)}else g(v,S,p)||(v!==w&&v.push(S),w.push(k))}return w}return hw=l,hw}var pw,z_;function Mte(){if(z_)return pw;z_=1;var e=Ao(),t=Dte();function n(r,i){return r&&r.length?t(r,e(i,2)):[]}return pw=n,pw}var Lte=Mte();const $_=bt(Lte);function e8(e,t,n){return t===!0?$_(e,n):Ge(t)?$_(e,t):e}function uc(e){"@babel/helpers - typeof";return uc=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},uc(e)}var Fte=["ref"];function q_(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function Zi(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};
477t%2?q_(Object(n),!0).forEach(function(r){Yg(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):q_(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function Bte(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function W_(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,n8(r.key),r)}}function zte(e,t,n){return t&&W_(e.prototype,t),n&&W_(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function $te(e,t,n){return t=vm(t),qte(e,t8()?Reflect.construct(t,n||[],vm(e).constructor):t.apply(e,n))}function qte(e,t){if(t&&(uc(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Wte(e)}function Wte(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function t8(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(t8=function(){return!!e})()}function vm(e){return vm=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},vm(e)}function Ute(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&oj(e,t)}function oj(e,t){return oj=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,i){return r.__proto__=i,r},oj(e,t)}function Yg(e,t,n){return t=n8(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function n8(e){var t=Hte(e,"string");return uc(t)=="symbol"?t:t+""}function Hte(e,t){if(uc(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(uc(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}function Vte(e,t){if(e==null)return{};var n=Gte(e,t),r,i;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i<o.length;i++)r=o[i],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Gte(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function Yte(e){return e.value}function Kte(e,t){if(W.isValidElement(e))return W.cloneElement(e,t);if(typeof e=="function")return W.createElement(e,t);t.ref;var n=Vte(t,Fte);return W.createElement(PA,n)}var U_=1,Wl=(function(e){function t(){var n;Bte(this,t);for(var r=arguments.length,i=new Array(r),o=0;o<r;o++)i[o]=arguments[o];return n=$te(this,t,[].concat(i)),Yg(n,"lastBoundingBox",{width:-1,height:-1}),n}return Ute(t,e),zte(t,[{key:"componentDidMount",value:function(){this.updateBBox()}},{key:"componentDidUpdate",value:function(){this.updateBBox()}},{key:"getBBox",value:function(){if(this.wrapperNode&&this.wrapperNode.getBoundingClientRect){var r=this.wrapperNode.getBoundingClientRect();return r.height=this.wrapperNode.offsetHeight,r.width=this.wrapperNode.offsetWidth,r}return null}},{key:"updateBBox",value:function(){var r=this.props.onBBoxUpdate,i=this.getBBox();i?(Math.abs(i.width-this.lastBoundingBox.width)>U_||Math.abs(i.height-this.lastBoundingBox.height)>U_)&&(this.lastBoundingBox.width=i.width,this.lastBoundingBox.height=i.height,r&&r(i)):(this.lastBoundingBox.width!==-1||this.lastBoundingBox.height!==-1)&&(this.lastBoundingBox.width=-1,this.lastBoundingBox.height=-1,r&&r(null))}},{key:"getBBoxSnapshot",value:function(){return this.lastBoundingBox.width>=0&&this.lastBoundingBox.height>=0?Zi({},this.lastBoundingBox):{width:0,height:0}}},{key:"getDefaultPosition",value:function(r){var i=this.props,o=i.layout,s=i.align,l=i.verticalAlign,u=i.margin,d=i.chartWidth,p=i.chartHeight,f,g;if(!r||(r.left===void 0||r.left===null)&&(r.right===void 0||r.right===null))if(s==="center"&&o==="vertical"){var y=this.getBBoxSnapsh
477ot();f={left:((d||0)-y.width)/2}}else f=s==="right"?{right:u&&u.right||0}:{left:u&&u.left||0};if(!r||(r.top===void 0||r.top===null)&&(r.bottom===void 0||r.bottom===null))if(l==="middle"){var b=this.getBBoxSnapshot();g={top:((p||0)-b.height)/2}}else g=l==="bottom"?{bottom:u&&u.bottom||0}:{top:u&&u.top||0};return Zi(Zi({},f),g)}},{key:"render",value:function(){var r=this,i=this.props,o=i.content,s=i.width,l=i.height,u=i.wrapperStyle,d=i.payloadUniqBy,p=i.payload,f=Zi(Zi({position:"absolute",width:s||"auto",height:l||"auto"},this.getDefaultPosition(u)),u);return W.createElement("div",{className:"recharts-legend-wrapper",style:f,ref:function(y){r.wrapperNode=y}},Kte(o,Zi(Zi({},this.props),{},{payload:e8(p,d,Yte)})))}}],[{key:"getWithHeight",value:function(r,i){var o=Zi(Zi({},this.defaultProps),r.props),s=o.layout;return s==="vertical"&&fe(r.props.height)?{height:r.props.height}:s==="horizontal"?{width:r.props.width||i}:null}}])})(O.PureComponent);Yg(Wl,"displayName","Legend");Yg(Wl,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"bottom"});var fw,H_;function Xte(){if(H_)return fw;H_=1;var e=Ih(),t=_A(),n=ur(),r=e?e.isConcatSpreadable:void 0;function i(o){return n(o)||t(o)||!!(r&&o&&o[r])}return fw=i,fw}var mw,V_;function r8(){if(V_)return mw;V_=1;var e=H6(),t=Xte();function n(r,i,o,s,l){var u=-1,d=r.length;for(o||(o=t),l||(l=[]);++u<d;){var p=r[u];i>0&&o(p)?i>1?n(p,i-1,o,s,l):e(l,p):s||(l[l.length]=p)}return l}return mw=n,mw}var gw,G_;function Qte(){if(G_)return gw;G_=1;function e(t){return function(n,r,i){for(var o=-1,s=Object(n),l=i(n),u=l.length;u--;){var d=l[t?u:++o];if(r(s[d],d,s)===!1)break}return n}}return gw=e,gw}var yw,Y_;function Jte(){if(Y_)return yw;Y_=1;var e=Qte(),t=e();return yw=t,yw}var xw,K_;function i8(){if(K_)return xw;K_=1;var e=Jte(),t=Gg();function n(r,i){return r&&e(r,i,t)}return xw=n,xw}var vw,X_;function Zte(){if(X_)return vw;X_=1;var e=Rh();function t(n,r){return function(i,o){if(i==null)return i;if(!e(i))return n(i,o);for(var s=i.length,l=r?s:-1,u=Object(i);(r?l--:++l<s)&&o(u[l],l,u)!==!1;);return i}}return vw=t,vw}var bw,Q_;function MA(){if(Q_)return bw;Q_=1;var e=i8(),t=Zte(),n=t(e);return bw=n,bw}var ww,J_;function a8(){if(J_)return ww;J_=1;var e=MA(),t=Rh();function n(r,i){var o=-1,s=t(r)?Array(r.length):[];return e(r,function(l,u,d){s[++o]=i(l,u,d)}),s}return ww=n,ww}var jw,Z_;function ene(){if(Z_)return jw;Z_=1;function e(t,n){var r=t.length;for(t.sort(n);r--;)t[r]=t[r].value;return t}return jw=e,jw}var kw,eI;function tne(){if(eI)return kw;eI=1;var e=$c();function t(n,r){if(n!==r){var i=n!==void 0,o=n===null,s=n===n,l=e(n),u=r!==void 0,d=r===null,p=r===r,f=e(r);if(!d&&!f&&!l&&n>r||l&&u&&p&&!d&&!f||o&&u&&p||!i&&p||!s)return 1;if(!o&&!l&&!f&&n<r||f&&i&&s&&!o&&!l||d&&i&&s||!u&&s||!p)return-1}return 0}return kw=t,kw}var Aw,tI;function nne(){if(tI)return Aw;tI=1;var e=tne();function t(n,r,i){for(var o=-1,s=n.criteria,l=r.criteria,u=s.length,d=i.length;++o<u;){var p=e(s[o],l[o]);if(p){if(o>=d)return p;var f=i[o];return p*(f=="desc"?-1:1)}}return n.index-r.index}return Aw=t,Aw}var Sw,nI;function rne(){if(nI)return Sw;nI=1;var e=jA(),t=kA(),n=Ao(),r=a8(),i=ene(),o=G6(),s=nne(),l=Hc(),u=ur();function d(p,f,g){f.length?f=e(f,function(w){return u(w)?function(v){return t(v,w.length===1?w[0]:w)}:w}):f=[l];var y=-1;f=e(f,o(n));var b=r(p,function(w,v,j){var k=e(f,function(S){return S(w)});return{criteria:k,index:++y,value:w}});return i(b,function(w,v){return s(w,v,g)})}return Sw=d,Sw}var Cw,rI;function ine(){if(rI)return Cw;rI=1;function e(t,n,r){switch(r.length){case 0:return t.call(n);case 1:return t.call(n,r[0]);case 2:return t.call(n,r[0],r[1]);case 3:return t.call(n,r[0],r[1],r[2])}return t.apply(n,r)}return Cw=e,Cw}var Nw,iI;function ane(){if(iI)return Nw;iI=1;var e=ine(),t=Math.max;function n(r,i,o){return i=t(i===void 0?r.length-1:i,0),function(){for(var s=arguments,l=-1,u=t(s.length-i,0),d=Array(u);++l<u;)d[l]=s[i+l];l=-1;for(var p=Array(i+1);++l<i;)p[l]=s[l];return p[i]=o(d),e(r,this,p)}}return Nw=n,Nw}var Tw,aI;function one(){if(aI)return Tw;aI=1;function e(t){return function(){return t}}return Tw=e,Tw}var Ew,oI;function o8(){if(oI)return Ew;oI=1;var e=Ws(),t=(function(){try{var n=e(Object,"defineProperty");return n({},"",{}),n}catch{}})();return Ew=t,Ew}var Pw,sI;function sne(){if(sI)return Pw;sI=1;var e=one(),t=o8(),n=Hc(),r=t?function(i,o){return t(i,"toString",{configurable:!0,enumerable:!1,value:e(o),writable:!0})}:n;return Pw=r,Pw}var Ow,lI;
477function lne(){if(lI)return Ow;lI=1;var e=800,t=16,n=Date.now;function r(i){var o=0,s=0;return function(){var l=n(),u=t-(l-s);if(s=l,u>0){if(++o>=e)return arguments[0]}else o=0;return i.apply(void 0,arguments)}}return Ow=r,Ow}var _w,cI;function cne(){if(cI)return _w;cI=1;var e=sne(),t=lne(),n=t(e);return _w=n,_w}var Iw,uI;function une(){if(uI)return Iw;uI=1;var e=Hc(),t=ane(),n=cne();function r(i,o){return n(t(i,o,e),i+"")}return Iw=r,Iw}var Rw,dI;function Kg(){if(dI)return Rw;dI=1;var e=vA(),t=Rh(),n=IA(),r=ko();function i(o,s,l){if(!r(l))return!1;var u=typeof s;return(u=="number"?t(l)&&n(s,l.length):u=="string"&&s in l)?e(l[s],o):!1}return Rw=i,Rw}var Dw,hI;function dne(){if(hI)return Dw;hI=1;var e=r8(),t=rne(),n=une(),r=Kg(),i=n(function(o,s){if(o==null)return[];var l=s.length;return l>1&&r(o,s[0],s[1])?s=[]:l>2&&r(s[0],s[1],s[2])&&(s=[s[0]]),t(o,e(s,1),[])});return Dw=i,Dw}var hne=dne();const LA=bt(hne);function Id(e){"@babel/helpers - typeof";return Id=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Id(e)}function sj(){return sj=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},sj.apply(this,arguments)}function pne(e,t){return yne(e)||gne(e,t)||mne(e,t)||fne()}function fne(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. 478In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function mne(e,t){if(e){if(typeof e=="string")return pI(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return pI(e,t)}}function pI(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function gne(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,i,o,s,l=[],u=!0,d=!1;try{if(o=(n=n.call(e)).next,t!==0)for(;!(u=(r=o.call(n)).done)&&(l.push(r.value),l.length!==t);u=!0);}catch(p){d=!0,i=p}finally{try{if(!u&&n.return!=null&&(s=n.return(),Object(s)!==s))return}finally{if(d)throw i}}return l}}function yne(e){if(Array.isArray(e))return e}function fI(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function Mw(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?fI(Object(n),!0).forEach(function(r){xne(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):fI(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function xne(e,t,n){return t=vne(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function vne(e){var t=bne(e,"string");return Id(t)=="symbol"?t:t+""}function bne(e,t){if(Id(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Id(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function wne(e){return Array.isArray(e)&&cn(e[0])&&cn(e[1])?e.join(" ~ "):e}var jne=function(t){var n=t.separator,r=n===void 0?" : ":n,i=t.contentStyle,o=i===void 0?{}:i,s=t.itemStyle,l=s===void 0?{}:s,u=t.labelStyle,d=u===void 0?{}:u,p=t.payload,f=t.formatter,g=t.itemSorter,y=t.wrapperClassName,b=t.labelClassName,w=t.label,v=t.labelFormatter,j=t.accessibilityLayer,k=j===void 0?!1:j,S=function(){if(p&&p.length){var F={padding:0,margin:0},V=(g?LA(p,g):p).map(function(U,q){if(U.type==="none")return null;var Y=Mw({display:"block",paddingTop:4,paddingBottom:4,color:U.color||"#000"},l),Z=U.formatter||f||wne,J=U.value,ne=U.name,I=J,z=ne;if(Z&&I!=null&&z!=null){var X=Z(J,ne,U,q,p);if(Array.isArray(X)){var L=pne(X,2);I=L[0],z=L[1]}else I=X}return W.createElement("li",{className:"recharts-tooltip-item",key:"tooltip-item-".concat(q),style:Y},cn(z)?W.createElement("span",{className:"recharts-tooltip-item-name"},z):null,cn(z)?W.createElement("span",{className:"recharts-tooltip-item-separator"},r):null,W.createElement("span",{className:"recharts-tooltip-item-value"},I),W.createElement("span",{className:"recharts-tooltip-item-unit"},U.unit||""))});return W.createElement("ul",{className:"recharts-tooltip-item-list",style:F},V)}return null},E=Mw({margin:0,padding:10,backgroundColor:"#fff",border:"1px solid #ccc",whiteSpace:"nowrap"},o),N=Mw({margin:0},d),C=!Qe(w),P=C?w:"",_=nt("recharts-default-tooltip",y),M=nt("recharts-tooltip-label",b);C&&v&&p!==void 0&&p!==null&&(P=v(w,p));var D=k?{role:"status","aria-live":"assertive"}:{};return W.createElement("div",sj({className:_,style:E},D),W.createElement("p",{className:M,style:N},W.isValidElement(P)?P:"".concat(P)),S())};function Rd(e){"@babel/helpers - typeof";return Rd=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Rd(e)}function yf(e,t,n){return t=kne(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function kne(e){var t=Ane(e,"string");return Rd(t)=="symbol"?t:t+""}function Ane(e,t){if(Rd(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Rd(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var $u="recharts-tooltip-wrapper",Sne={visibility:"hidden"};function Cne(e){var t=e.coordinate,n=e.translateX,r=e.translateY;return nt($u,yf(yf(yf(yf({},"".concat($u,"-right"),fe(n)&&t&&fe(t.x)&&n>=t.x),"".concat($u,"-left"),fe(n)&&t&&fe(t.x)&&n<t.x),"".concat($u,"-bottom"),fe(r)&&t&&fe(t.y)&&r>=t.y),"".concat($u,"-top"),fe(r)&&t&&fe(t.y)&&r<t.y))}function mI(e){var t=e.allowEscapeViewBox,n=e.coordinate,r=e.key,i=e.offsetTopLeft,o=e.position,s=e.reverseDirection,l=e.tooltipDimension,u=e.viewBox,d=e.viewBoxDimension;if(o&&fe(o[r]))return o[r];var p=n[r]-l-i,f=n[r]+i;if(t[r])return s[r]?p:f;if(s[r]){var g=p,y=u[r];return g<y?Math.max(f,u[r]):Math.max(p,u[r])}var b=f+l,w=u[r]+d;return b>w?Math.max(p,u[r]):Math.max(f,u[r])}function Nne(e){var t=e.translateX,n=e.translateY,r=e.useTranslate3d;return{transform:r?"translate3d(".concat(t,"px, ").concat(n,"px, 0)"):"translate(".concat(t,"px, ").concat(n,"px)")}}function Tne(e){var t=e.allowEscapeViewBox,n=e.coordinate,r=e.offsetTopLeft,i=e.position,o=e.reverseDirection,s=e.tooltipBox,l=e.useTranslate3d,u=e.viewBox,d,p,f;return s.height>0&&s.width>0&&n?(p=mI({allowEscapeViewBox:t,coordinate:n,key:"x",offsetTopLeft:r,position:i,reverseDirection:o,tooltipDimension:s.width,viewBox:u,viewBoxDimension:u.width}),f=mI({allowEscapeViewBox:t,coordinate:n,key:"y",offsetTopLeft:r,position:i,reverseDirection:o,tooltipDimension:s.height,viewBox:u,viewBoxDimension:u.he
478ight}),d=Nne({translateX:p,translateY:f,useTranslate3d:l})):d=Sne,{cssProperties:d,cssClasses:Cne({translateX:p,translateY:f,coordinate:n})}}function dc(e){"@babel/helpers - typeof";return dc=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},dc(e)}function gI(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function yI(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?gI(Object(n),!0).forEach(function(r){cj(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):gI(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function Ene(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Pne(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,l8(r.key),r)}}function One(e,t,n){return t&&Pne(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function _ne(e,t,n){return t=bm(t),Ine(e,s8()?Reflect.construct(t,n||[],bm(e).constructor):t.apply(e,n))}function Ine(e,t){if(t&&(dc(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Rne(e)}function Rne(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function s8(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(s8=function(){return!!e})()}function bm(e){return bm=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},bm(e)}function Dne(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&lj(e,t)}function lj(e,t){return lj=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,i){return r.__proto__=i,r},lj(e,t)}function cj(e,t,n){return t=l8(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l8(e){var t=Mne(e,"string");return dc(t)=="symbol"?t:t+""}function Mne(e,t){if(dc(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(dc(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var xI=1,Lne=(function(e){function t(){var n;Ene(this,t);for(var r=arguments.length,i=new Array(r),o=0;o<r;o++)i[o]=arguments[o];return n=_ne(this,t,[].concat(i)),cj(n,"state",{dismissed:!1,dismissedAtCoordinate:{x:0,y:0},lastBoundingBox:{width:-1,height:-1}}),cj(n,"handleKeyDown",function(s){if(s.key==="Escape"){var l,u,d,p;n.setState({dismissed:!0,dismissedAtCoordinate:{x:(l=(u=n.props.coordinate)===null||u===void 0?void 0:u.x)!==null&&l!==void 0?l:0,y:(d=(p=n.props.coordinate)===null||p===void 0?void 0:p.y)!==null&&d!==void 0?d:0}})}}),n}return Dne(t,e),One(t,[{key:"updateBBox",value:function(){if(this.wrapperNode&&this.wrapperNode.getBoundingClientRect){var r=this.wrapperNode.getBoundingClientRect();(Math.abs(r.width-this.state.lastBoundingBox.width)>xI||Math.abs(r.height-this.state.lastBoundingBox.height)>xI)&&this.setState({lastBoundingBox:{width:r.width,height:r.height}})}else(this.state.lastBoundingBox.width!==-1||this.state.lastBoundingBox.height!==-1)&&this.setState({lastBoundingBox:{width:-1,height:-1}})}},{key:"componentDidMount",value:function(){document.addEventListener("keydown",this.handleKeyDown),this.updateBBox()}},{key:"componentWillUnmount",value:function(){document.removeEventListener("keydown",this.handleKeyDown)}},{key:"componentDidUpdate",value:function(){var r,i;this.props.active&&this.updateBBox(),this.state.dismissed&&(((r=this.props.coordinate)===null||r===void 0?void 0:r.x)!==this.state.dismissedAtCoordinate.x||((i=this.props.coordinate)===null||i===void 0?void 0:i.y)!==this.state.dismissedAtCoordinate.y)&&(this.state.dismissed=!1)}},{key:"render",value:function(){var r=this,i=this.props,o=i.active,s=i.allowEscapeViewBox,l=i.animationDuration,u=i.animationEasing,d=i.children,p=i.coordinate,f=i.hasPayload,g=i.isAnimationActive,y=i.offset,b=i.position,w=i.reverseDirection,v=i.useTranslate3d,j=i.viewBox,k=i.wrapperStyle,S=Tne({allowEscapeViewBox:s,coordinate:p,offsetTopLeft:y,position:b,reverseDirection:w,tooltipBox:this.state.lastBoundingBox,useTranslate3d:v,viewBox:j}
478),E=S.cssClasses,N=S.cssProperties,C=yI(yI({transition:g&&o?"transform ".concat(l,"ms ").concat(u):void 0},N),{},{pointerEvents:"none",visibility:!this.state.dismissed&&o&&f?"visible":"hidden",position:"absolute",top:0,left:0},k);return W.createElement("div",{tabIndex:-1,className:E,style:C,ref:function(_){r.wrapperNode=_}},d)}}])})(O.PureComponent),Fne=function(){return!(typeof window<"u"&&window.document&&window.document.createElement&&window.setTimeout)},Us={isSsr:Fne()};function hc(e){"@babel/helpers - typeof";return hc=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},hc(e)}function vI(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function bI(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?vI(Object(n),!0).forEach(function(r){FA(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):vI(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function Bne(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function zne(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,u8(r.key),r)}}function $ne(e,t,n){return t&&zne(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function qne(e,t,n){return t=wm(t),Wne(e,c8()?Reflect.construct(t,n||[],wm(e).constructor):t.apply(e,n))}function Wne(e,t){if(t&&(hc(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Une(e)}function Une(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function c8(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(c8=function(){return!!e})()}function wm(e){return wm=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},wm(e)}function Hne(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&uj(e,t)}function uj(e,t){return uj=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,i){return r.__proto__=i,r},uj(e,t)}function FA(e,t,n){return t=u8(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function u8(e){var t=Vne(e,"string");return hc(t)=="symbol"?t:t+""}function Vne(e,t){if(hc(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(hc(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}function Gne(e){return e.dataKey}function Yne(e,t){return W.isValidElement(e)?W.cloneElement(e,t):typeof e=="function"?W.createElement(e,t):W.createElement(jne,t)}var Kn=(function(e){function t(){return Bne(this,t),qne(this,t,arguments)}return Hne(t,e),$ne(t,[{key:"render",value:function(){var r=this,i=this.props,o=i.active,s=i.allowEscapeViewBox,l=i.animationDuration,u=i.animationEasing,d=i.content,p=i.coordinate,f=i.filterNull,g=i.isAnimationActive,y=i.offset,b=i.payload,w=i.payloadUniqBy,v=i.position,j=i.reverseDirection,k=i.useTranslate3d,S=i.viewBox,E=i.wrapperStyle,N=b??[];f&&N.length&&(N=e8(b.filter(function(P){return P.value!=null&&(P.hide!==!0||r.props.includeHidden)}),w,Gne));var C=N.length>0;return W.createElement(Lne,{allowEscapeViewBox:s,animationDuration:l,animationEasing:u,isAnimationActive:g,active:o,coordinate:p,hasPayload:C,offset:y,position:v,reverseDirection:j,useTranslate3d:k,viewBox:S,wrapperStyle:E},Yne(d,bI(bI({},this.props),{},{payload:N})))}}])})(O.PureComponent);
vendor: 4,723 bytes, lines 478-479
478FA(Kn,"displayName","Tooltip");FA(Kn,"defaultProps",{accessibilityLayer:!1,allowEscapeViewBox:{x:!1,y:!1},animationDuration:400,animationEasing:"ease",contentStyle:{},coordinate:{x:0,y:0},cursor:!0,cursorStyle:{},filterNull:!0,isAnimationActive:!Us.isSsr,itemStyle:{},labelStyle:{},offset:10,reverseDirection:{x:!1,y:!1},separator:" : ",trigger:"hover",useTranslate3d:!1,viewBox:{x:0,y:0,height:0,width:0},wrapperStyle:{}});var Lw,wI;function Kne(){if(wI)return Lw;wI=1;var e=$i(),t=function(){return e.Date.now()};return Lw=t,Lw}var Fw,jI;function Xne(){if(jI)return Fw;jI=1;var e=/\s/;function t(n){for(var r=n.length;r--&&e.test(n.charAt(r)););return r}return Fw=t,Fw}var Bw,kI;function Qne(){if(kI)return Bw;kI=1;var e=Xne(),t=/^\s+/;function n(r){return r&&r.slice(0,e(r)+1).replace(t,"")}return Bw=n,Bw}var zw,AI;function d8(){if(AI)return zw;AI=1;var e=Qne(),t=ko(),n=$c(),r=NaN,i=/^[-+]0x[0-9a-f]+$/i,o=/^0b[01]+$/i,s=/^0o[0-7]+$/i,l=parseInt;function u(d){if(typeof d=="number")return d;if(n(d))return r;if(t(d)){var p=typeof d.valueOf=="function"?d.valueOf():d;d=t(p)?p+"":p}if(typeof d!="string")return d===0?d:+d;d=e(d);var f=o.test(d);return f||s.test(d)?l(d.slice(2),f?2:8):i.test(d)?r:+d}return zw=u,zw}var $w,SI;function Jne(){if(SI)return $w;SI=1;var e=ko(),t=Kne(),n=d8(),r="Expected a function",i=Math.max,o=Math.min;function s(l,u,d){var p,f,g,y,b,w,v=0,j=!1,k=!1,S=!0;if(typeof l!="function")throw new TypeError(r);u=n(u)||0,e(d)&&(j=!!d.leading,k="maxWait"in d,g=k?i(n(d.maxWait)||0,u):g,S="trailing"in d?!!d.trailing:S);function E(V){var U=p,q=f;return p=f=void 0,v=V,y=l.apply(q,U),y}function N(V){return v=V,b=setTimeout(_,u),j?E(V):y}function C(V){var U=V-w,q=V-v,Y=u-U;return k?o(Y,g-q):Y}function P(V){var U=V-w,q=V-v;return w===void 0||U>=u||U<0||k&&q>=g}function _(){var V=t();if(P(V))return M(V);b=setTimeout(_,C(V))}function M(V){return b=void 0,S&&p?E(V):(p=f=void 0,y)}function D(){b!==void 0&&clearTimeout(b),v=0,p=w=f=b=void 0}function B(){return b===void 0?y:M(t())}function F(){var V=t(),U=P(V);if(p=arguments,f=this,w=V,U){if(b===void 0)return N(w);if(k)return clearTimeout(b),b=setTimeout(_,u),E(w)}return b===void 0&&(b=setTimeout(_,u)),y}return F.cancel=D,F.flush=B,F}return $w=s,$w}var qw,CI;function Zne(){if(CI)return qw;CI=1;var e=Jne(),t=ko(),n="Expected a function";function r(i,o,s){var l=!0,u=!0;if(typeof i!="function")throw new TypeError(n);return t(s)&&(l="leading"in s?!!s.leading:l,u="trailing"in s?!!s.trailing:u),e(i,o,{leading:l,maxWait:o,trailing:u})}return qw=r,qw}var ere=Zne();const h8=bt(ere);function Dd(e){"@babel/helpers - typeof";return Dd=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Dd(e)}function NI(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function xf(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?NI(Object(n),!0).forEach(function(r){tre(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):NI(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function tre(e,t,n){return t=nre(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function nre(e){var t=rre(e,"string");return Dd(t)=="symbol"?t:t+""}function rre(e,t){if(Dd(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Dd(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function ire(e,t){return lre(e)||sre(e,t)||ore(e,t)||are()}function are(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. 479In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ore(e,t){if(e){if(typeof e=="string")return TI(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return TI(e,t)}}function TI(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function sre(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,i,o,s,l=[],u=!0,d=!1;try{if(o=(n=n.call(e)).next,t!==0)for(;!(u=(r=o.call(n)).done)&&(l.push(r.value),l.length!==t);u=!0);}catch(p){d=!0,i=p}
479finally{try{if(!u&&n.return!=null&&(s=n.return(),Object(s)!==s))return}finally{if(d)throw i}}return l}}function lre(e){if(Array.isArray(e))return e}var ks=O.forwardRef(function(e,t){var n=e.aspect,r=e.initialDimension,i=r===void 0?{width:-1,height:-1}:r,o=e.width,s=o===void 0?"100%":o,l=e.height,u=l===void 0?"100%":l,d=e.minWidth,p=d===void 0?0:d,f=e.minHeight,g=e.maxHeight,y=e.children,b=e.debounce,w=b===void 0?0:b,v=e.id,j=e.className,k=e.onResize,S=e.style,E=S===void 0?{}:S,N=O.useRef(null),C=O.useRef();C.current=k,O.useImperativeHandle(t,function(){return Object.defineProperty(N.current,"current",{get:function(){return console.warn("The usage of ref.current.current is deprecated and will no longer be supported."),N.current},configurable:!0})});var P=O.useState({containerWidth:i.width,containerHeight:i.height}),_=ire(P,2),M=_[0],D=_[1],B=O.useCallback(function(V,U){D(function(q){var Y=Math.round(V),Z=Math.round(U);return q.containerWidth===Y&&q.containerHeight===Z?q:{containerWidth:Y,containerHeight:Z}})},[]);O.useEffect(function(){var V=function(ne){var I,z=ne[0].contentRect,X=z.width,L=z.height;B(X,L),(I=C.current)===null||I===void 0||I.call(C,X,L)};w>0&&(V=h8(V,w,{trailing:!0,leading:!1}));var U=new ResizeObserver(V),q=N.current.getBoundingClientRect(),Y=q.width,Z=q.height;return B(Y,Z),U.observe(N.current),function(){U.disconnect()}},[B,w]);var F=O.useMemo(function(){var V=M.containerWidth,U=M.containerHeight;if(V<0||U<0)return null;ua(os(s)||os(u),`The width(%s) and height(%s) are both fixed numbers, 480 maybe you don't need to use a ResponsiveContainer.`,s,u),ua(!n||n>0,"The aspect(%s) must be greater than zero.",n);var q=os(s)?V:s,Y=os(u)?U:u;n&&n>0&&(q?Y=q/n:Y&&(q=Y*n),g&&Y>g&&(Y=g)),ua(q>0||Y>0,`The width(%s) and height(%s) of chart should be greater than 0, 481 please check the style of container, or the props width(%s) and height(%s), 482 or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the 483 height and width.`,q,Y,s,u,p,f,n);var Z=!Array.isArray(y)&&ca(y.type).endsWith("Chart");return W.Children.map(y,function(J){return W.isValidElement(J)?O.cloneElement(J,xf({width:q,height:Y},Z?{style:xf({height:"100%",width:"100%",maxHeight:Y,maxWidth:q},J.props.style)}:{})):J})},[n,y,u,g,f,p,M,s]);return W.createElement("div",{id:v?"".concat(v):void 0,className:nt("recharts-responsive-container",j),style:xf(xf({},E),{},{width:s,height:u,minWidth:p,minHeight:f,maxHeight:g}),ref:N},F)}),Xg=function(t){return null};Xg.displayName="Cell";function Md(e){"@babel/helpers - typeof";return Md=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Md(e)}function EI(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function dj(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?EI(Object(n),!0).forEach(function(r){cre(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):EI(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function cre(e,t,n){return t=ure(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ure(e){var t=dre(e,"string");return Md(t)=="symbol"?t:t+""}function dre(e,t){if(Md(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Md(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var jl={widthCache:{},cacheCount:0},hre=2e3,pre={position:"absolute",top:"-20000px",left:0,padding:0,margin:0,border:"none",whiteSpace:"pre"},PI="recharts_measurement_span";function fre(e){var t=dj({},e);return Object.keys(t).forEach(function(n){t[n]||delete t[n]}),t}var pd=function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(t==null||Us.isSsr)return{width:0,height:0};var r=fre(n),i=JSON.stringify({text:t,copyStyle:r});if(jl.widthCache[i])return jl.widthCache[i];try{var o=document.getElementById(PI);o||(o=document.createElement("span"),o.setAttribute("id",PI),o.setAttribute("aria-hidden","true"),document.body.appendChild(o));var s=dj(dj({},pre),r);Object.assign(o.style,s),o.textContent="".concat(t);var l=o.getBoundingClientRect(),u={width:l.width,height:l.height};return jl.widthCache[i]=u,++jl.cacheCount>hre&&(jl.cacheCount=0,jl.widthCache={}),u}catch{return{width:0,height:0}}},mre=function(t){return{top:t.top+window.scrollY-document.documentElement.clientTop,left:t.left+window.scrollX-document.documentElement.clientLeft}};function Ld(e){"@babel/helpers - typeof";return Ld=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ld(e)}function jm(e,t){return vre(e)||xre(e,t)||yre(e,t)||gre()}
483function gre(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. 484In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function yre(e,t){if(e){if(typeof e=="string")return OI(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return OI(e,t)}}function OI(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function xre(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,i,o,s,l=[],u=!0,d=!1;try{if(o=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=o.call(n)).done)&&(l.push(r.value),l.length!==t);u=!0);}catch(p){d=!0,i=p}finally{try{if(!u&&n.return!=null&&(s=n.return(),Object(s)!==s))return}finally{if(d)throw i}}return l}}function vre(e){if(Array.isArray(e))return e}function bre(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _I(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,jre(r.key),r)}}function wre(e,t,n){return t&&_I(e.prototype,t),n&&_I(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function jre(e){var t=kre(e,"string");return Ld(t)=="symbol"?t:t+""}function kre(e,t){if(Ld(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Ld(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var II=/(-?\d+(?:\.\d+)?[a-zA-Z%]*)([*/])(-?\d+(?:\.\d+)?[a-zA-Z%]*)/,RI=/(-?\d+(?:\.\d+)?[a-zA-Z%]*)([+-])(-?\d+(?:\.\d+)?[a-zA-Z%]*)/,Are=/^px|cm|vh|vw|em|rem|%|mm|in|pt|pc|ex|ch|vmin|vmax|Q$/,Sre=/(-?\d+(?:\.\d+)?)([a-zA-Z%]+)?/,p8={cm:96/2.54,mm:96/25.4,pt:96/72,pc:96/6,in:96,Q:96/(2.54*40),px:1},Cre=Object.keys(p8),Rl="NaN";function Nre(e,t){return e*p8[t]}var vf=(function(){function e(t,n){bre(this,e),this.num=t,this.unit=n,this.num=t,this.unit=n,Number.isNaN(t)&&(this.unit=""),n!==""&&!Are.test(n)&&(this.num=NaN,this.unit=""),Cre.includes(n)&&(this.num=Nre(t,n),this.unit="px")}return wre(e,[{key:"add",value:function(n){return this.unit!==n.unit?new e(NaN,""):new e(this.num+n.num,this.unit)}},{key:"subtract",value:function(n){return this.unit!==n.unit?new e(NaN,""):new e(this.num-n.num,this.unit)}},{key:"multiply",value:function(n){return this.unit!==""&&n.unit!==""&&this.unit!==n.unit?new e(NaN,""):new e(this.num*n.num,this.unit||n.unit)}},{key:"divide",value:function(n){return this.unit!==""&&n.unit!==""&&this.unit!==n.unit?new e(NaN,""):new e(this.num/n.num,this.unit||n.unit)}},{key:"toString",value:function(){return"".concat(this.num).concat(this.unit)}},{key:"isNaN",value:function(){return Number.isNaN(this.num)}}],[{key:"parse",value:function(n){var r,i=(r=Sre.exec(n))!==null&&r!==void 0?r:[],o=jm(i,3),s=o[1],l=o[2];return new e(parseFloat(s),l??"")}}])})();function f8(e){if(e.includes(Rl))return Rl;for(var t=e;t.includes("*")||t.includes("/");){var n,r=(n=II.exec(t))!==null&&n!==void 0?n:[],i=jm(r,4),o=i[1],s=i[2],l=i[3],u=vf.parse(o??""),d=vf.parse(l??""),p=s==="*"?u.multiply(d):u.divide(d);if(p.isNaN())return Rl;t=t.replace(II,p.toString())}for(;t.includes("+")||/.-\d+(?:\.\d+)?/.test(t);){var f,g=(f=RI.exec(t))!==null&&f!==void 0?f:[],y=jm(g,4),b=y[1],w=y[2],v=y[3],j=vf.parse(b??""),k=vf.parse(v??""),S=w==="+"?j.add(k):j.subtract(k);if(S.isNaN())return Rl;t=t.replace(RI,S.toString())}return t}var DI=/\(([^()]*)\)/;function Tre(e){for(var t=e;t.includes("(");){var n=DI.exec(t),r=jm(n,2),i=r[1];t=t.replace(DI,f8(i))}return t}function Ere(e){var t=e.replace(/\s+/g,"");return t=Tre(t),t=f8(t),t}function Pre(e){try{return Ere(e)}catch{return Rl}}function Ww(e){var t=Pre(e.slice(5,-1));return t===Rl?"":t}var Ore=["x","y","lineHeight","capHeight","scaleToFit","textAnchor","verticalAnchor","fill"],_re=["dx","dy","angle","className","breakAll"];function hj(){return hj=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},hj.apply(this,arguments)}function MI(e,t){if(e==null)return{};var n=Ire(e,t),r,i;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i<o.length;i++)r=o[i],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Ire(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function LI(e,t){return Lre(e)||Mre(e,t)||Dre(e,t)||Rre()}
484function Rre(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. 485In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Dre(e,t){if(e){if(typeof e=="string")return FI(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return FI(e,t)}}function FI(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Mre(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,i,o,s,l=[],u=!0,d=!1;try{if(o=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=o.call(n)).done)&&(l.push(r.value),l.length!==t);u=!0);}catch(p){d=!0,i=p}finally{try{if(!u&&n.return!=null&&(s=n.return(),Object(s)!==s))return}finally{if(d)throw i}}return l}}function Lre(e){if(Array.isArray(e))return e}var m8=/[ \f\n\r\t\v\u2028\u2029]+/,g8=function(t){var n=t.children,r=t.breakAll,i=t.style;try{var o=[];Qe(n)||(r?o=n.toString().split(""):o=n.toString().split(m8));var s=o.map(function(u){return{word:u,width:pd(u,i).width}}),l=r?0:pd(" ",i).width;return{wordsWithComputedWidth:s,spaceWidth:l}}catch{return null}},Fre=function(t,n,r,i,o){var s=t.maxLines,l=t.children,u=t.style,d=t.breakAll,p=fe(s),f=l,g=function(){var q=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];return q.reduce(function(Y,Z){var J=Z.word,ne=Z.width,I=Y[Y.length-1];if(I&&(i==null||o||I.width+ne+r<Number(i)))I.words.push(J),I.width+=ne+r;else{var z={words:[J],width:ne};Y.push(z)}return Y},[])},y=g(n),b=function(q){return q.reduce(function(Y,Z){return Y.width>Z.width?Y:Z})};if(!p)return y;for(var w="â¦",v=function(q){var Y=f.slice(0,q),Z=g8({breakAll:d,style:u,children:Y+w}).wordsWithComputedWidth,J=g(Z),ne=J.length>s||b(J).width>Number(i);return[ne,J]},j=0,k=f.length-1,S=0,E;j<=k&&S<=f.length-1;){var N=Math.floor((j+k)/2),C=N-1,P=v(C),_=LI(P,2),M=_[0],D=_[1],B=v(N),F=LI(B,1),V=F[0];if(!M&&!V&&(j=N+1),M&&V&&(k=N-1),!M&&V){E=D;break}S++}return E||y},BI=function(t){var n=Qe(t)?[]:t.toString().split(m8);return[{words:n}]},Bre=function(t){var n=t.width,r=t.scaleToFit,i=t.children,o=t.style,s=t.breakAll,l=t.maxLines;if((n||r)&&!Us.isSsr){var u,d,p=g8({breakAll:s,children:i,style:o});if(p){var f=p.wordsWithComputedWidth,g=p.spaceWidth;u=f,d=g}else return BI(i);return Fre({breakAll:s,children:i,maxLines:l,style:o},u,d,n,r)}return BI(i)},zI="#808080",km=function(t){var n=t.x,r=n===void 0?0:n,i=t.y,o=i===void 0?0:i,s=t.lineHeight,l=s===void 0?"1em":s,u=t.capHeight,d=u===void 0?"0.71em":u,p=t.scaleToFit,f=p===void 0?!1:p,g=t.textAnchor,y=g===void 0?"start":g,b=t.verticalAnchor,w=b===void 0?"end":b,v=t.fill,j=v===void 0?zI:v,k=MI(t,Ore),S=O.useMemo(function(){return Bre({breakAll:k.breakAll,children:k.children,maxLines:k.maxLines,scaleToFit:f,style:k.style,width:k.width})},[k.breakAll,k.children,k.maxLines,f,k.style,k.width]),E=k.dx,N=k.dy,C=k.angle,P=k.className,_=k.breakAll,M=MI(k,_re);if(!cn(r)||!cn(o))return null;var D=r+(fe(E)?E:0),B=o+(fe(N)?N:0),F;switch(w){case"start":F=Ww("calc(".concat(d,")"));break;case"middle":F=Ww("calc(".concat((S.length-1)/2," * -").concat(l," + (").concat(d," / 2))"));break;default:F=Ww("calc(".concat(S.length-1," * -").concat(l,")"));break}var V=[];if(f){var U=S[0].width,q=k.width;V.push("scale(".concat((fe(q)?q/U:1)/U,")"))}return C&&V.push("rotate(".concat(C,", ").concat(D,", ").concat(B,")")),V.length&&(M.transform=V.join(" ")),W.createElement("text",hj({},Ke(M,!0),{x:D,y:B,className:nt("recharts-text",P),textAnchor:y,fill:j.includes("url")?zI:j}),S.map(function(Y,Z){var J=Y.words.join(_?"":" ");return W.createElement("tspan",{x:D,dy:Z===0?F:l,key:"".concat(J,"-").concat(Z)},J)}))};function yo(e,t){return e==null||t==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function zre(e,t){return e==null||t==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function BA(e){let t,n,r;e.length!==2?(t=yo,n=(l,u)=>yo(e(l),u),r=(l,u)=>e(l)-u):(t=e===yo||e===zre?e:$re,n=e,r=e);function i(l,u,d=0,p=l.length){if(d<p){if(t(u,u)!==0)return p;do{const f=d+p>>>1;n(l[f],u)<0?d=f+1:p=f}while(d<p)}return d}function o(l,u,d=0,p=l.length){if(d<p){if(t(u,u)!==0)return p;do{const f=d+p>>>1;n(l[f],u)<=0?d=f+1:p=f}while(d<p)}return d}function s(l,u,d=0,p=l.length){const f=i(l,u,d,p-1);return f>d&&r(l[f-1],u)>-r(l[f],u)?f-1:f}return{left:i,center:s,right:o}}function $re(){return 0}function y8(e){return e===null?NaN:+e}function*qre(e,t){for(let n of e)n!=null&&(n=+n)>=n&&(yield n)}const Wre=BA(yo),Dh=Wre.right;BA(y8).center;class $I extends Map{constructor(t,n=Vre){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),t!=null)for(const[r,i]of t)this.set(r,i)}get(t){return super.get(qI(this,t))}has(t){return super.has(qI(this,t))}set(t,n){return super.set(Ure(this,t),n)}delete(t){return super.delete(Hre(this,t))}}function qI({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):n}function Ure({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function Hre({_intern:e,_key:t},n){const r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function Vre(e){return e!==null&&typeof e=="object"?e.valueOf():e}function Gre(e=yo){if(e===yo)return x8;if(typeof e!="function")throw new TypeError("compare is not a function");return(t,n)=>{const r=e(t,n);return r||r===0?r:(e(n,n)===0)-(e(t,t)===0)}}function x8(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(e<t?-1:e>t?1:0)}const Yre=Math.sqrt(50),Kre=Math.sqrt(10),Xre=Math.sqrt(2);function Am(e,t,n){const r=(t-e)/Math.max(0,n),i=Math.floor(Math.log10(r)),o=r/Math.pow(10,i),s=o>=Yre?10:o>=Kre?5:o>=Xre?2:1;let l,u,d;return i<0?(d=Math.pow(10,-i)/s,l=Math.round(e*d),u=Math.round(t*d),l/d<e&&++l,u/d>t&&--u,d=-d):(d=Math.pow(10,i)*s,l=Math.round(e/d),u=Math.round(t/d),l*d<e&&++l,u*d>t&&--u),u<l&&.5<=n&&n<2?Am(e,t,n*2):[l,u,d]}function pj(e,t,n){if(t=+t,e=+e,n=+n,!(n>0))return[];if(e===t)return[e];const r=t<e,[i,o,s]=r?Am(t,e,n):Am(e,t,n);if(!(o>=i))return[];const l=o-i+1,u=new Array(l);if(r)if(s<0)for(let d=0;d<l;++d)u[d]=(o-d)/-s;else for(let d=0;d<l;++d)u[d]=(o-d)*s;else if(s<0)for(let d=0;d<l;++d)u[d]=(i+d)/-s;else for(let d=0;d<l;++d)u[d]=(i+d)*s;return u}function fj(e,t,n){return t=+t,e=+e,n=+n,Am(e,t,n)[2]}
485function mj(e,t,n){t=+t,e=+e,n=+n;const r=t<e,i=r?fj(t,e,n):fj(e,t,n);return(r?-1:1)*(i<0?1/-i:i)}function WI(e,t){let n;for(const r of e)r!=null&&(n<r||n===void 0&&r>=r)&&(n=r);return n}function UI(e,t){let n;for(const r of e)r!=null&&(n>r||n===void 0&&r>=r)&&(n=r);return n}function v8(e,t,n=0,r=1/0,i){if(t=Math.floor(t),n=Math.floor(Math.max(0,n)),r=Math.floor(Math.min(e.length-1,r)),!(n<=t&&t<=r))return e;for(i=i===void 0?x8:Gre(i);r>n;){if(r-n>600){const u=r-n+1,d=t-n+1,p=Math.log(u),f=.5*Math.exp(2*p/3),g=.5*Math.sqrt(p*f*(u-f)/u)*(d-u/2<0?-1:1),y=Math.max(n,Math.floor(t-d*f/u+g)),b=Math.min(r,Math.floor(t+(u-d)*f/u+g));v8(e,t,y,b,i)}const o=e[t];let s=n,l=r;for(qu(e,n,t),i(e[r],o)>0&&qu(e,n,r);s<l;){for(qu(e,s,l),++s,--l;i(e[s],o)<0;)++s;for(;i(e[l],o)>0;)--l}i(e[n],o)===0?qu(e,n,l):(++l,qu(e,l,r)),l<=t&&(n=l+1),t<=l&&(r=l-1)}return e}function qu(e,t,n){const r=e[t];e[t]=e[n],e[n]=r}function Qre(e,t,n){if(e=Float64Array.from(qre(e)),!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return UI(e);if(t>=1)return WI(e);var r,i=(r-1)*t,o=Math.floor(i),s=WI(v8(e,o).subarray(0,o+1)),l=UI(e.subarray(o+1));return s+(l-s)*(i-o)}}function Jre(e,t,n=y8){if(!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return+n(e[0],0,e);if(t>=1)return+n(e[r-1],r-1,e);var r,i=(r-1)*t,o=Math.floor(i),s=+n(e[o],o,e),l=+n(e[o+1],o+1,e);return s+(l-s)*(i-o)}}function Zre(e,t,n){e=+e,t=+t,n=(i=arguments.length)<2?(t=e,e=0,1):i<3?1:+n;for(var r=-1,i=Math.max(0,Math.ceil((t-e)/n))|0,o=new Array(i);++r<i;)o[r]=e+r*n;return o}function Kr(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e);break}return this}function ka(e,t){switch(arguments.length){case 0:break;case 1:{typeof e=="function"?this.interpolator(e):this.range(e);break}default:{this.domain(e),typeof t=="function"?this.interpolator(t):this.range(t);break}}return this}const gj=Symbol("implicit");function zA(){var e=new $I,t=[],n=[],r=gj;function i(o){let s=e.get(o);if(s===void 0){if(r!==gj)return r;e.set(o,s=t.push(o)-1)}return n[s%n.length]}return i.domain=function(o){if(!arguments.length)return t.slice();t=[],e=new $I;for(const s of o)e.has(s)||e.set(s,t.push(s)-1);return i},i.range=function(o){return arguments.length?(n=Array.from(o),i):n.slice()},i.unknown=function(o){return arguments.length?(r=o,i):r},i.copy=function(){return zA(t,n).unknown(r)},Kr.apply(i,arguments),i}function Fd(){var e=zA().unknown(void 0),t=e.domain,n=e.range,r=0,i=1,o,s,l=!1,u=0,d=0,p=.5;delete e.unknown;function f(){var g=t().length,y=i<r,b=y?i:r,w=y?r:i;o=(w-b)/Math.max(1,g-u+d*2),l&&(o=Math.floor(o)),b+=(w-b-o*(g-u))*p,s=o*(1-u),l&&(b=Math.round(b),s=Math.round(s));var v=Zre(g).map(function(j){return b+o*j});return n(y?v.reverse():v)}return e.domain=function(g){return arguments.length?(t(g),f()):t()},e.range=function(g){return arguments.length?([r,i]=g,r=+r,i=+i,f()):[r,i]},e.rangeRound=function(g){return[r,i]=g,r=+r,i=+i,l=!0,f()},e.bandwidth=function(){return s},e.step=function(){return o},e.round=function(g){return arguments.length?(l=!!g,f()):l},e.padding=function(g){return arguments.length?(u=Math.min(1,d=+g),f()):u},e.paddingInner=function(g){return arguments.length?(u=Math.min(1,g),f()):u},e.paddingOuter=function(g){return arguments.length?(d=+g,f()):d},e.align=function(g){return arguments.length?(p=Math.max(0,Math.min(1,g)),f()):p},e.copy=function(){return Fd(t(),[r,i]).round(l).paddingInner(u).paddingOuter(d).align(p)},Kr.apply(f(),arguments)}function b8(e){var t=e.copy;return e.padding=e.paddingOuter,delete e.paddingInner,delete e.paddingOuter,e.copy=function(){return b8(t())},e}function fd(){return b8(Fd.apply(null,arguments).paddingInner(1))}function $A(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function w8(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function Mh(){}var Bd=.7,Sm=1/Bd,Ul="\\s*([+-]?\\d+)\\s*",zd="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Oi="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",eie=/^#([0-9a-f]{3,8})$/,tie=new RegExp(`^rgb\\(${Ul},${Ul},${Ul}\\)$`),nie=new RegExp(`^rgb\\(${Oi},${Oi},${Oi}\\)$`),rie=new RegExp(`^rgba\\(${Ul},${Ul},${Ul},${zd}\\)$`),iie=new RegExp(`^rgba\\(${Oi},${Oi},${Oi},${zd}\\)$`),aie=new RegExp(`^hsl\\(${zd},${Oi},${Oi}\\)$`),oie=new RegExp(`^hsla\\(${zd},${Oi},${Oi},${zd}\\)$`),HI={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};$A(Mh,$d,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:VI,formatHex:VI,formatHex8:sie,formatHsl:lie,formatRgb:GI,toString:GI});function VI(){return this.rgb().formatHex()}function sie(){return this.rgb().formatHex8()}function lie(){return j8(this).formatHsl()}function GI(){return this.rgb().formatRgb()}function $d(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=eie.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?YI(t):n===3?new lr(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?bf(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?bf(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=tie.exec(e))?new lr(t[1],t[2],t[3],1):(t=nie.exec(e))?new lr(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=rie.exec(e))?bf(t[1],t[2],t[3],t[4]):(t=iie.exec(e))?bf(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=aie.exec(e))?QI(t[1],t[2]/100,t[3]/100,1):(t=oie.exec(e))?QI(t[1],t[2]/100,t[3]/100,t[4]):HI.hasOwnProperty(e)?YI(HI[e]):e==="transparent"?new lr(NaN,NaN,NaN,0):null}function YI(e){return new lr(e>>16&255,e>>8&255,e&255,1)}function bf(e,t,n,r){return r<=0&&(e=t=n=NaN),new lr(e,t,n,r)}function cie(e){return e instanceof Mh||(e=$d(e)),e?(e=e.rgb(),new lr(e.r,e.g,e.b,e.opacity)):new lr}function yj(e,t,n,r){return arguments.length===1?cie(e):new lr(e,t,n,r??1)}function lr(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}$A(lr,yj,w8(Mh,{brighter(e){return e=e==null?Sm:Math.pow(Sm,e),new lr(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Bd:Math.pow(Bd,e),new lr(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new lr(As(this.r),As(this.g),As(this.b),Cm(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:KI,formatHex:KI,formatHex8:uie,formatRgb:XI,toString:XI}));function KI(){return`#${ss(this.r)}${ss(this.g)}${ss(this.b)}`}function uie(){return`#${ss(this.r)}${ss(this.g)}${ss(this.b)}${ss((isNaN(this.opacity)?1:this.opacity)*255)}`}function XI(){const e=Cm(this.opacity);return`${e===1?"rgb(":"rgba("}${As(this.r)}, ${As(this.g)}, ${As(this.b)}${e===1?")":`, ${e})`}`}function Cm(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function As(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function ss(e){return e=As(e),(e<16?"0":"")+e.toString(16)}function QI(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new ui(e,t,n,r)}function j8(e){if(e instanceof ui)return new ui(e.h,e.s,e.l,e.opacity);if(e instanceof Mh||(e=$d(e)),!e)return new ui;if(e instanceof ui)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),o=Math.max(t,n,r),s=NaN,l=o-i,u=(o+i)/2;return l?(t===o?s=(n-r)/l+(n<r)*6:n===o?s=(r-t)/l+2:s=(t-n)/l+4,l/=u<.5?o+i:2-o-i,s*=60):l=u>0&&u<1?0:s,new ui(s,l,u,e.opacity)}function die(e,t,n,r){return arguments.length===1?j8(e):new ui(e,t,n,r??1)}function ui(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}$A(ui,die,w8(Mh,{brighter(e){return e=e==null?Sm:Math.pow(Sm,e),new ui(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Bd:Math.pow(Bd,e),new ui(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new lr(Uw(e>=240?e-240:e+120,i,r),Uw(e,i,r),Uw(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new ui(JI(this.h),wf(this.s),wf(this.l),Cm(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=Cm(this.opacity);return`${e===1?"hsl(":"hsla("}${JI(this.h)}, ${wf(this.s)*100}%, ${wf(this.l)*100}%${e===1?")":`, ${e})`}`}}));function JI(e){return e=(e||0)%360,e<0?e+360:e}function wf(e){return Math.max(0,Math.min(1,e||0))}function Uw(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const qA=e=>()=>e;function hie(e,t){return function(n){return e+n*t}}function pie(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}function fie(e){return(e=+e)==1?k8:function(t,n){return n-t?pie(t,n,e):qA(isNaN(t)?n:t)}}function k8(e,t){var n=t-e;return n?hie(e,n):qA(isNaN(e)?t:e)}const ZI=(function e(t){var n=fie(t);function r(i,o){var s=n((i=yj(i)).r,(o=yj(o)).r),l=n(i.g,o.g),u=n(i.b,o.b),d=k8(i.opacity,o.opacity);return function(p){return i.r=s(p),i.g=l(p),i.b=u(p),i.opacity=d(p),i+""}}return r.gamma=e,r})(1);function mie(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(o){for(i=0;i<n;++i)r[i]=e[i]*(1-o)+t[i]*o;return r}}function gie(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function yie(e,t){var n=t?t.length:0,r=e?Math.min(n,e.length):0,i=new Array(r),o=new Array(n),s;for(s=0;s<r;++s)i[s]=Vc(e[s],t[s]);for(;s<n;++s)o[s]=t[s];return function(l){for(s=0;s<r;++s)o[s]=i[s](l);return o}}function xie(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function Nm(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function vie(e,t){var n={},r={},i;(e===null||typeof e!="object")&&(e={}),(t===null||typeof t!="object")&&(t={});for(i in t)i in e?n[i]=Vc(e[i],t[i]):r[i]=t[i];return function(o){for(i in n)r[i]=n[i](o);return r}}var xj=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Hw=new RegExp(xj.source,"g");function bie(e){return function(){return e}}function wie(e){return function(t){return e(t)+""}}function jie(e,t){var n=xj.lastIndex=Hw.lastIndex=0,r,i,o,s=-1,l=[],u=[];for(e=e+"",t=t+"";(r=xj.exec(e))&&(i=Hw.exec(t));)(o=i.index)>n&&(o=t.slice(n,o),l[s]?l[s]+=o:l[++s]=o),(r=r[0])===(i=i[0])?l[s]?l[s]+=i:l[++s]=i:(l[++s]=null,u.push({i:s,x:Nm(r,i)}
vendor: 4,674 bytes, line 485
485)),n=Hw.lastIndex;return n<t.length&&(o=t.slice(n),l[s]?l[s]+=o:l[++s]=o),l.length<2?u[0]?wie(u[0].x):bie(t):(t=u.length,function(d){for(var p=0,f;p<t;++p)l[(f=u[p]).i]=f.x(d);return l.join("")})}function Vc(e,t){var n=typeof t,r;return t==null||n==="boolean"?qA(t):(n==="number"?Nm:n==="string"?(r=$d(t))?(t=r,ZI):jie:t instanceof $d?ZI:t instanceof Date?xie:gie(t)?mie:Array.isArray(t)?yie:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?vie:Nm)(e,t)}function WA(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}function kie(e,t){t===void 0&&(t=e,e=Vc);for(var n=0,r=t.length-1,i=t[0],o=new Array(r<0?0:r);n<r;)o[n]=e(i,i=t[++n]);return function(s){var l=Math.max(0,Math.min(r-1,Math.floor(s*=r)));return o[l](s-l)}}function Aie(e){return function(){return e}}function Tm(e){return+e}var eR=[0,1];function Qn(e){return e}function vj(e,t){return(t-=e=+e)?function(n){return(n-e)/t}:Aie(isNaN(t)?NaN:.5)}function Sie(e,t){var n;return e>t&&(n=e,e=t,t=n),function(r){return Math.max(e,Math.min(t,r))}}function Cie(e,t,n){var r=e[0],i=e[1],o=t[0],s=t[1];return i<r?(r=vj(i,r),o=n(s,o)):(r=vj(r,i),o=n(o,s)),function(l){return o(r(l))}}function Nie(e,t,n){var r=Math.min(e.length,t.length)-1,i=new Array(r),o=new Array(r),s=-1;for(e[r]<e[0]&&(e=e.slice().reverse(),t=t.slice().reverse());++s<r;)i[s]=vj(e[s],e[s+1]),o[s]=n(t[s],t[s+1]);return function(l){var u=Dh(e,l,1,r)-1;return o[u](i[u](l))}}function Lh(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function Qg(){var e=eR,t=eR,n=Vc,r,i,o,s=Qn,l,u,d;function p(){var g=Math.min(e.length,t.length);return s!==Qn&&(s=Sie(e[0],e[g-1])),l=g>2?Nie:Cie,u=d=null,f}function f(g){return g==null||isNaN(g=+g)?o:(u||(u=l(e.map(r),t,n)))(r(s(g)))}return f.invert=function(g){return s(i((d||(d=l(t,e.map(r),Nm)))(g)))},f.domain=function(g){return arguments.length?(e=Array.from(g,Tm),p()):e.slice()},f.range=function(g){return arguments.length?(t=Array.from(g),p()):t.slice()},f.rangeRound=function(g){return t=Array.from(g),n=WA,p()},f.clamp=function(g){return arguments.length?(s=g?!0:Qn,p()):s!==Qn},f.interpolate=function(g){return arguments.length?(n=g,p()):n},f.unknown=function(g){return arguments.length?(o=g,f):o},function(g,y){return r=g,i=y,p()}}function UA(){return Qg()(Qn,Qn)}function Tie(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function Em(e,t){if(!isFinite(e)||e===0)return null;var n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"),r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}function pc(e){return e=Em(Math.abs(e)),e?e[1]:NaN}function Eie(e,t){return function(n,r){for(var i=n.length,o=[],s=0,l=e[0],u=0;i>0&&l>0&&(u+l+1>r&&(l=Math.max(1,r-u)),o.push(n.substring(i-=l,i+l)),!((u+=l+1)>r));)l=e[s=(s+1)%e.length];return o.reverse().join(t)}}function Pie(e){return function(t){return t.replace(/[0-9]/g,function(n){return e[+n]})}}var Oie=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function qd(e){if(!(t=Oie.exec(e)))throw new Error("invalid format: "+e);var t;return new HA({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}qd.prototype=HA.prototype;function HA(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}HA.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function _ie(e){e:for(var t=e.length,n=1,r=-1,i;n<t;++n)switch(e[n]){case".":r=i=n;break;case"0":r===0&&(r=n),i=n;break;default:if(!+e[n])break e;r>0&&(r=0);break}return r>0?e.slice(0,r)+e.slice(i+1):e}var Pm;function Iie(e,t){var n=Em(e,t);if(!n)return Pm=void 0,e.toPrecision(t);var r=n[0],i=n[1],o=i-(Pm=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,s=r.length;return o===s?r:o>s?r+new Array(o-s+1).join("0"):o>0?r.slice(0,o)+"."+r.slice(o):"0."+new Array(1-o).join("0")+Em(e,Math.max(0,t+o-1))[0]}function tR(e,t){var n=Em(e,t);if(!n)return e+"";var r=n[0],i=n[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")}const nR={"%":(e,t)=>
vendor: 1,625 bytes, line 485
485(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:Tie,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>tR(e*100,t),r:tR,s:Iie,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function rR(e){return e}var iR=Array.prototype.map,aR=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function Rie(e){var t=e.grouping===void 0||e.thousands===void 0?rR:Eie(iR.call(e.grouping,Number),e.thousands+""),n=e.currency===void 0?"":e.currency[0]+"",r=e.currency===void 0?"":e.currency[1]+"",i=e.decimal===void 0?".":e.decimal+"",o=e.numerals===void 0?rR:Pie(iR.call(e.numerals,String)),s=e.percent===void 0?"%":e.percent+"",l=e.minus===void 0?"â":e.minus+"",u=e.nan===void 0?"NaN":e.nan+"";function d(f,g){f=qd(f);var y=f.fill,b=f.align,w=f.sign,v=f.symbol,j=f.zero,k=f.width,S=f.comma,E=f.precision,N=f.trim,C=f.type;C==="n"?(S=!0,C="g"):nR[C]||(E===void 0&&(E=12),N=!0,C="g"),(j||y==="0"&&b==="=")&&(j=!0,y="0",b="=");var P=(g&&g.prefix!==void 0?g.prefix:"")+(v==="$"?n:v==="#"&&/[boxX]/.test(C)?"0"+C.toLowerCase():""),_=(v==="$"?r:/[%p]/.test(C)?s:"")+(g&&g.suffix!==void 0?g.suffix:""),M=nR[C],D=/[defgprs%]/.test(C);E=E===void 0?6:/[gprs]/.test(C)?Math.max(1,Math.min(21,E)):Math.max(0,Math.min(20,E));function B(F){var V=P,U=_,q,Y,Z;if(C==="c")U=M(F)+U,F="";else{F=+F;var J=F<0||1/F<0;if(F=isNaN(F)?u:M(Math.abs(F),E),N&&(F=_ie(F)),J&&+F==0&&w!=="+"&&(J=!1),V=(J?w==="("?w:l:w==="-"||w==="("?"":w)+V,U=(C==="s"&&!isNaN(F)&&Pm!==void 0?aR[8+Pm/3]:"")+U+(J&&w==="("?")":""),D){for(q=-1,Y=F.length;++q<Y;
485)if(Z=F.charCodeAt(q),48>Z||Z>57){U=(Z===46?i+F.slice(q+1):F.slice(q))+U,F=F.slice(0,q);break}}}S&&!j&&(F=t(F,1/0));var ne=V.length+F.length+U.length,I=ne<k?new Array(k-ne+1).join(y):"";switch(S&&j&&(F=t(I+F,I.length?k-U.length:1/0),I=""),b){case"<":F=V+F+U+I;break;case"=":F=V+I+F+U;break;case"^":F=I.slice(0,ne=I.length>>1)+V+F+U+I.slice(ne);break;default:F=I+V+F+U;break}return o(F)}return B.toString=function(){return f+""},B}function p(f,g){var y=Math.max(-8,Math.min(8,Math.floor(pc(g)/3)))*3,b=Math.pow(10,-y),w=d((f=qd(f),f.type="f",f),{suffix:aR[8+y/3]});return function(v){return w(b*v)}}return{format:d,formatPrefix:p}}var jf,VA,A8;Die({thousands:",",grouping:[3],currency:["$",""]});function Die(e){return jf=Rie(e),VA=jf.format,A8=jf.formatPrefix,jf}function Mie(e){return Math.max(0,-pc(Math.abs(e)))}function Lie(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(pc(t)/3)))*3-pc(Math.abs(e)))}function Fie(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,pc(t)-pc(e))+1}function S8(e,t,n,r){var i=mj(e,t,n),o;switch(r=qd(r??",f"),r.type){case"s":{var s=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(o=Lie(i,s))&&(r.precision=o),A8(r,s)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(o=Fie(i,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=o-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(o=Mie(i))&&(r.precision=o-(r.type==="%")*2);break}}return VA(r)}function So(e){var t=e.domain;return e.ticks=function(n){var r=t();return pj(r[0],r[r.length-1],n??10)},e.tickFormat=function(n,r){var i=t();return S8(i[0],i[i.length-1],n??10,r)},e.nice=function(n){n==null&&(n=10);var r=t(),i=0,o=r.length-1,s=r[i],l=r[o],u,d,p=10;for(l<s&&(d=s,s=l,l=d,d=i,i=o,o=d);p-- >0;){if(d=fj(s,l,n),d===u)return r[i]=s,r[o]=l,t(r);if(d>0)s=Math.floor(s/d)*d,l=Math.ceil(l/d)*d;else if(d<0)s=Math.ceil(s*d)/d,l=Math.floor(l*d)/d;else break;u=d}return e},e}function Om(){var e=UA();return e.copy=function(){return Lh(e,Om())},Kr.apply(e,arguments),So(e)}function C8(e){var t;function n(r){return r==null||isNaN(r=+r)?t:r}return n.invert=n,n.domain=n.range=function(r){return arguments.length?(e=Array.from(r,Tm),n):e.slice()},n.unknown=function(r){return arguments.length?(t=r,n):t},n.copy=function(){return C8(e).unknown(t)},e=arguments.length?Array.from(e,Tm):[0,1],So(n)}function N8(e,t){e=e.slice();var n=0,r=e.length-1,i=e[n],o=e[r],s;return o<i&&(s=n,n=r,r=s,s=i,i=o,o=s),e[n]=t.floor(i),e[r]=t.ceil(o),e}function oR(e){return Math.log(e)}function sR(e){return Math.exp(e)}function Bie(e){return-Math.log(-e)}function zie(e){return-Math.exp(-e)}function $ie(e){return isFinite(e)?+("1e"+e):e<0?0:e}function qie(e){return e===10?$ie:e===Math.E?Math.exp:t=>Math.pow(e,t)}function Wie(e){return e===Math.E?Math.log:e===10&&Math.log10||e===2&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}function lR(e){return(t,n)=>-e(-t,n)}function GA(e){const t=e(oR,sR),n=t.domain;let r=10,i,o;function s(){return i=Wie(r),o=qie(r),n()[0]<0?(i=lR(i),o=lR(o),e(Bie,zie)):e(oR,sR),t}return t.base=function(l){return arguments.length?(r=+l,s()):r},t.domain=function(l){return arguments.length?(n(l),s()):n()},t.ticks=l=>{const u=n();let d=u[0],p=u[u.length-1];const f=p<d;f&&([d,p]=[p,d]);let g=i(d),y=i(p),b,w;const v=l==null?10:+l;let j=[];if(!(r%1)&&y-g<v){if(g=Math.floor(g),y=Math.ceil(y),d>0){for(;g<=y;++g)for(b=1;b<r;++b)if(w=g<0?b/o(-g):b*o(g),!(w<d)){if(w>p)break;j.push(w)}}else for(;g<=y;++g)for(b=r-1;b>=1;--b)if(w=g>0?b/o(-g):b*o(g),!(w<d)){if(w>p)break;j.push(w)}j.length*2<v&&(j=pj(d,p,v))}else j=pj(g,y,Math.min(y-g,v)).map(o);return f?j.reverse():j},t.tickFormat=(l,u)=>{if(l==null&&(l=10),u==null&&(u=r===10?"s":","),typeof u!="function"&&(!(r%1)&&(u=qd(u)).precision==null&&(u.trim=!0),u=VA(u)),l===1/0)return u;const d=Math.max(1,r*l/t.ticks().length);return p=>{let f=p/o(Math.round(i(p)));return f*r<r-.5&&(f*=r),f<=d?u(p):""}},t.nice=()=>n(N8(n(),{floor:l=>o(Math.floor(i(l))),ceil:l=>o(Math.ceil(i(l)))})),t}function T8(){const e=GA(Qg()).domain([1,10]);return e.copy=()=>Lh(e,T8()).base(e.base()),Kr.apply(e,arguments),e}
485function cR(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function uR(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function YA(e){var t=1,n=e(cR(t),uR(t));return n.constant=function(r){return arguments.length?e(cR(t=+r),uR(t)):t},So(n)}function E8(){var e=YA(Qg());return e.copy=function(){return Lh(e,E8()).constant(e.constant())},Kr.apply(e,arguments)}function dR(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function Uie(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function Hie(e){return e<0?-e*e:e*e}function KA(e){var t=e(Qn,Qn),n=1;function r(){return n===1?e(Qn,Qn):n===.5?e(Uie,Hie):e(dR(n),dR(1/n))}return t.exponent=function(i){return arguments.length?(n=+i,r()):n},So(t)}function XA(){var e=KA(Qg());return e.copy=function(){return Lh(e,XA()).exponent(e.exponent())},Kr.apply(e,arguments),e}function Vie(){return XA.apply(null,arguments).exponent(.5)}function hR(e){return Math.sign(e)*e*e}function Gie(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}function P8(){var e=UA(),t=[0,1],n=!1,r;function i(o){var s=Gie(e(o));return isNaN(s)?r:n?Math.round(s):s}return i.invert=function(o){return e.invert(hR(o))},i.domain=function(o){return arguments.length?(e.domain(o),i):e.domain()},i.range=function(o){return arguments.length?(e.range((t=Array.from(o,Tm)).map(hR)),i):t.slice()},i.rangeRound=function(o){return i.range(o).round(!0)},i.round=function(o){return arguments.length?(n=!!o,i):n},i.clamp=function(o){return arguments.length?(e.clamp(o),i):e.clamp()},i.unknown=function(o){return arguments.length?(r=o,i):r},i.copy=function(){return P8(e.domain(),t).round(n).clamp(e.clamp()).unknown(r)},Kr.apply(i,arguments),So(i)}function O8(){var e=[],t=[],n=[],r;function i(){var s=0,l=Math.max(1,t.length);for(n=new Array(l-1);++s<l;)n[s-1]=Jre(e,s/l);return o}function o(s){return s==null||isNaN(s=+s)?r:t[Dh(n,s)]}return o.invertExtent=function(s){var l=t.indexOf(s);return l<0?[NaN,NaN]:[l>0?n[l-1]:e[0],l<n.length?n[l]:e[e.length-1]]},o.domain=function(s){if(!arguments.length)return e.slice();e=[];for(let l of s)l!=null&&!isNaN(l=+l)&&e.push(l);return e.sort(yo),i()},o.range=function(s){return arguments.length?(t=Array.from(s),i()):t.slice()},o.unknown=function(s){return arguments.length?(r=s,o):r},o.quantiles=function(){return n.slice()},o.copy=function(){return O8().domain(e).range(t).unknown(r)},Kr.apply(o,arguments)}function _8(){var e=0,t=1,n=1,r=[.5],i=[0,1],o;function s(u){return u!=null&&u<=u?i[Dh(r,u,0,n)]:o}function l(){var u=-1;for(r=new Array(n);++u<n;)r[u]=((u+1)*t-(u-n)*e)/(n+1);return s}return s.domain=function(u){return arguments.length?([e,t]=u,e=+e,t=+t,l()):[e,t]},s.range=function(u){return arguments.length?(n=(i=Array.from(u)).length-1,l()):i.slice()},s.invertExtent=function(u){var d=i.indexOf(u);return d<0?[NaN,NaN]:d<1?[e,r[0]]:d>=n?[r[n-1],t]:[r[d-1],r[d]]},s.unknown=function(u){return arguments.length&&(o=u),s},s.thresholds=function(){return r.slice()},s.copy=function(){return _8().domain([e,t]).range(i).unknown(o)},Kr.apply(So(s),arguments)}function I8(){var e=[.5],t=[0,1],n,r=1;function i(o){return o!=null&&o<=o?t[Dh(e,o,0,r)]:n}return i.domain=function(o){return arguments.length?(e=Array.from(o),r=Math.min(e.length,t.length-1),i):e.slice()},i.range=function(o){return arguments.length?(t=Array.from(o),r=Math.min(e.length,t.length-1),i):t.slice()},i.invertExtent=function(o){var s=t.indexOf(o);return[e[s-1],e[s]]},i.unknown=function(o){return arguments.length?(n=o,i):n},i.copy=function(){return I8().domain(e).range(t).unknown(n)},Kr.apply(i,arguments)}const Vw=new Date,Gw=new Date;function dn(e,t,n,r){function i(o){return e(o=arguments.length===0?new Date:new Date(+o)),o}return i.floor=o=>(e(o=new Date(+o)),o),i.ceil=o=>(e(o=new Date(o-1)),t(o,1),e(o),o),i.round=o=>{const s=i(o),l=i.ceil(o);return o-s<l-o?s:l},i.offset=(o,s)=>(t(o=new Date(+o),s==null?1:Math.floor(s)),o),i.range=(o,s,l)=>{const u=[];if(o=i.ceil(o),l=l==null?1:Math.floor(l),!(o<s)||!(l>0))return u;let d;do u.push(d=new Date(+o)),t(o,l),e(o);while(d<o&&o<s);return u},i.filter=o=>dn(s=>{if(s>=s)for(;e(s),!o(s);)s.setTime(s-1)},(s,l)=>{if(s>=s)if(l<0)for(;++l<=0;)for(;
485t(s,-1),!o(s););else for(;--l>=0;)for(;t(s,1),!o(s););}),n&&(i.count=(o,s)=>(Vw.setTime(+o),Gw.setTime(+s),e(Vw),e(Gw),Math.floor(n(Vw,Gw))),i.every=o=>(o=Math.floor(o),!isFinite(o)||!(o>0)?null:o>1?i.filter(r?s=>r(s)%o===0:s=>i.count(0,s)%o===0):i)),i}const _m=dn(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);_m.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?dn(t=>{t.setTime(Math.floor(t/e)*e)},(t,n)=>{t.setTime(+t+n*e)},(t,n)=>(n-t)/e):_m);_m.range;const aa=1e3,Wr=aa*60,oa=Wr*60,ma=oa*24,QA=ma*7,pR=ma*30,Yw=ma*365,ls=dn(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*aa)},(e,t)=>(t-e)/aa,e=>e.getUTCSeconds());ls.range;const JA=dn(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*aa)},(e,t)=>{e.setTime(+e+t*Wr)},(e,t)=>(t-e)/Wr,e=>e.getMinutes());JA.range;const ZA=dn(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*Wr)},(e,t)=>(t-e)/Wr,e=>e.getUTCMinutes());ZA.range;const eS=dn(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*aa-e.getMinutes()*Wr)},(e,t)=>{e.setTime(+e+t*oa)},(e,t)=>(t-e)/oa,e=>e.getHours());eS.range;const tS=dn(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*oa)},(e,t)=>(t-e)/oa,e=>e.getUTCHours());tS.range;const Fh=dn(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*Wr)/ma,e=>e.getDate()-1);Fh.range;const Jg=dn(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/ma,e=>e.getUTCDate()-1);Jg.range;const R8=dn(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/ma,e=>Math.floor(e/ma));R8.range;function Hs(e){return dn(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(t,n)=>{t.setDate(t.getDate()+n*7)},(t,n)=>(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*Wr)/QA)}const Zg=Hs(0),Im=Hs(1),Yie=Hs(2),Kie=Hs(3),fc=Hs(4),Xie=Hs(5),Qie=Hs(6);Zg.range;Im.range;Yie.range;Kie.range;fc.range;Xie.range;Qie.range;function Vs(e){return dn(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCDate(t.getUTCDate()+n*7)},(t,n)=>(n-t)/QA)}const ey=Vs(0),Rm=Vs(1),Jie=Vs(2),Zie=Vs(3),mc=Vs(4),eae=Vs(5),tae=Vs(6);ey.range;Rm.range;Jie.range;Zie.range;mc.range;eae.range;tae.range;const nS=dn(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth());nS.range;const rS=dn(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth());rS.range;const ga=dn(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());ga.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:dn(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,n)=>{t.setFullYear(t.getFullYear()+n*e)});ga.range;const ya=dn(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());ya.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:dn(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCFullYear(t.getUTCFullYear()+n*e)});ya.range;function D8(e,t,n,r,i,o){const s=[[ls,1,aa],[ls,5,5*aa],[ls,15,15*aa],[ls,30,30*aa],[o,1,Wr],[o,5,5*Wr],[o,15,15*Wr],[o,30,30*Wr],[i,1,oa],[i,3,3*oa],[i,6,6*oa],[i,12,12*oa],[r,1,ma],[r,2,2*ma],[n,1,QA],[t,1,pR],[t,3,3*pR],[e,1,Yw]];function l(d,p,f){const g=p<d;g&&([d,p]=[p,d]);const y=f&&typeof f.range=="function"?f:u(d,p,f),b=y?y.range(d,+p+1):[];return g?b.reverse():b}function u(d,p,f){const g=Math.abs(p-d)/f,y=BA(([,,v])=>v).right(s,g);if(y===s.length)return e.every(mj(d/Yw,p/Yw,f));if(y===0)return _m.every(Math.max(mj(d,p,f),1));const[b,w]=s[g/s[y-1][2]<s[y][2]/g?y-1:y];return b.every(w)}return[l,u]}const[nae,rae]=D8(ya,rS,ey,R8,tS,ZA),[iae,aae]=D8(ga,nS,Zg,Fh,eS,JA);function Kw(e){if(0<=e.y&&e.y<100){var t=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return t.setFullYear(e.y),t}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}function Xw(e){if(0<=e.y&&e.y<100){var t=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return t.setUTCFullYear(e.y),t}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))}function Wu(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}function oae(e){var t=e.dateTime,n=e.date,r=e.time,i=e.periods,o=e.days,s=e.shortDays,l=e.months,u=e.shortMonths,d=Uu(i),p=Hu(i),f=Uu(o),g=Hu(o),y=Uu(s),b=Hu(s),w=Uu(l),v=Hu(l),j=Uu(u),k=Hu(u),S={a:Z,A:J,b:ne,B:I,c:null,d:vR,e:vR,f:Eae,g:Bae,G:$ae,H:Cae,I:Nae,j:Tae,L:M8,m:Pae,M:Oae,p:z,q:X,Q:jR,s:kR,S:_ae,u:Iae,U:Rae,V:Dae,w:Mae,W:Lae,x:null,X:null,y:Fae,Y:zae,Z:qae,"%":wR},E={a:L,A:me,b:xe,B:le,c:null,d:bR,e:bR,f:Vae,g:noe,G:ioe,H:Wae,I:Uae,j:Hae,L:F8,m:Gae,M:Yae,p:Ie,q:Oe,Q:jR,s:kR,S:Kae,u:Xae,U:Qae,V:Jae,w:Zae,W:eoe,x:null,X:null,y:toe,Y:roe,Z:aoe,"%":wR},N={a:D,A:B,b:F,B:V,c:U,d:yR,e:yR,f:jae,g:gR,G:mR,H:xR,I:xR,j:xae,L:wae,m:yae,M:vae,p:M,q:gae,Q:Aae,s:Sae,S:bae,u:dae,U:hae,V:pae,w:uae,W:fae,x:q,X:Y,y:gR,Y:mR,Z:mae,"%":kae};S.x=C(n,S),S.X=C(r,S),S.c=C(t,S),E.x=C(n,E),E.X=C(r,E),E.c=C(t,E);function C(ae,ke){return function(Re){var se=[],rt=-1,qe=0,it=ae.length,Ae,at,zt;for(Re instanceof Date||(Re=new Date(+Re));++rt<it;)ae.charCodeAt(rt)===37&&(se.push(ae.slice(qe,rt)),(at=fR[Ae=ae.charAt(++rt)])!=null?Ae=ae.charAt(++rt):at=Ae==="e"?" ":"0",(zt=ke[Ae])&&(Ae=zt(Re,at)),se.push(Ae),qe=rt+1);return se.push(ae.slice(qe,rt)),se.join("")}}function P(ae,ke){return function(Re){var se=Wu(1900,void 0,1),rt=_(se,ae,Re+="",0),qe,it;if(rt!=Re.length)return null;if("Q"in se)return new Date(se.Q);if("s"in se)return new Date(se.s*1e3+("L"in se?se.L:0));if(ke&&!("Z"in se)&&(se.Z=0),"p"in se&&(se.H=se.H%12+se.p*12),se.m===void 0&&(se.m="q"in se?se.q:0),"V"in se){if(se.V<1||se.V>53)return null;"w"in se||(se.w=1),"Z"in se?(qe=Xw(Wu(se.y,0,1)),it=qe.getUTCDay(),qe=it>4||it===0?Rm.ceil(qe):Rm(qe),qe=Jg.offset(qe,(se.V-1)*7),se.y=qe.getUTCFullYear(),se.m=qe.getUTCMonth(),se.d=qe.getUTCDate()+(se.w+6)%7):(qe=Kw(Wu(se.y,0,1)),it=qe.getDay(),qe=it>4||it===0?Im.ceil(qe):Im(qe),qe=Fh.offset(qe,(se.V-1)*7),se.y=qe.getFullYear(),se.m=qe.getMonth(),se.d=qe.getDate()+(se.w+6)%7)}else("W"in se||"U"in se)&&("w"in se||(se.w="u"in se?se.u%7:"W"in se?
vendor: 5,985 bytes, line 485
4851:0),it="Z"in se?Xw(Wu(se.y,0,1)).getUTCDay():Kw(Wu(se.y,0,1)).getDay(),se.m=0,se.d="W"in se?(se.w+6)%7+se.W*7-(it+5)%7:se.w+se.U*7-(it+6)%7);return"Z"in se?(se.H+=se.Z/100|0,se.M+=se.Z%100,Xw(se)):Kw(se)}}function _(ae,ke,Re,se){for(var rt=0,qe=ke.length,it=Re.length,Ae,at;rt<qe;){if(se>=it)return-1;if(Ae=ke.charCodeAt(rt++),Ae===37){if(Ae=ke.charAt(rt++),at=N[Ae in fR?ke.charAt(rt++):Ae],!at||(se=at(ae,Re,se))<0)return-1}else if(Ae!=Re.charCodeAt(se++))return-1}return se}function M(ae,ke,Re){var se=d.exec(ke.slice(Re));return se?(ae.p=p.get(se[0].toLowerCase()),Re+se[0].length):-1}function D(ae,ke,Re){var se=y.exec(ke.slice(Re));return se?(ae.w=b.get(se[0].toLowerCase()),Re+se[0].length):-1}function B(ae,ke,Re){var se=f.exec(ke.slice(Re));return se?(ae.w=g.get(se[0].toLowerCase()),Re+se[0].length):-1}function F(ae,ke,Re){var se=j.exec(ke.slice(Re));return se?(ae.m=k.get(se[0].toLowerCase()),Re+se[0].length):-1}function V(ae,ke,Re){var se=w.exec(ke.slice(Re));return se?(ae.m=v.get(se[0].toLowerCase()),Re+se[0].length):-1}function U(ae,ke,Re){return _(ae,t,ke,Re)}function q(ae,ke,Re){return _(ae,n,ke,Re)}function Y(ae,ke,Re){return _(ae,r,ke,Re)}function Z(ae){return s[ae.getDay()]}function J(ae){return o[ae.getDay()]}function ne(ae){return u[ae.getMonth()]}function I(ae){return l[ae.getMonth()]}function z(ae){return i[+(ae.getHours()>=12)]}function X(ae){return 1+~~(ae.getMonth()/3)}function L(ae){return s[ae.getUTCDay()]}function me(ae){return o[ae.getUTCDay()]}function xe(ae){return u[ae.getUTCMonth()]}function le(ae){return l[ae.getUTCMonth()]}function Ie(ae){return i[+(ae.getUTCHours()>=12)]}function Oe(ae){return 1+~~(ae.getUTCMonth()/3)}return{format:function(ae){var ke=C(ae+="",S);return ke.toString=function(){return ae},ke},parse:function(ae){var ke=P(ae+="",!1);return ke.toString=function(){return ae},ke},utcFormat:function(ae){var ke=C(ae+="",E);return ke.toString=function(){return ae},ke},utcParse:function(ae){var ke=P(ae+="",!0);return ke.toString=function(){return ae},ke}}}var fR={"-":"",_:" ",0:"0"},vn=/^\s*\d+/,sae=/^%/,lae=/[\\^$*+?|[\]().{}]/g;function ft(e,t,n){var r=e<0?"-":"",i=(r?-e:e)+"",o=i.length;return r+(o<n?new Array(n-o+1).join(t)+i:i)}function cae(e){return e.replace(lae,"\\$&")}function Uu(e){return new RegExp("^(?:"+e.map(cae).join("|")+")","i")}function Hu(e){return new Map(e.map((t,n)=>[t.toLowerCase(),n]))}function uae(e,t,n){var r=vn.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function dae(e,t,n){var r=vn.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function hae(e,t,n){var r=vn.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function pae(e,t,n){var r=vn.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function fae(e,t,n){var r=vn.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function mR(e,t,n){var r=vn.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function gR(e,t,n){var r=vn.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function mae(e,t,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(n,n+6));return r?(e.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function gae(e,t,n){var r=vn.exec(t.slice(n,n+1));return r?(e.q=r[0]*3-3,n+r[0].length):-1}function yae(e,t,n){var r=vn.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function yR(e,t,n){var r=vn.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function xae(e,t,n){var r=vn.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function xR(e,t,n){var r=vn.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function vae(e,t,n){var r=vn.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function bae(e,t,n){var r=vn.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function wae(e,t,n){var r=vn.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function jae(e,t,n){var r=vn.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function kae(e,t,n){var r=sae.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function Aae(e,t,n){var r=vn.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function Sae(e,t,n){var r=vn.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function vR(e,t){return ft(e.getDate(),t,2)}function Cae(e,t){return ft(e.getHours(),t,2)}function Nae(e,t){return ft(e.getHours()%12||12,t,2)}function Tae(e,t){return ft(1+Fh.count(ga(e),e),t,3)}function M8(e,t){return ft(e.getMilliseconds(),t,3)}function Eae(e,t){return M8(e,t)+"000"}function Pae(e,t){return ft(e.getMonth()+1,t,2)}function Oae(e,t){return ft(e.getMinutes(),t,2)}function _ae(e,t){return ft(e.getSeconds(),t,2)}function Iae(e){var t=e.getDay();return t===0?7:t}function Rae(e,t){return ft(Zg.count(ga(e)-1,e),t,2)}function L8(e){var t=e.getDay();return t>=4||t===0?fc(e):fc.ceil(e)}function Dae(e,t){return e=L8(e),ft(fc.count(ga(e),e)+(ga(e).getDay()===4),t,2)}function Mae(e){return e.getDay()}function Lae(e,t){return ft(Im.count(ga(e)-1,e),t,2)}function Fae(e,t){return ft(e.getFullYear()%100,t,2)}function Bae(e,t){return e=L8(e),ft(e.getFullYear()%100,t,2)}function zae(e,t){return ft(e.getFullYear()%1e4,t,4)}function $ae(e,t){var n=e.getDay();return e=n>=4||n===0?fc(e):fc.ceil(e),ft(e.getFullYear()%1e4,t,4)}function qae(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+ft(t/60|0,"0",2)+ft(t%60,"0",2)}function bR(e,t){return ft(e.getUTCDate(),t,2)}function Wae(e,t){return ft(e.getUTCHours(),t,2)}function Uae(e,t){return ft(e.getUTCHours()%12||12,t,2)}function Hae(e,t){return ft(1+Jg.count(ya(e),e),t,3)}function F8(e,t){return ft(e.getUTCMilliseconds(),t,3)}function Vae(e,t){return F8(e,t)+"000"}function Gae(e,t){return ft(e.getUTCMonth()+1,t,2)}function Yae(e,t){return ft(e.getUTCMinutes(),t,2)}function Kae(e,t){return ft(e.getUTCSeconds(),t,2)}function Xae(e){var t=e.getUTCDay();return t===0?7:t}function Qae(e,t){return ft(ey.count(ya(e)-1,e),t,2)}function B8(e){var t=e.getUTCDay();return t>=4||t===0?mc(e):mc.ceil(e)}
485function Jae(e,t){return e=B8(e),ft(mc.count(ya(e),e)+(ya(e).getUTCDay()===4),t,2)}function Zae(e){return e.getUTCDay()}function eoe(e,t){return ft(Rm.count(ya(e)-1,e),t,2)}function toe(e,t){return ft(e.getUTCFullYear()%100,t,2)}function noe(e,t){return e=B8(e),ft(e.getUTCFullYear()%100,t,2)}function roe(e,t){return ft(e.getUTCFullYear()%1e4,t,4)}function ioe(e,t){var n=e.getUTCDay();return e=n>=4||n===0?mc(e):mc.ceil(e),ft(e.getUTCFullYear()%1e4,t,4)}function aoe(){return"+0000"}function wR(){return"%"}function jR(e){return+e}function kR(e){return Math.floor(+e/1e3)}var kl,z8,$8;ooe({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function ooe(e){return kl=oae(e),z8=kl.format,kl.parse,$8=kl.utcFormat,kl.utcParse,kl}function soe(e){return new Date(e)}function loe(e){return e instanceof Date?+e:+new Date(+e)}function iS(e,t,n,r,i,o,s,l,u,d){var p=UA(),f=p.invert,g=p.domain,y=d(".%L"),b=d(":%S"),w=d("%I:%M"),v=d("%I %p"),j=d("%a %d"),k=d("%b %d"),S=d("%B"),E=d("%Y");function N(C){return(u(C)<C?y:l(C)<C?b:s(C)<C?w:o(C)<C?v:r(C)<C?i(C)<C?j:k:n(C)<C?S:E)(C)}return p.invert=function(C){return new Date(f(C))},p.domain=function(C){return arguments.length?g(Array.from(C,loe)):g().map(soe)},p.ticks=function(C){var P=g();return e(P[0],P[P.length-1],C??10)},p.tickFormat=function(C,P){return P==null?N:d(P)},p.nice=function(C){var P=g();return(!C||typeof C.range!="function")&&(C=t(P[0],P[P.length-1],C??10)),C?g(N8(P,C)):p},p.copy=function(){return Lh(p,iS(e,t,n,r,i,o,s,l,u,d))},p}function coe(){return Kr.apply(iS(iae,aae,ga,nS,Zg,Fh,eS,JA,ls,z8).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function uoe(){return Kr.apply(iS(nae,rae,ya,rS,ey,Jg,tS,ZA,ls,$8).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function ty(){var e=0,t=1,n,r,i,o,s=Qn,l=!1,u;function d(f){return f==null||isNaN(f=+f)?u:s(i===0?.5:(f=(o(f)-n)*i,l?Math.max(0,Math.min(1,f)):f))}d.domain=function(f){return arguments.length?([e,t]=f,n=o(e=+e),r=o(t=+t),i=n===r?0:1/(r-n),d):[e,t]},d.clamp=function(f){return arguments.length?(l=!!f,d):l},d.interpolator=function(f){return arguments.length?(s=f,d):s};function p(f){return function(g){var y,b;return arguments.length?([y,b]=g,s=f(y,b),d):[s(0),s(1)]}}return d.range=p(Vc),d.rangeRound=p(WA),d.unknown=function(f){return arguments.length?(u=f,d):u},function(f){return o=f,n=f(e),r=f(t),i=n===r?0:1/(r-n),d}}function Co(e,t){return t.domain(e.domain()).interpolator(e.interpolator()).clamp(e.clamp()).unknown(e.unknown())}function q8(){var e=So(ty()(Qn));return e.copy=function(){return Co(e,q8())},ka.apply(e,arguments)}function W8(){var e=GA(ty()).domain([1,10]);return e.copy=function(){return Co(e,W8()).base(e.base())},ka.apply(e,arguments)}function U8(){var e=YA(ty());return e.copy=function(){return Co(e,U8()).constant(e.constant())},ka.apply(e,arguments)}function aS(){var e=KA(ty());return e.copy=function(){return Co(e,aS()).exponent(e.exponent())},ka.apply(e,arguments)}function doe(){return aS.apply(null,arguments).exponent(.5)}function H8(){var e=[],t=Qn;function n(r){if(r!=null&&!isNaN(r=+r))return t((Dh(e,r,1)-1)/(e.length-1))}return n.domain=function(r){if(!arguments.length)return e.slice();e=[];for(let i of r)i!=null&&!isNaN(i=+i)&&e.push(i);return e.sort(yo),n},n.interpolator=function(r){return arguments.length?(t=r,n):t},n.range=function(){return e.map((r,i)=>t(i/(e.length-1)))},n.quantiles=function(r){return Array.from({length:r+1},(i,o)=>Qre(e,o/r))},n.copy=function(){return H8(t).domain(e)},ka.apply(n,arguments)}function ny(){var e=0,t=.5,n=1,r=1,i,o,s,l,u,d=Qn,p,f=!1,g;function y(w){return isNaN(w=+w)?g:(w=.5+((w=+p(w))-o)*(r*w<r*o?l:u),d(f?Math.max(0,Math.min(1,w)):w))}y.domain=function(w){return arguments.length?([e,t,n]=w,i=p(e=+e),o=p(t=+t),s=p(n=+n),l=i===o?0:.5/(o-i),u=o===s?0:.5/(s-o),r=o<i?-1:1,y):[e,t,n]},y.clamp=function(w){return arguments.length?(f=!!w,y):f},y.interpolator=function(w){return arguments.length?(d=w,y):d};function b(w){return function(v){var j,k,S;return arguments.length?([j,k,S]=v,d=kie(w,[j,k,S]),y):[d(0),d(.5),d(1)]}}return y.range=b(Vc),y.rangeRound=b(WA),y.unknown=function(w){return arguments.length?(g=w,y):g},function(w){return p=w,i=w(e),o=w(t),s=w(n),l=i===o?0:.5/(o-i),u=o===s?0:.5/(s-o),r=o<i?-1:1,y}}function V8(){var e=So(ny()(Qn));return e.copy=function(){return Co(e,V8())},ka.apply(e,arguments)}function G8(){var e=GA(ny()).domain([.1,1,10]);return e.copy=function(){return Co(e,G8()).base(e.base())},ka.apply(e,arguments)}function Y8(){var e=YA(ny());
485return e.copy=function(){return Co(e,Y8()).constant(e.constant())},ka.apply(e,arguments)}function oS(){var e=KA(ny());return e.copy=function(){return Co(e,oS()).exponent(e.exponent())},ka.apply(e,arguments)}function hoe(){return oS.apply(null,arguments).exponent(.5)}const AR=Object.freeze(Object.defineProperty({__proto__:null,scaleBand:Fd,scaleDiverging:V8,scaleDivergingLog:G8,scaleDivergingPow:oS,scaleDivergingSqrt:hoe,scaleDivergingSymlog:Y8,scaleIdentity:C8,scaleImplicit:gj,scaleLinear:Om,scaleLog:T8,scaleOrdinal:zA,scalePoint:fd,scalePow:XA,scaleQuantile:O8,scaleQuantize:_8,scaleRadial:P8,scaleSequential:q8,scaleSequentialLog:W8,scaleSequentialPow:aS,scaleSequentialQuantile:H8,scaleSequentialSqrt:doe,scaleSequentialSymlog:U8,scaleSqrt:Vie,scaleSymlog:E8,scaleThreshold:I8,scaleTime:coe,scaleUtc:uoe,tickFormat:S8},Symbol.toStringTag,{value:"Module"}));var Qw,SR;function K8(){if(SR)return Qw;SR=1;var e=$c();function t(n,r,i){for(var o=-1,s=n.length;++o<s;){var l=n[o],u=r(l);if(u!=null&&(d===void 0?u===u&&!e(u):i(u,d)))var d=u,p=l}return p}return Qw=t,Qw}var Jw,CR;function poe(){if(CR)return Jw;CR=1;function e(t,n){return t>n}return Jw=e,Jw}var Zw,NR;function foe(){if(NR)return Zw;NR=1;var e=K8(),t=poe(),n=Hc();function r(i){return i&&i.length?e(i,n,t):void 0}return Zw=r,Zw}var moe=foe();const ho=bt(moe);var e1,TR;function goe(){if(TR)return e1;TR=1;function e(t,n){return t<n}return e1=e,e1}var t1,ER;function yoe(){if(ER)return t1;ER=1;var e=K8(),t=goe(),n=Hc();function r(i){return i&&i.length?e(i,n,t):void 0}return t1=r,t1}var xoe=yoe();const ry=bt(xoe);var n1,PR;function voe(){if(PR)return n1;PR=1;var e=jA(),t=Ao(),n=a8(),r=ur();function i(o,s){var l=r(o)?e:n;return l(o,t(s,3))}return n1=i,n1}var r1,OR;function boe(){if(OR)return r1;OR=1;var e=r8(),t=voe();function n(r,i){return e(t(r,i),1)}return r1=n,r1}var woe=boe();const joe=bt(woe);var i1,_R;function koe(){if(_R)return i1;_R=1;var e=DA();function t(n,r){return e(n,r)}return i1=t,i1}var Aoe=koe();const gc=bt(Aoe);var Gc=1e9,Soe={precision:20,rounding:4,toExpNeg:-7,toExpPos:21,LN10:"2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286"},lS,Mt=!0,Yr="[DecimalError] ",Ss=Yr+"Invalid argument: ",sS=Yr+"Exponent out of range: ",Yc=Math.floor,ts=Math.pow,Coe=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,jr,yn=1e7,It=7,X8=9007199254740991,Dm=Yc(X8/It),Ce={};Ce.absoluteValue=Ce.abs=function(){var e=new this.constructor(this);return e.s&&(e.s=1),e};Ce.comparedTo=Ce.cmp=function(e){var t,n,r,i,o=this;if(e=new o.constructor(e),o.s!==e.s)return o.s||-e.s;if(o.e!==e.e)return o.e>e.e^o.s<0?1:-1;for(r=o.d.length,i=e.d.length,t=0,n=r<i?r:i;t<n;++t)if(o.d[t]!==e.d[t])return o.d[t]>e.d[t]^o.s<0?1:-1;return r===i?0:r>i^o.s<0?1:-1};Ce.decimalPlaces=Ce.dp=function(){var e=this,t=e.d.length-1,n=(t-e.e)*It;if(t=e.d[t],t)for(;t%10==0;t/=10)n--;return n<0?0:n};Ce.dividedBy=Ce.div=function(e){return da(this,new this.constructor(e))};Ce.dividedToIntegerBy=Ce.idiv=function(e){var t=this,n=t.constructor;return kt(da(t,new n(e),0,1),n.precision)};Ce.equals=Ce.eq=function(e){return!this.cmp(e)};Ce.exponent=function(){return tn(this)};Ce.greaterThan=Ce.gt=function(e){return this.cmp(e)>0};Ce.greaterThanOrEqualTo=Ce.gte=function(e){return this.cmp(e)>=0};Ce.isInteger=Ce.isint=function(){return this.e>this.d.length-2};Ce.isNegative=Ce.isneg=function(){return this.s<0};Ce.isPositive=Ce.ispos=function(){return this.s>0};Ce.isZero=function(){return this.s===0};Ce.lessThan=Ce.lt=function(e){return this.cmp(e)<0};Ce.lessThanOrEqualTo=Ce.lte=function(e){return this.cmp(e)<1};Ce.logarithm=Ce.log=function(e){var t,n=this,r=n.constructor,i=r.precision,o=i+5;if(e===void 0)e=new r(10);else if(e=new r(e),e.s<1||e.eq(jr))throw Error(Yr+"NaN");if(n.s<1)throw Error(Yr+(n.s?"NaN":"-Infinity"));return n.eq(jr)?new r(0):(Mt=!1,t=da(Wd(n,o),Wd(e,o),o),Mt=!0,kt(t,i))};Ce.minus=Ce.sub=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?Z8(t,e):Q8(t,(e.s=-e.s,e))};Ce.modulo=Ce.mod=function(e){var t,n=this,r=n.constructor,i=r.precision;if(e=new r(e),!e.s)throw Error(Yr+"NaN");return n.s?(Mt=!1,t=da(n,e,0,1).times(e),Mt=!0,n.minus(t)):kt(new r(n),i)};Ce.naturalExponential=Ce.exp=function(){return J8(this)};Ce.naturalLogarithm=Ce.ln=function(){return Wd(this)};Ce.negated=Ce.neg=function(){var e=new this.constructor(this);return e.s=-e.s||0,e};Ce.plus=Ce.add=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?Q8(t,e):Z8(t,(e.s=-e.s,e))};Ce.precision=Ce.sd=function(e){var t,n,r,i=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(Ss+e);if(t=tn(i)+1,r=i.d.length-1,n=r*It+1,r=i.d[r],r){for(;r%10==0;r/=10)n--;for(r=i.d[0];r>=10;r/=10)n++}return e&&t>n?t:n};Ce.squareRoot=Ce.sqrt=function(){var e,t,n,r,i,o,s,l=this,u=l.constructor;if(l.s<1){if(!l.s)return new u(0);throw Error(Yr+"NaN")}for(e=tn(l),Mt=!1,i=Math.sqrt(+l),i==0||i==1/0?(t=Ti(l.d),(t.length+e)%2==0&&(t+="0"),i=Math.sqrt(t),e=Yc((e+1)/2)-(e<0||e%2),i==1/0?t="5e"+e:(t=i.toExponential(),t=t.slice(0,t.indexOf("e")+1)+e),r=new u(t)):r=new u(i.toString()),n=u.precision,i=s=n+3;;)if(o=r,r=o.plus(da(l,o,s+2)).times(.5),Ti(o.d).slice(0,s)===(t=Ti(r.d)).slice(0,s)){if(t=t.slice(s-3,s+1),i==s&&t=="4999"){if(kt(o,n+1,0),o.times(o).eq(l)){r=o;break}}else if(t!="9999")break;s+=4}return Mt=!0,kt(r,n)};Ce.times=Ce.mul=function(e){var t,n,r,i,o,s,l,u,d,p=this,f=p.constructor,g=p.d,y=(e=new f(e)).d;if(!p.s||!e.s)return new f(0);
485for(e.s*=p.s,n=p.e+e.e,u=g.length,d=y.length,u<d&&(o=g,g=y,y=o,s=u,u=d,d=s),o=[],s=u+d,r=s;r--;)o.push(0);for(r=d;--r>=0;){for(t=0,i=u+r;i>r;)l=o[i]+y[r]*g[i-r-1]+t,o[i--]=l%yn|0,t=l/yn|0;o[i]=(o[i]+t)%yn|0}for(;!o[--s];)o.pop();return t?++n:o.shift(),e.d=o,e.e=n,Mt?kt(e,f.precision):e};Ce.toDecimalPlaces=Ce.todp=function(e,t){var n=this,r=n.constructor;return n=new r(n),e===void 0?n:(Fi(e,0,Gc),t===void 0?t=r.rounding:Fi(t,0,8),kt(n,e+tn(n)+1,t))};Ce.toExponential=function(e,t){var n,r=this,i=r.constructor;return e===void 0?n=Ds(r,!0):(Fi(e,0,Gc),t===void 0?t=i.rounding:Fi(t,0,8),r=kt(new i(r),e+1,t),n=Ds(r,!0,e+1)),n};Ce.toFixed=function(e,t){var n,r,i=this,o=i.constructor;return e===void 0?Ds(i):(Fi(e,0,Gc),t===void 0?t=o.rounding:Fi(t,0,8),r=kt(new o(i),e+tn(i)+1,t),n=Ds(r.abs(),!1,e+tn(r)+1),i.isneg()&&!i.isZero()?"-"+n:n)};Ce.toInteger=Ce.toint=function(){var e=this,t=e.constructor;return kt(new t(e),tn(e)+1,t.rounding)};Ce.toNumber=function(){return+this};Ce.toPower=Ce.pow=function(e){var t,n,r,i,o,s,l=this,u=l.constructor,d=12,p=+(e=new u(e));if(!e.s)return new u(jr);if(l=new u(l),!l.s){if(e.s<1)throw Error(Yr+"Infinity");return l}if(l.eq(jr))return l;if(r=u.precision,e.eq(jr))return kt(l,r);if(t=e.e,n=e.d.length-1,s=t>=n,o=l.s,s){if((n=p<0?-p:p)<=X8){for(i=new u(jr),t=Math.ceil(r/It+4),Mt=!1;n%2&&(i=i.times(l),RR(i.d,t)),n=Yc(n/2),n!==0;)l=l.times(l),RR(l.d,t);return Mt=!0,e.s<0?new u(jr).div(i):kt(i,r)}}else if(o<0)throw Error(Yr+"NaN");return o=o<0&&e.d[Math.max(t,n)]&1?-1:1,l.s=1,Mt=!1,i=e.times(Wd(l,r+d)),Mt=!0,i=J8(i),i.s=o,i};Ce.toPrecision=function(e,t){var n,r,i=this,o=i.constructor;return e===void 0?(n=tn(i),r=Ds(i,n<=o.toExpNeg||n>=o.toExpPos)):(Fi(e,1,Gc),t===void 0?t=o.rounding:Fi(t,0,8),i=kt(new o(i),e,t),n=tn(i),r=Ds(i,e<=n||n<=o.toExpNeg,e)),r};Ce.toSignificantDigits=Ce.tosd=function(e,t){var n=this,r=n.constructor;return e===void 0?(e=r.precision,t=r.rounding):(Fi(e,1,Gc),t===void 0?t=r.rounding:Fi(t,0,8)),kt(new r(n),e,t)};Ce.toString=Ce.valueOf=Ce.val=Ce.toJSON=Ce[Symbol.for("nodejs.util.inspect.custom")]=function(){var e=this,t=tn(e),n=e.constructor;return Ds(e,t<=n.toExpNeg||t>=n.toExpPos)};function Q8(e,t){var n,r,i,o,s,l,u,d,p=e.constructor,f=p.precision;if(!e.s||!t.s)return t.s||(t=new p(e)),Mt?kt(t,f):t;if(u=e.d,d=t.d,s=e.e,i=t.e,u=u.slice(),o=s-i,o){for(o<0?(r=u,o=-o,l=d.length):(r=d,i=s,l=u.length),s=Math.ceil(f/It),l=s>l?s+1:l+1,o>l&&(o=l,r.length=1),r.reverse();o--;)r.push(0);r.reverse()}for(l=u.length,o=d.length,l-o<0&&(o=l,r=d,d=u,u=r),n=0;o;)n=(u[--o]=u[o]+d[o]+n)/yn|0,u[o]%=yn;for(n&&(u.unshift(n),++i),l=u.length;u[--l]==0;)u.pop();return t.d=u,t.e=i,Mt?kt(t,f):t}function Fi(e,t,n){if(e!==~~e||e<t||e>n)throw Error(Ss+e)}function Ti(e){var t,n,r,i=e.length-1,o="",s=e[0];if(i>0){for(o+=s,t=1;t<i;t++)r=e[t]+"",n=It-r.length,n&&(o+=Za(n)),o+=r;s=e[t],r=s+"",n=It-r.length,n&&(o+=Za(n))}else if(s===0)return"0";for(;s%10===0;)s/=10;return o+s}var da=(function(){function e(r,i){var o,s=0,l=r.length;for(r=r.slice();l--;)o=r[l]*i+s,r[l]=o%yn|0,s=o/yn|0;return s&&r.unshift(s),r}function t(r,i,o,s){var l,u;if(o!=s)u=o>s?1:-1;else for(l=u=0;l<o;l++)if(r[l]!=i[l]){u=r[l]>i[l]?1:-1;break}return u}function n(r,i,o){for(var s=0;o--;)r[o]-=s,s=r[o]<i[o]?1:0,r[o]=s*yn+r[o]-i[o];for(;!r[0]&&r.length>1;)r.shift()}return function(r,i,o,s){var l,u,d,p,f,g,y,b,w,v,j,k,S,E,N,C,P,_,M=r.constructor,D=r.s==i.s?1:-1,B=r.d,F=i.d;if(!r.s)return new M(r);if(!i.s)throw Error(Yr+"Division by zero");for(u=r.e-i.e,P=F.length,N=B.length,y=new M(D),b=y.d=[],d=0;F[d]==(B[d]||0);)++d;if(F[d]>(B[d]||0)&&--u,o==null?k=o=M.precision:s?k=o+(tn(r)-tn(i))+1:k=o,k<0)return new M(0);if(k=k/It+2|0,d=0,P==1)for(p=0,F=F[0],k++;(d<N||p)&&k--;d++)S=p*yn+(B[d]||0),b[d]=S/F|0,p=S%F|0;else{for(p=yn/(F[0]+1)|0,p>1&&(F=e(F,p),B=e(B,p),P=F.length,N=B.length),E=P,w=B.slice(0,P),v=w.length;v<P;)w[v++]=0;_=F.slice(),_.unshift(0),C=F[0],F[1]>=yn/2&&++C;do p=0,l=t(F,w,P,v),l<0?(j=w[0],P!=v&&(j=j*yn+(w[1]||0)),p=j/C|0,p>1?(p>=yn&&(p=yn-1),f=e(F,p),g=f.length,v=w.length,l=t(f,w,g,v),l==1&&(p--,n(f,P<g?_:F,g))):(p==0&&(l=p=1),f=F.slice()),g=f.length,g<v&&f.unshift(0),n(w,f,v),l==-1&&(v=w.length,l=t(F,w,P,v),l<1&&(p++,n(w,P<v?_:F,v))),v=w.length):l===0&&(p++,w=[0]),b[d++]=p,l&&w[0]?w[v++]=B[E]||0:(w=[B[E]],v=1);while((E++<N||w[0]!==void 0)&&k--)}return b[0]||b.shift(),y.e=u,kt(y,s?o+tn(y)+1:o)}})();function J8(e,t){var n,r,i,o,s,l,u=0,d=0,p=e.constructor,f=p.precision;if(tn(e)>16)throw Error(sS+tn(e));if(!e.s)return new p(jr);for(Mt=!1,l=f,s=new p(.03125);e.abs().gte(.1);)e=e.times(s),d+=5;for(r=Math.log(ts(2,d))/Math.LN10*2+5|0,l+=r,n=i=o=new p(jr),p.precision=l;;){if(i=kt(i.times(e),l),n=n.times(++u),s=o.plus(da(i,n,l)),Ti(s.d).slice(0,l)===Ti(o.d).slice(0,l)){for(;d--;)o=kt(o.times(o),l);return p.precision=f,t==null?(Mt=!0,kt(o,f)):o}o=s}}function tn(e){for(var t=e.e*It,n=e.d[0];n>=10;n/=10)t++;return t}function a1(e,t,n){if(t>e.LN10.sd())throw Mt=!0,n&&(e.precision=n),Error(Yr+"LN10 precision limit exceeded");return kt(new e(e.LN10),t)}function Za(e){for(var t="";e--;)t+="0";return t}function Wd(e,t){var n,r,i,o,s,l,u,d,p,f=1,g=10,y=e,b=y.d,w=y.constructor,v=w.precision;if(y.s<1)throw Error(Yr+(y.s?"NaN":"-Infinity"));if(y.eq(jr))return new w(0);if(t==null?(Mt=!1,d=v):d=t,y.eq(10))return t==null&&(Mt=!0),a1(w,d);if(d+=g,w.precision=d,n=Ti(b),r=n.charAt(0),o=tn(y),Math.abs(o)<15e14){for(;r<7&&r!=1||r==1&&n.charAt(1)>3;)y=y.times(e),n=Ti(y.d),r=n.charAt(0),f++;o=tn(y),r>1?(y=new w("0."+n),o++):y=new w(r+"."+n.slice(1))}else return u=a1(w,d+2,v).times(o+""),y=Wd(new w(r+"."+n.slice(1)),d-g).plus(u),w.precision=v,t==null?(Mt=!0,kt(y,v)):y;for(l=s=y=da(y.minus(jr),y.plus(jr),d),p=kt(y.times(y),d),i=3;;){if(s=kt(s.times(p),d),u=l.plus(da(s,new w(i),d)),Ti(u.d).slice(0,d)===Ti(l.d).slice(0,d))return l=l.times(2),o!==0&&(l=l.plus(a1(w,d+2,v).times(o+""))),l=da(l,new w(f),d),w.precision=v,t==null?(Mt=!0,kt(l,v)):l;l=u,i+=2}}function IR(e,t){var n,r,i;for((n=t.indexOf("."))>-1&&(t=t.replace(".","")),(r=t.search(/e/i))>0?(n<0&&(n=r),n+=+t.slice(r+1),t=t.substring(0,r)):n<0&&(n=t.length),r=0;t.charCodeAt(r)===48;)++r;for(i=t.length;t.charCodeAt(i-1)===48;)--i;if(t=t.slice(r,i),t){if(i-=r,n=n-r-1,e.e=Yc(n/It),e.d=[],r=(n+1)%It,n<0&&(r+=It),r<i){for(r&&e.d.push(+t.slice(0,r)),i-=It;r<i;)e.d.push(+t.slice(r,r+=It));t=t.slice(r),r=It-t.length}else r-=i;for(;r--;)t+="0";if(e.d.push(+t),Mt&&(e.e>Dm||e.e<-Dm))throw Error(sS+n)}else e.s=0,e.e=0,e.d=[0];return e}function kt(e,t,n){var r,i,o,s,l,u,d,p,f=e.d;for(s=1,o=f[0];o>=10;o/=10)s++;if(r=t-s,r<0)r+=It,i=t,d=f[p=0];else{if(p=Math.ceil((r+1)/It),o=f.length,p>=o)return e;for(d=o=f[p],s=1;o>=10;o/=10)s++;r%=It,i=r-It+s}if(n!==void 0&&(o=ts(10,s-i-1),l=d/o%10|0,u=t<0||f[p+1]!==void 0||d%o,u=n<4?(l||u)&&(n==0||n==(e.s<0?3:2)):l>5||l==5&&(n==4||u||n==6&&(r>0?i>0?d/ts(10,s-i):0:f[p-1])%10&1||n==(e.s<0?8:7))),t<1||!f[0])return u?(o=tn(e),f.length=1,t=t-o-1,f[0]=ts(10,(It-t%It)%It),e.e=Yc(-t/It)||0):(f.length=1,f[0]=e.e=e.s=0),e;if(r==0?(f.length=p,o=1,p--):(f.length=p+1,o=ts(10,It-r),f[p]=i>0?(d/ts(10,s-i)%ts(10,i)|0)*o:0),u)for(;;)if(p==0){(f[0]+=o)==yn&&(f[0]=1,++e.e);break}else{if(f[p]+=o,f[p]!=yn)break;f[p--]=0,o=1}for(r=f.length;f[--r]===0;)f.pop();if(Mt&&(e.e>Dm||e.e<-Dm))throw Error(sS+tn(e));return e}function Z8(e,t){var n,r,i,o,s,l,u,d,p,f,g=e.constructor,y=g.precision;if(!e.s||!t.s)return t.s?t.s=-t.s:t=new g(e),Mt?kt(t,y):t;if(u=e.d,f=t.d,r=t.e,d=e.e,u=u.slice(),s=d-r,s){for(p=s<0,p?(n=u,s=-s,l=f.length):(n=f,r=d,l=u.length),i=Math.max(Math.ceil(y/It),l)+2,s>i&&(s=i,n.length=1),n.reverse(),i=s;i--;)n.push(0);n.reverse()}else{for(i=u.length,l=f.length,p=i<l,p&&(l=i),i=0;i<l;i++)if(u[i]!=f[i]){p=u[i]<f[i];break}s=0}for(p&&(n=u,u=f,f=n,t.s=-t.s),l=u.length,i=f.length-l;i>0;--i)u[l++]=0;for(i=f.length;i>s;){if(u[--i]<f[i]){for(o=i;o&&u[--o]===0;)u[o]=yn-1;--u[o],u[i]+=yn}u[i]-=f[i]}for(;u[--l]===0;)u.pop();for(;u[0]===0;u.shift())--r;return u[0]?(t.d=u,t.e=r,Mt?kt(t,y):t):new g(0)}function Ds(e,t,n){var r,i=tn(e),o=Ti(e.d),s=o.length;return t?(n&&(r=n-s)>0?o=o.charAt(0)+"."+o.slice(1)+Za(r):s>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(i<0?"e":"e+")+i):i<0?(o="0."+Za(-i-1)+o,n&&(r=n-s)>0&&(o+=Za(r))):i>=s?(o+=Za(i+1-s),n&&(r=n-i-1)>0&&(o=o+"."+Za(r))):((r=i+1)<s&&(o=o.slice(0,r)+"."+o.slice(r)),n&&(r=n-s)>0&&(i+1===s&&(o+="."),o+=Za(r))),e.s<0?"-"+o:o}function RR(e,t){if(e.length>t)return e.length=t,!0}function eB(e){var t,n,r;function i(o){var s=this;if(!(s instanceof i))return new i(o);if(s.constructor=i,o instanceof i){s.s=o.s,s.e=o.e,s.d=(o=o.d)?o.slice():o;return}if(typeof o=="number"){if(o*0!==0)throw Error(Ss+o);if(o>0)s.s=1;else if(o<0)o=-o,s.s=-1;else{s.s=0,s.e=0,s.d=[0];return}if(o===~~o&&o<1e7){s.e=0,s.d=[o];return}return IR(s,o.toString())}else if(typeof o!="string")throw Error(Ss+o);
485if(o.charCodeAt(0)===45?(o=o.slice(1),s.s=-1):s.s=1,Coe.test(o))IR(s,o);else throw Error(Ss+o)}if(i.prototype=Ce,i.ROUND_UP=0,i.ROUND_DOWN=1,i.ROUND_CEIL=2,i.ROUND_FLOOR=3,i.ROUND_HALF_UP=4,i.ROUND_HALF_DOWN=5,i.ROUND_HALF_EVEN=6,i.ROUND_HALF_CEIL=7,i.ROUND_HALF_FLOOR=8,i.clone=eB,i.config=i.set=Noe,e===void 0&&(e={}),e)for(r=["precision","rounding","toExpNeg","toExpPos","LN10"],t=0;t<r.length;)e.hasOwnProperty(n=r[t++])||(e[n]=this[n]);return i.config(e),i}function Noe(e){if(!e||typeof e!="object")throw Error(Yr+"Object expected");var t,n,r,i=["precision",1,Gc,"rounding",0,8,"toExpNeg",-1/0,0,"toExpPos",0,1/0];for(t=0;t<i.length;t+=3)if((r=e[n=i[t]])!==void 0)if(Yc(r)===r&&r>=i[t+1]&&r<=i[t+2])this[n]=r;else throw Error(Ss+n+": "+r);if((r=e[n="LN10"])!==void 0)if(r==Math.LN10)this[n]=new this(r);else throw Error(Ss+n+": "+r);return this}var lS=eB(Soe);jr=new lS(1);const jt=lS;function Toe(e){return _oe(e)||Ooe(e)||Poe(e)||Eoe()}function Eoe(){throw new TypeError(`Invalid attempt to spread non-iterable instance. 486In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Poe(e,t){if(e){if(typeof e=="string")return bj(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return bj(e,t)}}function Ooe(e){if(typeof Symbol<"u"&&Symbol.iterator in Object(e))return Array.from(e)}function _oe(e){if(Array.isArray(e))return bj(e)}function bj(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var Ioe=function(t){return t},tB={},nB=function(t){return t===tB},DR=function(t){return function n(){return arguments.length===0||arguments.length===1&&nB(arguments.length<=0?void 0:arguments[0])?n:t.apply(void 0,arguments)}},Roe=function e(t,n){return t===1?n:DR(function(){for(var r=arguments.length,i=new Array(r),o=0;o<r;o++)i[o]=arguments[o];var s=i.filter(function(l){return l!==tB}).length;return s>=t?n.apply(void 0,i):e(t-s,DR(function(){for(var l=arguments.length,u=new Array(l),d=0;d<l;d++)u[d]=arguments[d];var p=i.map(function(f){return nB(f)?u.shift():f});return n.apply(void 0,Toe(p).concat(u))}))})},iy=function(t){return Roe(t.length,t)},wj=function(t,n){for(var r=[],i=t;i<n;++i)r[i-t]=i;return r},Doe=iy(function(e,t){return Array.isArray(t)?t.map(e):Object.keys(t).map(function(n){return t[n]}).map(e)}),Moe=function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];if(!n.length)return Ioe;var i=n.reverse(),o=i[0],s=i.slice(1);return function(){return s.reduce(function(l,u){return u(l)},o.apply(void 0,arguments))}},jj=function(t){return Array.isArray(t)?t.reverse():t.split("").reverse.join("")},rB=function(t){var n=null,r=null;return function(){for(var i=arguments.length,o=new Array(i),s=0;s<i;s++)o[s]=arguments[s];return n&&o.every(function(l,u){return l===n[u]})||(n=o,r=t.apply(void 0,o)),r}};function Loe(e){var t;return e===0?t=1:t=Math.floor(new jt(e).abs().log(10).toNumber())+1,t}function Foe(e,t,n){for(var r=new jt(e),i=0,o=[];r.lt(t)&&i<1e5;)o.push(r.toNumber()),r=r.add(n),i++;return o}var Boe=iy(function(e,t,n){var r=+e,i=+t;return r+n*(i-r)}),zoe=iy(function(e,t,n){var r=t-+e;return r=r||1/0,(n-e)/r}),$oe=iy(function(e,t,n){var r=t-+e;return r=r||1/0,Math.max(0,Math.min(1,(n-e)/r))});const ay={rangeStep:Foe,getDigitCount:Loe,interpolateNumber:Boe,uninterpolateNumber:zoe,uninterpolateTruncation:$oe};function kj(e){return Uoe(e)||Woe(e)||iB(e)||qoe()}function qoe(){throw new TypeError(`Invalid attempt to spread non-iterable instance. 487In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Woe(e){if(typeof Symbol<"u"&&Symbol.iterator in Object(e))return Array.from(e)}function Uoe(e){if(Array.isArray(e))return Aj(e)}function Ud(e,t){return Goe(e)||Voe(e,t)||iB(e,t)||Hoe()}function Hoe(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. 488In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function iB(e,t){if(e){if(typeof e=="string")return Aj(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Aj(e,t)}}function Aj(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Voe(e,t){if(!(typeof Symbol>"u"||!(Symbol.iterator in Object(e)))){var n=[],r=!0,i=!1,o=void 0;try{for(var s=e[Symbol.iterator](),l;!(r=(l=s.next()).done)&&(n.push(l.value),!(t&&n.length===t));r=!0);}catch(u){i=!0,o=u}finally{try{!r&&s.return!=null&&s.return()}finally{if(i)throw o}}return n}}function Goe(e){if(Array.isArray(e))return e}function aB(e){var t=Ud(e,2),n=t[0],r=t[1],i=n,o=r;return n>r&&(i=r,o=n),[i,o]}
488function oB(e,t,n){if(e.lte(0))return new jt(0);var r=ay.getDigitCount(e.toNumber()),i=new jt(10).pow(r),o=e.div(i),s=r!==1?.05:.1,l=new jt(Math.ceil(o.div(s).toNumber())).add(n).mul(s),u=l.mul(i);return t?u:new jt(Math.ceil(u))}function Yoe(e,t,n){var r=1,i=new jt(e);if(!i.isint()&&n){var o=Math.abs(e);o<1?(r=new jt(10).pow(ay.getDigitCount(e)-1),i=new jt(Math.floor(i.div(r).toNumber())).mul(r)):o>1&&(i=new jt(Math.floor(e)))}else e===0?i=new jt(Math.floor((t-1)/2)):n||(i=new jt(Math.floor(e)));var s=Math.floor((t-1)/2),l=Moe(Doe(function(u){return i.add(new jt(u-s).mul(r)).toNumber()}),wj);return l(0,t)}function sB(e,t,n,r){var i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0;if(!Number.isFinite((t-e)/(n-1)))return{step:new jt(0),tickMin:new jt(0),tickMax:new jt(0)};var o=oB(new jt(t).sub(e).div(n-1),r,i),s;e<=0&&t>=0?s=new jt(0):(s=new jt(e).add(t).div(2),s=s.sub(new jt(s).mod(o)));var l=Math.ceil(s.sub(e).div(o).toNumber()),u=Math.ceil(new jt(t).sub(s).div(o).toNumber()),d=l+u+1;return d>n?sB(e,t,n,r,i+1):(d<n&&(u=t>0?u+(n-d):u,l=t>0?l:l+(n-d)),{step:o,tickMin:s.sub(new jt(l).mul(o)),tickMax:s.add(new jt(u).mul(o))})}function Koe(e){var t=Ud(e,2),n=t[0],r=t[1],i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,s=Math.max(i,2),l=aB([n,r]),u=Ud(l,2),d=u[0],p=u[1];if(d===-1/0||p===1/0){var f=p===1/0?[d].concat(kj(wj(0,i-1).map(function(){return 1/0}))):[].concat(kj(wj(0,i-1).map(function(){return-1/0})),[p]);return n>r?jj(f):f}if(d===p)return Yoe(d,i,o);var g=sB(d,p,s,o),y=g.step,b=g.tickMin,w=g.tickMax,v=ay.rangeStep(b,w.add(new jt(.1).mul(y)),y);return n>r?jj(v):v}function Xoe(e,t){var n=Ud(e,2),r=n[0],i=n[1],o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,s=aB([r,i]),l=Ud(s,2),u=l[0],d=l[1];if(u===-1/0||d===1/0)return[r,i];if(u===d)return[u];var p=Math.max(t,2),f=oB(new jt(d).sub(u).div(p-1),o,0),g=[].concat(kj(ay.rangeStep(new jt(u),new jt(d).sub(new jt(.99).mul(f)),f)),[d]);return r>i?jj(g):g}var Qoe=rB(Koe),Joe=rB(Xoe),Zoe="Invariant failed";function Ms(e,t){throw new Error(Zoe)}var ese=["offset","layout","width","dataKey","data","dataPointFormatter","xAxis","yAxis"];function yc(e){"@babel/helpers - typeof";return yc=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},yc(e)}function Mm(){return Mm=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},Mm.apply(this,arguments)}function tse(e,t){return ase(e)||ise(e,t)||rse(e,t)||nse()}function nse(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. 489In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function rse(e,t){if(e){if(typeof e=="string")return MR(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return MR(e,t)}}function MR(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function ise(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,i,o,s,l=[],u=!0,d=!1;try{if(o=(n=n.call(e)).next,t!==0)for(;!(u=(r=o.call(n)).done)&&(l.push(r.value),l.length!==t);u=!0);}catch(p){d=!0,i=p}finally{try{if(!u&&n.return!=null&&(s=n.return(),Object(s)!==s))return}finally{if(d)throw i}}return l}}function ase(e){if(Array.isArray(e))return e}function ose(e,t){if(e==null)return{};var n=sse(e,t),r,i;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i<o.length;i++)r=o[i],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function sse(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function lse(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function cse(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,uB(r.key),r)}}function use(e,t,n){return t&&cse(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function dse(e,t,n){return t=Lm(t),hse(e,lB()?Reflect.construct(t,n||[],Lm(e).constructor):t.apply(e,n))}function hse(e,t){if(t&&(yc(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return pse(e)}function pse(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function lB(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(lB=function(){return!!e})()}function Lm(e){return Lm=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},Lm(e)}function fse(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Sj(e,t)}
489function Sj(e,t){return Sj=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,i){return r.__proto__=i,r},Sj(e,t)}function cB(e,t,n){return t=uB(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function uB(e){var t=mse(e,"string");return yc(t)=="symbol"?t:t+""}function mse(e,t){if(yc(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(yc(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var Bh=(function(e){function t(){return lse(this,t),dse(this,t,arguments)}return fse(t,e),use(t,[{key:"render",value:function(){var r=this.props,i=r.offset,o=r.layout,s=r.width,l=r.dataKey,u=r.data,d=r.dataPointFormatter,p=r.xAxis,f=r.yAxis,g=ose(r,ese),y=Ke(g,!1);this.props.direction==="x"&&p.type!=="number"&&Ms();var b=u.map(function(w){var v=d(w,l),j=v.x,k=v.y,S=v.value,E=v.errorVal;if(!E)return null;var N=[],C,P;if(Array.isArray(E)){var _=tse(E,2);C=_[0],P=_[1]}else C=P=E;if(o==="vertical"){var M=p.scale,D=k+i,B=D+s,F=D-s,V=M(S-C),U=M(S+P);N.push({x1:U,y1:B,x2:U,y2:F}),N.push({x1:V,y1:D,x2:U,y2:D}),N.push({x1:V,y1:B,x2:V,y2:F})}else if(o==="horizontal"){var q=f.scale,Y=j+i,Z=Y-s,J=Y+s,ne=q(S-C),I=q(S+P);N.push({x1:Z,y1:I,x2:J,y2:I}),N.push({x1:Y,y1:ne,x2:Y,y2:I}),N.push({x1:Z,y1:ne,x2:J,y2:ne})}return W.createElement(Et,Mm({className:"recharts-errorBar",key:"bar-".concat(N.map(function(z){return"".concat(z.x1,"-").concat(z.x2,"-").concat(z.y1,"-").concat(z.y2)}))},y),N.map(function(z){return W.createElement("line",Mm({},z,{key:"line-".concat(z.x1,"-").concat(z.x2,"-").concat(z.y1,"-").concat(z.y2)}))}))});return W.createElement(Et,{className:"recharts-errorBars"},b)}}])})(W.Component);cB(Bh,"defaultProps",{stroke:"black",strokeWidth:1.5,width:5,offset:0,layout:"horizontal"});cB(Bh,"displayName","ErrorBar");function Hd(e){"@babel/helpers - typeof";return Hd=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Hd(e)}function LR(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function Xo(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?LR(Object(n),!0).forEach(function(r){gse(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):LR(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function gse(e,t,n){return t=yse(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function yse(e){var t=xse(e,"string");return Hd(t)=="symbol"?t:t+""}function xse(e,t){if(Hd(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Hd(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var dB=function(t){var n=t.children,r=t.formattedGraphicalItems,i=t.legendWidth,o=t.legendContent,s=wr(n,Wl);if(!s)return null;var l=Wl.defaultProps,u=l!==void 0?Xo(Xo({},l),s.props):{},d;return s.props&&s.props.payload?d=s.props&&s.props.payload:o==="children"?d=(r||[]).reduce(function(p,f){var g=f.item,y=f.props,b=y.sectors||y.data||[];return p.concat(b.map(function(w){return{type:s.props.iconType||g.props.legendType,value:w.name,color:w.fill,payload:w}}))},[]):d=(r||[]).map(function(p){var f=p.item,g=f.type.defaultProps,y=g!==void 0?Xo(Xo({},g),f.props):{},b=y.dataKey,w=y.name,v=y.legendType,j=y.hide;return{inactive:j,dataKey:b,type:u.iconType||v||"square",color:cS(f),value:w||b,payload:y}}),Xo(Xo(Xo({},u),Wl.getWithHeight(s,i)),{},{payload:d,item:s})};function Vd(e){"@babel/helpers - typeof";return Vd=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Vd(e)}function FR(e){return jse(e)||wse(e)||bse(e)||vse()}function vse(){throw new TypeError(`Invalid attempt to spread non-iterable instance. 490In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function bse(e,t){if(e){if(typeof e=="string")return Cj(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Cj(e,t)}}function wse(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function jse(e){if(Array.isArray(e))return Cj(e)}function Cj(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function BR(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function Ut(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};
490t%2?BR(Object(n),!0).forEach(function(r){Hl(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):BR(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function Hl(e,t,n){return t=kse(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function kse(e){var t=Ase(e,"string");return Vd(t)=="symbol"?t:t+""}function Ase(e,t){if(Vd(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Vd(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Jn(e,t,n){return Qe(e)||Qe(t)?n:cn(t)?Ur(e,t,n):Ge(t)?t(e):n}function md(e,t,n,r){var i=joe(e,function(l){return Jn(l,t)});if(n==="number"){var o=i.filter(function(l){return fe(l)||parseFloat(l)});return o.length?[ry(o),ho(o)]:[1/0,-1/0]}var s=r?i.filter(function(l){return!Qe(l)}):i;return s.map(function(l){return cn(l)||l instanceof Date?l:""})}var Sse=function(t){var n,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],i=arguments.length>2?arguments[2]:void 0,o=arguments.length>3?arguments[3]:void 0,s=-1,l=(n=r==null?void 0:r.length)!==null&&n!==void 0?n:0;if(l<=1)return 0;if(o&&o.axisType==="angleAxis"&&Math.abs(Math.abs(o.range[1]-o.range[0])-360)<=1e-6)for(var u=o.range,d=0;d<l;d++){var p=d>0?i[d-1].coordinate:i[l-1].coordinate,f=i[d].coordinate,g=d>=l-1?i[0].coordinate:i[d+1].coordinate,y=void 0;if(hi(f-p)!==hi(g-f)){var b=[];if(hi(g-f)===hi(u[1]-u[0])){y=g;var w=f+u[1]-u[0];b[0]=Math.min(w,(w+p)/2),b[1]=Math.max(w,(w+p)/2)}else{y=p;var v=g+u[1]-u[0];b[0]=Math.min(f,(v+f)/2),b[1]=Math.max(f,(v+f)/2)}var j=[Math.min(f,(y+f)/2),Math.max(f,(y+f)/2)];if(t>j[0]&&t<=j[1]||t>=b[0]&&t<=b[1]){s=i[d].index;break}}else{var k=Math.min(p,g),S=Math.max(p,g);if(t>(k+f)/2&&t<=(S+f)/2){s=i[d].index;break}}}else for(var E=0;E<l;E++)if(E===0&&t<=(r[E].coordinate+r[E+1].coordinate)/2||E>0&&E<l-1&&t>(r[E].coordinate+r[E-1].coordinate)/2&&t<=(r[E].coordinate+r[E+1].coordinate)/2||E===l-1&&t>(r[E].coordinate+r[E-1].coordinate)/2){s=r[E].index;break}return s},cS=function(t){var n,r=t,i=r.type.displayName,o=(n=t.type)!==null&&n!==void 0&&n.defaultProps?Ut(Ut({},t.type.defaultProps),t.props):t.props,s=o.stroke,l=o.fill,u;switch(i){case"Line":u=s;break;case"Area":case"Radar":u=s&&s!=="none"?s:l;break;default:u=l;break}return u},Cse=function(t){var n=t.barSize,r=t.totalSize,i=t.stackGroups,o=i===void 0?{}:i;if(!o)return{};for(var s={},l=Object.keys(o),u=0,d=l.length;u<d;u++)for(var p=o[l[u]].stackGroups,f=Object.keys(p),g=0,y=f.length;g<y;g++){var b=p[f[g]],w=b.items,v=b.cateAxisId,j=w.filter(function(P){return ca(P.type).indexOf("Bar")>=0});if(j&&j.length){var k=j[0].type.defaultProps,S=k!==void 0?Ut(Ut({},k),j[0].props):j[0].props,E=S.barSize,N=S[v];s[N]||(s[N]=[]);var C=Qe(E)?n:E;s[N].push({item:j[0],stackList:j.slice(1),barSize:Qe(C)?void 0:Rs(C,r,0)})}}return s},Nse=function(t){var n=t.barGap,r=t.barCategoryGap,i=t.bandSize,o=t.sizeList,s=o===void 0?[]:o,l=t.maxBarSize,u=s.length;if(u<1)return null;var d=Rs(n,i,0,!0),p,f=[];if(s[0].barSize===+s[0].barSize){var g=!1,y=i/u,b=s.reduce(function(E,N){return E+N.barSize||0},0);b+=(u-1)*d,b>=i&&(b-=(u-1)*d,d=0),b>=i&&y>0&&(g=!0,y*=.9,b=u*y);var w=(i-b)/2>>0,v={offset:w-d,size:0};p=s.reduce(function(E,N){var C={item:N.item,position:{offset:v.offset+v.size+d,size:g?y:N.barSize}},P=[].concat(FR(E),[C]);return v=P[P.length-1].position,N.stackList&&N.stackList.length&&N.stackList.forEach(function(_){P.push({item:_,position:v})}),P},f)}else{var j=Rs(r,i,0,!0);i-2*j-(u-1)*d<=0&&(d=0);var k=(i-2*j-(u-1)*d)/u;k>1&&(k>>=0);var S=l===+l?Math.min(k,l):k;p=s.reduce(function(E,N,C){var P=[].concat(FR(E),[{item:N.item,position:{offset:j+(k+d)*C+(k-S)/2,size:S}}]);return N.stackList&&N.stackList.length&&N.stackList.forEach(function(_){P.push({item:_,position:P[P.length-1].position})}),P},f)}return p},Tse=function(t,n,r,i){var o=r.children,s=r.width,l=r.margin,u=s-(l.left||0)-(l.right||0),d=dB({children:o,legendWidth:u});if(d){var p=i||{},f=p.width,g=p.height,y=d.align,b=d.verticalAlign,w=d.layout;if((w==="vertical"||w==="horizontal"&&b==="middle")&&y!=="center"&&fe(t[y]))return Ut(Ut({},t),{},Hl({},y,t[y]+(f||0)));if((w==="horizontal"||w==="vertical"&&y==="center")&&b!=="middle"&&fe(t[b]))return Ut(Ut({},t),{},Hl({},b,t[b]+(g||0)))}return t},Ese=function(t,n,r){return Qe(n)?!0:t==="horizontal"?n==="yAxis":t==="vertical"||r==="x"?n==="xAxis":r==="y"?n==="yAxis":!0},hB=function(t,n,r,i,o){var s=n.props.children,l=Hr(s,Bh).filter(function(d){return Ese(i,o,d.props.direction)});if(l&&l.length){var u=l.map(function(d){return d.props.dataKey});return t.reduce(function(d,p){var f=Jn(p,r);if(Qe(f))return d;var g=Array.isArray(f)?[ry(f),ho(f)]:[f,f],y=u.reduce(function(b,w){var v=Jn(p,w,0),j=g[0]-Math.abs(Array.isArray(v)?v[0]:v),k=g[1]+Math.abs(Array.isArray(v)?v[1]:v);return[Math.min(j,b[0]),Math.max(k,b[1])]},[1/0,-1/0]);return[Math.min(y[0],d[0]),Math.max(y[1],d[1])]},[1/0,-1/0])}return null},Pse=function(t,n,r,i,o){var s=n.map(function(l){return hB(t,l,r,o,i)}).filter(function(l){return!Qe(l)});return s&&s.length?s.reduce(function(l,u){return[Math.min(l[0],u[0]),Math.max(l[1],u[1])]},[1/0,-1/0]):null},pB=function(t,n,r,i,o){var s=n.map(function(u){var d=u.props.dataKey;return r==="number"&&d&&hB(t,u,d,i)||md(t,d,r,o)});if(r==="number")return s.reduce(function(u,d){return[Math.min(u[0],d[0]),Math.max(u[1],d[1])]},[1/0,-1/0]);var l={};return s.reduce(function(u,d){for(var p=0,f=d.length;p<f;p++)l[d[p]]||(l[d[p]]=!0,u.push(d[p]));return u},[])},fB=function(t,n){return t==="horizontal"&&n==="xAxis"||t==="vertical"&&n==="yAxis"||t==="centric"&&n==="angleAxis"||t==="radial"&&n==="radiusAxis"},mB=function(t,n,r,i){if(i)return t.map(function(u){return u.coordinate});var o,s,l=t.map(function(u){return u.coordinate===n&&(o=!0),u.coordinate===r&&(s=!0),u.coordinate});return o||l.push(n),s||l.push(r),l},sa=function(t,n,r){if(!t)return null;var i=t.scale,o=t.duplicateDomain,s=t.type,l=t.range,u=t.realScaleType==="scaleBand"?i.bandwidth()/2:2,d=(n||r)&&s==="category"&&i.bandwidth?i.bandwidth()/u:0;if(d=t.axisType==="angleAxis"&&(l==null?void 0:l.length)>=2?hi(l[0]-l[1])*2*d:d,n&&(t.ticks||t.niceTicks)){var p=(t.ticks||t.niceTicks).map(function(f){var g=o?o.indexOf(f):f;return{coordinate:i(g)+d,value:f,offset:d}});return p.filter(function(f){return!Wc(f.coordinate)})}return t.isCategorical&&t.categoricalDomain?t.categoricalDomain.map(function(f,g){return{coordinate:i(f)+d,value:f,index:g,offset:d}}
490):i.ticks&&!r?i.ticks(t.tickCount).map(function(f){return{coordinate:i(f)+d,value:f,offset:d}}):i.domain().map(function(f,g){return{coordinate:i(f)+d,value:o?o[f]:f,index:g,offset:d}})},o1=new WeakMap,kf=function(t,n){if(typeof n!="function")return t;o1.has(t)||o1.set(t,new WeakMap);var r=o1.get(t);if(r.has(n))return r.get(n);var i=function(){t.apply(void 0,arguments),n.apply(void 0,arguments)};return r.set(n,i),i},Ose=function(t,n,r){var i=t.scale,o=t.type,s=t.layout,l=t.axisType;if(i==="auto")return s==="radial"&&l==="radiusAxis"?{scale:Fd(),realScaleType:"band"}:s==="radial"&&l==="angleAxis"?{scale:Om(),realScaleType:"linear"}:o==="category"&&n&&(n.indexOf("LineChart")>=0||n.indexOf("AreaChart")>=0||n.indexOf("ComposedChart")>=0&&!r)?{scale:fd(),realScaleType:"point"}:o==="category"?{scale:Fd(),realScaleType:"band"}:{scale:Om(),realScaleType:"linear"};if(Is(i)){var u="scale".concat(Wg(i));return{scale:(AR[u]||fd)(),realScaleType:AR[u]?u:"point"}}return Ge(i)?{scale:i}:{scale:fd(),realScaleType:"point"}},zR=1e-4,_se=function(t){var n=t.domain();if(!(!n||n.length<=2)){var r=n.length,i=t.range(),o=Math.min(i[0],i[1])-zR,s=Math.max(i[0],i[1])+zR,l=t(n[0]),u=t(n[r-1]);(l<o||l>s||u<o||u>s)&&t.domain([n[0],n[r-1]])}},Ise=function(t,n){if(!t)return null;for(var r=0,i=t.length;r<i;r++)if(t[r].item===n)return t[r].position;return null},Rse=function(t,n){if(!n||n.length!==2||!fe(n[0])||!fe(n[1]))return t;var r=Math.min(n[0],n[1]),i=Math.max(n[0],n[1]),o=[t[0],t[1]];return(!fe(t[0])||t[0]<r)&&(o[0]=r),(!fe(t[1])||t[1]>i)&&(o[1]=i),o[0]>i&&(o[0]=i),o[1]<r&&(o[1]=r),o},Dse=function(t){var n=t.length;if(!(n<=0))for(var r=0,i=t[0].length;r<i;++r)for(var o=0,s=0,l=0;l<n;++l){var u=Wc(t[l][r][1])?t[l][r][0]:t[l][r][1];u>=0?(t[l][r][0]=o,t[l][r][1]=o+u,o=t[l][r][1]):(t[l][r][0]=s,t[l][r][1]=s+u,s=t[l][r][1])}},Mse=function(t){var n=t.length;if(!(n<=0))for(var r=0,i=t[0].length;r<i;++r)for(var o=0,s=0;s<n;++s){var l=Wc(t[s][r][1])?t[s][r][0]:t[s][r][1];l>=0?(t[s][r][0]=o,t[s][r][1]=o+l,o=t[s][r][1]):(t[s][r][0]=0,t[s][r][1]=0)}},Lse={sign:Dse,expand:bee,none:lc,silhouette:wee,wiggle:jee,positive:Mse},Fse=function(t,n,r){var i=n.map(function(l){return l.props.dataKey}),o=Lse[r],s=vee().keys(i).value(function(l,u){return+Jn(l,u,0)}).order(nj).offset(o);return s(t)},Bse=function(t,n,r,i,o,s){if(!t)return null;var l=s?n.reverse():n,u={},d=l.reduce(function(f,g){var y,b=(y=g.type)!==null&&y!==void 0&&y.defaultProps?Ut(Ut({},g.type.defaultProps),g.props):g.props,w=b.stackId,v=b.hide;if(v)return f;var j=b[r],k=f[j]||{hasStack:!1,stackGroups:{}};if(cn(w)){var S=k.stackGroups[w]||{numericAxisId:r,cateAxisId:i,items:[]};S.items.push(g),k.hasStack=!0,k.stackGroups[w]=S}else k.stackGroups[Uc("_stackId_")]={numericAxisId:r,cateAxisId:i,items:[g]};return Ut(Ut({},f),{},Hl({},j,k))},u),p={};return Object.keys(d).reduce(function(f,g){var y=d[g];if(y.hasStack){var b={};y.stackGroups=Object.keys(y.stackGroups).reduce(function(w,v){var j=y.stackGroups[v];return Ut(Ut({},w),{},Hl({},v,{numericAxisId:r,cateAxisId:i,items:j.items,stackedData:Fse(t,j.items,o)}))},b)}return Ut(Ut({},f),{},Hl({},g,y))},p)},zse=function(t,n){var r=n.realScaleType,i=n.type,o=n.tickCount,s=n.originalDomain,l=n.allowDecimals,u=r||n.scale;if(u!=="auto"&&u!=="linear")return null;if(o&&i==="number"&&s&&(s[0]==="auto"||s[1]==="auto")){var d=t.domain();if(!d.length)return null;var p=Qoe(d,o,l);return t.domain([ry(p),ho(p)]),{niceTicks:p}}if(o&&i==="number"){var f=t.domain(),g=Joe(f,o,l);return{niceTicks:g}}return null};function Fm(e){var t=e.axis,n=e.ticks,r=e.bandSize,i=e.entry,o=e.index,s=e.dataKey;if(t.type==="category"){if(!t.allowDuplicatedCategory&&t.dataKey&&!Qe(i[t.dataKey])){var l=um(n,"value",i[t.dataKey]);if(l)return l.coordinate+r/2}return n[o]?n[o].coordinate+r/2:null}var u=Jn(i,Qe(s)?t.dataKey:s);return Qe(u)?null:t.scale(u)}var $R=function(t){var n=t.axis,r=t.ticks,i=t.offset,o=t.bandSize,s=t.entry,l=t.index;if(n.type==="category")return r[l]?r[l].coordinate+i:null;var u=Jn(s,n.dataKey,n.domain[l]);return Qe(u)?null:n.scale(u)-o/2+i},$se=function(t){var n=t.numericAxis,r=n.scale.domain();if(n.type==="number"){var i=Math.min(r[0],r[1]),o=Math.max(r[0],r[1]);return i<=0&&o>=0?0:o<0?o:i}return r[0]},qse=function(t,n){var r,i=(r=t.type)!==null&&r!==void 0&&r.defaultProps?Ut(Ut({},t.type.defaultProps),t.props):t.props,o=i.stackId;if(cn(o)){var s=n[o];if(s){var l=s.items.indexOf(t);return l>=0?s.stackedData[l]:null}}return null},Wse=function(t){return t.reduce(function(n,r){return[ry(r.concat([n[0]]).filter(fe)),ho(r.concat([n[1]]).filter(fe))]},[1/0,-1/0])},gB=function(t,n,r){return Object.keys(t).reduce(function(i,o){var s=t[o],l=s.stackedData,u=l.reduce(function(d,p){var f=Wse(p.slice(n,r+1));return[Math.min(d[0],f[0]),Math.max(d[1],f[1])]},[1/0,-1/0]);return[Math.min(u[0],i[0]),Math.max(u[1],i[1])]},[1/0,-1/0]).map(function(i){return i===1/0||i===-1/0?0:i})},qR=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,WR=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,Nj=function(t,n,r){if(Ge(t))return t(n,r);if(!Array.isArray(t))return n;var i=[];
490if(fe(t[0]))i[0]=r?t[0]:Math.min(t[0],n[0]);else if(qR.test(t[0])){var o=+qR.exec(t[0])[1];i[0]=n[0]-o}else Ge(t[0])?i[0]=t[0](n[0]):i[0]=n[0];if(fe(t[1]))i[1]=r?t[1]:Math.max(t[1],n[1]);else if(WR.test(t[1])){var s=+WR.exec(t[1])[1];i[1]=n[1]+s}else Ge(t[1])?i[1]=t[1](n[1]):i[1]=n[1];return i},Bm=function(t,n,r){if(t&&t.scale&&t.scale.bandwidth){var i=t.scale.bandwidth();if(!r||i>0)return i}if(t&&n&&n.length>=2){for(var o=LA(n,function(f){return f.coordinate}),s=1/0,l=1,u=o.length;l<u;l++){var d=o[l],p=o[l-1];s=Math.min((d.coordinate||0)-(p.coordinate||0),s)}return s===1/0?0:s}return r?void 0:0},UR=function(t,n,r){return!t||!t.length||gc(t,Ur(r,"type.defaultProps.domain"))?n:t},yB=function(t,n){var r=t.type.defaultProps?Ut(Ut({},t.type.defaultProps),t.props):t.props,i=r.dataKey,o=r.name,s=r.unit,l=r.formatter,u=r.tooltipType,d=r.chartType,p=r.hide;return Ut(Ut({},Ke(t,!1)),{},{dataKey:i,unit:s,formatter:l,name:o||i,color:cS(t),value:Jn(n,i),type:u,payload:n,chartType:d,hide:p})};function Gd(e){"@babel/helpers - typeof";return Gd=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Gd(e)}function HR(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function VR(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?HR(Object(n),!0).forEach(function(r){Use(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):HR(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function Use(e,t,n){return t=Hse(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Hse(e){var t=Vse(e,"string");return Gd(t)=="symbol"?t:t+""}function Vse(e,t){if(Gd(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Gd(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var zm=Math.PI/180,Gse=function(t){return t*180/Math.PI},Pn=function(t,n,r,i){return{x:t+Math.cos(-zm*i)*r,y:n+Math.sin(-zm*i)*r}},Yse=function(t,n){var r=t.x,i=t.y,o=n.x,s=n.y;return Math.sqrt(Math.pow(r-o,2)+Math.pow(i-s,2))},Kse=function(t,n){var r=t.x,i=t.y,o=n.cx,s=n.cy,l=Yse({x:r,y:i},{x:o,y:s});if(l<=0)return{radius:l};var u=(r-o)/l,d=Math.acos(u);return i>s&&(d=2*Math.PI-d),{radius:l,angle:Gse(d),angleInRadian:d}},Xse=function(t){var n=t.startAngle,r=t.endAngle,i=Math.floor(n/360),o=Math.floor(r/360),s=Math.min(i,o);return{startAngle:n-s*360,endAngle:r-s*360}},Qse=function(t,n){var r=n.startAngle,i=n.endAngle,o=Math.floor(r/360),s=Math.floor(i/360),l=Math.min(o,s);return t+l*360},GR=function(t,n){var r=t.x,i=t.y,o=Kse({x:r,y:i},n),s=o.radius,l=o.angle,u=n.innerRadius,d=n.outerRadius;if(s<u||s>d)return!1;if(s===0)return!0;var p=Xse(n),f=p.startAngle,g=p.endAngle,y=l,b;if(f<=g){for(;y>g;)y-=360;for(;y<f;)y+=360;b=y>=f&&y<=g}else{for(;y>f;)y-=360;for(;y<g;)y+=360;b=y>=g&&y<=f}return b?VR(VR({},n),{},{radius:s,angle:Qse(y,n)}):null};function Yd(e){"@babel/helpers - typeof";return Yd=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Yd(e)}var Jse=["offset"];function Zse(e){return rle(e)||nle(e)||tle(e)||ele()}function ele(){throw new TypeError(`Invalid attempt to spread non-iterable instance. 491In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function tle(e,t){if(e){if(typeof e=="string")return Tj(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Tj(e,t)}}function nle(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function rle(e){if(Array.isArray(e))return Tj(e)}function Tj(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function ile(e,t){if(e==null)return{};var n=ale(e,t),r,i;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i<o.length;i++)r=o[i],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}
491function ale(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function YR(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function ln(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?YR(Object(n),!0).forEach(function(r){ole(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):YR(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function ole(e,t,n){return t=sle(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function sle(e){var t=lle(e,"string");return Yd(t)=="symbol"?t:t+""}function lle(e,t){if(Yd(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Yd(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Kd(){return Kd=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},Kd.apply(this,arguments)}var cle=function(t){var n=t.value,r=t.formatter,i=Qe(t.children)?n:t.children;return Ge(r)?r(i):i},ule=function(t,n){var r=hi(n-t),i=Math.min(Math.abs(n-t),360);return r*i},dle=function(t,n,r){var i=t.position,o=t.viewBox,s=t.offset,l=t.className,u=o,d=u.cx,p=u.cy,f=u.innerRadius,g=u.outerRadius,y=u.startAngle,b=u.endAngle,w=u.clockWise,v=(f+g)/2,j=ule(y,b),k=j>=0?1:-1,S,E;i==="insideStart"?(S=y+k*s,E=w):i==="insideEnd"?(S=b-k*s,E=!w):i==="end"&&(S=b+k*s,E=w),E=j<=0?E:!E;var N=Pn(d,p,v,S),C=Pn(d,p,v,S+(E?1:-1)*359),P="M".concat(N.x,",").concat(N.y,` 492 A`).concat(v,",").concat(v,",0,1,").concat(E?0:1,`, 493 `).concat(C.x,",").concat(C.y),_=Qe(t.id)?Uc("recharts-radial-line-"):t.id;return W.createElement("text",Kd({},r,{dominantBaseline:"central",className:nt("recharts-radial-bar-label",l)}),W.createElement("defs",null,W.createElement("path",{id:_,d:P})),W.createElement("textPath",{xlinkHref:"#".concat(_)},n))},hle=function(t){var n=t.viewBox,r=t.offset,i=t.position,o=n,s=o.cx,l=o.cy,u=o.innerRadius,d=o.outerRadius,p=o.startAngle,f=o.endAngle,g=(p+f)/2;if(i==="outside"){var y=Pn(s,l,d+r,g),b=y.x,w=y.y;return{x:b,y:w,textAnchor:b>=s?"start":"end",verticalAnchor:"middle"}}if(i==="center")return{x:s,y:l,textAnchor:"middle",verticalAnchor:"middle"};if(i==="centerTop")return{x:s,y:l,textAnchor:"middle",verticalAnchor:"start"};if(i==="centerBottom")return{x:s,y:l,textAnchor:"middle",verticalAnchor:"end"};var v=(u+d)/2,j=Pn(s,l,v,g),k=j.x,S=j.y;return{x:k,y:S,textAnchor:"middle",verticalAnchor:"middle"}},ple=function(t){var n=t.viewBox,r=t.parentViewBox,i=t.offset,o=t.position,s=n,l=s.x,u=s.y,d=s.width,p=s.height,f=p>=0?1:-1,g=f*i,y=f>0?"end":"start",b=f>0?"start":"end",w=d>=0?1:-1,v=w*i,j=w>0?"end":"start",k=w>0?"start":"end";if(o==="top"){var S={x:l+d/2,y:u-f*i,textAnchor:"middle",verticalAnchor:y};return ln(ln({},S),r?{height:Math.max(u-r.y,0),width:d}:{})}if(o==="bottom"){var E={x:l+d/2,y:u+p+g,textAnchor:"middle",verticalAnchor:b};return ln(ln({},E),r?{height:Math.max(r.y+r.height-(u+p),0),width:d}:{})}if(o==="left"){var N={x:l-v,y:u+p/2,textAnchor:j,verticalAnchor:"middle"};return ln(ln({},N),r?{width:Math.max(N.x-r.x,0),height:p}:{})}if(o==="right"){var C={x:l+d+v,y:u+p/2,textAnchor:k,verticalAnchor:"middle"};return ln(ln({},C),r?{width:Math.max(r.x+r.width-C.x,0),height:p}:{})}var P=r?{width:d,height:p}:{};return o==="insideLeft"?ln({x:l+v,y:u+p/2,textAnchor:k,verticalAnchor:"middle"},P):o==="insideRight"?ln({x:l+d-v,y:u+p/2,textAnchor:j,verticalAnchor:"middle"},P):o==="insideTop"?ln({x:l+d/2,y:u+g,textAnchor:"middle",verticalAnchor:b},P):o==="insideBottom"?ln({x:l+d/2,y:u+p-g,textAnchor:"middle",verticalAnchor:y},P):o==="insideTopLeft"?ln({x:l+v,y:u+g,textAnchor:k,verticalAnchor:b},P):o==="insideTopRight"?ln({x:l+d-v,y:u+g,textAnchor:j,verticalAnchor:b},P):o==="insideBottomLeft"?ln({x:l+v,y:u+p-g,textAnchor:k,verticalAnchor:y},P):o==="insideBottomRight"?ln({x:l+d-v,y:u+p-g,textAnchor:j,verticalAnchor:y},P):qc(o)&&(fe(o.x)||os(o.x))&&(fe(o.y)||os(o.y))?ln({x:l+Rs(o.x,d),y:u+Rs(o.y,p),textAnchor:"end",verticalAnchor:"end"},P):ln({x:l+d/2,y:u+p/2,textAnchor:"middle",verticalAnchor:"middle"},P)},fle=function(t){return"cx"in t&&fe(t.cx)};function zn(e){var t=e.offset,n=t===void 0?5:t,r=ile(e,Jse),i=ln({offset:n},r),o=i.viewBox,s=i.position,l=i.value,u=i.children,d=i.content,p=i.className,f=p===void 0?"":p,g=i.textBreakAll;if(!o||Qe(l)&&Qe(u)&&!O.isValidElement(d)&&!Ge(d))return null;if(O.isValidElement(d))return O.cloneElement(d,i);var y;if(Ge(d)){if(y=O.createElement(d,i),O.isValidElement(y))return y}else y=cle(i);var b=fle(o),w=Ke(i,!0);if(b&&(s==="insideStart"||s==="insideEnd"||s==="end"))return dle(i,y,w);var v=b?hle(i):ple(i);return W.createElement(km,Kd({className:nt("recharts-label",f)},w,v,{breakAll:g}),y)}zn.displayName="Label";var xB=function(t){var n=t.cx,r=t.cy,i=t.angle,o=t.startAngle,s=t.endAngle,l=t.r,u=t.radius,d=t.innerRadius,p=t.outerRadius,f=t.x,g=t.y,y=t.top,b=t.left,w=t.width,v=t.height,j=t.clockWise,k=t.labelViewBox;if(k)return k;if(fe(w)&&fe(v)){if(fe(f)&&fe(g))return{x:f,y:g,width:w,height:v};if(fe(y)&&fe(b))return{x:y,y:b,width:w,height:v}}return fe(f)&&fe(g)?{x:f,y:g,width:0,height:0}:fe(n)&&fe(r)?{cx:n,cy:r,startAngle:o||i||0,endAngle:s||i||0,innerRadius:d||0,outerRadius:p||u||l||0,clockWise:j}:t.viewBox?t.viewBox:{}},mle=function(t,n){return t?t===!0?W.createElement(zn,{key:"label-implicit",viewBox:n}):cn(t)?W.createElement(zn,{key:"label-implicit",viewBox:n,value:t}):O.isValidElement(t)?t.type===zn?O.cloneElement(t,{key:"label-implicit",viewBox:n}):W.createElement(zn,{key:"label-implicit",content:t,viewBox:n}):Ge(t)?W.createElement(zn,{key:"label-implicit",content:t,viewBox:n}):qc(t)?W.createElement(zn,Kd({viewBox:n},t,{key:"label-implicit"})):null:null},gle=function(t,n){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!t||!t.children&&r&&!t.label)return null;var i=t.children,o=xB(t),s=Hr(i,zn).map(function(u,d){return O.cloneElement(u,{viewBox:n||o,key:"label-".concat(d)})});if(!r)return s;var l=mle(t.label,n||o);return[l].concat(Zse(s))};zn.parseViewBox=xB;zn.renderCallByParent=gle;var s1,KR;function yle(){if(KR)return s1;KR=1;function e(t){var n=t==null?0:t.length;return n?t[n-1]:void 0}return s1=e,s1}var xle=yle();const vle=bt(xle);function Xd(e){"@babel/helpers - typeof";return Xd=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Xd(e)}var ble=["valueAccessor"],wle=["data","dataKey","clockWise","id","textBreakAll"];function jle(e){return Cle(e)||Sle(e)||Ale(e)||kle()}function kle(){throw new TypeError(`Invalid attempt to spread non-iterable instance. 494In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Ale(e,t){if(e){if(typeof e=="string")return Ej(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Ej(e,t)}}function Sle(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function Cle(e){if(Array.isArray(e))return Ej(e)}function Ej(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function $m(){return $m=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},$m.apply(this,arguments)}function XR(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function QR(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};
494t%2?XR(Object(n),!0).forEach(function(r){Nle(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):XR(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function Nle(e,t,n){return t=Tle(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Tle(e){var t=Ele(e,"string");return Xd(t)=="symbol"?t:t+""}function Ele(e,t){if(Xd(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Xd(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function JR(e,t){if(e==null)return{};var n=Ple(e,t),r,i;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i<o.length;i++)r=o[i],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Ple(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var Ole=function(t){return Array.isArray(t.value)?vle(t.value):t.value};function ha(e){var t=e.valueAccessor,n=t===void 0?Ole:t,r=JR(e,ble),i=r.data,o=r.dataKey,s=r.clockWise,l=r.id,u=r.textBreakAll,d=JR(r,wle);return!i||!i.length?null:W.createElement(Et,{className:"recharts-label-list"},i.map(function(p,f){var g=Qe(o)?n(p,f):Jn(p&&p.payload,o),y=Qe(l)?{}:{id:"".concat(l,"-").concat(f)};return W.createElement(zn,$m({},Ke(p,!0),d,y,{parentViewBox:p.parentViewBox,value:g,textBreakAll:u,viewBox:zn.parseViewBox(Qe(s)?p:QR(QR({},p),{},{clockWise:s})),key:"label-".concat(f),index:f}))}))}ha.displayName="LabelList";function _le(e,t){return e?e===!0?W.createElement(ha,{key:"labelList-implicit",data:t}):W.isValidElement(e)||Ge(e)?W.createElement(ha,{key:"labelList-implicit",data:t,content:e}):qc(e)?W.createElement(ha,$m({data:t},e,{key:"labelList-implicit"})):null:null}function Ile(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!e||!e.children&&n&&!e.label)return null;var r=e.children,i=Hr(r,ha).map(function(s,l){return O.cloneElement(s,{data:t,key:"labelList-".concat(l)})});if(!n)return i;var o=_le(e.label,t);return[o].concat(jle(i))}ha.renderCallByParent=Ile;function Qd(e){"@babel/helpers - typeof";return Qd=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Qd(e)}function Pj(){return Pj=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},Pj.apply(this,arguments)}function ZR(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function e4(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?ZR(Object(n),!0).forEach(function(r){Rle(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ZR(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function Rle(e,t,n){return t=Dle(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Dle(e){var t=Mle(e,"string");return Qd(t)=="symbol"?t:t+""}function Mle(e,t){if(Qd(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Qd(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var Lle=function(t,n){var r=hi(n-t),i=Math.min(Math.abs(n-t),359.999);return r*i},Af=function(t){var n=t.cx,r=t.cy,i=t.radius,o=t.angle,s=t.sign,l=t.isExternal,u=t.cornerRadius,d=t.cornerIsExternal,p=u*(l?1:-1)+i,f=Math.asin(u/p)/zm,g=d?o:o+s*f,y=Pn(n,r,p,g),b=Pn(n,r,i,g),w=d?o-s*f:o,v=Pn(n,r,p*Math.cos(f*zm),w);return{center:y,circleTangency:b,lineTangency:v,theta:f}},vB=function(t){var n=t.cx,r=t.cy,i=t.innerRadius,o=t.outerRadius,s=t.startAngle,l=t.endAngle,u=Lle(s,l),d=s+u,p=Pn(n,r,o,s),f=Pn(n,r,o,d),g="M ".concat(p.x,",").concat(p.y,` 495 A `).concat(o,",").concat(o,`,0, 496 `).concat(+(Math.abs(u)>180),",").concat(+(s>d),`, 497 `).concat(f.x,",").concat(f.y,` 498 `);if(i>0){var y=Pn(n,r,i,s),b=Pn(n,r,i,d);g+="L ".concat(b.x,",").concat(b.y,` 499 A `).concat(i,",").concat(i,`,0, 500 `).concat(+(Math.abs(u)>180),",").concat(+(s<=d),`, 501 `).concat(y.x,",").concat(y.y," Z")}else g+="L ".concat(n,",").concat(r," Z");return g},Fle=function(t){var n=t.cx,r=t.cy,i=t.innerRadius,o=t.outerRadius,s=t.cornerRadius,l=t.forceCornerRadius,u=t.cornerIsExternal,d=t.startAngle,p=t.endAngle,f
501=hi(p-d),g=Af({cx:n,cy:r,radius:o,angle:d,sign:f,cornerRadius:s,cornerIsExternal:u}),y=g.circleTangency,b=g.lineTangency,w=g.theta,v=Af({cx:n,cy:r,radius:o,angle:p,sign:-f,cornerRadius:s,cornerIsExternal:u}),j=v.circleTangency,k=v.lineTangency,S=v.theta,E=u?Math.abs(d-p):Math.abs(d-p)-w-S;if(E<0)return l?"M ".concat(b.x,",").concat(b.y,` 502 a`).concat(s,",").concat(s,",0,0,1,").concat(s*2,`,0 503 a`).concat(s,",").concat(s,",0,0,1,").concat(-s*2,`,0 504 `):vB({cx:n,cy:r,innerRadius:i,outerRadius:o,startAngle:d,endAngle:p});var N="M ".concat(b.x,",").concat(b.y,` 505 A`).concat(s,",").concat(s,",0,0,").concat(+(f<0),",").concat(y.x,",").concat(y.y,` 506 A`).concat(o,",").concat(o,",0,").concat(+(E>180),",").concat(+(f<0),",").concat(j.x,",").concat(j.y,` 507 A`).concat(s,",").concat(s,",0,0,").concat(+(f<0),",").concat(k.x,",").concat(k.y,` 508 `);if(i>0){var C=Af({cx:n,cy:r,radius:i,angle:d,sign:f,isExternal:!0,cornerRadius:s,cornerIsExternal:u}),P=C.circleTangency,_=C.lineTangency,M=C.theta,D=Af({cx:n,cy:r,radius:i,angle:p,sign:-f,isExternal:!0,cornerRadius:s,cornerIsExternal:u}),B=D.circleTangency,F=D.lineTangency,V=D.theta,U=u?Math.abs(d-p):Math.abs(d-p)-M-V;if(U<0&&s===0)return"".concat(N,"L").concat(n,",").concat(r,"Z");N+="L".concat(F.x,",").concat(F.y,` 509 A`).concat(s,",").concat(s,",0,0,").concat(+(f<0),",").concat(B.x,",").concat(B.y,` 510 A`).concat(i,",").concat(i,",0,").concat(+(U>180),",").concat(+(f>0),",").concat(P.x,",").concat(P.y,` 511 A`).concat(s,",").concat(s,",0,0,").concat(+(f<0),",").concat(_.x,",").concat(_.y,"Z")}else N+="L".concat(n,",").concat(r,"Z");return N},Ble={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},bB=function(t){var n=e4(e4({},Ble),t),r=n.cx,i=n.cy,o=n.innerRadius,s=n.outerRadius,l=n.cornerRadius,u=n.forceCornerRadius,d=n.cornerIsExternal,p=n.startAngle,f=n.endAngle,g=n.className;if(s<o||p===f)return null;var y=nt("recharts-sector",g),b=s-o,w=Rs(l,b,0,!0),v;return w>0&&Math.abs(p-f)<360?v=Fle({cx:r,cy:i,innerRadius:o,outerRadius:s,cornerRadius:Math.min(w,b/2),forceCornerRadius:u,cornerIsExternal:d,startAngle:p,endAngle:f}):v=vB({cx:r,cy:i,innerRadius:o,outerRadius:s,startAngle:p,endAngle:f}),W.createElement("path",Pj({},Ke(n,!0),{className:y,d:v,role:"img"}))};function Jd(e){"@babel/helpers - typeof";return Jd=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Jd(e)}function Oj(){return Oj=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},Oj.apply(this,arguments)}function t4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function n4(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?t4(Object(n),!0).forEach(function(r){zle(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):t4(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function zle(e,t,n){return t=$le(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function $le(e){var t=qle(e,"string");return Jd(t)=="symbol"?t:t+""}function qle(e,t){if(Jd(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Jd(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var r4={curveBasisClosed:lee,curveBasisOpen:cee,curveBasis:see,curveBumpX:GZ,curveBumpY:YZ,curveLinearClosed:uee,curveLinear:Hg,curveMonotoneX:dee,curveMonotoneY:hee,curveNatural:pee,curveStep:fee,curveStepAfter:gee,curveStepBefore:mee},Sf=function(t){return t.x===+t.x&&t.y===+t.y},Vu=function(t){return t.x},Gu=function(t){return t.y},Wle=function(t,n){if(Ge(t))return t;var r="curve".concat(Wg(t));return(r==="curveMonotone"||r==="curveBump")&&n?r4["".concat(r).concat(n==="vertical"?"Y":"X")]:r4[r]||Hg},Ule=function(t){var n=t.type,r=n===void 0?"linear":n,i=t.points,o=i===void 0?[]:i,s=t.baseLine,l=t.layout,u=t.connectNulls,d=u===void 0?!1:u,p=Wle(r,l),f=d?o.filter(function(w){return Sf(w)}):o,g;if(Array.isArray(s)){var y=d?s.filter(function(w){return Sf(w)}):s,b=f.map(function(w,v){return n4(n4({},w),{},{base:y[v]})});return l==="vertical"?g=gf().y(Gu).x1(Vu).x0(function(w){return w.base.x}):g=gf().x(Vu).y1(Gu).y0(function(w){return w.base.y}),g.defined(Sf).curve(p),g(b)}return l==="vertical"&&fe(s)?g=gf().y(Gu).x1(Vu).x0(s):fe(s)?g=gf().x(Vu).y1(Gu).y0(s):g=C6().x(Vu).y(Gu),g.defined(Sf).curve(p),g(f)},Vl=function(t){var n=t.className,r=t.points,i=t.path,o=t.pathRef;if((!r||!r.length)&&!i)return null;var s=r&&r.length?Ule(t):i;return O.createElement("path",Oj({},Ke(t,!1),dm(t),{className:nt("recharts-curve",n),d:s,ref:o}))},l1={exports:{}},c1,i4;function Hle(){if(i4)return c1;i4=1;var e="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";return c1=e,c1}var u1,a4;function Vle(){if(a4)return u1;a4=1;var e=Hle();function t(){}function n(){}return n.resetWarningCache=t,u1=function(){function r(s,l,u,d,p,f){if(f!==e){var g=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw g.name="Invariant Violation",g}}r.isRequired=r;function i(){return r}var o={array:r,bigint:r,bool:r,func:r,number:r,object:r,string:r,symbol:r,any:r,arrayOf:i,element:r,elementType:r,instanceOf:i,node:r,objectOf:i,oneOf:i,oneOfType:i,shape:i,exact:i,checkPropTypes:n,resetWarningCache:t};return o.PropTypes=o,o},u1}var o4;function Gle(){return o4||(o4=1,l1.exports=Vle()()),l1.exports}var Yle=Gle();const gt=bt(Yle),{getOwnPropertyNames:Kle,getOwnPropertySymbols:Xle}=Object,{hasOwnProperty:Qle}=Object.prototype;function d1(e,t){return function(r,i,o){return e(r,i,o)&&t(r,i,o)}}function Cf(e){return function(n,r,i){if(!n||!r||typeof n!="object"||typeof r!="object")return e(n,r,i);const{cache:o}=i,s=o.get(n),l=o.get(r);if(s&&l)return s===r&&l===n;o.set(n,r),o.set(r,n);const u=e(n,r,i);return o.delete(n),o.delete(r),u}}function Jle(e){return e!=null?e[Symbol.toStringTag]:void 0}function s4(e){return Kle(e).concat(Xle(e))}const Zle=Object.hasOwn||((e,t)=>Qle.call(e,t));function Gs(e,t){return e===t||!e&&!t&&e!==e&&t!==t}const ece="__v",tce="__o",nce="_owner",{getOwnPropertyDescriptor:l4,keys:c4}=Object;function rce(e,t){return e.byteLength===t.byteLength&&qm(new Uint8Array(e),new Uint8Array(t))}function ice(e,t,n){let r=e.length;if(t.length!==r)return!1;for(;r-- >0;)if(!n.equals(e[r],t[r],r,r,e,t,n))return!1;return!0}function ace(e,t){return e.byteLength===t.byteLength&&qm(new Uint8Array(e.buffer,e.byteOffset,e.byteLength),new Uint8Array(t.buffer,t.byteOffset,t.byteLength))}function oce(e,t){return Gs(e.getTime(),t.getTime())}function sce(e,t){return e.name===t.name&&e.message===t.message&&e.cause===t.cause&&e.stack===t.stack}function lce(e,t){return e===t}function u4(e,t,n){const r=e.size;if(r!==t.size)return!1;if(!r)return!0;const i=new Array(r),o=e.entries();let s,l,u=0;for(;(s=o.next())&&!s.done;){const d=t.entries();let p=!1,f=0;for(;(l=d.next())&&!l.done;){if(i[f]){f++;continue}const g=s.value,y=l.value;if(n.equals(g[0],y[0],u,f,e,t,n)&&n.equals(g[1],y[1],g[0],y[0],e,t,n)){p=i[f]=!0;break}f++}if(!p)return!1;u++}return!0}const cce=Gs;function uce(e,t,n){const r=c4(e);let i=r.length;if(c4(t).length!==i)return!1;for(;i-- >0;)if(!wB(e,t,n,r[i]))return!1;return!0}function Yu(e,t,n){const r=s4(e);let i=r.length;if(s4(t).length!==i)return!1;let o,s,l;for(;i-- >0;)if(o=r[i],!wB(e,t,n,o)||(s=l4(e,o),l=l4(t,o),(s||l)&&(!s||!l||s.configurable!==l.configurable||s.enumerable!==l.enumerable||s.writable!==l.writable)))return!1;return!0}function dce(e,t){return Gs(e.valueOf(),t.valueOf())}function hce(e,t){return e.source===t.source&&e.flags===t.flags}function d4(e,t,n){const r=e.size;if(r!==t.size)return!1;if(!r)return!0;const i=new Array(r),o=e.values();let s,l;for(;(s=o.next())&&!s.done;){const u=t.values();let d=!1,p=0;for(;(l=u.next())&&!l.done;){if(!i[p]&&n.equals(s.value,l.value,s.value,l.value,e,t,n)){d=i[p]=!0;break}p++}if(!d)return!1}return!0}function qm(e,t){let n=e.byteLength;if(t.byteLength!==n||e.byteOffset!==t.byteOffset)return!1;for(;n-- >0;)if(e[n]!==t[n])return!1;return!0}function pce(e,t){return e.hostname===t.hostname&&e.pathname===t.pathname&&e.protocol===t.protocol&&e.port===t.port&&e.hash===t.hash&&e.username===t.username&&e.password===t.password}function wB(e,t,n,r){return(r===nce||r===tce||r===ece)&&(e.$$typeof||t.$$typeof)?!0:Zle(t,r)&&n.equals(e[r],t[r],r,r,e,t,n)}const fce="[object ArrayBuffer]",mce="[object Arguments]",gce="[object Boolean]",yce="[object DataView]",xce="[object Date]",vce="[object Error]",bce="[object Map]",wce="[object Number]",jce="[object Object]",kce="[object RegExp]",Ace="[object Set]",Sce="[object String]",Cce={"[object Int8Array]":!0,"[object Uint8Array]":!0,"[object Uint8ClampedArray]":!0,"[object Int16Array]":!0,"[object Uint16Array]":!0,"[object Int32Array]":!0,"[object Uint32Array]":!0,"[object Float16Array]":!0,"[object Float32Array]":!0,"[object Float64Array
511]":!0,"[object BigInt64Array]":!0,"[object BigUint64Array]":!0},Nce="[object URL]",Tce=Object.prototype.toString;function Ece({areArrayBuffersEqual:e,areArraysEqual:t,areDataViewsEqual:n,areDatesEqual:r,areErrorsEqual:i,areFunctionsEqual:o,areMapsEqual:s,areNumbersEqual:l,areObjectsEqual:u,arePrimitiveWrappersEqual:d,areRegExpsEqual:p,areSetsEqual:f,areTypedArraysEqual:g,areUrlsEqual:y,unknownTagComparators:b}){return function(v,j,k){if(v===j)return!0;if(v==null||j==null)return!1;const S=typeof v;if(S!==typeof j)return!1;if(S!=="object")return S==="number"?l(v,j,k):S==="function"?o(v,j,k):!1;const E=v.constructor;if(E!==j.constructor)return!1;if(E===Object)return u(v,j,k);if(Array.isArray(v))return t(v,j,k);if(E===Date)return r(v,j,k);if(E===RegExp)return p(v,j,k);if(E===Map)return s(v,j,k);if(E===Set)return f(v,j,k);const N=Tce.call(v);if(N===xce)return r(v,j,k);if(N===kce)return p(v,j,k);if(N===bce)return s(v,j,k);if(N===Ace)return f(v,j,k);if(N===jce)return typeof v.then!="function"&&typeof j.then!="function"&&u(v,j,k);if(N===Nce)return y(v,j,k);if(N===vce)return i(v,j,k);if(N===mce)return u(v,j,k);if(Cce[N])return g(v,j,k);if(N===fce)return e(v,j,k);if(N===yce)return n(v,j,k);if(N===gce||N===wce||N===Sce)return d(v,j,k);if(b){let C=b[N];if(!C){const P=Jle(v);P&&(C=b[P])}if(C)return C(v,j,k)}return!1}}function Pce({circular:e,createCustomConfig:t,strict:n}){let r={areArrayBuffersEqual:rce,areArraysEqual:n?Yu:ice,areDataViewsEqual:ace,areDatesEqual:oce,areErrorsEqual:sce,areFunctionsEqual:lce,areMapsEqual:n?d1(u4,Yu):u4,areNumbersEqual:cce,areObjectsEqual:n?Yu:uce,arePrimitiveWrappersEqual:dce,areRegExpsEqual:hce,areSetsEqual:n?d1(d4,Yu):d4,areTypedArraysEqual:n?d1(qm,Yu):qm,areUrlsEqual:pce,unknownTagComparators:void 0};if(t&&(r=Object.assign({},r,t(r))),e){const i=Cf(r.areArraysEqual),o=Cf(r.areMapsEqual),s=Cf(r.areObjectsEqual),l=Cf(r.areSetsEqual);r=Object.assign({},r,{areArraysEqual:i,areMapsEqual:o,areObjectsEqual:s,areSetsEqual:l})}return r}function Oce(e){return function(t,n,r,i,o,s,l){return e(t,n,l)}}function _ce({circular:e,comparator:t,createState:n,equals:r,strict:i}){if(n)return function(l,u){const{cache:d=e?new WeakMap:void 0,meta:p}=n();return t(l,u,{cache:d,equals:r,meta:p,strict:i})};if(e)return function(l,u){return t(l,u,{cache:new WeakMap,equals:r,meta:void 0,strict:i})};const o={cache:void 0,equals:r,meta:void 0,strict:i};return function(l,u){return t(l,u,o)}}const Ice=No();No({strict:!0});No({circular:!0});No({circular:!0,strict:!0});No({createInternalComparator:()=>Gs});No({strict:!0,createInternalComparator:()=>Gs});No({circular:!0,createInternalComparator:()=>Gs});No({circular:!0,createInternalComparator:()=>Gs,strict:!0});function No(e={}){const{circular:t=!1,createInternalComparator:n,createState:r,strict:i=!1}=e,o=Pce(e),s=Ece(o),l=n?n(s):Oce(s);return _ce({circular:t,comparator:s,createState:r,equals:l,strict:i})}function Rce(e){typeof requestAnimationFrame<"u"&&requestAnimationFrame(e)}function h4(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=-1,r=function i(o){n<0&&(n=o),o-n>t?(e(o),n=-1):Rce(i)};requestAnimationFrame(r)}function _j(e){"@babel/helpers - typeof";return _j=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},_j(e)}function Dce(e){return Bce(e)||Fce(e)||Lce(e)||Mce()}function Mce(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. 512In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Lce(e,t){if(e){if(typeof e=="string")return p4(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return p4(e,t)}}function p4(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Fce(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function Bce(e){if(Array.isArray(e))return e}function zce(){var e={},t=function(){return null}
512,n=!1,r=function i(o){if(!n){if(Array.isArray(o)){if(!o.length)return;var s=o,l=Dce(s),u=l[0],d=l.slice(1);if(typeof u=="number"){h4(i.bind(null,d),u);return}i(u),h4(i.bind(null,d));return}_j(o)==="object"&&(e=o,t(e)),typeof o=="function"&&o()}};return{stop:function(){n=!0},start:function(o){n=!1,r(o)},subscribe:function(o){return t=o,function(){t=function(){return null}}}}}function Zd(e){"@babel/helpers - typeof";return Zd=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Zd(e)}function f4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function m4(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?f4(Object(n),!0).forEach(function(r){jB(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):f4(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function jB(e,t,n){return t=$ce(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function $ce(e){var t=qce(e,"string");return Zd(t)==="symbol"?t:String(t)}function qce(e,t){if(Zd(e)!=="object"||e===null)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Zd(r)!=="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var Wce=function(t,n){return[Object.keys(t),Object.keys(n)].reduce(function(r,i){return r.filter(function(o){return i.includes(o)})})},Uce=function(t){return t},Hce=function(t){return t.replace(/([A-Z])/g,function(n){return"-".concat(n.toLowerCase())})},gd=function(t,n){return Object.keys(n).reduce(function(r,i){return m4(m4({},r),{},jB({},i,t(i,n[i])))},{})},g4=function(t,n,r){return t.map(function(i){return"".concat(Hce(i)," ").concat(n,"ms ").concat(r)}).join(",")};function Vce(e,t){return Kce(e)||Yce(e,t)||kB(e,t)||Gce()}function Gce(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. 513In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Yce(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,i,o,s,l=[],u=!0,d=!1;try{if(o=(n=n.call(e)).next,t!==0)for(;!(u=(r=o.call(n)).done)&&(l.push(r.value),l.length!==t);u=!0);}catch(p){d=!0,i=p}finally{try{if(!u&&n.return!=null&&(s=n.return(),Object(s)!==s))return}finally{if(d)throw i}}return l}}function Kce(e){if(Array.isArray(e))return e}function Xce(e){return Zce(e)||Jce(e)||kB(e)||Qce()}function Qce(){throw new TypeError(`Invalid attempt to spread non-iterable instance. 514In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function kB(e,t){if(e){if(typeof e=="string")return Ij(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Ij(e,t)}}function Jce(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function Zce(e){if(Array.isArray(e))return Ij(e)}function Ij(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var Wm=1e-4,AB=function(t,n){return[0,3*t,3*n-6*t,3*t-3*n+1]},SB=function(t,n){return t.map(function(r,i){return r*Math.pow(n,i)}).reduce(function(r,i){return r+i})},y4=function(t,n){return function(r){var i=AB(t,n);return SB(i,r)}},eue=function(t,n){return function(r){var i=AB(t,n),o=[].concat(Xce(i.map(function(s,l){return s*l}).slice(1)),[0]);return SB(o,r)}},x4=function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];var i=n[0],o=n[1],s=n[2],l=n[3];if(n.length===1)switch(n[0]){case"linear":i=0,o=0,s=1,l=1;break;case"ease":i=.25,o=.1,s=.25,l=1;break;case"ease-in":i=.42,o=0,s=1,l=1;break;case"ease-out":i=.42,o=0,s=.58,l=1;break;case"ease-in-out":i=0,o=0,s=.58,l=1;break;default:{var u=n[0].split("(");if(u[0]==="cubic-bezier"&&u[1].split(")")[0].split(",").length===4){var d=u[1].split(")")[0].split(",").map(function(v){return parseFloat(v)}),p=Vce(d,4);i=p[0],o=p[1],s=p[2],l=p[3]}}}var f=y4(i,s),g=y4(o,l),y=eue(i,s),b=function(j){return j>1?1:j<0?0:j},w=function(j){for(var k=j>1?1:j,S=k,E=0;E<8;++E){var N=f(S)-k,C=y(S);
514if(Math.abs(N-k)<Wm||C<Wm)return g(S);S=b(S-N/C)}return g(S)};return w.isStepper=!1,w},tue=function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=t.stiff,r=n===void 0?100:n,i=t.damping,o=i===void 0?8:i,s=t.dt,l=s===void 0?17:s,u=function(p,f,g){var y=-(p-f)*r,b=g*o,w=g+(y-b)*l/1e3,v=g*l/1e3+p;return Math.abs(v-f)<Wm&&Math.abs(w)<Wm?[f,0]:[v,w]};return u.isStepper=!0,u.dt=l,u},nue=function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];var i=n[0];if(typeof i=="string")switch(i){case"ease":case"ease-in-out":case"ease-out":case"ease-in":case"linear":return x4(i);case"spring":return tue();default:if(i.split("(")[0]==="cubic-bezier")return x4(i)}return typeof i=="function"?i:null};function eh(e){"@babel/helpers - typeof";return eh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},eh(e)}function v4(e){return aue(e)||iue(e)||CB(e)||rue()}function rue(){throw new TypeError(`Invalid attempt to spread non-iterable instance. 515In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function iue(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function aue(e){if(Array.isArray(e))return Dj(e)}function b4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function Sn(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?b4(Object(n),!0).forEach(function(r){Rj(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):b4(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function Rj(e,t,n){return t=oue(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function oue(e){var t=sue(e,"string");return eh(t)==="symbol"?t:String(t)}function sue(e,t){if(eh(e)!=="object"||e===null)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(eh(r)!=="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function lue(e,t){return due(e)||uue(e,t)||CB(e,t)||cue()}function cue(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. 516In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function CB(e,t){if(e){if(typeof e=="string")return Dj(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Dj(e,t)}}function Dj(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function uue(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,i,o,s,l=[],u=!0,d=!1;try{if(o=(n=n.call(e)).next,t!==0)for(;!(u=(r=o.call(n)).done)&&(l.push(r.value),l.length!==t);u=!0);}catch(p){d=!0,i=p}finally{try{if(!u&&n.return!=null&&(s=n.return(),Object(s)!==s))return}finally{if(d)throw i}}return l}}function due(e){if(Array.isArray(e))return e}var Um=function(t,n,r){return t+(n-t)*r},Mj=function(t){var n=t.from,r=t.to;return n!==r},hue=function e(t,n,r){var i=gd(function(o,s){if(Mj(s)){var l=t(s.from,s.to,s.velocity),u=lue(l,2),d=u[0],p=u[1];return Sn(Sn({},s),{},{from:d,velocity:p})}return s},n);return r<1?gd(function(o,s){return Mj(s)?Sn(Sn({},s),{},{velocity:Um(s.velocity,i[o].velocity,r),from:Um(s.from,i[o].from,r)}):s},n):e(t,i,r-1)};const pue=(function(e,t,n,r,i){var o=Wce(e,t),s=o.reduce(function(v,j){return Sn(Sn({},v),{},Rj({},j,[e[j],t[j]]))},{}),l=o.reduce(function(v,j){return Sn(Sn({},v),{},Rj({},j,{from:e[j],velocity:0,to:t[j]}))},{}),u=-1,d,p,f=function(){return null},g=function(){return gd(function(j,k){return k.from},l)},y=function(){return!Object.values(l).filter(Mj).length},b=function(j){d||(d=j);var k=j-d,S=k/n.dt;l=hue(n,l,S),i(Sn(Sn(Sn({},e),t),g())),d=j,y()||(u=requestAnimationFrame(f))},w=function(j){p||(p=j);var k=(j-p)/r,S=gd(function(N,C){return Um.apply(void 0,v4(C).concat([n(k)]))},s);if(i(Sn(Sn(Sn({},e),t),S)),k<1)u=requestAnimationFrame(f);else{var E=gd(function(N,C){return Um.apply(void 0,v4(C).concat([n(1)])
vendor: 4,389 bytes, lines 516-517
516)},s);i(Sn(Sn(Sn({},e),t),E))}};return f=n.isStepper?b:w,function(){return requestAnimationFrame(f),function(){cancelAnimationFrame(u)}}});function xc(e){"@babel/helpers - typeof";return xc=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},xc(e)}var fue=["children","begin","duration","attributeName","easing","isActive","steps","from","to","canBegin","onAnimationEnd","shouldReAnimate","onAnimationReStart"];function mue(e,t){if(e==null)return{};var n=gue(e,t),r,i;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i<o.length;i++)r=o[i],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function gue(e,t){if(e==null)return{};var n={},r=Object.keys(e),i,o;for(o=0;o<r.length;o++)i=r[o],!(t.indexOf(i)>=0)&&(n[i]=e[i]);return n}function h1(e){return bue(e)||vue(e)||xue(e)||yue()}function yue(){throw new TypeError(`Invalid attempt to spread non-iterable instance. 517In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function xue(e,t){if(e){if(typeof e=="string")return Lj(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Lj(e,t)}}function vue(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function bue(e){if(Array.isArray(e))return Lj(e)}function Lj(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function w4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function ri(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?w4(Object(n),!0).forEach(function(r){sd(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):w4(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function sd(e,t,n){return t=NB(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function wue(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function jue(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,NB(r.key),r)}}function kue(e,t,n){return t&&jue(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function NB(e){var t=Aue(e,"string");return xc(t)==="symbol"?t:String(t)}function Aue(e,t){if(xc(e)!=="object"||e===null)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(xc(r)!=="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Sue(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Fj(e,t)}function Fj(e,t){return Fj=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,i){return r.__proto__=i,r},Fj(e,t)}function Cue(e){var t=Nue();return function(){var r=Hm(e),i;if(t){var o=Hm(this).constructor;i=Reflect.construct(r,arguments,o)}else i=r.apply(this,arguments);return Bj(this,i)}}function Bj(e,t){if(t&&(xc(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return zj(e)}function zj(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Nue(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Hm(e){return Hm=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},Hm(e)}
517var Bi=(function(e){Sue(n,e);var t=Cue(n);function n(r,i){var o;wue(this,n),o=t.call(this,r,i);var s=o.props,l=s.isActive,u=s.attributeName,d=s.from,p=s.to,f=s.steps,g=s.children,y=s.duration;if(o.handleStyleChange=o.handleStyleChange.bind(zj(o)),o.changeStyle=o.changeStyle.bind(zj(o)),!l||y<=0)return o.state={style:{}},typeof g=="function"&&(o.state={style:p}),Bj(o);if(f&&f.length)o.state={style:f[0].style};else if(d){if(typeof g=="function")return o.state={style:d},Bj(o);o.state={style:u?sd({},u,d):d}}else o.state={style:{}};return o}return kue(n,[{key:"componentDidMount",value:function(){var i=this.props,o=i.isActive,s=i.canBegin;this.mounted=!0,!(!o||!s)&&this.runAnimation(this.props)}},{key:"componentDidUpdate",value:function(i){var o=this.props,s=o.isActive,l=o.canBegin,u=o.attributeName,d=o.shouldReAnimate,p=o.to,f=o.from,g=this.state.style;if(l){if(!s){var y={style:u?sd({},u,p):p};this.state&&g&&(u&&g[u]!==p||!u&&g!==p)&&this.setState(y);return}if(!(Ice(i.to,p)&&i.canBegin&&i.isActive)){var b=!i.canBegin||!i.isActive;this.manager&&this.manager.stop(),this.stopJSAnimation&&this.stopJSAnimation();var w=b||d?f:i.to;if(this.state&&g){var v={style:u?sd({},u,w):w};(u&&g[u]!==w||!u&&g!==w)&&this.setState(v)}this.runAnimation(ri(ri({},this.props),{},{from:w,begin:0}))}}}},{key:"componentWillUnmount",value:function(){this.mounted=!1;var i=this.props.onAnimationEnd;this.unSubscribe&&this.unSubscribe(),this.manager&&(this.manager.stop(),this.manager=null),this.stopJSAnimation&&this.stopJSAnimation(),i&&i()}},{key:"handleStyleChange",value:function(i){this.changeStyle(i)}},{key:"changeStyle",value:function(i){this.mounted&&this.setState({style:i})}},{key:"runJSAnimation",value:function(i){var o=this,s=i.from,l=i.to,u=i.duration,d=i.easing,p=i.begin,f=i.onAnimationEnd,g=i.onAnimationStart,y=pue(s,l,nue(d),u,this.changeStyle),b=function(){o.stopJSAnimation=y()};this.manager.start([g,p,b,u,f])}},{key:"runStepAnimation",value:function(i){var o=this,s=i.steps,l=i.begin,u=i.onAnimationStart,d=s[0],p=d.style,f=d.duration,g=f===void 0?0:f,y=function(w,v,j){if(j===0)return w;var k=v.duration,S=v.easing,E=S===void 0?"ease":S,N=v.style,C=v.properties,P=v.onAnimationEnd,_=j>0?s[j-1]:v,M=C||Object.keys(N);if(typeof E=="function"||E==="spring")return[].concat(h1(w),[o.runJSAnimation.bind(o,{from:_.style,to:N,duration:k,easing:E}),k]);var D=g4(M,k,E),B=ri(ri(ri({},_.style),N),{},{transition:D});return[].concat(h1(w),[B,k,P]).filter(Uce)};return this.manager.start([u].concat(h1(s.reduce(y,[p,Math.max(g,l)])),[i.onAnimationEnd]))}},{key:"runAnimation",value:function(i){this.manager||(this.manager=zce());var o=i.begin,s=i.duration,l=i.attributeName,u=i.to,d=i.easing,p=i.onAnimationStart,f=i.onAnimationEnd,g=i.steps,y=i.children,b=this.manager;if(this.unSubscribe=b.subscribe(this.handleStyleChange),typeof d=="function"||typeof y=="function"||d==="spring"){this.runJSAnimation(i);return}if(g.length>1){this.runStepAnimation(i);return}var w=l?sd({},l,u):u,v=g4(Object.keys(w),s,d);b.start([p,o,ri(ri({},w),{},{transition:v}),s,f])}},{key:"render",value:function(){var i=this.props,o=i.children;i.begin;var s=i.duration;i.attributeName,i.easing;var l=i.isActive;i.steps,i.from,i.to,i.canBegin,i.onAnimationEnd,i.shouldReAnimate,i.onAnimationReStart;var u=mue(i,fue),d=O.Children.count(o),p=this.state.style;if(typeof o=="function")return o(p);if(!l||d===0||s<=0)return o;var f=function(y){var b=y.props,w=b.style,v=w===void 0?{}:w,j=b.className,k=O.cloneElement(y,ri(ri({},u),{},{style:ri(ri({},v),p),className:j}));return k};return d===1?f(O.Children.only(o)):W.createElement("div",null,O.Children.map(o,function(g){return f(g)}))}}]),n})(O.PureComponent);Bi.displayName="Animate";Bi.defaultProps={begin:0,duration:1e3,from:"",to:"",attributeName:"",easing:"ease",isActive:!0,canBegin:!0,steps:[],onAnimationEnd:function(){},onAnimationStart:function(){}};Bi.propTypes={from:gt.oneOfType([gt.object,gt.string]),to:gt.oneOfType([gt.object,gt.string]),attributeName:gt.string,duration:gt.number,begin:gt.number,easing:gt.oneOfType([gt.string,gt.func]),steps:gt.arrayOf(gt.shape({duration:gt.number.isRequired,style:gt.object.isRequired,easing:gt.oneOfType([gt.oneOf(["ease","ease-in","ease-out","ease-in-out","linear"]),gt.func]),properties:gt.arrayOf("string"),onAnimationEnd:gt.func})),children:gt.oneOfType([gt.node,gt.func]),isActive:gt.bool,canBegin:gt.bool,onAnimationEnd:gt.func,shouldReAnimate:gt.bool,onAnimationStart:gt.func,onAnimationReStart:gt.func};function th(e){"@babel/helpers - typeof";return th=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},th(e)}function Vm(){return Vm=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},Vm.apply(this,arguments)}function Tue(e,t){return _ue(e)||Oue(e,t)||Pue(e,t)||Eue()}
517function Eue(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. 518In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Pue(e,t){if(e){if(typeof e=="string")return j4(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return j4(e,t)}}function j4(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Oue(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,i,o,s,l=[],u=!0,d=!1;try{if(o=(n=n.call(e)).next,t!==0)for(;!(u=(r=o.call(n)).done)&&(l.push(r.value),l.length!==t);u=!0);}catch(p){d=!0,i=p}finally{try{if(!u&&n.return!=null&&(s=n.return(),Object(s)!==s))return}finally{if(d)throw i}}return l}}function _ue(e){if(Array.isArray(e))return e}function k4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function A4(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?k4(Object(n),!0).forEach(function(r){Iue(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):k4(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function Iue(e,t,n){return t=Rue(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Rue(e){var t=Due(e,"string");return th(t)=="symbol"?t:t+""}function Due(e,t){if(th(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(th(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var S4=function(t,n,r,i,o){var s=Math.min(Math.abs(r)/2,Math.abs(i)/2),l=i>=0?1:-1,u=r>=0?1:-1,d=i>=0&&r>=0||i<0&&r<0?1:0,p;if(s>0&&o instanceof Array){for(var f=[0,0,0,0],g=0,y=4;g<y;g++)f[g]=o[g]>s?s:o[g];p="M".concat(t,",").concat(n+l*f[0]),f[0]>0&&(p+="A ".concat(f[0],",").concat(f[0],",0,0,").concat(d,",").concat(t+u*f[0],",").concat(n)),p+="L ".concat(t+r-u*f[1],",").concat(n),f[1]>0&&(p+="A ".concat(f[1],",").concat(f[1],",0,0,").concat(d,`, 519 `).concat(t+r,",").concat(n+l*f[1])),p+="L ".concat(t+r,",").concat(n+i-l*f[2]),f[2]>0&&(p+="A ".concat(f[2],",").concat(f[2],",0,0,").concat(d,`, 520 `).concat(t+r-u*f[2],",").concat(n+i)),p+="L ".concat(t+u*f[3],",").concat(n+i),f[3]>0&&(p+="A ".concat(f[3],",").concat(f[3],",0,0,").concat(d,`, 521 `).concat(t,",").concat(n+i-l*f[3])),p+="Z"}else if(s>0&&o===+o&&o>0){var b=Math.min(s,o);p="M ".concat(t,",").concat(n+l*b,` 522 A `).concat(b,",").concat(b,",0,0,").concat(d,",").concat(t+u*b,",").concat(n,` 523 L `).concat(t+r-u*b,",").concat(n,` 524 A `).concat(b,",").concat(b,",0,0,").concat(d,",").concat(t+r,",").concat(n+l*b,` 525 L `).concat(t+r,",").concat(n+i-l*b,` 526 A `).concat(b,",").concat(b,",0,0,").concat(d,",").concat(t+r-u*b,",").concat(n+i,` 527 L `).concat(t+u*b,",").concat(n+i,` 528 A `).concat(b,",").concat(b,",0,0,").concat(d,",").concat(t,",").concat(n+i-l*b," Z")}else p="M ".concat(t,",").concat(n," h ").concat(r," v ").concat(i," h ").concat(-r," Z");return p},Mue=function(t,n){if(!t||!n)return!1;var r=t.x,i=t.y,o=n.x,s=n.y,l=n.width,u=n.height;if(Math.abs(l)>0&&Math.abs(u)>0){var d=Math.min(o,o+l),p=Math.max(o,o+l),f=Math.min(s,s+u),g=Math.max(s,s+u);return r>=d&&r<=p&&i>=f&&i<=g}return!1},Lue={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},uS=function(t){var n=A4(A4({},Lue),t),r=O.useRef(),i=O.useState(-1),o=Tue(i,2),s=o[0],l=o[1];O.useEffect(function(){if(r.current&&r.current.getTotalLength)try{var E=r.current.getTotalLength();E&&l(E)}catch{}},[]);var u=n.x,d=n.y,p=n.width,f=n.height,g=n.radius,y=n.className,b=n.animationEasing,w=n.animationDuration,v=n.animationBegin,j=n.isAnimationActive,k=n.isUpdateAnimationActive;if(u!==+u||d!==+d||p!==+p||f!==+f||p===0||f===0)return null;var S=nt("recharts-rectangle",y);return k?W.createElement(Bi,{canBegin:s>0,from:{width:p,height:f,x:u,y:d},to:{width:p,height:f,x:u,y:d},duration:w,animationEasing:b,isActive:k},function(E){var N=E.width,C=E.height,P=E.x,_=E.y;return W.createElement(Bi,{canBegin:s>0,from:"0px ".concat(s===-1?1:s,"px"),to:"".concat(s,"px 0px"),attributeName:"strokeDasharray",begin:v,duration:w,isActive:j,easing:b},W.createElement("path",Vm({},Ke(n,!0),{className:S,d:S4(P,_,N,C,g),ref:r})))}):W.createElement("path",Vm({},Ke(n,!0),{className:S,d:S4(u,d,p,f,g)}))};function $j(){return $j=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},$j.apply(this,arguments)}var oy=function(t){var n=t.cx,r=t.cy,i=t.r,o=t.className,s=nt("recharts-dot",o);return n===+n&&r===+r&&i===+i?O.createElement("circle",$j({},Ke(t,!1),dm(t),{className:s,cx:n,cy:r,r:i})):null};function nh(e){"@babel/helpers - typeof";return nh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},nh(e)}var Fue=["x","y","top","left","width","height","className"];function qj(){return qj=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},qj.apply(this,arguments)}function C4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function Bue(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};
528t%2?C4(Object(n),!0).forEach(function(r){zue(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):C4(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function zue(e,t,n){return t=$ue(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function $ue(e){var t=que(e,"string");return nh(t)=="symbol"?t:t+""}function que(e,t){if(nh(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(nh(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Wue(e,t){if(e==null)return{};var n=Uue(e,t),r,i;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i<o.length;i++)r=o[i],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Uue(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var Hue=function(t,n,r,i,o,s){return"M".concat(t,",").concat(o,"v").concat(i,"M").concat(s,",").concat(n,"h").concat(r)},Vue=function(t){var n=t.x,r=n===void 0?0:n,i=t.y,o=i===void 0?0:i,s=t.top,l=s===void 0?0:s,u=t.left,d=u===void 0?0:u,p=t.width,f=p===void 0?0:p,g=t.height,y=g===void 0?0:g,b=t.className,w=Wue(t,Fue),v=Bue({x:r,y:o,top:l,left:d,width:f,height:y},w);return!fe(r)||!fe(o)||!fe(f)||!fe(y)||!fe(l)||!fe(d)?null:W.createElement("path",qj({},Ke(v,!0),{className:nt("recharts-cross",b),d:Hue(r,o,f,y,l,d)}))},p1,N4;function Gue(){if(N4)return p1;N4=1;var e=K6(),t=e(Object.getPrototypeOf,Object);return p1=t,p1}var f1,T4;function Yue(){if(T4)return f1;T4=1;var e=wa(),t=Gue(),n=ja(),r="[object Object]",i=Function.prototype,o=Object.prototype,s=i.toString,l=o.hasOwnProperty,u=s.call(Object);function d(p){if(!n(p)||e(p)!=r)return!1;var f=t(p);if(f===null)return!0;var g=l.call(f,"constructor")&&f.constructor;return typeof g=="function"&&g instanceof g&&s.call(g)==u}return f1=d,f1}var Kue=Yue();const Xue=bt(Kue);var m1,E4;function Que(){if(E4)return m1;E4=1;var e=wa(),t=ja(),n="[object Boolean]";function r(i){return i===!0||i===!1||t(i)&&e(i)==n}return m1=r,m1}var Jue=Que();const Zue=bt(Jue);function rh(e){"@babel/helpers - typeof";return rh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},rh(e)}function Gm(){return Gm=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},Gm.apply(this,arguments)}function ede(e,t){return ide(e)||rde(e,t)||nde(e,t)||tde()}function tde(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. 529In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function nde(e,t){if(e){if(typeof e=="string")return P4(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return P4(e,t)}}function P4(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function rde(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,i,o,s,l=[],u=!0,d=!1;try{if(o=(n=n.call(e)).next,t!==0)for(;!(u=(r=o.call(n)).done)&&(l.push(r.value),l.length!==t);u=!0);}catch(p){d=!0,i=p}finally{try{if(!u&&n.return!=null&&(s=n.return(),Object(s)!==s))return}finally{if(d)throw i}}return l}}function ide(e){if(Array.isArray(e))return e}function O4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function _4(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};
529t%2?O4(Object(n),!0).forEach(function(r){ade(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):O4(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function ade(e,t,n){return t=ode(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ode(e){var t=sde(e,"string");return rh(t)=="symbol"?t:t+""}function sde(e,t){if(rh(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(rh(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var I4=function(t,n,r,i,o){var s=r-i,l;return l="M ".concat(t,",").concat(n),l+="L ".concat(t+r,",").concat(n),l+="L ".concat(t+r-s/2,",").concat(n+o),l+="L ".concat(t+r-s/2-i,",").concat(n+o),l+="L ".concat(t,",").concat(n," Z"),l},lde={x:0,y:0,upperWidth:0,lowerWidth:0,height:0,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},cde=function(t){var n=_4(_4({},lde),t),r=O.useRef(),i=O.useState(-1),o=ede(i,2),s=o[0],l=o[1];O.useEffect(function(){if(r.current&&r.current.getTotalLength)try{var S=r.current.getTotalLength();S&&l(S)}catch{}},[]);var u=n.x,d=n.y,p=n.upperWidth,f=n.lowerWidth,g=n.height,y=n.className,b=n.animationEasing,w=n.animationDuration,v=n.animationBegin,j=n.isUpdateAnimationActive;if(u!==+u||d!==+d||p!==+p||f!==+f||g!==+g||p===0&&f===0||g===0)return null;var k=nt("recharts-trapezoid",y);return j?W.createElement(Bi,{canBegin:s>0,from:{upperWidth:0,lowerWidth:0,height:g,x:u,y:d},to:{upperWidth:p,lowerWidth:f,height:g,x:u,y:d},duration:w,animationEasing:b,isActive:j},function(S){var E=S.upperWidth,N=S.lowerWidth,C=S.height,P=S.x,_=S.y;return W.createElement(Bi,{canBegin:s>0,from:"0px ".concat(s===-1?1:s,"px"),to:"".concat(s,"px 0px"),attributeName:"strokeDasharray",begin:v,duration:w,easing:b},W.createElement("path",Gm({},Ke(n,!0),{className:k,d:I4(P,_,E,N,C),ref:r})))}):W.createElement("g",null,W.createElement("path",Gm({},Ke(n,!0),{className:k,d:I4(u,d,p,f,g)})))},ude=["option","shapeType","propTransformer","activeClassName","isActive"];function ih(e){"@babel/helpers - typeof";return ih=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ih(e)}function dde(e,t){if(e==null)return{};var n=hde(e,t),r,i;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i<o.length;i++)r=o[i],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function hde(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function R4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function Ym(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?R4(Object(n),!0).forEach(function(r){pde(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):R4(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function pde(e,t,n){return t=fde(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function fde(e){var t=mde(e,"string");return ih(t)=="symbol"?t:t+""}function mde(e,t){if(ih(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(ih(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function gde(e,t){return Ym(Ym({},t),e)}function yde(e,t){return e==="symbols"}function D4(e){var t=e.shapeType,n=e.elementProps;switch(t){case"rectangle":return W.createElement(uS,n);case"trapezoid":return W.createElement(cde,n);case"sector":return W.createElement(bB,n);case"symbols":if(yde(t))return W.createElement(EA,n);break;default:return null}}function xde(e){return O.isValidElement(e)?e.props:e}function vde(e){var t=e.option,n=e.shapeType,r=e.propTransformer,i=r===void 0?gde:r,o=e.activeClassName,s=o===void 0?"recharts-active-shape":o,l=e.isActive,u=dde(e,ude),d;if(O.isValidElement(t))d=O.cloneElement(t,Ym(Ym({},u),xde(t)));else if(Ge(t))d=t(u);else if(Xue(t)&&!Zue(t)){var p=i(t,u);d=W.createElement(D4,{shapeType:n,elementProps:p})}else{var f=u;d=W.createElement(D4,{shapeType:n,elementProps:f})}return l?W.createElement(Et,{className:s},d):d}function sy(e,t){return t!=null&&"trapezoids"in e.props}function ly(e,t){return t!=null&&"sectors"in e.props}function ah(e,t){return t!=null&&"points"in e.props}function bde(e,t){var n,r,i=e.x===(t==null||(n=t.labelViewBox)===null||n===void 0?void 0:n.x)||e.x===t.x,o=e.
529y===(t==null||(r=t.labelViewBox)===null||r===void 0?void 0:r.y)||e.y===t.y;return i&&o}function wde(e,t){var n=e.endAngle===t.endAngle,r=e.startAngle===t.startAngle;return n&&r}function jde(e,t){var n=e.x===t.x,r=e.y===t.y,i=e.z===t.z;return n&&r&&i}function kde(e,t){var n;return sy(e,t)?n=bde:ly(e,t)?n=wde:ah(e,t)&&(n=jde),n}function Ade(e,t){var n;return sy(e,t)?n="trapezoids":ly(e,t)?n="sectors":ah(e,t)&&(n="points"),n}function Sde(e,t){if(sy(e,t)){var n;return(n=t.tooltipPayload)===null||n===void 0||(n=n[0])===null||n===void 0||(n=n.payload)===null||n===void 0?void 0:n.payload}if(ly(e,t)){var r;return(r=t.tooltipPayload)===null||r===void 0||(r=r[0])===null||r===void 0||(r=r.payload)===null||r===void 0?void 0:r.payload}return ah(e,t)?t.payload:{}}function Cde(e){var t=e.activeTooltipItem,n=e.graphicalItem,r=e.itemData,i=Ade(n,t),o=Sde(n,t),s=r.filter(function(u,d){var p=gc(o,u),f=n.props[i].filter(function(b){var w=kde(n,t);return w(b,t)}),g=n.props[i].indexOf(f[f.length-1]),y=d===g;return p&&y}),l=r.indexOf(s[s.length-1]);return l}var g1,M4;function Nde(){if(M4)return g1;M4=1;var e=Math.ceil,t=Math.max;function n(r,i,o,s){for(var l=-1,u=t(e((i-r)/(o||1)),0),d=Array(u);u--;)d[s?u:++l]=r,r+=o;return d}return g1=n,g1}var y1,L4;function TB(){if(L4)return y1;L4=1;var e=d8(),t=1/0,n=17976931348623157e292;function r(i){if(!i)return i===0?i:0;if(i=e(i),i===t||i===-t){var o=i<0?-1:1;return o*n}return i===i?i:0}return y1=r,y1}var x1,F4;function Tde(){if(F4)return x1;F4=1;var e=Nde(),t=Kg(),n=TB();function r(i){return function(o,s,l){return l&&typeof l!="number"&&t(o,s,l)&&(s=l=void 0),o=n(o),s===void 0?(s=o,o=0):s=n(s),l=l===void 0?o<s?1:-1:n(l),e(o,s,l,i)}}return x1=r,x1}var v1,B4;function Ede(){if(B4)return v1;B4=1;var e=Tde(),t=e();return v1=t,v1}var Pde=Ede();const Km=bt(Pde);function oh(e){"@babel/helpers - typeof";return oh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},oh(e)}function z4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function $4(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?z4(Object(n),!0).forEach(function(r){EB(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):z4(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function EB(e,t,n){return t=Ode(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ode(e){var t=_de(e,"string");return oh(t)=="symbol"?t:t+""}function _de(e,t){if(oh(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(oh(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var Ide=["Webkit","Moz","O","ms"],Rde=function(t,n){var r=t.replace(/(\w)/,function(o){return o.toUpperCase()}),i=Ide.reduce(function(o,s){return $4($4({},o),{},EB({},s+r,n))},{});return i[t]=n,i};function vc(e){"@babel/helpers - typeof";return vc=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},vc(e)}function Xm(){return Xm=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},Xm.apply(this,arguments)}function q4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function b1(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};
529t%2?q4(Object(n),!0).forEach(function(r){br(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):q4(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function Dde(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function W4(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,OB(r.key),r)}}function Mde(e,t,n){return t&&W4(e.prototype,t),n&&W4(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function Lde(e,t,n){return t=Qm(t),Fde(e,PB()?Reflect.construct(t,n||[],Qm(e).constructor):t.apply(e,n))}function Fde(e,t){if(t&&(vc(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Bde(e)}function Bde(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function PB(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(PB=function(){return!!e})()}function Qm(e){return Qm=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},Qm(e)}function zde(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Wj(e,t)}function Wj(e,t){return Wj=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,i){return r.__proto__=i,r},Wj(e,t)}function br(e,t,n){return t=OB(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function OB(e){var t=$de(e,"string");return vc(t)=="symbol"?t:t+""}function $de(e,t){if(vc(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(vc(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var qde=function(t){var n=t.data,r=t.startIndex,i=t.endIndex,o=t.x,s=t.width,l=t.travellerWidth;if(!n||!n.length)return{};var u=n.length,d=fd().domain(Km(0,u)).range([o,o+s-l]),p=d.domain().map(function(f){return d(f)});return{isTextActive:!1,isSlideMoving:!1,isTravellerMoving:!1,isTravellerFocused:!1,startX:d(r),endX:d(i),scale:d,scaleValues:p}},U4=function(t){return t.changedTouches&&!!t.changedTouches.length},bc=(function(e){function t(n){var r;return Dde(this,t),r=Lde(this,t,[n]),br(r,"handleDrag",function(i){r.leaveTimer&&(clearTimeout(r.leaveTimer),r.leaveTimer=null),r.state.isTravellerMoving?r.handleTravellerMove(i):r.state.isSlideMoving&&r.handleSlideDrag(i)}),br(r,"handleTouchMove",function(i){i.changedTouches!=null&&i.changedTouches.length>0&&r.handleDrag(i.changedTouches[0])}),br(r,"handleDragEnd",function(){r.setState({isTravellerMoving:!1,isSlideMoving:!1},function(){var i=r.props,o=i.endIndex,s=i.onDragEnd,l=i.startIndex;s==null||s({endIndex:o,startIndex:l})}),r.detachDragEndListener()}),br(r,"handleLeaveWrapper",function(){(r.state.isTravellerMoving||r.state.isSlideMoving)&&(r.leaveTimer=window.setTimeout(r.handleDragEnd,r.props.leaveTimeOut))}),br(r,"handleEnterSlideOrTraveller",function(){r.setState({isTextActive:!0})}),br(r,"handleLeaveSlideOrTraveller",function(){r.setState({isTextActive:!1})}),br(r,"handleSlideDragStart",function(i){var o=U4(i)?i.changedTouches[0]:i;r.setState({isTravellerMoving:!1,isSlideMoving:!0,slideMoveStartX:o.pageX}),r.attachDragEndListener()}),r.travellerDragStartHandlers={startX:r.handleTravellerDragStart.bind(r,"startX"),endX:r.handleTravellerDragStart.bind(r,"endX")},r.state={},r}return zde(t,e),Mde(t,[{key:"componentWillUnmount",value:function(){this.leaveTimer&&(clearTimeout(this.leaveTimer),this.leaveTimer=null),this.detachDragEndListener()}},{key:"getIndex",value:function(r){var i=r.startX,o=r.endX,s=this.state.scaleValues,l=this.props,u=l.gap,d=l.data,p=d.length-1,f=Math.min(i,o),g=Math.max(i,o),y=t.getIndexInRange(s,f),b=t.getIndexInRange(s,g);return{startIndex:y-y%u,endIndex:b===p?p:b-b%u}}},{key:"getTextOfTick",value:function(r){var i=this.props,o=i.data,s=i.tickFormatter,l=i.dataKey,u=Jn(o[r],l,r);return Ge(s)?s(u,r):u}},{key:"attachDragEndListener",value:function(){window.addEventListener("mouseup",this.handleDragEnd,!0),window.addEventListener("touchend",this.handleDragEnd,!0),window.addEventListener("mousemove",this.handleDrag,!0)}},{key:"detachDragEndListener",value:function(){window.removeEventListener("mouseup",this.handleDragEnd,!0),window.removeEventListener("touchend",this.handleDragEnd,!0),window.removeEventListener("mousemove",this.handleDrag,!0)}},{key:"handleSlideDrag",value:function(r){var i=this.state,o=i.slideMoveStartX,s=i.startX,l=i.endX,u=this.props,d=u.x,p=u.width,f=u.travellerWidth,g=u.startIndex,y=u.endIndex,b=u.onChange,w=r.pageX-o;w>0?w=Math.min(w,d+p-f-l,d+p-f-s):w<0&&(w=Math.max(w,d-s,d-l));var v=this.getIndex({startX:s+w,endX:l+w});(v.startIndex!==g||v.endIndex!==y)&&b&&b(v),this.setState({startX:s+w,endX:l+w,slideMoveStartX:r.pageX})}},{key:"handleTravellerDragStart",value:function(r,i){var o=U4(i)?i.changedTouches[0]:i;this.setState({isSlideMoving:!1,isTravellerMoving:!0,movingTravellerId:r,brushMoveStartX:o.pageX}),this.attachDragEndListener()}},{key:"handleTravellerMove",value:function(r){var i=this.state,o=i.brushMoveStartX,s=i.movingTravellerId,l=i.endX,u=i.startX,d=this.state[s],p=this.props,f=p.x,g=p.width,y=p.travellerWidth,b=p.onChange,w=p.gap,v=p.data,j={startX:this.state.startX,endX:this.state.endX},k=r.pageX-o;k>
5290?k=Math.min(k,f+g-y-d):k<0&&(k=Math.max(k,f-d)),j[s]=d+k;var S=this.getIndex(j),E=S.startIndex,N=S.endIndex,C=function(){var _=v.length-1;return s==="startX"&&(l>u?E%w===0:N%w===0)||l<u&&N===_||s==="endX"&&(l>u?N%w===0:E%w===0)||l>u&&N===_};this.setState(br(br({},s,d+k),"brushMoveStartX",r.pageX),function(){b&&C()&&b(S)})}},{key:"handleTravellerMoveKeyboard",value:function(r,i){var o=this,s=this.state,l=s.scaleValues,u=s.startX,d=s.endX,p=this.state[i],f=l.indexOf(p);if(f!==-1){var g=f+r;if(!(g===-1||g>=l.length)){var y=l[g];i==="startX"&&y>=d||i==="endX"&&y<=u||this.setState(br({},i,y),function(){o.props.onChange(o.getIndex({startX:o.state.startX,endX:o.state.endX}))})}}}},{key:"renderBackground",value:function(){var r=this.props,i=r.x,o=r.y,s=r.width,l=r.height,u=r.fill,d=r.stroke;return W.createElement("rect",{stroke:d,fill:u,x:i,y:o,width:s,height:l})}},{key:"renderPanorama",value:function(){var r=this.props,i=r.x,o=r.y,s=r.width,l=r.height,u=r.data,d=r.children,p=r.padding,f=O.Children.only(d);return f?W.cloneElement(f,{x:i,y:o,width:s,height:l,margin:p,compact:!0,data:u}):null}},{key:"renderTravellerLayer",value:function(r,i){var o,s,l=this,u=this.props,d=u.y,p=u.travellerWidth,f=u.height,g=u.traveller,y=u.ariaLabel,b=u.data,w=u.startIndex,v=u.endIndex,j=Math.max(r,this.props.x),k=b1(b1({},Ke(this.props,!1)),{},{x:j,y:d,width:p,height:f}),S=y||"Min value: ".concat((o=b[w])===null||o===void 0?void 0:o.name,", Max value: ").concat((s=b[v])===null||s===void 0?void 0:s.name);return W.createElement(Et,{tabIndex:0,role:"slider","aria-label":S,"aria-valuenow":r,className:"recharts-brush-traveller",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.travellerDragStartHandlers[i],onTouchStart:this.travellerDragStartHandlers[i],onKeyDown:function(N){["ArrowLeft","ArrowRight"].includes(N.key)&&(N.preventDefault(),N.stopPropagation(),l.handleTravellerMoveKeyboard(N.key==="ArrowRight"?1:-1,i))},onFocus:function(){l.setState({isTravellerFocused:!0})},onBlur:function(){l.setState({isTravellerFocused:!1})},style:{cursor:"col-resize"}},t.renderTraveller(g,k))}},{key:"renderSlide",value:function(r,i){var o=this.props,s=o.y,l=o.height,u=o.stroke,d=o.travellerWidth,p=Math.min(r,i)+d,f=Math.max(Math.abs(i-r)-d,0);return W.createElement("rect",{className:"recharts-brush-slide",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.handleSlideDragStart,onTouchStart:this.handleSlideDragStart,style:{cursor:"move"},stroke:"none",fill:u,fillOpacity:.2,x:p,y:s,width:f,height:l})}},{key:"renderText",value:function(){var r=this.props,i=r.startIndex,o=r.endIndex,s=r.y,l=r.height,u=r.travellerWidth,d=r.stroke,p=this.state,f=p.startX,g=p.endX,y=5,b={pointerEvents:"none",fill:d};return W.createElement(Et,{className:"recharts-brush-texts"},W.createElement(km,Xm({textAnchor:"end",verticalAnchor:"middle",x:Math.min(f,g)-y,y:s+l/2},b),this.getTextOfTick(i)),W.createElement(km,Xm({textAnchor:"start",verticalAnchor:"middle",x:Math.max(f,g)+u+y,y:s+l/2},b),this.getTextOfTick(o)))}},{key:"render",value:function(){var r=this.props,i=r.data,o=r.className,s=r.children,l=r.x,u=r.y,d=r.width,p=r.height,f=r.alwaysShowText,g=this.state,y=g.startX,b=g.endX,w=g.isTextActive,v=g.isSlideMoving,j=g.isTravellerMoving,k=g.isTravellerFocused;if(!i||!i.length||!fe(l)||!fe(u)||!fe(d)||!fe(p)||d<=0||p<=0)return null;var S=nt("recharts-brush",o),E=W.Children.count(s)===1,N=Rde("userSelect","none");return W.createElement(Et,{className:S,onMouseLeave:this.handleLeaveWrapper,onTouchMove:this.handleTouchMove,style:N},this.renderBackground(),E&&this.renderPanorama(),this.renderSlide(y,b),this.renderTravellerLayer(y,"startX"),this.renderTravellerLayer(b,"endX"),(w||v||j||k||f)&&this.renderText())}}],[{key:"renderDefaultTraveller",value:function(r){var i=r.x,o=r.y,s=r.width,l=r.height,u=r.stroke,d=Math.floor(o+l/2)-1;return W.createElement(W.Fragment,null,W.createElement("rect",{x:i,y:o,width:s,height:l,fill:u,stroke:"none"}),W.createElement("line",{x1:i+1,y1:d,x2:i+s-1,y2:d,fill:"none",stroke:"#fff"}),W.createElement("line",{x1:i+1,y1:d+2,x2:i+s-1,y2:d+2,fill:"none",stroke:"#fff"}))}},{key:"renderTraveller",value:function(r,i){var o;return W.isValidElement(r)?o=W.cloneElement(r,i):Ge(r)?o=r(i):o=t.renderDefaultTraveller(i),o}},{key:"getDerivedStateFromProps",value:function(r,i){var o=r.data,s=r.width,l=r.x,u=r.travellerWidth,d=r.updateId,p=r.
529startIndex,f=r.endIndex;if(o!==i.prevData||d!==i.prevUpdateId)return b1({prevData:o,prevTravellerWidth:u,prevUpdateId:d,prevX:l,prevWidth:s},o&&o.length?qde({data:o,width:s,x:l,travellerWidth:u,startIndex:p,endIndex:f}):{scale:null,scaleValues:null});if(i.scale&&(s!==i.prevWidth||l!==i.prevX||u!==i.prevTravellerWidth)){i.scale.range([l,l+s-u]);var g=i.scale.domain().map(function(y){return i.scale(y)});return{prevData:o,prevTravellerWidth:u,prevUpdateId:d,prevX:l,prevWidth:s,startX:i.scale(r.startIndex),endX:i.scale(r.endIndex),scaleValues:g}}return null}},{key:"getIndexInRange",value:function(r,i){for(var o=r.length,s=0,l=o-1;l-s>1;){var u=Math.floor((s+l)/2);r[u]>i?l=u:s=u}return i>=r[l]?l:s}}])})(O.PureComponent);br(bc,"displayName","Brush");br(bc,"defaultProps",{height:40,travellerWidth:5,gap:1,fill:"#fff",stroke:"#666",padding:{top:1,right:1,bottom:1,left:1},leaveTimeOut:1e3,alwaysShowText:!1});var w1,H4;function Wde(){if(H4)return w1;H4=1;var e=MA();function t(n,r){var i;return e(n,function(o,s,l){return i=r(o,s,l),!i}),!!i}return w1=t,w1}var j1,V4;function Ude(){if(V4)return j1;V4=1;var e=q6(),t=Ao(),n=Wde(),r=ur(),i=Kg();function o(s,l,u){var d=r(s)?e:n;return u&&i(s,l,u)&&(l=void 0),d(s,t(l,3))}return j1=o,j1}var Hde=Ude();const Vde=bt(Hde);var _i=function(t,n){var r=t.alwaysShow,i=t.ifOverflow;return r&&(i="extendDomain"),i===n},k1,G4;function Gde(){if(G4)return k1;G4=1;var e=o8();function t(n,r,i){r=="__proto__"&&e?e(n,r,{configurable:!0,enumerable:!0,value:i,writable:!0}):n[r]=i}return k1=t,k1}var A1,Y4;function Yde(){if(Y4)return A1;Y4=1;var e=Gde(),t=i8(),n=Ao();function r(i,o){var s={};return o=n(o,3),t(i,function(l,u,d){e(s,u,o(l,u,d))}),s}return A1=r,A1}var Kde=Yde();const Xde=bt(Kde);var S1,K4;function Qde(){if(K4)return S1;K4=1;function e(t,n){for(var r=-1,i=t==null?0:t.length;++r<i;)if(!n(t[r],r,t))return!1;return!0}return S1=e,S1}var C1,X4;function Jde(){if(X4)return C1;X4=1;var e=MA();function t(n,r){var i=!0;return e(n,function(o,s,l){return i=!!r(o,s,l),i}),i}return C1=t,C1}var N1,Q4;function Zde(){if(Q4)return N1;Q4=1;var e=Qde(),t=Jde(),n=Ao(),r=ur(),i=Kg();function o(s,l,u){var d=r(s)?e:t;return u&&i(s,l,u)&&(l=void 0),d(s,n(l,3))}return N1=o,N1}var ehe=Zde();const _B=bt(ehe);var the=["x","y"];function sh(e){"@babel/helpers - typeof";return sh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},sh(e)}function Uj(){return Uj=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},Uj.apply(this,arguments)}function J4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function Ku(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?J4(Object(n),!0).forEach(function(r){nhe(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):J4(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function nhe(e,t,n){return t=rhe(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function rhe(e){var t=ihe(e,"string");return sh(t)=="symbol"?t:t+""}function ihe(e,t){if(sh(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(sh(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function ahe(e,t){if(e==null)return{};var n=ohe(e,t),r,i;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i<o.length;i++)r=o[i],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function ohe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function she(e,t){var n=e.x,r=e.y,i=ahe(e,the),o="".concat(n),s=parseInt(o,10),l="".concat(r),u=parseInt(l,10),d="".concat(t.height||i.height),p=parseInt(d,10),f="".concat(t.width||i.width),g=parseInt(f,10);return Ku(Ku(Ku(Ku(Ku({},t),i),s?{x:s}:{}),u?{y:u}:{}),{},{height:p,width:g,name:t.name,radius:t.radius})}function Z4(e){return W.createElement(vde,Uj({shapeType:"rectangle",propTransformer:she,activeClassName:"recharts-active-bar"},e))}var lhe=function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return function(r,i){if(typeof t=="number")return t;var o=fe(r)||mZ(r);return o?t(r,i):(o||Ms(),n)}},che=["value","background"],IB;function wc(e){"@babel/helpers - typeof";return wc=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},wc(e)}function uhe(e,t){if(e==null)return{};var n=dhe(e,t),r,i;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i<o.length;i++)r=o[i],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function dhe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function Jm(){return Jm=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},Jm.apply(this,arguments)}function eD(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function Jt(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};
529t%2?eD(Object(n),!0).forEach(function(r){po(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):eD(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function hhe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function tD(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,DB(r.key),r)}}function phe(e,t,n){return t&&tD(e.prototype,t),n&&tD(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function fhe(e,t,n){return t=Zm(t),mhe(e,RB()?Reflect.construct(t,n||[],Zm(e).constructor):t.apply(e,n))}function mhe(e,t){if(t&&(wc(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return ghe(e)}function ghe(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function RB(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(RB=function(){return!!e})()}function Zm(e){return Zm=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},Zm(e)}function yhe(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Hj(e,t)}function Hj(e,t){return Hj=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,i){return r.__proto__=i,r},Hj(e,t)}function po(e,t,n){return t=DB(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function DB(e){var t=xhe(e,"string");return wc(t)=="symbol"?t:t+""}function xhe(e,t){if(wc(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(wc(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var To=(function(e){function t(){var n;hhe(this,t);for(var r=arguments.length,i=new Array(r),o=0;o<r;o++)i[o]=arguments[o];return n=fhe(this,t,[].concat(i)),po(n,"state",{isAnimationFinished:!1}),po(n,"id",Uc("recharts-bar-")),po(n,"handleAnimationEnd",function(){var s=n.props.onAnimationEnd;n.setState({isAnimationFinished:!0}),s&&s()}),po(n,"handleAnimationStart",function(){var s=n.props.onAnimationStart;n.setState({isAnimationFinished:!1}),s&&s()}),n}return yhe(t,e),phe(t,[{key:"renderRectanglesStatically",value:function(r){var i=this,o=this.props,s=o.shape,l=o.dataKey,u=o.activeIndex,d=o.activeBar,p=Ke(this.props,!1);return r&&r.map(function(f,g){var y=g===u,b=y?d:s,w=Jt(Jt(Jt({},p),f),{},{isActive:y,option:b,index:g,dataKey:l,onAnimationStart:i.handleAnimationStart,onAnimationEnd:i.handleAnimationEnd});return W.createElement(Et,Jm({className:"recharts-bar-rectangle"},hm(i.props,f,g),{key:"rectangle-".concat(f==null?void 0:f.x,"-").concat(f==null?void 0:f.y,"-").concat(f==null?void 0:f.value,"-").concat(g)}),W.createElement(Z4,w))})}},{key:"renderRectanglesWithAnimation",value:function(){var r=this,i=this.props,o=i.data,s=i.layout,l=i.isAnimationActive,u=i.animationBegin,d=i.animationDuration,p=i.animationEasing,f=i.animationId,g=this.state.prevData;return W.createElement(Bi,{begin:u,duration:d,isActive:l,easing:p,from:{t:0},to:{t:1},key:"bar-".concat(f),onAnimationEnd:this.handleAnimationEnd,onAnimationStart:this.handleAnimationStart},function(y){var b=y.t,w=o.map(function(v,j){var k=g&&g[j];if(k){var S=Tn(k.x,v.x),E=Tn(k.y,v.y),N=Tn(k.width,v.width),C=Tn(k.height,v.height);return Jt(Jt({},v),{},{x:S(b),y:E(b),width:N(b),height:C(b)})}if(s==="horizontal"){var P=Tn(0,v.height),_=P(b);return Jt(Jt({},v),{},{y:v.y+v.height-_,height:_})}var M=Tn(0,v.width),D=M(b);return Jt(Jt({},v),{},{width:D})});return W.createElement(Et,null,r.renderRectanglesStatically(w))})}},{key:"renderRectangles",value:function(){var r=this.props,i=r.data,o=r.isAnimationActive,s=this.state.prevData;return o&&i&&i.length&&(!s||!gc(s,i))?this.renderRectanglesWithAnimation():this.renderRectanglesStatically(i)}}
529,{key:"renderBackground",value:function(){var r=this,i=this.props,o=i.data,s=i.dataKey,l=i.activeIndex,u=Ke(this.props.background,!1);return o.map(function(d,p){d.value;var f=d.background,g=uhe(d,che);if(!f)return null;var y=Jt(Jt(Jt(Jt(Jt({},g),{},{fill:"#eee"},f),u),hm(r.props,d,p)),{},{onAnimationStart:r.handleAnimationStart,onAnimationEnd:r.handleAnimationEnd,dataKey:s,index:p,className:"recharts-bar-background-rectangle"});return W.createElement(Z4,Jm({key:"background-bar-".concat(p),option:r.props.background,isActive:p===l},y))})}},{key:"renderErrorBar",value:function(r,i){if(this.props.isAnimationActive&&!this.state.isAnimationFinished)return null;var o=this.props,s=o.data,l=o.xAxis,u=o.yAxis,d=o.layout,p=o.children,f=Hr(p,Bh);if(!f)return null;var g=d==="vertical"?s[0].height/2:s[0].width/2,y=function(v,j){var k=Array.isArray(v.value)?v.value[1]:v.value;return{x:v.x,y:v.y,value:k,errorVal:Jn(v,j)}},b={clipPath:r?"url(#clipPath-".concat(i,")"):null};return W.createElement(Et,b,f.map(function(w){return W.cloneElement(w,{key:"error-bar-".concat(i,"-").concat(w.props.dataKey),data:s,xAxis:l,yAxis:u,layout:d,offset:g,dataPointFormatter:y})}))}},{key:"render",value:function(){var r=this.props,i=r.hide,o=r.data,s=r.className,l=r.xAxis,u=r.yAxis,d=r.left,p=r.top,f=r.width,g=r.height,y=r.isAnimationActive,b=r.background,w=r.id;if(i||!o||!o.length)return null;var v=this.state.isAnimationFinished,j=nt("recharts-bar",s),k=l&&l.allowDataOverflow,S=u&&u.allowDataOverflow,E=k||S,N=Qe(w)?this.id:w;return W.createElement(Et,{className:j},k||S?W.createElement("defs",null,W.createElement("clipPath",{id:"clipPath-".concat(N)},W.createElement("rect",{x:k?d:d-f/2,y:S?p:p-g/2,width:k?f:f*2,height:S?g:g*2}))):null,W.createElement(Et,{className:"recharts-bar-rectangles",clipPath:E?"url(#clipPath-".concat(N,")"):null},b?this.renderBackground():null,this.renderRectangles()),this.renderErrorBar(E,N),(!y||v)&&ha.renderCallByParent(this.props,o))}}],[{key:"getDerivedStateFromProps",value:function(r,i){return r.animationId!==i.prevAnimationId?{prevAnimationId:r.animationId,curData:r.data,prevData:i.curData}:r.data!==i.curData?{curData:r.data}:null}}])})(O.PureComponent);IB=To;po(To,"displayName","Bar");po(To,"defaultProps",{xAxisId:0,yAxisId:0,legendType:"rect",minPointSize:0,hide:!1,data:[],layout:"vertical",activeBar:!1,isAnimationActive:!Us.isSsr,animationBegin:0,animationDuration:400,animationEasing:"ease"});po(To,"getComposedData",function(e){var t=e.props,n=e.item,r=e.barPosition,i=e.bandSize,o=e.xAxis,s=e.yAxis,l=e.xAxisTicks,u=e.yAxisTicks,d=e.stackedData,p=e.dataStartIndex,f=e.displayedData,g=e.offset,y=Ise(r,n);if(!y)return null;var b=t.layout,w=n.type.defaultProps,v=w!==void 0?Jt(Jt({},w),n.props):n.props,j=v.dataKey,k=v.children,S=v.minPointSize,E=b==="horizontal"?s:o,N=d?E.scale.domain():null,C=$se({numericAxis:E}),P=Hr(k,Xg),_=f.map(function(M,D){var B,F,V,U,q,Y;d?B=Rse(d[p+D],N):(B=Jn(M,j),Array.isArray(B)||(B=[C,B]));var Z=lhe(S,IB.defaultProps.minPointSize)(B[1],D);if(b==="horizontal"){var J,ne=[s.scale(B[0]),s.scale(B[1])],I=ne[0],z=ne[1];F=$R({axis:o,ticks:l,bandSize:i,offset:y.offset,entry:M,index:D}),V=(J=z??I)!==null&&J!==void 0?J:void 0,U=y.size;var X=I-z;if(q=Number.isNaN(X)?0:X,Y={x:F,y:s.y,width:U,height:s.height},Math.abs(Z)>0&&Math.abs(q)<Math.abs(Z)){var L=hi(q||Z)*(Math.abs(Z)-Math.abs(q));V-=L,q+=L}}else{var me=[o.scale(B[0]),o.scale(B[1])],xe=me[0],le=me[1];if(F=xe,V=$R({axis:s,ticks:u,bandSize:i,offset:y.offset,entry:M,index:D}),U=le-xe,q=y.size,Y={x:o.x,y:V,width:o.width,height:q},Math.abs(Z)>0&&Math.abs(U)<Math.abs(Z)){var Ie=hi(U||Z)*(Math.abs(Z)-Math.abs(U));U+=Ie}}return Jt(Jt(Jt({},M),{},{x:F,y:V,width:U,height:q,value:d?B:B[1],payload:M,background:Y},P&&P[D]&&P[D].props),{},{tooltipPayload:[yB(n,M)],tooltipPosition:{x:F+U/2,y:V+q/2}})});return Jt({data:_,layout:b},g)});function lh(e){"@babel/helpers - typeof";return lh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},lh(e)}function vhe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function nD(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,MB(r.key),r)}}function bhe(e,t,n){return t&&nD(e.prototype,t),n&&nD(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function rD(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function li(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};
529t%2?rD(Object(n),!0).forEach(function(r){cy(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):rD(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function cy(e,t,n){return t=MB(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function MB(e){var t=whe(e,"string");return lh(t)=="symbol"?t:t+""}function whe(e,t){if(lh(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(lh(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var dS=function(t,n,r,i,o){var s=t.width,l=t.height,u=t.layout,d=t.children,p=Object.keys(n),f={left:r.left,leftMirror:r.left,right:s-r.right,rightMirror:s-r.right,top:r.top,topMirror:r.top,bottom:l-r.bottom,bottomMirror:l-r.bottom},g=!!wr(d,To);return p.reduce(function(y,b){var w=n[b],v=w.orientation,j=w.domain,k=w.padding,S=k===void 0?{}:k,E=w.mirror,N=w.reversed,C="".concat(v).concat(E?"Mirror":""),P,_,M,D,B;if(w.type==="number"&&(w.padding==="gap"||w.padding==="no-gap")){var F=j[1]-j[0],V=1/0,U=w.categoricalDomain.sort(xZ);if(U.forEach(function(me,xe){xe>0&&(V=Math.min((me||0)-(U[xe-1]||0),V))}),Number.isFinite(V)){var q=V/F,Y=w.layout==="vertical"?r.height:r.width;if(w.padding==="gap"&&(P=q*Y/2),w.padding==="no-gap"){var Z=Rs(t.barCategoryGap,q*Y),J=q*Y/2;P=J-Z-(J-Z)/Y*Z}}}i==="xAxis"?_=[r.left+(S.left||0)+(P||0),r.left+r.width-(S.right||0)-(P||0)]:i==="yAxis"?_=u==="horizontal"?[r.top+r.height-(S.bottom||0),r.top+(S.top||0)]:[r.top+(S.top||0)+(P||0),r.top+r.height-(S.bottom||0)-(P||0)]:_=w.range,N&&(_=[_[1],_[0]]);var ne=Ose(w,o,g),I=ne.scale,z=ne.realScaleType;I.domain(j).range(_),_se(I);var X=zse(I,li(li({},w),{},{realScaleType:z}));i==="xAxis"?(B=v==="top"&&!E||v==="bottom"&&E,M=r.left,D=f[C]-B*w.height):i==="yAxis"&&(B=v==="left"&&!E||v==="right"&&E,M=f[C]-B*w.width,D=r.top);var L=li(li(li({},w),X),{},{realScaleType:z,x:M,y:D,scale:I,width:i==="xAxis"?r.width:w.width,height:i==="yAxis"?r.height:w.height});return L.bandSize=Bm(L,X),!w.hide&&i==="xAxis"?f[C]+=(B?-1:1)*L.height:w.hide||(f[C]+=(B?-1:1)*L.width),li(li({},y),{},cy({},b,L))},{})},LB=function(t,n){var r=t.x,i=t.y,o=n.x,s=n.y;return{x:Math.min(r,o),y:Math.min(i,s),width:Math.abs(o-r),height:Math.abs(s-i)}},jhe=function(t){var n=t.x1,r=t.y1,i=t.x2,o=t.y2;return LB({x:n,y:r},{x:i,y:o})},FB=(function(){function e(t){vhe(this,e),this.scale=t}return bhe(e,[{key:"domain",get:function(){return this.scale.domain}},{key:"range",get:function(){return this.scale.range}},{key:"rangeMin",get:function(){return this.range()[0]}},{key:"rangeMax",get:function(){return this.range()[1]}},{key:"bandwidth",get:function(){return this.scale.bandwidth}},{key:"apply",value:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=r.bandAware,o=r.position;if(n!==void 0){if(o)switch(o){case"start":return this.scale(n);case"middle":{var s=this.bandwidth?this.bandwidth()/2:0;return this.scale(n)+s}case"end":{var l=this.bandwidth?this.bandwidth():0;return this.scale(n)+l}default:return this.scale(n)}if(i){var u=this.bandwidth?this.bandwidth()/2:0;return this.scale(n)+u}return this.scale(n)}}},{key:"isInRange",value:function(n){var r=this.range(),i=r[0],o=r[r.length-1];return i<=o?n>=i&&n<=o:n>=o&&n<=i}}],[{key:"create",value:function(n){return new e(n)}}])})();cy(FB,"EPS",1e-4);var hS=function(t){var n=Object.keys(t).reduce(function(r,i){return li(li({},r),{},cy({},i,FB.create(t[i])))},{});return li(li({},n),{},{apply:function(i){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},s=o.bandAware,l=o.position;return Xde(i,function(u,d){return n[d].apply(u,{bandAware:s,position:l})})},isInRange:function(i){return _B(i,function(o,s){return n[s].isInRange(o)})}})};function khe(e){return(e%180+180)%180}var Ahe=function(t){var n=t.width,r=t.height,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,o=khe(i),s=o*Math.PI/180,l=Math.atan(r/n),u=s>l&&s<Math.PI-l?r/Math.sin(s):n/Math.cos(s);return Math.abs(u)},T1,iD;
529function She(){if(iD)return T1;iD=1;var e=Ao(),t=Rh(),n=Gg();function r(i){return function(o,s,l){var u=Object(o);if(!t(o)){var d=e(s,3);o=n(o),s=function(f){return d(u[f],f,u)}}var p=i(o,s,l);return p>-1?u[d?o[p]:p]:void 0}}return T1=r,T1}var E1,aD;function Che(){if(aD)return E1;aD=1;var e=TB();function t(n){var r=e(n),i=r%1;return r===r?i?r-i:r:0}return E1=t,E1}var P1,oD;function Nhe(){if(oD)return P1;oD=1;var e=Z6(),t=Ao(),n=Che(),r=Math.max;function i(o,s,l){var u=o==null?0:o.length;if(!u)return-1;var d=l==null?0:n(l);return d<0&&(d=r(u+d,0)),e(o,t(s,3),d)}return P1=i,P1}var O1,sD;function The(){if(sD)return O1;sD=1;var e=She(),t=Nhe(),n=e(t);return O1=n,O1}var Ehe=The();const Phe=bt(Ehe);var Ohe=f6();const _he=bt(Ohe);var Ihe=_he(function(e){return{x:e.left,y:e.top,width:e.width,height:e.height}},function(e){return["l",e.left,"t",e.top,"w",e.width,"h",e.height].join("")}),pS=O.createContext(void 0),fS=O.createContext(void 0),BB=O.createContext(void 0),zB=O.createContext({}),$B=O.createContext(void 0),qB=O.createContext(0),WB=O.createContext(0),lD=function(t){var n=t.state,r=n.xAxisMap,i=n.yAxisMap,o=n.offset,s=t.clipPathId,l=t.children,u=t.width,d=t.height,p=Ihe(o);return W.createElement(pS.Provider,{value:r},W.createElement(fS.Provider,{value:i},W.createElement(zB.Provider,{value:o},W.createElement(BB.Provider,{value:p},W.createElement($B.Provider,{value:s},W.createElement(qB.Provider,{value:d},W.createElement(WB.Provider,{value:u},l)))))))},Rhe=function(){return O.useContext($B)},UB=function(t){var n=O.useContext(pS);n==null&&Ms();var r=n[t];return r==null&&Ms(),r},Dhe=function(){var t=O.useContext(pS);return eo(t)},Mhe=function(){var t=O.useContext(fS),n=Phe(t,function(r){return _B(r.domain,Number.isFinite)});return n||eo(t)},HB=function(t){var n=O.useContext(fS);n==null&&Ms();var r=n[t];return r==null&&Ms(),r},Lhe=function(){var t=O.useContext(BB);return t},Fhe=function(){return O.useContext(zB)},mS=function(){return O.useContext(WB)},gS=function(){return O.useContext(qB)};function jc(e){"@babel/helpers - typeof";return jc=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},jc(e)}function Bhe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function zhe(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,GB(r.key),r)}}function $he(e,t,n){return t&&zhe(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function qhe(e,t,n){return t=eg(t),Whe(e,VB()?Reflect.construct(t,n||[],eg(e).constructor):t.apply(e,n))}function Whe(e,t){if(t&&(jc(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Uhe(e)}function Uhe(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function VB(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(VB=function(){return!!e})()}function eg(e){return eg=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},eg(e)}function Hhe(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Vj(e,t)}function Vj(e,t){return Vj=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,i){return r.__proto__=i,r},Vj(e,t)}function cD(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function uD(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?cD(Object(n),!0).forEach(function(r){yS(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):cD(Object(n)).forEac
529h(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function yS(e,t,n){return t=GB(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function GB(e){var t=Vhe(e,"string");return jc(t)=="symbol"?t:t+""}function Vhe(e,t){if(jc(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(jc(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}function Ghe(e,t){return Qhe(e)||Xhe(e,t)||Khe(e,t)||Yhe()}function Yhe(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. 530In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Khe(e,t){if(e){if(typeof e=="string")return dD(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return dD(e,t)}}function dD(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Xhe(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,i,o,s,l=[],u=!0,d=!1;try{if(o=(n=n.call(e)).next,t!==0)for(;!(u=(r=o.call(n)).done)&&(l.push(r.value),l.length!==t);u=!0);}catch(p){d=!0,i=p}finally{try{if(!u&&n.return!=null&&(s=n.return(),Object(s)!==s))return}finally{if(d)throw i}}return l}}function Qhe(e){if(Array.isArray(e))return e}function Gj(){return Gj=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},Gj.apply(this,arguments)}var Jhe=function(t,n){var r;return W.isValidElement(t)?r=W.cloneElement(t,n):Ge(t)?r=t(n):r=W.createElement("line",Gj({},n,{className:"recharts-reference-line-line"})),r},Zhe=function(t,n,r,i,o,s,l,u,d){var p=o.x,f=o.y,g=o.width,y=o.height;if(r){var b=d.y,w=t.y.apply(b,{position:s});if(_i(d,"discard")&&!t.y.isInRange(w))return null;var v=[{x:p+g,y:w},{x:p,y:w}];return u==="left"?v.reverse():v}if(n){var j=d.x,k=t.x.apply(j,{position:s});if(_i(d,"discard")&&!t.x.isInRange(k))return null;var S=[{x:k,y:f+y},{x:k,y:f}];return l==="top"?S.reverse():S}if(i){var E=d.segment,N=E.map(function(C){return t.apply(C,{position:s})});return _i(d,"discard")&&Vde(N,function(C){return!t.isInRange(C)})?null:N}return null};function epe(e){var t=e.x,n=e.y,r=e.segment,i=e.xAxisId,o=e.yAxisId,s=e.shape,l=e.className,u=e.alwaysShow,d=Rhe(),p=UB(i),f=HB(o),g=Lhe();if(!d||!g)return null;ua(u===void 0,'The alwaysShow prop is deprecated. Please use ifOverflow="extendDomain" instead.');var y=hS({x:p.scale,y:f.scale}),b=cn(t),w=cn(n),v=r&&r.length===2,j=Zhe(y,b,w,v,g,e.position,p.orientation,f.orientation,e);if(!j)return null;var k=Ghe(j,2),S=k[0],E=S.x,N=S.y,C=k[1],P=C.x,_=C.y,M=_i(e,"hidden")?"url(#".concat(d,")"):void 0,D=uD(uD({clipPath:M},Ke(e,!0)),{},{x1:E,y1:N,x2:P,y2:_});return W.createElement(Et,{className:nt("recharts-reference-line",l)},Jhe(s,D),zn.renderCallByParent(e,jhe({x1:E,y1:N,x2:P,y2:_})))}var Ls=(function(e){function t(){return Bhe(this,t),qhe(this,t,arguments)}return Hhe(t,e),$he(t,[{key:"render",value:function(){return W.createElement(epe,this.props)}}])})(W.Component);yS(Ls,"displayName","ReferenceLine");yS(Ls,"defaultProps",{isFront:!1,ifOverflow:"discard",xAxisId:0,yAxisId:0,fill:"none",stroke:"#ccc",fillOpacity:1,strokeWidth:1,position:"middle"});function Yj(){return Yj=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},Yj.apply(this,arguments)}function kc(e){"@babel/helpers - typeof";return kc=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},kc(e)}function hD(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function pD(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};
530t%2?hD(Object(n),!0).forEach(function(r){uy(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):hD(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function tpe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function npe(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,KB(r.key),r)}}function rpe(e,t,n){return t&&npe(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function ipe(e,t,n){return t=tg(t),ape(e,YB()?Reflect.construct(t,n||[],tg(e).constructor):t.apply(e,n))}function ape(e,t){if(t&&(kc(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return ope(e)}function ope(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function YB(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(YB=function(){return!!e})()}function tg(e){return tg=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},tg(e)}function spe(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Kj(e,t)}function Kj(e,t){return Kj=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,i){return r.__proto__=i,r},Kj(e,t)}function uy(e,t,n){return t=KB(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function KB(e){var t=lpe(e,"string");return kc(t)=="symbol"?t:t+""}function lpe(e,t){if(kc(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(kc(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var cpe=function(t){var n=t.x,r=t.y,i=t.xAxis,o=t.yAxis,s=hS({x:i.scale,y:o.scale}),l=s.apply({x:n,y:r},{bandAware:!0});return _i(t,"discard")&&!s.isInRange(l)?null:l},dy=(function(e){function t(){return tpe(this,t),ipe(this,t,arguments)}return spe(t,e),rpe(t,[{key:"render",value:function(){var r=this.props,i=r.x,o=r.y,s=r.r,l=r.alwaysShow,u=r.clipPathId,d=cn(i),p=cn(o);if(ua(l===void 0,'The alwaysShow prop is deprecated. Please use ifOverflow="extendDomain" instead.'),!d||!p)return null;var f=cpe(this.props);if(!f)return null;var g=f.x,y=f.y,b=this.props,w=b.shape,v=b.className,j=_i(this.props,"hidden")?"url(#".concat(u,")"):void 0,k=pD(pD({clipPath:j},Ke(this.props,!0)),{},{cx:g,cy:y});return W.createElement(Et,{className:nt("recharts-reference-dot",v)},t.renderDot(w,k),zn.renderCallByParent(this.props,{x:g-s,y:y-s,width:2*s,height:2*s}))}}])})(W.Component);uy(dy,"displayName","ReferenceDot");uy(dy,"defaultProps",{isFront:!1,ifOverflow:"discard",xAxisId:0,yAxisId:0,r:10,fill:"#fff",stroke:"#ccc",fillOpacity:1,strokeWidth:1});uy(dy,"renderDot",function(e,t){var n;return W.isValidElement(e)?n=W.cloneElement(e,t):Ge(e)?n=e(t):n=W.createElement(oy,Yj({},t,{cx:t.cx,cy:t.cy,className:"recharts-reference-dot-dot"})),n});function Xj(){return Xj=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},Xj.apply(this,arguments)}function Ac(e){"@babel/helpers - typeof";return Ac=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ac(e)}function fD(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function mD(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};
530t%2?fD(Object(n),!0).forEach(function(r){hy(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):fD(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function upe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function dpe(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,QB(r.key),r)}}function hpe(e,t,n){return t&&dpe(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function ppe(e,t,n){return t=ng(t),fpe(e,XB()?Reflect.construct(t,n||[],ng(e).constructor):t.apply(e,n))}function fpe(e,t){if(t&&(Ac(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return mpe(e)}function mpe(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function XB(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(XB=function(){return!!e})()}function ng(e){return ng=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},ng(e)}function gpe(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Qj(e,t)}function Qj(e,t){return Qj=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,i){return r.__proto__=i,r},Qj(e,t)}function hy(e,t,n){return t=QB(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function QB(e){var t=ype(e,"string");return Ac(t)=="symbol"?t:t+""}function ype(e,t){if(Ac(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Ac(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var xpe=function(t,n,r,i,o){var s=o.x1,l=o.x2,u=o.y1,d=o.y2,p=o.xAxis,f=o.yAxis;if(!p||!f)return null;var g=hS({x:p.scale,y:f.scale}),y={x:t?g.x.apply(s,{position:"start"}):g.x.rangeMin,y:r?g.y.apply(u,{position:"start"}):g.y.rangeMin},b={x:n?g.x.apply(l,{position:"end"}):g.x.rangeMax,y:i?g.y.apply(d,{position:"end"}):g.y.rangeMax};return _i(o,"discard")&&(!g.isInRange(y)||!g.isInRange(b))?null:LB(y,b)},py=(function(e){function t(){return upe(this,t),ppe(this,t,arguments)}return gpe(t,e),hpe(t,[{key:"render",value:function(){var r=this.props,i=r.x1,o=r.x2,s=r.y1,l=r.y2,u=r.className,d=r.alwaysShow,p=r.clipPathId;ua(d===void 0,'The alwaysShow prop is deprecated. Please use ifOverflow="extendDomain" instead.');var f=cn(i),g=cn(o),y=cn(s),b=cn(l),w=this.props.shape;if(!f&&!g&&!y&&!b&&!w)return null;var v=xpe(f,g,y,b,this.props);if(!v&&!w)return null;var j=_i(this.props,"hidden")?"url(#".concat(p,")"):void 0;return W.createElement(Et,{className:nt("recharts-reference-area",u)},t.renderRect(w,mD(mD({clipPath:j},Ke(this.props,!0)),v)),zn.renderCallByParent(this.props,v))}}])})(W.Component);hy(py,"displayName","ReferenceArea");hy(py,"defaultProps",{isFront:!1,ifOverflow:"discard",xAxisId:0,yAxisId:0,r:10,fill:"#ccc",fillOpacity:.5,stroke:"none",strokeWidth:1});hy(py,"renderRect",function(e,t){var n;return W.isValidElement(e)?n=W.cloneElement(e,t):Ge(e)?n=e(t):n=W.createElement(uS,Xj({},t,{className:"recharts-reference-area-rect"})),n});function JB(e,t,n){if(t<1)return[];if(t===1&&n===void 0)return e;for(var r=[],i=0;i<e.length;i+=t)r.push(e[i]);return r}function vpe(e,t,n){var r={width:e.width+t.width,height:e.height+t.height};return Ahe(r,n)}function bpe(e,t,n){var r=n==="width",i=e.x,o=e.y,s=e.width,l=e.height;return t===1?{start:r?i:o,end:r?i+s:o+l}:{start:r?i+s:o+l,end:r?i:o}}function rg(e,t,n,r,i){if(e*t<e*r||e*t>e*i)return!1;var o=n();return e*(t-e*o/2-r)>=0&&e*(t+e*o/2-i)<=0}function wpe(e,t){return JB(e,t+1)}function jpe(e,t,n,r,i){for(var o=(r||[]).slice(),s=t.start,l=t.end,u=0,d=1,p=s,f=function(){var b=r==null?void 0:r[u];if(b===void 0)return{v:JB(r,d)};var w=u,v,j=function(){return v===void 0&&(v=n(b,w)),v},k=b.coordinate,S=u===0||rg(e,k,j,p,l);S||(u=0,p=s,d+=1),S&&(p=k+e*(j()/2+i),u+=d)},g;d<=o.length;)if(g=f(),g)return g.v;return[]}function ch(e){"@babel/helpers - typeof";return ch=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ch(e)}function gD(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function Fn(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};
530t%2?gD(Object(n),!0).forEach(function(r){kpe(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):gD(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function kpe(e,t,n){return t=Ape(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ape(e){var t=Spe(e,"string");return ch(t)=="symbol"?t:t+""}function Spe(e,t){if(ch(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(ch(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Cpe(e,t,n,r,i){for(var o=(r||[]).slice(),s=o.length,l=t.start,u=t.end,d=function(g){var y=o[g],b,w=function(){return b===void 0&&(b=n(y,g)),b};if(g===s-1){var v=e*(y.coordinate+e*w()/2-u);o[g]=y=Fn(Fn({},y),{},{tickCoord:v>0?y.coordinate-v*e:y.coordinate})}else o[g]=y=Fn(Fn({},y),{},{tickCoord:y.coordinate});var j=rg(e,y.tickCoord,w,l,u);j&&(u=y.tickCoord-e*(w()/2+i),o[g]=Fn(Fn({},y),{},{isShow:!0}))},p=s-1;p>=0;p--)d(p);return o}function Npe(e,t,n,r,i,o){var s=(r||[]).slice(),l=s.length,u=t.start,d=t.end;if(o){var p=r[l-1],f=n(p,l-1),g=e*(p.coordinate+e*f/2-d);s[l-1]=p=Fn(Fn({},p),{},{tickCoord:g>0?p.coordinate-g*e:p.coordinate});var y=rg(e,p.tickCoord,function(){return f},u,d);y&&(d=p.tickCoord-e*(f/2+i),s[l-1]=Fn(Fn({},p),{},{isShow:!0}))}for(var b=o?l-1:l,w=function(k){var S=s[k],E,N=function(){return E===void 0&&(E=n(S,k)),E};if(k===0){var C=e*(S.coordinate-e*N()/2-u);s[k]=S=Fn(Fn({},S),{},{tickCoord:C<0?S.coordinate-C*e:S.coordinate})}else s[k]=S=Fn(Fn({},S),{},{tickCoord:S.coordinate});var P=rg(e,S.tickCoord,N,u,d);P&&(u=S.tickCoord+e*(N()/2+i),s[k]=Fn(Fn({},S),{},{isShow:!0}))},v=0;v<b;v++)w(v);return s}function xS(e,t,n){var r=e.tick,i=e.ticks,o=e.viewBox,s=e.minTickGap,l=e.orientation,u=e.interval,d=e.tickFormatter,p=e.unit,f=e.angle;if(!i||!i.length||!r)return[];if(fe(u)||Us.isSsr)return wpe(i,typeof u=="number"&&fe(u)?u:0);var g=[],y=l==="top"||l==="bottom"?"width":"height",b=p&&y==="width"?pd(p,{fontSize:t,letterSpacing:n}):{width:0,height:0},w=function(S,E){var N=Ge(d)?d(S.value,E):S.value;return y==="width"?vpe(pd(N,{fontSize:t,letterSpacing:n}),b,f):pd(N,{fontSize:t,letterSpacing:n})[y]},v=i.length>=2?hi(i[1].coordinate-i[0].coordinate):1,j=bpe(o,v,y);return u==="equidistantPreserveStart"?jpe(v,j,w,i,s):(u==="preserveStart"||u==="preserveStartEnd"?g=Npe(v,j,w,i,s,u==="preserveStartEnd"):g=Cpe(v,j,w,i,s),g.filter(function(k){return k.isShow}))}var Tpe=["viewBox"],Epe=["viewBox"],Ppe=["ticks"];function Sc(e){"@babel/helpers - typeof";return Sc=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Sc(e)}function Dl(){return Dl=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},Dl.apply(this,arguments)}function yD(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function sn(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?yD(Object(n),!0).forEach(function(r){vS(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):yD(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function _1(e,t){if(e==null)return{};var n=Ope(e,t),r,i;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i<o.length;i++)r=o[i],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Ope(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function _pe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function xD(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,e9(r.key),r)}}
530function Ipe(e,t,n){return t&&xD(e.prototype,t),n&&xD(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function Rpe(e,t,n){return t=ig(t),Dpe(e,ZB()?Reflect.construct(t,n||[],ig(e).constructor):t.apply(e,n))}function Dpe(e,t){if(t&&(Sc(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Mpe(e)}function Mpe(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function ZB(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(ZB=function(){return!!e})()}function ig(e){return ig=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},ig(e)}function Lpe(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Jj(e,t)}function Jj(e,t){return Jj=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,i){return r.__proto__=i,r},Jj(e,t)}function vS(e,t,n){return t=e9(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function e9(e){var t=Fpe(e,"string");return Sc(t)=="symbol"?t:t+""}function Fpe(e,t){if(Sc(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Sc(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var Kc=(function(e){function t(n){var r;return _pe(this,t),r=Rpe(this,t,[n]),r.state={fontSize:"",letterSpacing:""},r}return Lpe(t,e),Ipe(t,[{key:"shouldComponentUpdate",value:function(r,i){var o=r.viewBox,s=_1(r,Tpe),l=this.props,u=l.viewBox,d=_1(l,Epe);return!ql(o,u)||!ql(s,d)||!ql(i,this.state)}},{key:"componentDidMount",value:function(){var r=this.layerReference;if(r){var i=r.getElementsByClassName("recharts-cartesian-axis-tick-value")[0];i&&this.setState({fontSize:window.getComputedStyle(i).fontSize,letterSpacing:window.getComputedStyle(i).letterSpacing})}}},{key:"getTickLineCoord",value:function(r){var i=this.props,o=i.x,s=i.y,l=i.width,u=i.height,d=i.orientation,p=i.tickSize,f=i.mirror,g=i.tickMargin,y,b,w,v,j,k,S=f?-1:1,E=r.tickSize||p,N=fe(r.tickCoord)?r.tickCoord:r.coordinate;switch(d){case"top":y=b=r.coordinate,v=s+ +!f*u,w=v-S*E,k=w-S*g,j=N;break;case"left":w=v=r.coordinate,b=o+ +!f*l,y=b-S*E,j=y-S*g,k=N;break;case"right":w=v=r.coordinate,b=o+ +f*l,y=b+S*E,j=y+S*g,k=N;break;default:y=b=r.coordinate,v=s+ +f*u,w=v+S*E,k=w+S*g,j=N;break}return{line:{x1:y,y1:w,x2:b,y2:v},tick:{x:j,y:k}}}},{key:"getTickTextAnchor",value:function(){var r=this.props,i=r.orientation,o=r.mirror,s;switch(i){case"left":s=o?"start":"end";break;case"right":s=o?"end":"start";break;default:s="middle";break}return s}},{key:"getTickVerticalAnchor",value:function(){var r=this.props,i=r.orientation,o=r.mirror,s="end";switch(i){case"left":case"right":s="middle";break;case"top":s=o?"start":"end";break;default:s=o?"end":"start";break}return s}},{key:"renderAxisLine",value:function(){var r=this.props,i=r.x,o=r.y,s=r.width,l=r.height,u=r.orientation,d=r.mirror,p=r.axisLine,f=sn(sn(sn({},Ke(this.props,!1)),Ke(p,!1)),{},{fill:"none"});if(u==="top"||u==="bottom"){var g=+(u==="top"&&!d||u==="bottom"&&d);f=sn(sn({},f),{},{x1:i,y1:o+g*l,x2:i+s,y2:o+g*l})}else{var y=+(u==="left"&&!d||u==="right"&&d);f=sn(sn({},f),{},{x1:i+y*s,y1:o,x2:i+y*s,y2:o+l})}return W.createElement("line",Dl({},f,{className:nt("recharts-cartesian-axis-line",Ur(p,"className"))}))}},{key:"renderTicks",value:function(r,i,o){var s=this,l=this.props,u=l.tickLine,d=l.stroke,p=l.tick,f=l.tickFormatter,g=l.unit,y=xS(sn(sn({},this.props),{},{ticks:r}),i,o),b=this.getTickTextAnchor(),w=this.getTickVerticalAnchor(),v=Ke(this.props,!1),j=Ke(p,!1),k=sn(sn({},v),{},{fill:"none"},Ke(u,!1)),S=y.map(function(E,N){var C=s.getTickLineCoord(E),P=C.line,_=C.tick,M=sn(sn(sn(sn({textAnchor:b,verticalAnchor:w},v),{},{stroke:"none",fill:d},j),_),{},{index:N,payload:E,visibleTicksCount:y.length,tickFormatter:f});return W.createElement(Et,Dl({className:"recharts-cartesian-axis-tick",key:"tick-".concat(E.value,"-").concat(E.coordinate,"-").concat(E.tickCoord)},hm(s.props,E,N)),u&&W.createElement("line",Dl({},k,P,{className:nt("recharts-cartesian-axis-tick-line",Ur(u,"className"))})),p&&t.renderTickItem(p,M,"".concat(Ge(f)?f(E.value,N):E.value).concat(g||"")))});return W.createElement("g",{className:"recharts-cartesian-axis-ticks"},S)}},{key:"render",value:function(){var r=this,i=this.props,o=i.axisLine,s=i.width,l=i.height,u=i.ticksGenerator,d=i.className,p=i.hide;if(p)return null;var f=this.props,g=f.ticks,y=_1(f,Ppe),b=g;return Ge(u)&&(b=g&&g.length>0?u(this.props):u(y)),s<=0||l<=0||!b||!b.length?null:W.createElement(Et,{className:nt("recharts-cartesian-axis",d),ref:function(v){r.layerReference=v}},o&&this.renderAxisLine(),this.renderTicks(b,this.state.fontSize,this.state.letterSpacing),zn.renderCallByParent(this.props))}}],[{key:"renderTickItem",value:function(r,i,o){var s,l=nt(i.className,"recharts-cartesian-axis-tick-value");return W.isValidElement(r)?s=W.cloneElement(r,sn(sn({},i),{},{className:l})):Ge(r)?s=r(sn(sn({},i),{},{className:l})):s=W.createElement(km,Dl({},i,{className:"recharts-cartesian-axis-tick-value"}),o),s}}])})(O.Component);vS(Kc,"displayName","CartesianAxis");vS(Kc,"defaultProps",{x:0,y:0,width:0,height:0,viewBox:{x:0,y:0,width:0,height:0},orientation:"bottom",ticks:[],stroke:"#666",tickLine:!0,axisLine
530:!0,tick:!0,mirror:!1,minTickGap:5,tickSize:6,tickMargin:2,interval:"preserveEnd"});var Bpe=["x1","y1","x2","y2","key"],zpe=["offset"];function Fs(e){"@babel/helpers - typeof";return Fs=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Fs(e)}function vD(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function $n(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?vD(Object(n),!0).forEach(function(r){$pe(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):vD(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function $pe(e,t,n){return t=qpe(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function qpe(e){var t=Wpe(e,"string");return Fs(t)=="symbol"?t:t+""}function Wpe(e,t){if(Fs(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Fs(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function cs(){return cs=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},cs.apply(this,arguments)}function bD(e,t){if(e==null)return{};var n=Upe(e,t),r,i;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i<o.length;i++)r=o[i],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Upe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var Hpe=function(t){var n=t.fill;if(!n||n==="none")return null;var r=t.fillOpacity,i=t.x,o=t.y,s=t.width,l=t.height,u=t.ry;return W.createElement("rect",{x:i,y:o,ry:u,width:s,height:l,stroke:"none",fill:n,fillOpacity:r,className:"recharts-cartesian-grid-bg"})};function t9(e,t){var n;if(W.isValidElement(e))n=W.cloneElement(e,t);else if(Ge(e))n=e(t);else{var r=t.x1,i=t.y1,o=t.x2,s=t.y2,l=t.key,u=bD(t,Bpe),d=Ke(u,!1);d.offset;var p=bD(d,zpe);n=W.createElement("line",cs({},p,{x1:r,y1:i,x2:o,y2:s,fill:"none",key:l}))}return n}function Vpe(e){var t=e.x,n=e.width,r=e.horizontal,i=r===void 0?!0:r,o=e.horizontalPoints;if(!i||!o||!o.length)return null;var s=o.map(function(l,u){var d=$n($n({},e),{},{x1:t,y1:l,x2:t+n,y2:l,key:"line-".concat(u),index:u});return t9(i,d)});return W.createElement("g",{className:"recharts-cartesian-grid-horizontal"},s)}function Gpe(e){var t=e.y,n=e.height,r=e.vertical,i=r===void 0?!0:r,o=e.verticalPoints;if(!i||!o||!o.length)return null;var s=o.map(function(l,u){var d=$n($n({},e),{},{x1:l,y1:t,x2:l,y2:t+n,key:"line-".concat(u),index:u});return t9(i,d)});return W.createElement("g",{className:"recharts-cartesian-grid-vertical"},s)}function Ype(e){var t=e.horizontalFill,n=e.fillOpacity,r=e.x,i=e.y,o=e.width,s=e.height,l=e.horizontalPoints,u=e.horizontal,d=u===void 0?!0:u;if(!d||!t||!t.length)return null;var p=l.map(function(g){return Math.round(g+i-i)}).sort(function(g,y){return g-y});i!==p[0]&&p.unshift(0);var f=p.map(function(g,y){var b=!p[y+1],w=b?i+s-g:p[y+1]-g;if(w<=0)return null;var v=y%t.length;return W.createElement("rect",{key:"react-".concat(y),y:g,x:r,height:w,width:o,stroke:"none",fill:t[v],fillOpacity:n,className:"recharts-cartesian-grid-bg"})});return W.createElement("g",{className:"recharts-cartesian-gridstripes-horizontal"},f)}function Kpe(e){var t=e.vertical,n=t===void 0?!0:t,r=e.verticalFill,i=e.fillOpacity,o=e.x,s=e.y,l=e.width,u=e.height,d=e.verticalPoints;if(!n||!r||!r.length)return null;var p=d.map(function(g){return Math.round(g+o-o)}).sort(function(g,y){return g-y});o!==p[0]&&p.unshift(0);var f=p.map(function(g,y){var b=!p[y+1],w=b?o+l-g:p[y+1]-g;if(w<=0)return null;var v=y%r.length;return W.createElement("rect",{key:"react-".concat(y),x:g,y:s,width:w,height:u,stroke:"none",fill:r[v],fillOpacity:i,className:"recharts-cartesian-grid-bg"})});return W.createElement("g",{className:"recharts-cartesian-gridstripes-vertical"},f)}var Xpe=function(t,n){var r=t.xAxis,i=t.width,o=t.height,s=t.offset;return mB(xS($n($n($n({},Kc.defaultProps),r),{}
530,{ticks:sa(r,!0),viewBox:{x:0,y:0,width:i,height:o}})),s.left,s.left+s.width,n)},Qpe=function(t,n){var r=t.yAxis,i=t.width,o=t.height,s=t.offset;return mB(xS($n($n($n({},Kc.defaultProps),r),{},{ticks:sa(r,!0),viewBox:{x:0,y:0,width:i,height:o}})),s.top,s.top+s.height,n)},Al={horizontal:!0,vertical:!0,stroke:"#ccc",fill:"none",verticalFill:[],horizontalFill:[]};function Cs(e){var t,n,r,i,o,s,l=mS(),u=gS(),d=Fhe(),p=$n($n({},e),{},{stroke:(t=e.stroke)!==null&&t!==void 0?t:Al.stroke,fill:(n=e.fill)!==null&&n!==void 0?n:Al.fill,horizontal:(r=e.horizontal)!==null&&r!==void 0?r:Al.horizontal,horizontalFill:(i=e.horizontalFill)!==null&&i!==void 0?i:Al.horizontalFill,vertical:(o=e.vertical)!==null&&o!==void 0?o:Al.vertical,verticalFill:(s=e.verticalFill)!==null&&s!==void 0?s:Al.verticalFill,x:fe(e.x)?e.x:d.left,y:fe(e.y)?e.y:d.top,width:fe(e.width)?e.width:d.width,height:fe(e.height)?e.height:d.height}),f=p.x,g=p.y,y=p.width,b=p.height,w=p.syncWithTicks,v=p.horizontalValues,j=p.verticalValues,k=Dhe(),S=Mhe();if(!fe(y)||y<=0||!fe(b)||b<=0||!fe(f)||f!==+f||!fe(g)||g!==+g)return null;var E=p.verticalCoordinatesGenerator||Xpe,N=p.horizontalCoordinatesGenerator||Qpe,C=p.horizontalPoints,P=p.verticalPoints;if((!C||!C.length)&&Ge(N)){var _=v&&v.length,M=N({yAxis:S?$n($n({},S),{},{ticks:_?v:S.ticks}):void 0,width:l,height:u,offset:d},_?!0:w);ua(Array.isArray(M),"horizontalCoordinatesGenerator should return Array but instead it returned [".concat(Fs(M),"]")),Array.isArray(M)&&(C=M)}if((!P||!P.length)&&Ge(E)){var D=j&&j.length,B=E({xAxis:k?$n($n({},k),{},{ticks:D?j:k.ticks}):void 0,width:l,height:u,offset:d},D?!0:w);ua(Array.isArray(B),"verticalCoordinatesGenerator should return Array but instead it returned [".concat(Fs(B),"]")),Array.isArray(B)&&(P=B)}return W.createElement("g",{className:"recharts-cartesian-grid"},W.createElement(Hpe,{fill:p.fill,fillOpacity:p.fillOpacity,x:p.x,y:p.y,width:p.width,height:p.height,ry:p.ry}),W.createElement(Vpe,cs({},p,{offset:d,horizontalPoints:C,xAxis:k,yAxis:S})),W.createElement(Gpe,cs({},p,{offset:d,verticalPoints:P,xAxis:k,yAxis:S})),W.createElement(Ype,cs({},p,{horizontalPoints:C})),W.createElement(Kpe,cs({},p,{verticalPoints:P})))}Cs.displayName="CartesianGrid";var Jpe=["type","layout","connectNulls","ref"],Zpe=["key"];function Cc(e){"@babel/helpers - typeof";return Cc=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Cc(e)}function wD(e,t){if(e==null)return{};var n=efe(e,t),r,i;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i<o.length;i++)r=o[i],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function efe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function yd(){return yd=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},yd.apply(this,arguments)}function jD(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function xr(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?jD(Object(n),!0).forEach(function(r){ci(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):jD(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function Sl(e){return ife(e)||rfe(e)||nfe(e)||tfe()}function tfe(){throw new TypeError(`Invalid attempt to spread non-iterable instance. 531In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function nfe(e,t){if(e){if(typeof e=="string")return Zj(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Zj(e,t)}}function rfe(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function ife(e){if(Array.isArray(e))return Zj(e)}function Zj(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function afe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function kD(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r9(r.key),r)}}function ofe(e,t,n){return t&&kD(e.prototype,t),n&&kD(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function sfe(e,t,n){return t=ag(t),lfe(e,n9()?Reflect.construct(t,n||[],ag(e).constructor):t.apply(e,n))}function lfe(e,t){if(t&&(Cc(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return cfe(e)}function cfe(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function n9(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(n9=function(){return!!e})()}function ag(e){return ag=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},ag(e)}function ufe(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&ek(e,t)}
531function ek(e,t){return ek=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,i){return r.__proto__=i,r},ek(e,t)}function ci(e,t,n){return t=r9(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r9(e){var t=dfe(e,"string");return Cc(t)=="symbol"?t:t+""}function dfe(e,t){if(Cc(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Cc(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var Ii=(function(e){function t(){var n;afe(this,t);for(var r=arguments.length,i=new Array(r),o=0;o<r;o++)i[o]=arguments[o];return n=sfe(this,t,[].concat(i)),ci(n,"state",{isAnimationFinished:!0,totalLength:0}),ci(n,"generateSimpleStrokeDasharray",function(s,l){return"".concat(l,"px ").concat(s-l,"px")}),ci(n,"getStrokeDasharray",function(s,l,u){var d=u.reduce(function(j,k){return j+k});if(!d)return n.generateSimpleStrokeDasharray(l,s);for(var p=Math.floor(s/d),f=s%d,g=l-s,y=[],b=0,w=0;b<u.length;w+=u[b],++b)if(w+u[b]>f){y=[].concat(Sl(u.slice(0,b)),[f-w]);break}var v=y.length%2===0?[0,g]:[g];return[].concat(Sl(t.repeat(u,p)),Sl(y),v).map(function(j){return"".concat(j,"px")}).join(", ")}),ci(n,"id",Uc("recharts-line-")),ci(n,"pathRef",function(s){n.mainCurve=s}),ci(n,"handleAnimationEnd",function(){n.setState({isAnimationFinished:!0}),n.props.onAnimationEnd&&n.props.onAnimationEnd()}),ci(n,"handleAnimationStart",function(){n.setState({isAnimationFinished:!1}),n.props.onAnimationStart&&n.props.onAnimationStart()}),n}return ufe(t,e),ofe(t,[{key:"componentDidMount",value:function(){if(this.props.isAnimationActive){var r=this.getTotalLength();this.setState({totalLength:r})}}},{key:"componentDidUpdate",value:function(){if(this.props.isAnimationActive){var r=this.getTotalLength();r!==this.state.totalLength&&this.setState({totalLength:r})}}},{key:"getTotalLength",value:function(){var r=this.mainCurve;try{return r&&r.getTotalLength&&r.getTotalLength()||0}catch{return 0}}},{key:"renderErrorBar",value:function(r,i){if(this.props.isAnimationActive&&!this.state.isAnimationFinished)return null;var o=this.props,s=o.points,l=o.xAxis,u=o.yAxis,d=o.layout,p=o.children,f=Hr(p,Bh);if(!f)return null;var g=function(w,v){return{x:w.x,y:w.y,value:w.value,errorVal:Jn(w.payload,v)}},y={clipPath:r?"url(#clipPath-".concat(i,")"):null};return W.createElement(Et,y,f.map(function(b){return W.cloneElement(b,{key:"bar-".concat(b.props.dataKey),data:s,xAxis:l,yAxis:u,layout:d,dataPointFormatter:g})}))}},{key:"renderDots",value:function(r,i,o){var s=this.props.isAnimationActive;if(s&&!this.state.isAnimationFinished)return null;var l=this.props,u=l.dot,d=l.points,p=l.dataKey,f=Ke(this.props,!1),g=Ke(u,!0),y=d.map(function(w,v){var j=xr(xr(xr({key:"dot-".concat(v),r:3},f),g),{},{index:v,cx:w.x,cy:w.y,value:w.value,dataKey:p,payload:w.payload,points:d});return t.renderDotItem(u,j)}),b={clipPath:r?"url(#clipPath-".concat(i?"":"dots-").concat(o,")"):null};return W.createElement(Et,yd({className:"recharts-line-dots",key:"dots"},b),y)}},{key:"renderCurveStatically",value:function(r,i,o,s){var l=this.props,u=l.type,d=l.layout,p=l.connectNulls;l.ref;var f=wD(l,Jpe),g=xr(xr(xr({},Ke(f,!0)),{},{fill:"none",className:"recharts-line-curve",clipPath:i?"url(#clipPath-".concat(o,")"):null,points:r},s),{},{type:u,layout:d,connectNulls:p});return W.createElement(Vl,yd({},g,{pathRef:this.pathRef}))}},{key:"renderCurveWithAnimation",value:function(r,i){var o=this,s=this.props,l=s.points,u=s.strokeDasharray,d=s.isAnimationActive,p=s.animationBegin,f=s.animationDuration,g=s.animationEasing,y=s.animationId,b=s.animateNewValues,w=s.width,v=s.height,j=this.state,k=j.prevPoints,S=j.totalLength;return W.createElement(Bi,{begin:p,duration:f,isActive:d,easing:g,from:{t:0},to:{t:1},key:"line-".concat(y),onAnimationEnd:this.handleAnimationEnd,onAnimationStart:this.handleAnimationStart},function(E){var N=E.t;if(k){var C=k.length/l.length,P=l.map(function(F,V){var U=Math.floor(V*C);if(k[U]){var q=k[U],Y=Tn(q.x,F.x),Z=Tn(q.y,F.y);return xr(xr({},F),{},{x:Y(N),y:Z(N)})}if(b){var J=Tn(w*2,F.x),ne=Tn(v/2,F.y);return xr(xr({},F),{},{x:J(N),y:ne(N)})}return xr(xr({},F),{},{x:F.x,y:F.y})});return o.renderCurveStatically(P,r,i)}var _=Tn(0,S),M=_(N),D;if(u){var B="".concat(u).split(/[,\s]+/gim).map(function(F){return parseFloat(F)});D=o.getStrokeDasharray(M,S,B)}else D=o.generateSimpleStrokeDasharray(S,M);return o.renderCurveStatically(l,r,i,{strokeDasharray:D})})}},{key:"renderCurve",value:function(r,i){var o=this.props,s=o.points,l=o.isAnimationActive,u=this.state,d=u.prevPoints,p=u.totalLength;return l&&s&&s.length&&(!d&&p>0||!gc(d,s))?this.renderCurveWithAnimation(r,i):this.renderCurveStatically(s,r,i)}},{key:"render",value:function(){var r,i=this.props,o=i.hide,s=i.dot,l=i.points,u=i.className,d=i.xAxis,p=i.yAxis,f=i.top,g=i.left,y=i.width,b=i.height,w=i.isAnimationActive,v=i.id;if(o||!l||!l.length)return null;var j=this.state.isAnimationFinished,k=l.length===1,S=nt("recharts-line",u),E=d&&d.allowDataOverflow,N=p&&p.allowDataOverflow,C=E||N,P=Qe(v)?this.id:v,_=(r=Ke(s,!1))!==null&&r!==void 0?r:{r:3,strokeWidth:2},M=_.r,D=M===void 0?3:M,B=_.strokeWidth,F=B===void 0?2:B,V=v6(s)?s:{},U=V.clipDot,q=U===void 0?!0:U,Y=D*2+F;return W.createElement(Et,{className:S},E||N?W.createElement("defs",null,W.createElement("clipPath",{id:"clipPath-".concat(P)}
531,W.createElement("rect",{x:E?g:g-y/2,y:N?f:f-b/2,width:E?y:y*2,height:N?b:b*2})),!q&&W.createElement("clipPath",{id:"clipPath-dots-".concat(P)},W.createElement("rect",{x:g-Y/2,y:f-Y/2,width:y+Y,height:b+Y}))):null,!k&&this.renderCurve(C,P),this.renderErrorBar(C,P),(k||s)&&this.renderDots(C,q,P),(!w||j)&&ha.renderCallByParent(this.props,l))}}],[{key:"getDerivedStateFromProps",value:function(r,i){return r.animationId!==i.prevAnimationId?{prevAnimationId:r.animationId,curPoints:r.points,prevPoints:i.curPoints}:r.points!==i.curPoints?{curPoints:r.points}:null}},{key:"repeat",value:function(r,i){for(var o=r.length%2!==0?[].concat(Sl(r),[0]):r,s=[],l=0;l<i;++l)s=[].concat(Sl(s),Sl(o));return s}},{key:"renderDotItem",value:function(r,i){var o;if(W.isValidElement(r))o=W.cloneElement(r,i);else if(Ge(r))o=r(i);else{var s=i.key,l=wD(i,Zpe),u=nt("recharts-line-dot",typeof r!="boolean"?r.className:"");o=W.createElement(oy,yd({key:s},l,{className:u}))}return o}}])})(O.PureComponent);ci(Ii,"displayName","Line");ci(Ii,"defaultProps",{xAxisId:0,yAxisId:0,connectNulls:!1,activeDot:!0,dot:!0,legendType:"line",stroke:"#3182bd",strokeWidth:1,fill:"#fff",points:[],isAnimationActive:!Us.isSsr,animateNewValues:!0,animationBegin:0,animationDuration:1500,animationEasing:"ease",hide:!1,label:!1});ci(Ii,"getComposedData",function(e){var t=e.props,n=e.xAxis,r=e.yAxis,i=e.xAxisTicks,o=e.yAxisTicks,s=e.dataKey,l=e.bandSize,u=e.displayedData,d=e.offset,p=t.layout,f=u.map(function(g,y){var b=Jn(g,s);return p==="horizontal"?{x:Fm({axis:n,ticks:i,bandSize:l,entry:g,index:y}),y:Qe(b)?null:r.scale(b),value:b,payload:g}:{x:Qe(b)?null:n.scale(b),y:Fm({axis:r,ticks:o,bandSize:l,entry:g,index:y}),value:b,payload:g}});return xr({points:f,layout:p},d)});var hfe=["layout","type","stroke","connectNulls","isRange","ref"],pfe=["key"],i9;function Nc(e){"@babel/helpers - typeof";return Nc=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Nc(e)}function a9(e,t){if(e==null)return{};var n=ffe(e,t),r,i;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i<o.length;i++)r=o[i],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function ffe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function us(){return us=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},us.apply(this,arguments)}function AD(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function Qa(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?AD(Object(n),!0).forEach(function(r){Ei(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):AD(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function mfe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function SD(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,s9(r.key),r)}}function gfe(e,t,n){return t&&SD(e.prototype,t),n&&SD(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function yfe(e,t,n){return t=og(t),xfe(e,o9()?Reflect.construct(t,n||[],og(e).constructor):t.apply(e,n))}function xfe(e,t){if(t&&(Nc(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return vfe(e)}function vfe(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function o9(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(o9=function(){return!!e})()}function og(e){return og=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},og(e)}function bfe(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&tk(e,t)}
531function tk(e,t){return tk=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,i){return r.__proto__=i,r},tk(e,t)}function Ei(e,t,n){return t=s9(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s9(e){var t=wfe(e,"string");return Nc(t)=="symbol"?t:t+""}function wfe(e,t){if(Nc(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Nc(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var Ri=(function(e){function t(){var n;mfe(this,t);for(var r=arguments.length,i=new Array(r),o=0;o<r;o++)i[o]=arguments[o];return n=yfe(this,t,[].concat(i)),Ei(n,"state",{isAnimationFinished:!0}),Ei(n,"id",Uc("recharts-area-")),Ei(n,"handleAnimationEnd",function(){var s=n.props.onAnimationEnd;n.setState({isAnimationFinished:!0}),Ge(s)&&s()}),Ei(n,"handleAnimationStart",function(){var s=n.props.onAnimationStart;n.setState({isAnimationFinished:!1}),Ge(s)&&s()}),n}return bfe(t,e),gfe(t,[{key:"renderDots",value:function(r,i,o){var s=this.props.isAnimationActive,l=this.state.isAnimationFinished;if(s&&!l)return null;var u=this.props,d=u.dot,p=u.points,f=u.dataKey,g=Ke(this.props,!1),y=Ke(d,!0),b=p.map(function(v,j){var k=Qa(Qa(Qa({key:"dot-".concat(j),r:3},g),y),{},{index:j,cx:v.x,cy:v.y,dataKey:f,value:v.value,payload:v.payload,points:p});return t.renderDotItem(d,k)}),w={clipPath:r?"url(#clipPath-".concat(i?"":"dots-").concat(o,")"):null};return W.createElement(Et,us({className:"recharts-area-dots"},w),b)}},{key:"renderHorizontalRect",value:function(r){var i=this.props,o=i.baseLine,s=i.points,l=i.strokeWidth,u=s[0].x,d=s[s.length-1].x,p=r*Math.abs(u-d),f=ho(s.map(function(g){return g.y||0}));return fe(o)&&typeof o=="number"?f=Math.max(o,f):o&&Array.isArray(o)&&o.length&&(f=Math.max(ho(o.map(function(g){return g.y||0})),f)),fe(f)?W.createElement("rect",{x:u<d?u:u-p,y:0,width:p,height:Math.floor(f+(l?parseInt("".concat(l),10):1))}):null}},{key:"renderVerticalRect",value:function(r){var i=this.props,o=i.baseLine,s=i.points,l=i.strokeWidth,u=s[0].y,d=s[s.length-1].y,p=r*Math.abs(u-d),f=ho(s.map(function(g){return g.x||0}));return fe(o)&&typeof o=="number"?f=Math.max(o,f):o&&Array.isArray(o)&&o.length&&(f=Math.max(ho(o.map(function(g){return g.x||0})),f)),fe(f)?W.createElement("rect",{x:0,y:u<d?u:u-p,width:f+(l?parseInt("".concat(l),10):1),height:Math.floor(p)}):null}},{key:"renderClipRect",value:function(r){var i=this.props.layout;return i==="vertical"?this.renderVerticalRect(r):this.renderHorizontalRect(r)}},{key:"renderAreaStatically",value:function(r,i,o,s){var l=this.props,u=l.layout,d=l.type,p=l.stroke,f=l.connectNulls,g=l.isRange;l.ref;var y=a9(l,hfe);return W.createElement(Et,{clipPath:o?"url(#clipPath-".concat(s,")"):null},W.createElement(Vl,us({},Ke(y,!0),{points:r,connectNulls:f,type:d,baseLine:i,layout:u,stroke:"none",className:"recharts-area-area"})),p!=="none"&&W.createElement(Vl,us({},Ke(this.props,!1),{className:"recharts-area-curve",layout:u,type:d,connectNulls:f,fill:"none",points:r})),p!=="none"&&g&&W.createElement(Vl,us({},Ke(this.props,!1),{className:"recharts-area-curve",layout:u,type:d,connectNulls:f,fill:"none",points:i})))}},{key:"renderAreaWithAnimation",value:function(r,i){var o=this,s=this.props,l=s.points,u=s.baseLine,d=s.isAnimationActive,p=s.animationBegin,f=s.animationDuration,g=s.animationEasing,y=s.animationId,b=this.state,w=b.prevPoints,v=b.prevBaseLine;return W.createElement(Bi,{begin:p,duration:f,isActive:d,easing:g,from:{t:0},to:{t:1},key:"area-".concat(y),onAnimationEnd:this.handleAnimationEnd,onAnimationStart:this.handleAnimationStart},function(j){var k=j.t;if(w){var S=w.length/l.length,E=l.map(function(_,M){var D=Math.floor(M*S);if(w[D]){var B=w[D],F=Tn(B.x,_.x),V=Tn(B.y,_.y);return Qa(Qa({},_),{},{x:F(k),y:V(k)})}return _}),N;if(fe(u)&&typeof u=="number"){var C=Tn(v,u);N=C(k)}else if(Qe(u)||Wc(u)){var P=Tn(v,0);N=P(k)}else N=u.map(function(_,M){var D=Math.floor(M*S);if(v[D]){var B=v[D],F=Tn(B.x,_.x),V=Tn(B.y,_.y);return Qa(Qa({},_),{},{x:F(k),y:V(k)})}return _});return o.renderAreaStatically(E,N,r,i)}return W.createElement(Et,null,W.createElement("defs",null,W.createElement("clipPath",{id:"animationClipPath-".concat(i)},o.renderClipRect(k))),W.createElement(Et,{clipPath:"url(#animationClipPath-".concat(i,")")},o.renderAreaStatically(l,u,r,i)))})}},{key:"renderArea",value:function(r,i){var o=this.props,s=o.points,l=o.baseLine,u=o.isAnimationActive,d=this.state,p=d.prevPoints,f=d.prevBaseLine,g=d.totalLength;return u&&s&&s.length&&(!p&&g>0||!gc(p,s)||!gc(f,l))?this.renderAreaWithAnimation(r,i):this.renderAreaStatically(s,l,r,i)}},{key:"render",value:function(){var r,i=this.props,o=i.hide,s=i.dot,l=i.points,u=i.className,d=i.top,p=i.left,f=i.xAxis,g=i.yAxis,y=i.width,b=i.height,w=i.isAnimationActive,v=i.id;if(o||!l||!l.length)return null;var j=this.state.isAnimationFinished,k=l.length===1,S=nt("recharts-area",u),E=f&&f.allowDataOverflow,N=g&&g.allowDataOverflow,C=E||N,P=Qe(v)?this.id:v,_=(r=Ke(s,!1))!==null&&r!==void 0?r:{r:3,strokeWidth:2},M=_.r,D=M===void 0?3:M,B=_.strokeWidth,F=B===void 0?2:B,V=v6(s)?s:{},U=V.clipDot,q=U===void 0?!0:U,Y=D*2+F;return W.createElement(Et,{className:S},E||N?W.createElement("defs",null,W.createElement("clipPath",{id:"clipPath-".concat(P)},W.createElement("rect",{x:E?p:p-y/2,y:N?d:d-b/2,width:E?y:y*2,height:N?b:b*2})),!q&&W.createElement("clipPath",{id:"clipPath-dots-".concat(P)},W.createElement("rect",{x:p-Y/2,y:d-Y/2,width:y+Y,height:b+Y}))):null,k?null:this.renderArea(C,P),(s||k)&&this.renderDots(C,q,P),(!w||j)&&ha.renderCallByParent(this.props,l))}}],[{key:"getDerivedStateFromProps",value:function(r,i){return r.animationId!==i.prevAnimationId?{prevAnimationId:r.animationId,curPoints:r.points,curBaseLine:r.baseLine,prevPoints:i.curPoints,prevBaseLine:i.curBaseLine}
531:r.points!==i.curPoints||r.baseLine!==i.curBaseLine?{curPoints:r.points,curBaseLine:r.baseLine}:null}}])})(O.PureComponent);i9=Ri;Ei(Ri,"displayName","Area");Ei(Ri,"defaultProps",{stroke:"#3182bd",fill:"#3182bd",fillOpacity:.6,xAxisId:0,yAxisId:0,legendType:"line",connectNulls:!1,points:[],dot:!1,activeDot:!0,hide:!1,isAnimationActive:!Us.isSsr,animationBegin:0,animationDuration:1500,animationEasing:"ease"});Ei(Ri,"getBaseValue",function(e,t,n,r){var i=e.layout,o=e.baseValue,s=t.props.baseValue,l=s??o;if(fe(l)&&typeof l=="number")return l;var u=i==="horizontal"?r:n,d=u.scale.domain();if(u.type==="number"){var p=Math.max(d[0],d[1]),f=Math.min(d[0],d[1]);return l==="dataMin"?f:l==="dataMax"||p<0?p:Math.max(Math.min(d[0],d[1]),0)}return l==="dataMin"?d[0]:l==="dataMax"?d[1]:d[0]});Ei(Ri,"getComposedData",function(e){var t=e.props,n=e.item,r=e.xAxis,i=e.yAxis,o=e.xAxisTicks,s=e.yAxisTicks,l=e.bandSize,u=e.dataKey,d=e.stackedData,p=e.dataStartIndex,f=e.displayedData,g=e.offset,y=t.layout,b=d&&d.length,w=i9.getBaseValue(t,n,r,i),v=y==="horizontal",j=!1,k=f.map(function(E,N){var C;b?C=d[p+N]:(C=Jn(E,u),Array.isArray(C)?j=!0:C=[w,C]);var P=C[1]==null||b&&Jn(E,u)==null;return v?{x:Fm({axis:r,ticks:o,bandSize:l,entry:E,index:N}),y:P?null:i.scale(C[1]),value:C,payload:E}:{x:P?null:r.scale(C[1]),y:Fm({axis:i,ticks:s,bandSize:l,entry:E,index:N}),value:C,payload:E}}),S;return b||j?S=k.map(function(E){var N=Array.isArray(E.value)?E.value[0]:null;return v?{x:E.x,y:N!=null&&E.y!=null?i.scale(N):null}:{x:N!=null?r.scale(N):null,y:E.y}}):S=v?i.scale(w):r.scale(w),Qa({points:k,baseLine:S,layout:y,isRange:j},g)});Ei(Ri,"renderDotItem",function(e,t){var n;if(W.isValidElement(e))n=W.cloneElement(e,t);else if(Ge(e))n=e(t);else{var r=nt("recharts-area-dot",typeof e!="boolean"?e.className:""),i=t.key,o=a9(t,pfe);n=W.createElement(oy,us({},o,{key:i,className:r}))}return n});function Tc(e){"@babel/helpers - typeof";return Tc=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Tc(e)}function jfe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function kfe(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,u9(r.key),r)}}function Afe(e,t,n){return t&&kfe(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function Sfe(e,t,n){return t=sg(t),Cfe(e,l9()?Reflect.construct(t,n||[],sg(e).constructor):t.apply(e,n))}function Cfe(e,t){if(t&&(Tc(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Nfe(e)}function Nfe(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function l9(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(l9=function(){return!!e})()}function sg(e){return sg=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},sg(e)}function Tfe(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&nk(e,t)}function nk(e,t){return nk=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,i){return r.__proto__=i,r},nk(e,t)}function c9(e,t,n){return t=u9(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function u9(e){var t=Efe(e,"string");return Tc(t)=="symbol"?t:t+""}function Efe(e,t){if(Tc(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Tc(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}function rk(){return rk=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},rk.apply(this,arguments)}function Pfe(e){var t=e.xAxisId,n=mS(),r=gS(),i=UB(t);return i==null?null:O.createElement(Kc,rk({},i,{className:nt("recharts-".concat(i.axisType," ").concat(i.axisType),i.className),viewBox:{x:0,y:0,width:n,height:r},ticksGenerator:function(s){return sa(s,!0)}}))}var Vr=(function(e){function t(){return jfe(this,t),Sfe(this,t,arguments)}return Tfe(t,e),Afe(t,[{key:"render",value:function(){return O.createElement(Pfe,this.props)}}])})(O.Component);c9(Vr,"displayName","XAxis");c9(Vr,"defaultProps",{allowDecimals:!0,hide:!1,orientation:"bottom",width:0,height:30,mirror:!1,xAxisId:0,tickCount:5,type:"category",padding:{left:0,right:0},allowDataOverflow:!1,scale:"auto",reversed:!1,allowDuplicatedCategory:!0});function Ec(e){"@babel/helpers - typeof";return Ec=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ec(e)}function Ofe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _fe(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,p9(r.key),r)}}function Ife(e,t,n){return t&&_fe(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function Rfe(e,t,n){return t=lg(t),Dfe(e,d9()?Reflect.construct(t,n||[],lg(e).constructor):t.apply(e,n))}function Dfe(e,t){if(t&&(Ec(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Mfe(e)}function Mfe(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function d9(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(d9=function(){return!!e})()}function lg(e){return lg=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},lg(e)}function Lfe(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&ik(e,t)}
531function ik(e,t){return ik=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,i){return r.__proto__=i,r},ik(e,t)}function h9(e,t,n){return t=p9(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function p9(e){var t=Ffe(e,"string");return Ec(t)=="symbol"?t:t+""}function Ffe(e,t){if(Ec(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Ec(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}function ak(){return ak=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},ak.apply(this,arguments)}var Bfe=function(t){var n=t.yAxisId,r=mS(),i=gS(),o=HB(n);return o==null?null:O.createElement(Kc,ak({},o,{className:nt("recharts-".concat(o.axisType," ").concat(o.axisType),o.className),viewBox:{x:0,y:0,width:r,height:i},ticksGenerator:function(l){return sa(l,!0)}}))},Gr=(function(e){function t(){return Ofe(this,t),Rfe(this,t,arguments)}return Lfe(t,e),Ife(t,[{key:"render",value:function(){return O.createElement(Bfe,this.props)}}])})(O.Component);h9(Gr,"displayName","YAxis");h9(Gr,"defaultProps",{allowDuplicatedCategory:!0,allowDecimals:!0,hide:!1,orientation:"left",width:60,height:0,mirror:!1,yAxisId:0,tickCount:5,type:"number",padding:{top:0,bottom:0},allowDataOverflow:!1,scale:"auto",reversed:!1});function CD(e){return Wfe(e)||qfe(e)||$fe(e)||zfe()}function zfe(){throw new TypeError(`Invalid attempt to spread non-iterable instance. 532In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function $fe(e,t){if(e){if(typeof e=="string")return ok(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ok(e,t)}}function qfe(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function Wfe(e){if(Array.isArray(e))return ok(e)}function ok(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var sk=function(t,n,r,i,o){var s=Hr(t,Ls),l=Hr(t,dy),u=[].concat(CD(s),CD(l)),d=Hr(t,py),p="".concat(i,"Id"),f=i[0],g=n;if(u.length&&(g=u.reduce(function(w,v){if(v.props[p]===r&&_i(v.props,"extendDomain")&&fe(v.props[f])){var j=v.props[f];return[Math.min(w[0],j),Math.max(w[1],j)]}return w},g)),d.length){var y="".concat(f,"1"),b="".concat(f,"2");g=d.reduce(function(w,v){if(v.props[p]===r&&_i(v.props,"extendDomain")&&fe(v.props[y])&&fe(v.props[b])){var j=v.props[y],k=v.props[b];return[Math.min(w[0],j,k),Math.max(w[1],j,k)]}return w},g)}return o&&o.length&&(g=o.reduce(function(w,v){return fe(v)?[Math.min(w[0],v),Math.max(w[1],v)]:w},g)),g},I1={exports:{}},ND;
532function Ufe(){return ND||(ND=1,(function(e){var t=Object.prototype.hasOwnProperty,n="~";function r(){}Object.create&&(r.prototype=Object.create(null),new r().__proto__||(n=!1));function i(u,d,p){this.fn=u,this.context=d,this.once=p||!1}function o(u,d,p,f,g){if(typeof p!="function")throw new TypeError("The listener must be a function");var y=new i(p,f||u,g),b=n?n+d:d;return u._events[b]?u._events[b].fn?u._events[b]=[u._events[b],y]:u._events[b].push(y):(u._events[b]=y,u._eventsCount++),u}function s(u,d){--u._eventsCount===0?u._events=new r:delete u._events[d]}function l(){this._events=new r,this._eventsCount=0}l.prototype.eventNames=function(){var d=[],p,f;if(this._eventsCount===0)return d;for(f in p=this._events)t.call(p,f)&&d.push(n?f.slice(1):f);return Object.getOwnPropertySymbols?d.concat(Object.getOwnPropertySymbols(p)):d},l.prototype.listeners=function(d){var p=n?n+d:d,f=this._events[p];if(!f)return[];if(f.fn)return[f.fn];for(var g=0,y=f.length,b=new Array(y);g<y;g++)b[g]=f[g].fn;return b},l.prototype.listenerCount=function(d){var p=n?n+d:d,f=this._events[p];return f?f.fn?1:f.length:0},l.prototype.emit=function(d,p,f,g,y,b){var w=n?n+d:d;if(!this._events[w])return!1;var v=this._events[w],j=arguments.length,k,S;if(v.fn){switch(v.once&&this.removeListener(d,v.fn,void 0,!0),j){case 1:return v.fn.call(v.context),!0;case 2:return v.fn.call(v.context,p),!0;case 3:return v.fn.call(v.context,p,f),!0;case 4:return v.fn.call(v.context,p,f,g),!0;case 5:return v.fn.call(v.context,p,f,g,y),!0;case 6:return v.fn.call(v.context,p,f,g,y,b),!0}for(S=1,k=new Array(j-1);S<j;S++)k[S-1]=arguments[S];v.fn.apply(v.context,k)}else{var E=v.length,N;for(S=0;S<E;S++)switch(v[S].once&&this.removeListener(d,v[S].fn,void 0,!0),j){case 1:v[S].fn.call(v[S].context);break;case 2:v[S].fn.call(v[S].context,p);break;case 3:v[S].fn.call(v[S].context,p,f);break;case 4:v[S].fn.call(v[S].context,p,f,g);break;default:if(!k)for(N=1,k=new Array(j-1);N<j;N++)k[N-1]=arguments[N];v[S].fn.apply(v[S].context,k)}}return!0},l.prototype.on=function(d,p,f){return o(this,d,p,f,!1)},l.prototype.once=function(d,p,f){return o(this,d,p,f,!0)},l.prototype.removeListener=function(d,p,f,g){var y=n?n+d:d;if(!this._events[y])return this;if(!p)return s(this,y),this;var b=this._events[y];if(b.fn)b.fn===p&&(!g||b.once)&&(!f||b.context===f)&&s(this,y);else{for(var w=0,v=[],j=b.length;w<j;w++)(b[w].fn!==p||g&&!b[w].once||f&&b[w].context!==f)&&v.push(b[w]);v.length?this._events[y]=v.length===1?v[0]:v:s(this,y)}return this},l.prototype.removeAllListeners=function(d){var p;return d?(p=n?n+d:d,this._events[p]&&s(this,p)):(this._events=new r,this._eventsCount=0),this},l.prototype.off=l.prototype.removeListener,l.prototype.addListener=l.prototype.on,l.prefixed=n,l.EventEmitter=l,e.exports=l})(I1)),I1.exports}var Hfe=Ufe();const Vfe=bt(Hfe);var R1=new Vfe,D1="recharts.syncMouseEvents";function uh(e){"@babel/helpers - typeof";return uh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},uh(e)}function Gfe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Yfe(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,f9(r.key),r)}}function Kfe(e,t,n){return t&&Yfe(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function M1(e,t,n){return t=f9(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function f9(e){var t=Xfe(e,"string");return uh(t)=="symbol"?t:t+""}function Xfe(e,t){if(uh(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(uh(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var Qfe=(function(){function e(){Gfe(this,e),M1(this,"activeIndex",0),M1(this,"coordinateList",[]),M1(this,"layout","horizontal")}return Kfe(e,[{key:"setDetails",value:function(n){var r,i=n.coordinateList,o=i===void 0?null:i,s=n.container,l=s===void 0?null:s,u=n.layout,d=u===void 0?null:u,p=n.offset,f=p===void 0?null:p,g=n.mouseHandlerCallback,y=g===void 0?null:g;this.coordinateList=(r=o??this.coordinateList)!==null&&r!==void 0?r:[],this.container=l??this.container,this.layout=d??this.layout,this.offset=f??this.offset,this.mouseHandlerCallback=y??this.mouseHandlerCallback,this.activeIndex=Math.min(Math.max(this.activeIndex,0),this.coordinateList.length-1)}},{key:"focus",value:function(){this.spoofMouse()}},{key:"keyboardEvent",value:function(n){if(this.coordinateList.length!==0)switch(n.key){case"ArrowRight":{if
532(this.layout!=="horizontal")return;this.activeIndex=Math.min(this.activeIndex+1,this.coordinateList.length-1),this.spoofMouse();break}case"ArrowLeft":{if(this.layout!=="horizontal")return;this.activeIndex=Math.max(this.activeIndex-1,0),this.spoofMouse();break}}}},{key:"setIndex",value:function(n){this.activeIndex=n}},{key:"spoofMouse",value:function(){var n,r;if(this.layout==="horizontal"&&this.coordinateList.length!==0){var i=this.container.getBoundingClientRect(),o=i.x,s=i.y,l=i.height,u=this.coordinateList[this.activeIndex].coordinate,d=((n=window)===null||n===void 0?void 0:n.scrollX)||0,p=((r=window)===null||r===void 0?void 0:r.scrollY)||0,f=o+u+d,g=s+this.offset.top+l/2+p;this.mouseHandlerCallback({pageX:f,pageY:g})}}}])})();function Jfe(e,t,n){if(n==="number"&&t===!0&&Array.isArray(e)){var r=e==null?void 0:e[0],i=e==null?void 0:e[1];if(r&&i&&fe(r)&&fe(i))return!0}return!1}function Zfe(e,t,n,r){var i=r/2;return{stroke:"none",fill:"#ccc",x:e==="horizontal"?t.x-i:n.left+.5,y:e==="horizontal"?n.top+.5:t.y-i,width:e==="horizontal"?r:n.width-1,height:e==="horizontal"?n.height-1:r}}function m9(e){var t=e.cx,n=e.cy,r=e.radius,i=e.startAngle,o=e.endAngle,s=Pn(t,n,r,i),l=Pn(t,n,r,o);return{points:[s,l],cx:t,cy:n,radius:r,startAngle:i,endAngle:o}}function eme(e,t,n){var r,i,o,s;if(e==="horizontal")r=t.x,o=r,i=n.top,s=n.top+n.height;else if(e==="vertical")i=t.y,s=i,r=n.left,o=n.left+n.width;else if(t.cx!=null&&t.cy!=null)if(e==="centric"){var l=t.cx,u=t.cy,d=t.innerRadius,p=t.outerRadius,f=t.angle,g=Pn(l,u,d,f),y=Pn(l,u,p,f);r=g.x,i=g.y,o=y.x,s=y.y}else return m9(t);return[{x:r,y:i},{x:o,y:s}]}function dh(e){"@babel/helpers - typeof";return dh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},dh(e)}function TD(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function Nf(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?TD(Object(n),!0).forEach(function(r){tme(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):TD(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function tme(e,t,n){return t=nme(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function nme(e){var t=rme(e,"string");return dh(t)=="symbol"?t:t+""}function rme(e,t){if(dh(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(dh(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function ime(e){var t,n,r=e.element,i=e.tooltipEventType,o=e.isActive,s=e.activeCoordinate,l=e.activePayload,u=e.offset,d=e.activeTooltipIndex,p=e.tooltipAxisBandSize,f=e.layout,g=e.chartName,y=(t=r.props.cursor)!==null&&t!==void 0?t:(n=r.type.defaultProps)===null||n===void 0?void 0:n.cursor;if(!r||!y||!o||!s||g!=="ScatterChart"&&i!=="axis")return null;var b,w=Vl;if(g==="ScatterChart")b=s,w=Vue;else if(g==="BarChart")b=Zfe(f,s,u,p),w=uS;else if(f==="radial"){var v=m9(s),j=v.cx,k=v.cy,S=v.radius,E=v.startAngle,N=v.endAngle;b={cx:j,cy:k,startAngle:E,endAngle:N,innerRadius:S,outerRadius:S},w=bB}else b={points:eme(f,s,u)},w=Vl;var C=Nf(Nf(Nf(Nf({stroke:"#ccc",pointerEvents:"none"},u),b),Ke(y,!1)),{},{payload:l,payloadIndex:d,className:nt("recharts-tooltip-cursor",y.className)});return O.isValidElement(y)?O.cloneElement(y,C):O.createElement(w,C)}var ame=["item"],ome=["children","className","width","height","style","compact","title","desc"];function Pc(e){"@babel/helpers - typeof";return Pc=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Pc(e)}
532function Ml(){return Ml=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},Ml.apply(this,arguments)}function ED(e,t){return cme(e)||lme(e,t)||y9(e,t)||sme()}function sme(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. 533In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function lme(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,i,o,s,l=[],u=!0,d=!1;try{if(o=(n=n.call(e)).next,t!==0)for(;!(u=(r=o.call(n)).done)&&(l.push(r.value),l.length!==t);u=!0);}catch(p){d=!0,i=p}finally{try{if(!u&&n.return!=null&&(s=n.return(),Object(s)!==s))return}finally{if(d)throw i}}return l}}function cme(e){if(Array.isArray(e))return e}function PD(e,t){if(e==null)return{};var n=ume(e,t),r,i;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i<o.length;i++)r=o[i],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function ume(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function dme(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function hme(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,x9(r.key),r)}}function pme(e,t,n){return t&&hme(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function fme(e,t,n){return t=cg(t),mme(e,g9()?Reflect.construct(t,n||[],cg(e).constructor):t.apply(e,n))}function mme(e,t){if(t&&(Pc(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return gme(e)}function gme(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function g9(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(g9=function(){return!!e})()}function cg(e){return cg=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},cg(e)}function yme(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&lk(e,t)}function lk(e,t){return lk=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,i){return r.__proto__=i,r},lk(e,t)}function Oc(e){return bme(e)||vme(e)||y9(e)||xme()}function xme(){throw new TypeError(`Invalid attempt to spread non-iterable instance. 534In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function y9(e,t){if(e){if(typeof e=="string")return ck(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ck(e,t)}}function vme(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function bme(e){if(Array.isArray(e))return ck(e)}function ck(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function OD(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function ie(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?OD(Object(n),!0).forEach(function(r){Be(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):OD(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function Be(e,t,n){return t=x9(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function x9(e){var t=wme(e,"string");return Pc(t)=="symbol"?t:t+""}function wme(e,t){if(Pc(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(Pc(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var jme={xAxis:["bottom","top"],yAxis:["left","right"]},kme={width:"100%",height:"100%"},v9={x:0,y:0};function Tf(e){return e}var Ame=function(t,n){return n==="horizontal"?t.x:n==="vertical"?t.y:n==="centric"?t.angle:t.radius},Sme=function(t,n,r,i){var o=n.find(function(p){return p&&p.index===r});if(o){if(t==="horizontal")return{x:o.coordinate,y:i.y};if(t==="vertical")return{x:i.x,y:o.coordinate};if(t==="centric"){var s=o.coordinate,l=i.radius;return ie(ie(ie({},i),Pn(i.cx,i.cy,l,s)),{},{angle:s,radius:l})}var u=o.coordinate,d=i.angle;return ie(ie(ie({},i),Pn(i.cx,i.cy,u,d)),{},{angle:d,radius:u})}return v9},fy=function(t,n){var r=n.graphicalItems,i=n.dataStartIndex,o=n.dataEndIndex,s=(r??[]).reduce(function(l,u){var d=u.props.data;return d&&d.length?[].concat(Oc(l),Oc(d)):l},[]);return s.length>0?s:t&&t.length&&fe(i)&&fe(o)?t.slice(i,o+1):[]};function b9(e){return e==="number"?[0,"auto"]:void 0}var uk=function(t,n,r,i){var o=t.graphicalItems,s=t.tooltipAxis,l=fy(n,t);return r<0||!o||!o.length||r>=l.length?null:o.reduce(function(u,d){var p,f=(p=d.props.data)!==null&&p!==void 0?p:n;f&&t.dataStartIndex+t.dataEndIndex!==0&&t.dataEndIndex-t.dataStartIndex>=r&&(f=f.slice(t.dataStartIndex,t.dataEndIndex+1));var g;if(s.dataKey&&!s.allowDuplicatedCategory){var y=f===void 0?l:f;g=um(y,s.dataKey,i)}else g=f&&f[r]||l[r];return g?[].concat(Oc(u),[yB(d,g)]):u},[])},_D=function(t,n,r,i){var o=i||{x:t.chartX,y:t.chartY},s=Ame(o,r),l=t.orderedTooltipTicks,u=t.tooltipAxis,d=t.tooltipTicks,p=Sse(s,l,d,u);if(p>=0&&d){var f=d[p]&&d[p].value,g=uk(t,n,p,f),y=Sme(r,l,p,o);
534return{activeTooltipIndex:p,activeLabel:f,activePayload:g,activeCoordinate:y}}return null},Cme=function(t,n){var r=n.axes,i=n.graphicalItems,o=n.axisType,s=n.axisIdKey,l=n.stackGroups,u=n.dataStartIndex,d=n.dataEndIndex,p=t.layout,f=t.children,g=t.stackOffset,y=fB(p,o);return r.reduce(function(b,w){var v,j=w.type.defaultProps!==void 0?ie(ie({},w.type.defaultProps),w.props):w.props,k=j.type,S=j.dataKey,E=j.allowDataOverflow,N=j.allowDuplicatedCategory,C=j.scale,P=j.ticks,_=j.includeHidden,M=j[s];if(b[M])return b;var D=fy(t.data,{graphicalItems:i.filter(function(X){var L,me=s in X.props?X.props[s]:(L=X.type.defaultProps)===null||L===void 0?void 0:L[s];return me===M}),dataStartIndex:u,dataEndIndex:d}),B=D.length,F,V,U;Jfe(j.domain,E,k)&&(F=Nj(j.domain,null,E),y&&(k==="number"||C!=="auto")&&(U=md(D,S,"category")));var q=b9(k);if(!F||F.length===0){var Y,Z=(Y=j.domain)!==null&&Y!==void 0?Y:q;if(S){if(F=md(D,S,k),k==="category"&&y){var J=yZ(F);N&&J?(V=F,F=Km(0,B)):N||(F=UR(Z,F,w).reduce(function(X,L){return X.indexOf(L)>=0?X:[].concat(Oc(X),[L])},[]))}else if(k==="category")N?F=F.filter(function(X){return X!==""&&!Qe(X)}):F=UR(Z,F,w).reduce(function(X,L){return X.indexOf(L)>=0||L===""||Qe(L)?X:[].concat(Oc(X),[L])},[]);else if(k==="number"){var ne=Pse(D,i.filter(function(X){var L,me,xe=s in X.props?X.props[s]:(L=X.type.defaultProps)===null||L===void 0?void 0:L[s],le="hide"in X.props?X.props.hide:(me=X.type.defaultProps)===null||me===void 0?void 0:me.hide;return xe===M&&(_||!le)}),S,o,p);ne&&(F=ne)}y&&(k==="number"||C!=="auto")&&(U=md(D,S,"category"))}else y?F=Km(0,B):l&&l[M]&&l[M].hasStack&&k==="number"?F=g==="expand"?[0,1]:gB(l[M].stackGroups,u,d):F=pB(D,i.filter(function(X){var L=s in X.props?X.props[s]:X.type.defaultProps[s],me="hide"in X.props?X.props.hide:X.type.defaultProps.hide;return L===M&&(_||!me)}),k,p,!0);if(k==="number")F=sk(f,F,M,o,P),Z&&(F=Nj(Z,F,E));else if(k==="category"&&Z){var I=Z,z=F.every(function(X){return I.indexOf(X)>=0});z&&(F=I)}}return ie(ie({},b),{},Be({},M,ie(ie({},j),{},{axisType:o,domain:F,categoricalDomain:U,duplicateDomain:V,originalDomain:(v=j.domain)!==null&&v!==void 0?v:q,isCategorical:y,layout:p})))},{})},Nme=function(t,n){var r=n.graphicalItems,i=n.Axis,o=n.axisType,s=n.axisIdKey,l=n.stackGroups,u=n.dataStartIndex,d=n.dataEndIndex,p=t.layout,f=t.children,g=fy(t.data,{graphicalItems:r,dataStartIndex:u,dataEndIndex:d}),y=g.length,b=fB(p,o),w=-1;return r.reduce(function(v,j){var k=j.type.defaultProps!==void 0?ie(ie({},j.type.defaultProps),j.props):j.props,S=k[s],E=b9("number");if(!v[S]){w++;var N;return b?N=Km(0,y):l&&l[S]&&l[S].hasStack?(N=gB(l[S].stackGroups,u,d),N=sk(f,N,S,o)):(N=Nj(E,pB(g,r.filter(function(C){var P,_,M=s in C.props?C.props[s]:(P=C.type.defaultProps)===null||P===void 0?void 0:P[s],D="hide"in C.props?C.props.hide:(_=C.type.defaultProps)===null||_===void 0?void 0:_.hide;return M===S&&!D}),"number",p),i.defaultProps.allowDataOverflow),N=sk(f,N,S,o)),ie(ie({},v),{},Be({},S,ie(ie({axisType:o},i.defaultProps),{},{hide:!0,orientation:Ur(jme,"".concat(o,".").concat(w%2),null),domain:N,originalDomain:E,isCategorical:b,layout:p})))}return v},{})},Tme=function(t,n){var r=n.axisType,i=r===void 0?"xAxis":r,o=n.AxisComp,s=n.graphicalItems,l=n.stackGroups,u=n.dataStartIndex,d=n.dataEndIndex,p=t.children,f="".concat(i,"Id"),g=Hr(p,o),y={};return g&&g.length?y=Cme(t,{axes:g,graphicalItems:s,axisType:i,axisIdKey:f,stackGroups:l,dataStartIndex:u,dataEndIndex:d}):s&&s.length&&(y=Nme(t,{Axis:o,graphicalItems:s,axisType:i,axisIdKey:f,stackGroups:l,dataStartIndex:u,dataEndIndex:d})),y},Eme=function(t){var n=eo(t),r=sa(n,!1,!0);return{tooltipTicks:r,orderedTooltipTicks:LA(r,function(i){return i.coordinate}),tooltipAxis:n,tooltipAxisBandSize:Bm(n,r)}},ID=function(t){var n=t.children,r=t.defaultShowTooltip,i=wr(n,bc),o=0,s=0;return t.data&&t.data.length!==0&&(s=t.data.length-1),i&&i.props&&(i.props.startIndex>=0&&(o=i.props.startIndex),i.props.endIndex>=0&&(s=i.props.endIndex)),{chartX:0,chartY:0,dataStartIndex:o,dataEndIndex:s,activeTooltipIndex:-1,isTooltipActive:!!r}},Pme=function(t){return!t||!t.length?!1:t.some(function(n){var r=ca(n&&n.type);return r&&r.indexOf("Bar")>=0})},RD=function(t){return t==="horizontal"?{numericAxisName:"yAxis",cateAxisName:"xAxis"}:t==="vertical"?{numericAxisName:"xAxis",cateAxisName:"yAxis"}:t==="centric"?{numericAxisName:"radiusAxis",cateAxisName:"angleAxis"}:{numericAxisName:"angleAxis",cateAxisName:"radiusAxis"}},Ome=function(t,n){var r=t.props,i=t.graphicalItems,o=t.xAxisMap,s=o===void 0?{}:o,l=t.yAxisMap,u=l===void 0?{}:l,d=r.width,p=r.height,f=r.children,g=r.margin||{},y=wr(f,bc),b=wr(f,Wl),w=Object.keys(u).reduce(function(N,C){var P=u[C],_=P.orientation;return!P.mirror&&!P.hide?ie(ie({},N),{},Be({},_,N[_]+P.width)):N},{left:g.left||0,right:g.right||0}),v=Object.keys(s).reduce(function(N,C){var P=s[C],_=P.orientation;return!P.mirror&&!P.hide?ie(ie({},N),{},Be({},_,Ur(N,"".concat(_))+P.height)):N},{top:g.top||0,bottom:g.bottom||0}),j=ie(ie({},v),w),k=j.bottom;y&&(j.bottom+=y.props.height||bc.defaultProps.height),b&&n&&(j=Tse(j,i,r,n
534));var S=d-j.left-j.right,E=p-j.top-j.bottom;return ie(ie({brushBottom:k},j),{},{width:Math.max(S,0),height:Math.max(E,0)})},_me=function(t,n){if(n==="xAxis")return t[n].width;if(n==="yAxis")return t[n].height},bS=function(t){var n=t.chartName,r=t.GraphicalChild,i=t.defaultTooltipEventType,o=i===void 0?"axis":i,s=t.validateTooltipEventTypes,l=s===void 0?["axis"]:s,u=t.axisComponents,d=t.legendContent,p=t.formatAxisMap,f=t.defaultProps,g=function(j,k){var S=k.graphicalItems,E=k.stackGroups,N=k.offset,C=k.updateId,P=k.dataStartIndex,_=k.dataEndIndex,M=j.barSize,D=j.layout,B=j.barGap,F=j.barCategoryGap,V=j.maxBarSize,U=RD(D),q=U.numericAxisName,Y=U.cateAxisName,Z=Pme(S),J=[];return S.forEach(function(ne,I){var z=fy(j.data,{graphicalItems:[ne],dataStartIndex:P,dataEndIndex:_}),X=ne.type.defaultProps!==void 0?ie(ie({},ne.type.defaultProps),ne.props):ne.props,L=X.dataKey,me=X.maxBarSize,xe=X["".concat(q,"Id")],le=X["".concat(Y,"Id")],Ie={},Oe=u.reduce(function(hn,nn){var Sa=k["".concat(nn.axisType,"Map")],_o=X["".concat(nn.axisType,"Id")];Sa&&Sa[_o]||nn.axisType==="zAxis"||Ms();var Io=Sa[_o];return ie(ie({},hn),{},Be(Be({},nn.axisType,Io),"".concat(nn.axisType,"Ticks"),sa(Io)))},Ie),ae=Oe[Y],ke=Oe["".concat(Y,"Ticks")],Re=E&&E[xe]&&E[xe].hasStack&&qse(ne,E[xe].stackGroups),se=ca(ne.type).indexOf("Bar")>=0,rt=Bm(ae,ke),qe=[],it=Z&&Cse({barSize:M,stackGroups:E,totalSize:_me(Oe,Y)});if(se){var Ae,at,zt=Qe(me)?V:me,Ht=(Ae=(at=Bm(ae,ke,!0))!==null&&at!==void 0?at:zt)!==null&&Ae!==void 0?Ae:0;qe=Nse({barGap:B,barCategoryGap:F,bandSize:Ht!==rt?Ht:rt,sizeList:it[le],maxBarSize:zt}),Ht!==rt&&(qe=qe.map(function(hn){return ie(ie({},hn),{},{position:ie(ie({},hn.position),{},{offset:hn.position.offset-Ht/2})})}))}var On=ne&&ne.type&&ne.type.getComposedData;On&&J.push({props:ie(ie({},On(ie(ie({},Oe),{},{displayedData:z,props:j,dataKey:L,item:ne,bandSize:rt,barPosition:qe,offset:N,stackedData:Re,layout:D,dataStartIndex:P,dataEndIndex:_}))),{},Be(Be(Be({key:ne.key||"item-".concat(I)},q,Oe[q]),Y,Oe[Y]),"animationId",C)),childIndex:EZ(ne,j.children),item:ne})}),J},y=function(j,k){var S=j.props,E=j.dataStartIndex,N=j.dataEndIndex,C=j.updateId;if(!aO({props:S}))return null;var P=S.children,_=S.layout,M=S.stackOffset,D=S.data,B=S.reverseStackOrder,F=RD(_),V=F.numericAxisName,U=F.cateAxisName,q=Hr(P,r),Y=Bse(D,q,"".concat(V,"Id"),"".concat(U,"Id"),M,B),Z=u.reduce(function(X,L){var me="".concat(L.axisType,"Map");return ie(ie({},X),{},Be({},me,Tme(S,ie(ie({},L),{},{graphicalItems:q,stackGroups:L.axisType===V&&Y,dataStartIndex:E,dataEndIndex:N}))))},{}),J=Ome(ie(ie({},Z),{},{props:S,graphicalItems:q}),k==null?void 0:k.legendBBox);Object.keys(Z).forEach(function(X){Z[X]=p(S,Z[X],J,X.replace("Map",""),n)});var ne=Z["".concat(U,"Map")],I=Eme(ne),z=g(S,ie(ie({},Z),{},{dataStartIndex:E,dataEndIndex:N,updateId:C,graphicalItems:q,stackGroups:Y,offset:J}));return ie(ie({formattedGraphicalItems:z,graphicalItems:q,offset:J,stackGroups:Y},I),Z)},b=(function(v){function j(k){var S,E,N;return dme(this,j),N=fme(this,j,[k]),Be(N,"eventEmitterSymbol",Symbol("rechartsEventEmitter")),Be(N,"accessibilityManager",new Qfe),Be(N,"handleLegendBBoxUpdate",function(C){if(C){var P=N.state,_=P.dataStartIndex,M=P.dataEndIndex,D=P.updateId;N.setState(ie({legendBBox:C},y({props:N.props,dataStartIndex:_,dataEndIndex:M,updateId:D},ie(ie({},N.state),{},{legendBBox:C}))))}}),Be(N,"handleReceiveSyncEvent",function(C,P,_){if(N.props.syncId===C){if(_===N.eventEmitterSymbol&&typeof N.props.syncMethod!="function")return;N.applySyncEvent(P)}}),Be(N,"handleBrushChange",function(C){var P=C.startIndex,_=C.endIndex;if(P!==N.state.dataStartIndex||_!==N.state.dataEndIndex){var M=N.state.updateId;N.setState(function(){return ie({dataStartIndex:P,dataEndIndex:_},y({props:N.props,dataStartIndex:P,dataEndIndex:_,updateId:M},N.state))}),N.triggerSyncEvent({dataStartIndex:P,dataEndIndex:_})}}),Be(N,"handleMouseEnter",function(C){var P=N.getMouseInfo(C);if(P){var _=ie(ie({},P),{},{isTooltipActive:!0});N.setState(_),N.triggerSyncEvent(_);var M=N.props.onMouseEnter;Ge(M)&&M(_,C)}}),Be(N,"triggeredAfterMouseMove",function(C){var P=N.getMouseInfo(C),_=P?ie(ie({},P),{},{isTooltipActive:!0}):{isTooltipActive:!1};N.setState(_),N.triggerSyncEvent(_);var M=N.props.onMouseMove;Ge(M)&&M(_,C)}),Be(N,"handleItemMouseEnter",function(C){N.setState(function(){return{isTooltipActive:!0,activeItem:C,activePayload:C.tooltipPayload,activeCoordinate:C.tooltipPosition||{x:C.cx,y:C.cy}}})}),Be(N,"handleItemMouseLeave",function(){N.setState(function(){return{isTooltipActive:!1}})}),Be(N,"handleMouseMove",function(C){C.persist(),N.throttleTriggeredAfterMouseMove(C)}),Be(N,"handleMouseLeave",function(C){N.throttleTriggeredAfterMouseMove.cancel();var P={isTooltipActive:!1};N.setState(P),N.triggerSyncEvent(P);var _=N.props.onMouseLeave;Ge(_)&&_(P,C)}),Be(N,"handleOuterEvent",function(C){var P=TZ(C),_=Ur(N.props,"".concat(P));if(P&&Ge(_)){var M,D;/.*touch.*/i.test(P)?D=N.getMouseInfo(C.changedTouches[0]):D=N.getMouseInfo(C),_((M=D)!==null&&M!==void 0?M:{},C)}}),Be(N,"handleClick",function(C){var P=N.getMouseInfo(C);if(P){var _=ie(ie({},P),{},{isTooltipActive:!0});N.setState(_),N.triggerSyncEvent(_);var M=N.props.onClick;Ge(M)&&M(_,C)}}),Be(N,"handleMouseDown",function(C){var P=N.props.onMouseDown;if(Ge(P)){var _=N.getMouseInfo(C);P(_,C)}}),Be(N,"handleMouseUp",function(C){var P=N.props.onMouseUp;if(Ge(P)){var _=N.getMouseInfo(C);P(_,C)}}),Be(N,"handleTouchMove",function(C){C.changedTouches!=null&&C.changedTouches.length>0&&N.throttleTriggeredAfterMouseMove(C.changedTouches[0])}),Be(N,"handleTouchStart",function(C){C.changedTouches!=null&&C.changedTouches.length>0&&N.handleMouseDown(C.changedTouches[0])}),Be(N,"handleTouchEnd",function(C){C.changedTouches!=null&&C.changedTouches.length>0&&N.handleMouseUp(C.changedTouches[0])}),Be(N,"handleDoubleClick",function(C){var P=N.props.onDoubleClick;if(Ge(P)){var _=N.getMouseInfo(C);P(_,C)}}),Be(N,"handleContextMenu",function(C){var P=N.props.onContextMenu;if(Ge(P)){var _=N.getMouseInfo(C);P(_,C)}}),Be(N,"triggerSyncEvent",function(C){N.props.syncId!==void 0&&R1.emit(D1,N.props.syncId,C,N.eventEmitterSymbol)}),Be(N,"applySyncEvent",function(C){var P=N.props,_=P.layout,M=P.syncMethod,D=N.state.updateId,B=C.dataStartIndex,F=C.dataEndIndex;if(C.dataStartIndex!==void 0||C.dataEndIndex!==void 0)N.setState(ie({dataStartIndex:B,dataEndIndex:F},y({props:N.props,dataStartIndex:B,dataEndIndex:F,updateId:D},N.state)));else if(C.activeTooltipIndex!==void 0){var V=C.chartX,U=C.chartY,q=C.activeTooltipIndex,Y=N.state,Z=Y.offset,J=Y.tooltipTicks;if(!Z)return;if(typeof M=="function")q=M(J,C);else if(M==="value"){q=-1;for(var ne=0;ne<J.length;ne++)if(J[ne].value===C.activeLabel){q=ne;break}}var I=ie(ie({},Z),{},{x:Z.left,y:Z.top}),z=Math.min(V,I.x+I.width),X=Math.min(U,I.y+I.height),L=J[q]&&J[q].value,me=uk(N.state,N.props.data,q),xe=J[q]?{x:_==="horizontal"?J[q].coordinate:z,y:_==="horizontal"?X:J[q].coordinate}:v9;N.setState(ie(ie({},C),{},{activeLabel:L,activeCoordinate:xe,activePayload:me,activeTooltipIndex:q}))}else N.setState(C)}),Be(N,"renderCursor",function(C){var P,_=N.state,M=_.isTooltipActive,D=_.activeCoordinate,B=_.activePayload,F=_.offset,V=_.activeTooltipIndex,U=_.tooltipAxisBandSize,q=N.getTooltipEventType(),Y=(P=C.props.active)!==null&&P!==void 0?P:M,Z=N.props.layout,J=C.key||"_recharts-cursor";return W.createElement(ime,{key:J,activeCoordinate:D,activePayload:B,activeTooltipIndex:V,chartName:n,element:C,isActive:Y,layout:Z,offset:F,tooltipAxisBandSize:U,tooltipEventType:q})}),Be(N,"renderPolarAxis",function(C,P,_){var M=Ur(C,"type.axisType"),D=Ur(N.state,"".concat(M,"Map")),B=C.type.defaultProps,F=B!==void 0?ie(ie({},B),C.props):C.props,V=D&&D[F["".concat(M,"Id")]];return O.cloneElement(C,ie(ie({},V),{},{className:nt(M,V.className),key:C.key||"".concat(P,"-").concat(_),ticks:sa(V,!0)}))}),Be(N,"renderPolarGrid",function(C){var P=C.props,_=P.radialLines,M=P.polarAngles,D=P.polarRadius,B=N.state,F=B.radiusAxisMap,V=B.angleAxisMap,U=eo(F),q=eo(V),Y=q.cx,Z=q.cy,J=q.innerRadius,ne=q.outerRadius;return O.cloneElement(C,{polarAngles:Array.isArray(M)?M:sa(q,!0).map(function(I){return I.coordinate}),polarRadius:Array.isArray(D)?D:sa(U,!0).map(function(I){return I.coordinate}),cx:Y,cy:Z,innerRadius:J,outerRadius:ne,key:C.key||"polar-grid",radialLines:_})}),Be(N,"renderLegend",function(){var C=N.state.formattedGraphicalItems,P=N.props,_=P.children,M=P.width,D=P.height,B=N.props.margin||{},F=M-(B.left||0)-(B.right||0),V=dB({children:_,formattedGraphicalItems:C,legendWidth:F,legendContent:d});if(!V)return null;var U=V.item,q=PD(V,ame);return O.cloneElement(U,ie(ie({},q),{}
534,{chartWidth:M,chartHeight:D,margin:B,onBBoxUpdate:N.handleLegendBBoxUpdate}))}),Be(N,"renderTooltip",function(){var C,P=N.props,_=P.children,M=P.accessibilityLayer,D=wr(_,Kn);if(!D)return null;var B=N.state,F=B.isTooltipActive,V=B.activeCoordinate,U=B.activePayload,q=B.activeLabel,Y=B.offset,Z=(C=D.props.active)!==null&&C!==void 0?C:F;return O.cloneElement(D,{viewBox:ie(ie({},Y),{},{x:Y.left,y:Y.top}),active:Z,label:q,payload:Z?U:[],coordinate:V,accessibilityLayer:M})}),Be(N,"renderBrush",function(C){var P=N.props,_=P.margin,M=P.data,D=N.state,B=D.offset,F=D.dataStartIndex,V=D.dataEndIndex,U=D.updateId;return O.cloneElement(C,{key:C.key||"_recharts-brush",onChange:kf(N.handleBrushChange,C.props.onChange),data:M,x:fe(C.props.x)?C.props.x:B.left,y:fe(C.props.y)?C.props.y:B.top+B.height+B.brushBottom-(_.bottom||0),width:fe(C.props.width)?C.props.width:B.width,startIndex:F,endIndex:V,updateId:"brush-".concat(U)})}),Be(N,"renderReferenceElement",function(C,P,_){if(!C)return null;var M=N,D=M.clipPathId,B=N.state,F=B.xAxisMap,V=B.yAxisMap,U=B.offset,q=C.type.defaultProps||{},Y=C.props,Z=Y.xAxisId,J=Z===void 0?q.xAxisId:Z,ne=Y.yAxisId,I=ne===void 0?q.yAxisId:ne;return O.cloneElement(C,{key:C.key||"".concat(P,"-").concat(_),xAxis:F[J],yAxis:V[I],viewBox:{x:U.left,y:U.top,width:U.width,height:U.height},clipPathId:D})}),Be(N,"renderActivePoints",function(C){var P=C.item,_=C.activePoint,M=C.basePoint,D=C.childIndex,B=C.isRange,F=[],V=P.props.key,U=P.item.type.defaultProps!==void 0?ie(ie({},P.item.type.defaultProps),P.item.props):P.item.props,q=U.activeDot,Y=U.dataKey,Z=ie(ie({index:D,dataKey:Y,cx:_.x,cy:_.y,r:4,fill:cS(P.item),strokeWidth:2,stroke:"#fff",payload:_.payload,value:_.value},Ke(q,!1)),dm(q));return F.push(j.renderActiveDot(q,Z,"".concat(V,"-activePoint-").concat(D))),M?F.push(j.renderActiveDot(q,ie(ie({},Z),{},{cx:M.x,cy:M.y}),"".concat(V,"-basePoint-").concat(D))):B&&F.push(null),F}),Be(N,"renderGraphicChild",function(C,P,_){var M=N.filterFormatItem(C,P,_);if(!M)return null;var D=N.getTooltipEventType(),B=N.state,F=B.isTooltipActive,V=B.tooltipAxis,U=B.activeTooltipIndex,q=B.activeLabel,Y=N.props.children,Z=wr(Y,Kn),J=M.props,ne=J.points,I=J.isRange,z=J.baseLine,X=M.item.type.defaultProps!==void 0?ie(ie({},M.item.type.defaultProps),M.item.props):M.item.props,L=X.activeDot,me=X.hide,xe=X.activeBar,le=X.activeShape,Ie=!!(!me&&F&&Z&&(L||xe||le)),Oe={};D!=="axis"&&Z&&Z.props.trigger==="click"?Oe={onClick:kf(N.handleItemMouseEnter,C.props.onClick)}:D!=="axis"&&(Oe={onMouseLeave:kf(N.handleItemMouseLeave,C.props.onMouseLeave),onMouseEnter:kf(N.handleItemMouseEnter,C.props.onMouseEnter)});var ae=O.cloneElement(C,ie(ie({},M.props),Oe));function ke(nn){return typeof V.dataKey=="function"?V.dataKey(nn.payload):null}if(Ie)if(U>=0){var Re,se;if(V.dataKey&&!V.allowDuplicatedCategory){var rt=typeof V.dataKey=="function"?ke:"payload.".concat(V.dataKey.toString());Re=um(ne,rt,q),se=I&&z&&um(z,rt,q)}else Re=ne==null?void 0:ne[U],se=I&&z&&z[U];if(le||xe){var qe=C.props.activeIndex!==void 0?C.props.activeIndex:U;return[O.cloneElement(C,ie(ie(ie({},M.props),Oe),{},{activeIndex:qe})),null,null]}if(!Qe(Re))return[ae].concat(Oc(N.renderActivePoints({item:M,activePoint:Re,basePoint:se,childIndex:U,isRange:I})))}else{var it,Ae=(it=N.getItemByXY(N.state.activeCoordinate))!==null&&it!==void 0?it:{graphicalItem:ae},at=Ae.graphicalItem,zt=at.item,Ht=zt===void 0?C:zt,On=at.childIndex,hn=ie(ie(ie({},M.props),Oe),{},{activeIndex:On});return[O.cloneElement(Ht,hn),null,null]}return I?[ae,null,null]:[ae,null]}),Be(N,"renderCustomized",function(C,P,_){return O.cloneElement(C,ie(ie({key:"recharts-customized-".concat(_)},N.props),N.state))}),Be(N,"renderMap",{CartesianGrid:{handler:Tf,once:!0},ReferenceArea:{handler:N.renderReferenceElement},ReferenceLine:{handler:Tf},ReferenceDot:{handler:N.renderReferenceElement},XAxis:{handler:Tf},YAxis:{handler:Tf},Brush:{handler:N.renderBrush,once:!0},Bar:{handler:N.renderGraphicChild},Line:{handler:N.renderGraphicChild},Area:{handler:N.renderGraphicChild},Radar:{handler:N.renderGraphicChild},RadialBar:{handler:N.renderGraphicChild},Scatter:{handler:N.renderGraphicChild},Pie:{handler:N.renderGraphicChild},Funnel:{handler:N.renderGraphicChild},Tooltip:{handler:N.renderCursor,once:!0},PolarGrid:{handler:N.renderPolarGrid,once:!0},PolarAngleAxis:{handler:N.renderPolarAxis},PolarRadiusAxis:{handler:N.renderPolarAxis},Customized:{handler:N.renderCustomized}}),N.clipPathId="".concat((S=k.id)!==null&&S!==void 0?S:Uc("recharts"),"-clip"),N.throttleTriggeredAfterMouseMove=h8(N.triggeredAfterMouseMove,(E=k.throttleDelay)!==null&&E!==void 0?E:1e3/60),N.state={},N}
534return yme(j,v),pme(j,[{key:"componentDidMount",value:function(){var S,E;this.addListener(),this.accessibilityManager.setDetails({container:this.container,offset:{left:(S=this.props.margin.left)!==null&&S!==void 0?S:0,top:(E=this.props.margin.top)!==null&&E!==void 0?E:0},coordinateList:this.state.tooltipTicks,mouseHandlerCallback:this.triggeredAfterMouseMove,layout:this.props.layout}),this.displayDefaultTooltip()}},{key:"displayDefaultTooltip",value:function(){var S=this.props,E=S.children,N=S.data,C=S.height,P=S.layout,_=wr(E,Kn);if(_){var M=_.props.defaultIndex;if(!(typeof M!="number"||M<0||M>this.state.tooltipTicks.length-1)){var D=this.state.tooltipTicks[M]&&this.state.tooltipTicks[M].value,B=uk(this.state,N,M,D),F=this.state.tooltipTicks[M].coordinate,V=(this.state.offset.top+C)/2,U=P==="horizontal",q=U?{x:F,y:V}:{y:F,x:V},Y=this.state.formattedGraphicalItems.find(function(J){var ne=J.item;return ne.type.name==="Scatter"});Y&&(q=ie(ie({},q),Y.props.points[M].tooltipPosition),B=Y.props.points[M].tooltipPayload);var Z={activeTooltipIndex:M,isTooltipActive:!0,activeLabel:D,activePayload:B,activeCoordinate:q};this.setState(Z),this.renderCursor(_),this.accessibilityManager.setIndex(M)}}}},{key:"getSnapshotBeforeUpdate",value:function(S,E){if(!this.props.accessibilityLayer)return null;if(this.state.tooltipTicks!==E.tooltipTicks&&this.accessibilityManager.setDetails({coordinateList:this.state.tooltipTicks}),this.props.layout!==S.layout&&this.accessibilityManager.setDetails({layout:this.props.layout}),this.props.margin!==S.margin){var N,C;this.accessibilityManager.setDetails({offset:{left:(N=this.props.margin.left)!==null&&N!==void 0?N:0,top:(C=this.props.margin.top)!==null&&C!==void 0?C:0}})}return null}},{key:"componentDidUpdate",value:function(S){K2([wr(S.children,Kn)],[wr(this.props.children,Kn)])||this.displayDefaultTooltip()}},{key:"componentWillUnmount",value:function(){this.removeListener(),this.throttleTriggeredAfterMouseMove.cancel()}},{key:"getTooltipEventType",value:function(){var S=wr(this.props.children,Kn);if(S&&typeof S.props.shared=="boolean"){var E=S.props.shared?"axis":"item";return l.indexOf(E)>=0?E:o}return o}},{key:"getMouseInfo",value:function(S){if(!this.container)return null;var E=this.container,N=E.getBoundingClientRect(),C=mre(N),P={chartX:Math.round(S.pageX-C.left),chartY:Math.round(S.pageY-C.top)},_=N.width/E.offsetWidth||1,M=this.inRange(P.chartX,P.chartY,_);if(!M)return null;var D=this.state,B=D.xAxisMap,F=D.yAxisMap,V=this.getTooltipEventType(),U=_D(this.state,this.props.data,this.props.layout,M);if(V!=="axis"&&B&&F){var q=eo(B).scale,Y=eo(F).scale,Z=q&&q.invert?q.invert(P.chartX):null,J=Y&&Y.invert?Y.invert(P.chartY):null;return ie(ie({},P),{},{xValue:Z,yValue:J},U)}return U?ie(ie({},P),U):null}},{key:"inRange",value:function(S,E){var N=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,C=this.props.layout,P=S/N,_=E/N;if(C==="horizontal"||C==="vertical"){var M=this.state.offset,D=P>=M.left&&P<=M.left+M.width&&_>=M.top&&_<=M.top+M.height;return D?{x:P,y:_}:null}var B=this.state,F=B.angleAxisMap,V=B.radiusAxisMap;if(F&&V){var U=eo(F);return GR({x:P,y:_},U)}return null}},{key:"parseEventsOfWrapper",value:function(){var S=this.props.children,E=this.getTooltipEventType(),N=wr(S,Kn),C={};N&&E==="axis"&&(N.props.trigger==="click"?C={onClick:this.handleClick}:C={onMouseEnter:this.handleMouseEnter,onDoubleClick:this.handleDoubleClick,onMouseMove:this.handleMouseMove,onMouseLeave:this.handleMouseLeave,onTouchMove:this.handleTouchMove,onTouchStart:this.handleTouchStart,onTouchEnd:this.handleTouchEnd,onContextMenu:this.handleContextMenu});var P=dm(this.props,this.handleOuterEvent);return ie(ie({},P),C)}},{key:"addListener",value:function(){R1.on(D1,this.handleReceiveSyncEvent)}},{key:"removeListener",value:function(){R1.removeListener(D1,this.handleReceiveSyncEvent)}},{key:"filterFormatItem",value:function(S,E,N){for(var C=this.state.formattedGraphicalItems,P=0,_=C.length;P<_;P++){var M=C[P];if(M.item===S||M.props.key===S.key||E===ca(M.item.type)&&N===M.childIndex)return M}return null}},{key:"renderClipPath",value:function(){var S=this.clipPathId,E=this.state.offset,N=E.left,C=E.top,P=E.height,_=E.width;return W.createElement("defs",null,W.createElement("clipPath",{id:S},W.createElement("rect",{x:N,y:C,height:P,width:_})))}},{key:"getXScales",value:function(){var S=this.state.xAxisMap;return S?Object.entries(S).reduce(function(E,N){var C=ED(N,2),P=C[0],_=C[1];return ie(ie({},E),{},Be({},P,_.scale))},{}):null}},{key:"getYScales",value:function(){var S=this.state.yAxisMap;return S?Object.entries(S).reduce(function(E,N){var C=ED(N,2),P=C[0],_=C[1];return ie(ie({},E),{},Be({},P,_.scale))},{}):null}},{key:"getXScaleByAxisId",value:function(S){var E;return(E=this.state.xAxisMap)===null||E===void 0||(E=E[S])===null||E===void 0?void 0:E.scale}},{key:"getYScaleByAxisId",value:function(S){var E;return(E=this.state.yAxisMap)===null||E===void 0||(E=E[S])===null||E===void 0?void 0:E.scale}},{key:"getItemByXY",value:function(S){var E=this.state,N=E.formattedGraphicalItems,C=E.activeItem;if(N&&N.length)for(var P=0,_=N.length;P<_;P++){var M=N[P],D=M.props,B=M.item,F=B.type.defaultProps!==void 0?ie(ie({},B.type.defaultProps),B.props):B.props,V=ca(B.type);if(V==="Bar"){var U=(D.data||[]).find(function(J){return Mue(S,J)});if(U)return{graphicalItem:M,payload:U}}else if(V==="RadialBar"){var q=(D.data||[]).find(function(J){return GR(S,J)});if(q)return{graphicalItem:M,payload:q}}else if(sy(M,C)||ly(M,C)||ah(M,C)){var Y=Cde({graphicalItem:M,activeTooltipItem:C,itemData:F.data}),Z=F.activeIndex===void 0?Y:F.activeIndex;return{graphicalItem:ie(ie({},M),{},{childIndex:Z}),payload:ah(M,C)?F.data[Y]:M.props.data[Y]}}}return null}},{key:"render",value:function(){var S=this;if(!aO(this))return null;var E=this.props,N=E.children,C=E.className,P=E.width,_=E.height,M=E.style,D=E.compact,B=E.title,F=E.desc,V=PD(E,ome),U=Ke(V,!1);if(D)return W.createElement(lD,{state:this.state,width:this.props.width,height:this.props.height,clipPathId:this.clipPathId},W.createElement(Q2,Ml({},U,{width:P,height:_,title:B,desc:F}),this.renderClipPath(),sO(N,this.renderMap)));if(this.props.accessibilityLayer){var q,Y;U.tabIndex=(q=this.props.tabIndex)!==null&&q!==void 0?q:0,U.role=(Y=this.props.role)!==null&&Y!==void 0?Y:"application",U.onKeyDown=function(J){S.accessibilityManager.keyboardEvent(J)},U.onFocus=function(){S.accessibilityManager.focus()}}var Z=this.parseEventsOfWrapper();return W.createElement(lD,{state:this.state,width:this.props.width,height:this.props.height,clipPathId:this.clipPathId},W.createElement("div",Ml({className:nt("recharts-wrapper",C),style:ie({position:"relative",curs
534or:"default",width:P,height:_},M)},Z,{ref:function(ne){S.container=ne}}),W.createElement(Q2,Ml({},U,{width:P,height:_,title:B,desc:F,style:kme}),this.renderClipPath(),sO(N,this.renderMap)),this.renderLegend(),this.renderTooltip()))}}])})(O.Component);Be(b,"displayName",n),Be(b,"defaultProps",ie({layout:"horizontal",stackOffset:"none",barCategoryGap:"10%",barGap:4,margin:{top:5,right:5,bottom:5,left:5},reverseStackOrder:!1,syncMethod:"index"},f)),Be(b,"getDerivedStateFromProps",function(v,j){var k=v.dataKey,S=v.data,E=v.children,N=v.width,C=v.height,P=v.layout,_=v.stackOffset,M=v.margin,D=j.dataStartIndex,B=j.dataEndIndex;if(j.updateId===void 0){var F=ID(v);return ie(ie(ie({},F),{},{updateId:0},y(ie(ie({props:v},F),{},{updateId:0}),j)),{},{prevDataKey:k,prevData:S,prevWidth:N,prevHeight:C,prevLayout:P,prevStackOffset:_,prevMargin:M,prevChildren:E})}if(k!==j.prevDataKey||S!==j.prevData||N!==j.prevWidth||C!==j.prevHeight||P!==j.prevLayout||_!==j.prevStackOffset||!ql(M,j.prevMargin)){var V=ID(v),U={chartX:j.chartX,chartY:j.chartY,isTooltipActive:j.isTooltipActive},q=ie(ie({},_D(j,S,P)),{},{updateId:j.updateId+1}),Y=ie(ie(ie({},V),U),q);return ie(ie(ie({},Y),y(ie({props:v},Y),j)),{},{prevDataKey:k,prevData:S,prevWidth:N,prevHeight:C,prevLayout:P,prevStackOffset:_,prevMargin:M,prevChildren:E})}if(!K2(E,j.prevChildren)){var Z,J,ne,I,z=wr(E,bc),X=z&&(Z=(J=z.props)===null||J===void 0?void 0:J.startIndex)!==null&&Z!==void 0?Z:D,L=z&&(ne=(I=z.props)===null||I===void 0?void 0:I.endIndex)!==null&&ne!==void 0?ne:B,me=X!==D||L!==B,xe=!Qe(S),le=xe&&!me?j.updateId:j.updateId+1;return ie(ie({updateId:le},y(ie(ie({props:v},j),{},{updateId:le,dataStartIndex:X,dataEndIndex:L}),j)),{},{prevChildren:E,dataStartIndex:X,dataEndIndex:L})}return null}),Be(b,"renderActiveDot",function(v,j,k){var S;return O.isValidElement(v)?S=O.cloneElement(v,j):Ge(v)?S=v(j):S=W.createElement(oy,j),W.createElement(Et,{className:"recharts-active-dot",key:k},S)});var w=O.forwardRef(function(j,k){return W.createElement(b,Ml({},j,{ref:k}))});return w.displayName=b.displayName,w},wS=bS({chartName:"LineChart",GraphicalChild:Ii,axisComponents:[{axisType:"xAxis",AxisComp:Vr},{axisType:"yAxis",AxisComp:Gr}],formatAxisMap:dS}),w9=bS({chartName:"BarChart",GraphicalChild:To,defaultTooltipEventType:"axis",validateTooltipEventTypes:["axis","item"],axisComponents:[{axisType:"xAxis",AxisComp:Vr},{axisType:"yAxis",AxisComp:Gr}],formatAxisMap:dS}),DD=bS({chartName:"AreaChart",GraphicalChild:Ri,axisComponents:[{axisType:"xAxis",AxisComp:Vr},{axisType:"yAxis",AxisComp:Gr}],formatAxisMap:dS});const ta="#BFF589";function L1(e){return e==null?"--":e>=1e3?`${(e/1e3).toFixed(1)} GW`:`${Math.round(e).toLocaleString()} MW`}function Ime(e){return e>=80?"#FF3B30":e>=60?"#f97316":e>=40?"#facc15":ta}function Rme(){const[e,t]=O.useState(null),[n,r]=O.useState(!0),[i,o]=O.useState(null),s=async()=>{var d;try{const p=await xn.entities.GridDataCache.list("-fetched_at",1);if(p.length>0&&((d=p[0].markets)==null?void 0:d.length)>0)t(p[0]),o(new Date(p[0].fetched_at));else{const f=await xn.functions.invoke("ercotData",{});t(f.data),o(new Date)}}catch{}finally{r(!1)}};O.useEffect(()=>{s();const d=setInterval(s,6e4);return()=>clearInterval(d)},[]);const l=(e==null?void 0:e.markets)||[],u=(e==null?void 0:e.aggregate)||{};return[...l].sort((d,p)=>p.current_demand_mw-d.current_demand_mw),a.jsx("section",{className:"py-20",style:{background:"#161616"},children:a.jsxs("div",{className:"max-w-[1400px] mx-auto px-6",children:[a.jsxs("div",{className:"flex items-end justify-between mb-10",children:[a.jsxs("div",{children:[a.jsx("div",{className:"section-label mb-3",children:"Live Grid Data · 9 Markets"}),a.jsxs("h2",{className:"font-display text-3xl md:text-4xl text-lod-white leading-tight",children:["The Data Behind",a.jsx("br",{}),a.jsx("span",{style:{color:ta},children:"Every Smart Decision."})]}),a.jsx("p",{className:"text-lod-gray text-base mt-3 max-w-lg leading-relaxed",children:"Get reliable, real-time energy market data for every major grid. We offer context and signals for strategic energy decisions!"})]}),a.jsxs("div",{className:"hidden md:flex items-center gap-2",children:[a.jsx("span",{className:"w-2 h-2 rounded-full animate-pulse-green",style:{background:n?"#A0A0A0":ta}}),a.jsx("span",{className:"font-mono text-xs",style:{color:"#A0A0A0"},children:n?"LOADING...":`LIVE · ${i==null?void 0:i.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:"short"})}`})]})]}),n?a.jsx("div",{className:"flex items-center justify-center h-64",children:a.jsx("div",{className:"w-8 h-8 border-2 rounded-full animate-spin",style:{borderColor:ta,borderTopColor:"transparent"}})}):a.jsxs(a.Fragment,{children:[a.jsx("div",{className:"grid grid-cols-2 gap-4 mb-6",children:[{label:"Total Demand",value:L1(u.total_current_demand_mw),icon:jg},{label:"Available Capacity",value:L1(u.available_capacity_mw),icon:xt}].map(d=>{const p=d.icon;return a.jsxs("div",{className:"card-obsidian px-8 py-6 text-center flex flex-col items-center gap-3",children:[a.jsx("div",{className:"w-10 h-10 rounded-lg flex items-center justify-center",style:{background:"rgba(191,245,137,0.1)",border:"1px solid rgba(191,245,137,0.2)"},children:a.jsx(p,{size:18,style:{color:ta}})}),a.jsxs("div",{children:[a.jsx("p",{className:"font-mono text-xs mb-1",style:{color:"#A0A0A0"},children:d.label}),a.jsx("p",{className:"font-display text-3xl",style:{color:ta},children:d.value})]})]},d.label)})}),a.jsxs("div",{className:"card-obsidian p-6 mb-6 relative",children:[a.jsx("p",{className:"font-mono text-xs mb-4",style:{color:"#A0A0A0"},children:"MARKET SNAPSHOT · ALL REGIONS"}),a.jsx("div",{className:"overflow-x-auto",children:a.jsxs("table",{className:"w-full text-sm font-mono",children:[a.jsx("thead",{children:a.jsx("tr",{style:{borderBottom:"1px solid rgba(255,255,255,0.06)"},children:["Market","Region","Demand","LMP ($/MWh)","Renewables","Grid Stress"].map(d=>a.jsx("th",{className:"text-left pb-3 pr-6 text-xs uppercase tracking-wider whitespace-nowrap",style:{color:"#A0A0A0"},children:d},d))})}),a.jsx("tbody",{children:l.map((d,p)=>{const f=Ime(d.grid_stress_percent),g=p%2===0?"transparent":"rgba(255,255,255,0.025)";return a.jsxs("tr",{className:"transition-colors duration-150 cursor-default",style:{borderBottom:"1px solid rgba(255,255,255,0.04)",background:g},onMouseEnter:y=>y.currentTarget.style.background="rgba(255,255,255,0.07)",onMouseLeave:y=>y.currentTarget.style.background=g,children:[a.jsx("td",{className:"py-3 pr-6 font-display text-base",style:{color:ta},children:d.market}),a.jsx("td",{className:"py-3 pr-6",style:{color:"#A0A0A0"},children:d.region}),a.jsx("td",{className:"py-3 pr-6 text-lod-white whitespace-nowrap",children:L1(d.current_demand_mw)}),a.jsx("td",{className:"py-3 pr-6",style:{color:d.avg_lmp_usd_per_mwh>0?"#facc15":"#A0A0A0"},children:d.avg_lmp_usd_per_mwh>0?`$${d.avg_lmp_usd_per_mwh.toFixed(2)}`:"--"}),a.jsx("td",{className:"py-3 pr-6",children:a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("div",{className:"w-20 h-1.5 rounded-full",style:{background:"rgba(255,255,255,0.08)"},children:a.jsx("div",{className:"h-full rounded-full",style:{width:`${d.renewable_mix_percent}%`,background:ta}})}),a.jsx("span",{style:{color:d.renewable_mix_percent>0?ta:"#A0A0A0"},children:d.renewable_mix_percent>0?`${d.renewable_mix_percent}%`:"--"})]})}),a.jsx("td",{className:"py-3",children:a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("div",{className:"w-20 h-1.5 rounded-full",style:{background:"rgba(255,255,255,0.08)"},children:a.jsx("div",{className:"h-full rounded-full",style:{width:`${d.grid_stress_percent}%`,background:f}})}),a.jsxs("span",{style:{color:f},children:[d.grid_stress_percent,"%"]})]})})]},d.market)})})]})}),a.jsx("div",{className:"flex items-center justify-end mt-4 pt-3",style:{borderTop:"1px solid rgba(255,255,255,0.05)"},children:a.jsx("img",{src:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/ca020dc4a_LODRectangle.png",alt:"LÅD",style:{height:"22px",width:"auto",opacity:.35}})})]}),a.jsxs("div",{className:"mt-8 flex flex-col md:flex-row items-start md:items-center justify-between gap-6 p-6 rounded-xl",style:{background:"rgba(191,245,137,0.05)",border:"1px solid rgba(191,245,137,0.15)"},children:[a.jsxs("div",{children:[a.jsx("p",{className:"font-display text-lg text-lod-white mb-1",children:"Feed live grid data directly into your AI agents."}),a.jsx("p",{className:"font-body text-sm leading-relaxed max-w-xl",style:{color:"#A0A0A0"},children:"Access enriched MCP servers built for AI agents and apps â delivering real-time grid signals, market prices, and demand forecasts so autonomous systems can make smarter energy decisions without human intervention."})]}),a.jsxs(ye,{to:"/data-layer",className:"btn-primary whitespace-nowrap flex items-center gap-2 flex-shrink-0",children:["Explore Data Layer ",a.jsx(Ve,{size:14})]})]})]})]})})}const Dme=`<!DOCTYPE html> 535<html lang="en"> 536<head> 537 <meta charset="UTF-8"> 538 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 539 <title>Live Grid Operations â ISO/RTO Map</title>
540 <link rel="preconnect" href="https://fonts.googleapis.com"> 541 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 542 <link href="https://fonts.googleapis.com/css2?family=Anton&family=Inter:wght@400;600;700&family=JetBrains+Mono:wght@500;700&display=swap" rel="stylesheet"> 543 <style> 544 :root { 545 --bg: #1a1d1a; 546 --bg-deep: #131513; 547 --surface: #232623; 548 --surface-2: #1f221f; 549 --border: #2d302d; 550 --border-2: #3a3d3a; 551 --text: #e8eae8; 552 --text-dim: #8a8d8a; 553 --accent: #B6EE90; 554 --warn: #ff9d5e; 555 --info: #7dd3fc; 556 } 557 *, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; } 558 body { 559 background: transparent; 560 color: var(--text); 561 font-family: 'Inter', system-ui, sans-serif; 562 min-height: 100vh; 563 padding: 0; 564 display: flex; 565 justify-content: center; 566 } 567 .grid-map { 568 width: 100%; 569 max-width: 1280px; 570 background: transparent; 571 border: none; 572 padding: 0; 573 position: relative; 574 } 575 #map-svg { display: block; width: 100%; height: auto; } 576 .state { 577 fill: transparent; 578 stroke: var(--accent); 579 stroke-width: 0.8px; 580 pointer-events: all; 581 transition: fill 0.15s; 582 } 583 .state:hover { fill: rgba(182,238,144,0.15); } 584 .state-borders { 585 fill: none; 586 stroke: rgba(182,238,144,0.10); 587 stroke-width: 0.7px; 588 pointer-events: none; 589 } 590 .iso-label-group { pointer-events: none; } 591 .iso-label { 592 font-family: 'JetBrains Mono', monospace; 593 font-weight: 700; 594 font-size: 12px; 595 text-anchor: middle; 596 dominant-baseline: middle; 597 letter-spacing: 0.08em; 598 } 599 .storyline { pointer-events: none; } 600 .pulse-ring { fill: none; stroke-width: 2; opacity: 0; } 601 .show-signal .pulse-ring { animation: pulseRing 3s ease-out infinite; } 602 .show-signal .pulse-ring.r2 { animation-delay: 0.75s; } 603 .show-signal .pulse-ring.r3 { animation-delay: 1.5s; } 604 @keyframes pulseRing { 605 0% { r: 5; opacity: 0.75; } 606 100% { r: 38; opacity: 0; } 607 } 608 .node-glow { fill: var(--accent-color); opacity: 0; filter: blur(6px); transition: opacity 0.45s ease-out; } 609 .node-core { 610 fill: #f0f6fc; stroke: var(--accent-color); stroke-width: 1.8; opacity: 0; 611 transform-box: fill-box; transform-origin: center; transform: scale(0.4); 612 transition: opacity 0.35s ease-out, transform 0.35s cubic-bezier(.2,.9,.3,1.4); 613 } 614 .node-pulse { fill: none; stroke: var(--accent-color); stroke-width: 2; opacity: 0; } 615 .show-node .node-glow { opacity: 0.7; } 616 .show-node .node-core { opacity: 1; transform: scale(1); } 617 .show-node .node-pulse { animation: nodeRing 2.7s ease-out infinite; } 618 .show-node .node-pulse.np2 { animation-delay: 0.9s; } 619 .show-node .node-pulse.np3 { animation-delay: 1.8s; }
620 @keyframes nodeRing { 621 0% { r: 5; opacity: 0.85; stroke-width: 2.5; } 622 80% { stroke-width: 0.6; } 623 100% { r: 32; opacity: 0; stroke-width: 0.3; } 624 } 625 .connector { 626 stroke: var(--accent-color); stroke-width: 1.4; stroke-dasharray: 4 3; 627 fill: none; opacity: 0; stroke-dashoffset: 200; 628 filter: drop-shadow(0 0 3px var(--accent-color)); 629 } 630 .show-connector .connector { animation: drawLine 1.05s ease-out forwards; } 631 @keyframes drawLine { 632 0% { opacity: 0; stroke-dashoffset: 200; } 633 30% { opacity: 0.9; } 634 100% { opacity: 0.85; stroke-dashoffset: 0; } 635 } 636 .beat-card { 637 box-sizing: border-box; width: 100%; height: 100%; 638 background: linear-gradient(140deg, rgba(35,38,35,0.96) 0%, rgba(19,21,19,0.96) 100%); 639 border: 1px solid var(--border-2); border-radius: 2px; padding: 0; 640 font-family: 'JetBrains Mono', monospace; color: var(--text); 641 opacity: 0; transform: translateY(4px) scale(0.96); transform-origin: center; 642 transition: opacity 0.4s cubic-bezier(.2,.7,.2,1), transform 0.4s cubic-bezier(.2,.9,.3,1.3); 643 position: relative; backdrop-filter: blur(6px); 644 box-shadow: 0 4px 20px rgba(0,0,0,0.55); 645 display: flex; flex-direction: column; 646 } 647 .beat-card.in { opacity: 1; transform: translateY(0) scale(1); } 648 .bc-section { 649 flex: 1; padding: 15px 33px; position: relative; 650 display: flex; flex-direction: column; justify-content: center; gap: 7px; min-width: 0; 651 } 652 .bc-section + .bc-section { border-top: 1px solid var(--border); } 653 .bc-tag { font-size: 14px; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; display: flex; align-items: center; gap: 7px; } 654 .bc-tag .iso-pill { color: var(--text-dim); letter-spacing: 0.12em; font-size: 10px; padding: 2px 6px; border: 1px solid var(--border); border-radius: 2px; } 655 .bc-text { font-size: 20px; font-weight: 700; color: var(--text); line-height: 1.3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } 656 .bc-section.sig .bc-tag { color: var(--warn); } 657 .bc-section.sig.tone-good .bc-tag { color: var(--accent); } 658 .bc-section.dec .bc-tag { color: var(--info); } 659 .bc-section.res .bc-tag { color: var(--accent); } 660 .bc-section.res .bc-text { color: var(--accent); } 661 .combo-card { opacity: 0; } 662 .beat { pointer-events: none; } 663 .packet { fill: var(--accent-color); filter: drop-shadow(0 0 6px var(--accent-color)); opacity: 0; transition: opacity 0.4s ease-out; } 664 .show-connector .packet { opacity: 1; } 665 #tooltip { 666 position: fixed; background: var(--surface); border: 1px solid var(--border-2); 667 border-radius: 2px; padding: 9px 13px; font-family: 'JetBrains Mono', monospace; 668 font-size: 0.78rem; pointer-events: none; opacity: 0; transition: opacity 0.1s; 669 z-index: 999; min-width: 150px; box-shadow: 0 4px 16px rgba(0,0,0,0.6); 670 } 671 #tooltip.show { opacity: 1; } 672 .tt-state { color: var(--text); font-weight: 700; margin-bottom: 3px; font-size: 0.85rem; letter-spacing: 0.04em; } 673 .tt-iso { font-weight: 700; font-size: 0.78rem; letter-spacing: 0.1em; } 674 .tt-none { color: var(--text-dim); font-style: italic; font-size: 0.74rem; margin-top: 2px; } 675 @media (max-width: 1024px) { 676 .bc-section { padding: 11px 18px; gap: 4px; } 677 .bc-tag { font-size: 11px; letter-spacing: 0.12em; } 678 .bc-text { font-size: 14px; } 679 } 680 </style> 681</head> 682<body> 683<div class="grid-map"> 684 <svg id="map-svg" viewBox="0 0 960 600"></svg> 685</div> 686<div id="tooltip"></div> 687<script src="https://cdn.jsdelivr.net/npm/d3@7/dist/d3.min.js"><\/script> 688<script src="https://cdn.jsdelivr.net/npm/topojson-client@3/dist/topojson-client.min.js"><\/script> 689<script> 690const ISO_STATES = { 691 ERCOT: [48], 692 PJM: [10, 11, 24, 34, 39, 42, 51, 54, 21, 37], 693 MISO: [5, 17, 18, 19, 22, 26, 27, 28, 29, 38, 46, 55], 694 SPP: [20, 31, 40, 35], 695 NYISO: [36], 696 'ISO-NE': [9, 25, 23, 33, 44, 50], 697 CAISO: [6], 698}; 699const ISO_COLORS = { 700 ERCOT: '#ff9d5e', 701 PJM: '#7dd3fc', 702 MISO: '#B6EE90', 703 SPP: '#ff7eb6', 704 NYISO: '#a5f3fc', 705 'ISO-NE': '#b5ff5e', 706 CAISO: '#fde68a', 707}; 708const ISO_FULL = { 709 ERCOT: 'Electric Reliability Council of Texas', 710 PJM: 'PJM Interconnection', 711 MISO: 'Midcontinent ISO', 712 SPP: 'Southwest Power Pool', 713 NYISO: 'New York ISO', 714 'ISO-NE': 'ISO New England', 715 CAISO: 'California ISO', 716}; 717const STATE_NAMES = { 718 1:'Alabama',2:'Alaska',4:'Arizona',5:'Arkansas',6:'California', 719 8:'Colorado',9:'Connecticut',10:'Delaware',11:'D.C.',12:'Florida', 720 13:'Georgia',15:'Hawaii',16:'Idaho',17:'Illinois',18:'Indiana', 721 19:'Iowa',20:'Kansas',21:'Kentucky',22:'Louisiana',23:'Maine', 722 24:'Maryland',25:'Massachusetts',26:'Michigan',27:'Minnesota', 723 28:'Mississippi',29:'Missouri',30:'Montana',31:'Nebraska',32:'Nevada', 724 33:'New Hampshire',34:'New Jersey',35:'New Mexico',36:'New York', 725 37:'North Carolina',38:'North Dakota',39:'Ohio',40:'Oklahoma', 726 41:'Oregon',42:'Pennsylvania',44:'Rhode Island',45:'South Carolina', 727 46:'South Dakota',47:'Tennessee',48:'Texas',49:'Utah',50:'Vermont', 728 51:'Virginia',53:'Washington',54:'West Virginia',55:'Wisconsin',56:'Wyoming' 729}; 730const STATE_TO_ISO = {}; 731for (const [iso, fips] of Object.entries(ISO_STATES)) { 732 fips.forEach(f => { STATE_TO_ISO[f] = iso; }); 733} 734const STORYLINES = [ 735 { 736 id: 'ercot', iso: 'ERCOT', color: '#ff9d5e', 737 signal: { x: 360, y: 405, text: 'Peak Event Detected', tag: 'SIGNAL' }, 738 node: { x: 455, y: 472, label: 'TX Data Center' }, 739 decision: { text: 'Curtail load 4:20â4:53 PM', tag: 'DECISION' }, 740 result: { text: '4CP Compliance Achieved', tag: 'RESULT' }, 741 cardOffset: { dx: 100, dy: 30 }, 742 }, 743 { 744 id: 'pjm', iso: 'PJM', color: '#7dd3fc', 745 signal: { x: 700, y: 230, text: 'Demand Response Active', tag: 'SIGNAL' }, 746 node: { x: 752, y: 285, label: 'NoVA AI Cluster' }, 747 nodeB: { x: 645, y: 248, label: 'Ohio Backup' }, 748 decision: { text: 'Enroll & Shed 8 MW Now', tag: 'DECISION' }, 749 result: { text: 'DR Credit Earned: $9,200', tag: 'RESULT' }, 750 cardOffset: { dx: 80, dy: -150 }, 751 }, 752 { 753 id: 'miso', iso: 'MISO', color: '#B6EE90', 754 signal: { x: 525, y: 195, text: 'Price Spike: $420/MWh', tag: 'SIGNAL', tone: '' }, 755 node: { x: 562, y: 248, label: 'IA Data Center' }, 756 decision: { text: 'Defer workloads 2 hrs', tag: 'DECISION' }, 757 result: { text: 'Energy Cost Saved: $18,700', tag: 'RESULT' }, 758 cardOffset: { dx: -180, dy: -80 }, 759 }, 760]; 761const CYCLE_MS = 7500, STAGGER_MS = 2500; 762const svg = d3.select('#map-svg'); 763const projection = d3.geoAlbers().scale(1280).translate([480, 300]); 764const pathGen = d3.geoPath().projection(projection); 765const tip = document.getElementById('tooltip'); 766function moveTip(e) { 767 const pad = 14; 768 let x = e.clientX + pad, y = e.clientY - 10; 769 const r = tip.getBoundingClientRect(); 770 if (x + r.width > window.innerWidth) x = e.clientX - r.width - pad; 771 if (y + r.height > window.innerHeight) y = e.clientY - r.height - pad; 772 tip.style.left = x + 'px'; tip.style.top = y + 'px'; 773} 774d3.json('https://cdn.jsdelivr.net/npm/us-atlas@3/states-10m.json').then(us => { 775 const states = topojson.feature(us, us.objects.states); 776 svg.selectAll('.state').data(states.features).join('path') 777 .attr('class', 'state').attr('d', pathGen) 778 .on('mousemove', (e, d) => { 779 const fips = +d.id, name = STATE_NAMES[fips] || 'Unknown', iso = STATE_TO_ISO[fips], color = iso ? ISO_COLORS[iso] : null; 780 tip.innerHTML = '<div class="tt-state">' + name + '</div>' + (iso ? '<div class="tt-iso" style="color:' + color + '">' + iso + '</div><div style="font-size:0.72rem;color:#8a8d8a;margin-top:2px">' + ISO_FULL[iso] + '</div>' : '<div class="tt-none">No mapped ISO/RTO</div>'); 781 tip.classList.add('show'); moveTip(e); 782 }) 783 .on('mouseleave', () => tip.classList.remove('show')); 784 svg.append('path').datum(topojson.mesh(us, us.objects.states, (a, b) => a !== b)).attr('class', 'state-borders').attr('d', pathGen); 785 const isoCentroids = {}; 786 for (const [iso, fipsList] of Object.entries(ISO_STATES)) { 787 let tx = 0, ty = 0, tw = 0; 788 states.features.filter(f =>
788 fipsList.includes(+f.id)).forEach(f => { 789 const c = pathGen.centroid(f); 790 if (!isNaN(c[0]) && !isNaN(c[1])) { 791 const b = pathGen.bounds(f), w = (b[1][0]-b[0][0])*(b[1][1]-b[0][1]); 792 tx += c[0]*w; ty += c[1]*w; tw += w; 793 } 794 }); 795 if (tw > 0) isoCentroids[iso] = [tx/tw, ty/tw]; 796 } 797 const NUDGE = { 'NYISO': [14,-6], 'ISO-NE': [8,-20], 'PJM': [6,4] }; 798 const labelGroup = svg.append('g').attr('class', 'iso-label-group'); 799 for (const [iso, [cx, cy]] of Object.entries(isoCentroids)) { 800 const [nx=0,ny=0] = NUDGE[iso]||[], lx=cx+nx, ly=cy+ny, color=ISO_COLORS[iso], w=iso.length*7.5+14; 801 labelGroup.append('rect').attr('x',lx-w/2).attr('y',ly-10).attr('width',w).attr('height',19).attr('rx',4).attr('fill','rgba(13,17,23,0.75)'); 802 labelGroup.append('rect').attr('x',lx-w/2).attr('y',ly-10).attr('width',w).attr('height',3).attr('rx',4).attr('fill',color); 803 labelGroup.append('text').attr('class','iso-label').attr('x',lx).attr('y',ly+1).attr('fill',color).text(iso); 804 } 805 initStorylines(svg); 806}); 807const isMobile = window.innerWidth <= 1024; 808const CARD_W = isMobile ? 329 : 582, CARD_H = isMobile ? 228 : 380; 809const clamp=(v,lo,hi)=>Math.max(lo,Math.min(hi,v)); 810const fixCard=(cx,cy)=>[clamp(cx-CARD_W/2,4,960-CARD_W-4),clamp(cy-CARD_H/2,4,600-CARD_H-4)]; 811const arcPath=(x1,y1,x2,y2,curve=0.25)=>{ 812 const mx=(x1+x2)/2,my=(y1+y2)/2,dx=x2-x1,dy=y2-y1,cx2=mx-dy*curve,cy2=my+dx*curve; 813 return 'M'+x1+','+y1+' Q'+cx2+','+cy2+' '+x2+','+y2; 814}; 815function combinedCardHTML(s) { 816 const sigTone = s.signal.tone==='good'?'tone-good':''; 817 return '<div class="bc-section sig '+sigTone+'"><div class="bc-tag"><span>'+s.signal.tag+'</span><span class="iso-pill">'+s.iso+'</span></div><div class="bc-text">'+s.signal.text+'</div></div>' + 818 '<div class="bc-section dec"><div class="bc-tag"><span>'+s.decision.tag+'</span></div><div class="bc-text">'+s.decision.text+'</div></div>' + 819 '<div class="bc-section res"><div class="bc-tag"><span>'+s.result.tag+'</span></div><div class="bc-text">'+s.result.text+'</div></div>'; 820} 821function buildStoryline(storyLayer, s) { 822 const g = storyLayer.append('g').attr('class','storyline').attr('style','--accent-color:'+s.color); 823 const sigPulse = g.append('g').attr('class','beat sig-pulse'); 824 for(let i=1;i<=3;i++) sigPulse.append('circle').attr('class','pulse-ring r'+i).attr('cx',s.signal.x).attr('cy',s.signal.y).attr('stroke',s.color); 825 sigPulse.append('circle').attr('cx',s.signal.x).attr('cy',s.signal.y).attr('r',3.5).attr('fill','#fff').attr('filter','drop-shadow(0 0 5px '+s.color+')'); 826 const nodeG = g.append('g').attr('class','beat node-grp'); 827 nodeG.append('circle').attr('class','node-glow').attr('cx',s.node.x).attr('cy',s.node.y).attr('r',16); 828 for(let i=1;i<=3;i++) nodeG.append('circle').attr('class','node-pulse np'+i).attr('cx',s.node.x).attr('cy',s.node.y).attr('r',5); 829 nodeG.append('circle').attr('class','node-core').attr('cx',s.node.x).attr('cy',s.node.y).attr('r',4.5); 830 if(s.nodeB){ 831 const nb=g.append('g').attr('class','beat node-grp-b'); 832 nb.append('circle').attr('class','node-glow').attr('cx',s.nodeB.x).attr('cy',s.nodeB.y).attr('r',16); 833 for(let i=1;i<=3;i++) nb.append('circle').attr('class','node-pulse np'+i).attr('cx',s.nodeB.x).attr('cy',s.nodeB.y).attr('r',5); 834 nb.append('circle').attr('class','node-core').attr('cx',s.nodeB.x).attr('cy',s.nodeB.y).attr('r',4.5); 835 } 836 const cFrom=s.nodeB?s.node:s.signal, cTo=s.nodeB?s.nodeB:s.node; 837 const arcD=arcPath(cFrom.x,cFrom.y,cTo.x,cTo.y); 838 const conGrp=g.append('g').attr('class','beat connector-grp'); 839 conGrp.append('path').attr('class','connector').attr('d',arcD); 840 const PACKET_DUR=1.8, PACKET_COUNT=3; 841 for(let i=0;i<PACKET_COUNT;i++){ 842 const p=conGrp.append('circle').attr('class','packet').attr('r',3.5); 843 p.append('animateMotion').attr('dur',PACKET_DUR+'s').attr('repeatCount','indefinite').attr('begin',-i*(PACKET_DUR/PACKET_COUNT)+'s').attr('path',arcD); 844 } 845 const offset=s.cardOffset||{dx:90,dy:10}; 846 const [cx,cy]=fixCard(s.node.x+offset.dx,s.node.y+offset.dy); 847 g.append('foreignObject').attr('class','beat combo-card').attr('x',cx).attr('y',cy).attr('width',CARD_W).attr('height',CARD_H) 848 .append('xhtml:div').attr('class','beat-card').html(combinedCardHTML(s)); 849 return g; 850} 851function runStorylineCycle(s, g) { 852 const card=g.select('.combo-card .beat-card'), cardBeat=g.select('.combo-card'); 853 g.classed('show-signal',false).classed('show-node',false).classed('show-connector',false); 854 cardBeat.style('opacity',0); card.classed('in',false); 855 setTimeout(()=>{ g.classed('show-signal',true).classed('show-node',true).classed('show-connector',true); },50); 856 setTimeout(()=>{ cardBeat.style('opacity',1); card.classed('in',true); },2050); 857 setTimeout(()=>{ 858 card.classed('in',false); cardBeat.transition().duration(500).style('opacity',0); 859 g.transition().duration(500).on('end',()=>{ g.classed('show-signal',false).classed('show-node',false).classed('show-connector',false); }); 860 }
860,6500); 861} 862function initStorylines(svg) { 863 const layer=svg.append('g').attr('class','story-layer'); 864 const groups=STORYLINES.map(s=>buildStoryline(layer,s)); 865 STORYLINES.forEach((s,i)=>{ 866 setTimeout(()=>{ runStorylineCycle(s,groups[i]); setInterval(()=>runStorylineCycle(s,groups[i]),CYCLE_MS); },i*STAGGER_MS); 867 }); 868} 869<\/script> 870</body> 871</html>`;function Mme(){return a.jsx("div",{className:"w-full",style:{aspectRatio:"960 / 600",overflow:"hidden"},children:a.jsx("iframe",{srcDoc:Dme,title:"Live Grid Operations Map",style:{width:"100%",height:"100%",border:"none",background:"transparent",display:"block"},scrolling:"no"})})}const j9=O.createContext({});function Lme(e){const t=O.useRef(null);return t.current===null&&(t.current=e()),t.current}const jS=O.createContext(null),k9=O.createContext({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"});function Fme(e=!0){const t=O.useContext(jS);if(t===null)return[!0,null];const{isPresent:n,onExitComplete:r,register:i}=t,o=O.useId();O.useEffect(()=>{e&&i(o)},[e]);const s=O.useCallback(()=>e&&r&&r(o),[o,r,e]);return!n&&r?[!1,s]:[!0]}const kS=typeof window<"u",Bme=kS?O.useLayoutEffect:O.useEffect,kr=e=>e;let A9=kr;function AS(e){let t;return()=>(t===void 0&&(t=e()),t)}const _c=(e,t,n)=>{const r=t-e;return r===0?1:(n-e)/r},pa=e=>e*1e3,fa=e=>e/1e3,zme={useManualTiming:!1};function $me(e){let t=new Set,n=new Set,r=!1,i=!1;const o=new WeakSet;let s={delta:0,timestamp:0,isProcessing:!1};function l(d){o.has(d)&&(u.schedule(d),e()),d(s)}const u={schedule:(d,p=!1,f=!1)=>{const y=f&&r?t:n;return p&&o.add(d),y.has(d)||y.add(d),d},cancel:d=>{n.delete(d),o.delete(d)},process:d=>{if(s=d,r){i=!0;return}r=!0,[t,n]=[n,t],t.forEach(l),t.clear(),r=!1,i&&(i=!1,u.process(d))}};return u}const Ef=["read","resolveKeyframes","update","preRender","render","postRender"],qme=40;function S9(e,t){let n=!1,r=!0;const i={delta:0,timestamp:0,isProcessing:!1},o=()=>n=!0,s=Ef.reduce((j,k)=>(j[k]=$me(o),j),{}),{read:l,resolveKeyframes:u,update:d,preRender:p,render:f,postRender:g}=s,y=()=>{const j=performance.now();n=!1,i.delta=r?1e3/60:Math.max(Math.min(j-i.timestamp,qme),1),i.timestamp=j,i.isProcessing=!0,l.process(i),u.process(i),d.process(i),p.process(i),f.process(i),g.process(i),i.isProcessing=!1,n&&t&&(r=!1,e(y))},b=()=>{n=!0,r=!0,i.isProcessing||e(y)};return{schedule:Ef.reduce((j,k)=>{const S=s[k];return j[k]=(E,N=!1,C=!1)=>(n||b(),S.schedule(E,N,C)),j},{}),cancel:j=>{for(let k=0;k<Ef.length;k++)s[Ef[k]].cancel(j)},state:i,steps:s}}const{schedule:Rt,cancel:xo,state:Cn,steps:F1}=S9(typeof requestAnimationFrame<"u"?requestAnimationFrame:kr,!0),C9=O.createContext({strict:!1}),MD={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"]},Ic={};for(const e in MD)Ic[e]={isEnabled:t=>MD[e].some(n=>!!t[n])};function Wme(e){for(const t in e)Ic[t]={...Ic[t],...e[t]}}const Ume=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 ug(e){return e.startsWith("while")||e.startsWith("drag")&&e!=="draggable"||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("onLayout")||Ume.has(e)}let N9=e=>!ug(e);function Hme(e){e&&(N9=t=>t.startsWith("on")?!ug(t):e(t))}try{Hme(require("@emotion/is-prop-valid").default)}catch{}function Vme(e,t,n){const r={};for(const i in e)i==="values"&&typeof e.values=="object"||(N9(i)||n===!0&&ug(i)||!t&&!ug(i)||e.draggable&&i.startsWith("onDrag"))&&(r[i]=e[i]);return r}function Gme(e){if(typeof Proxy>"u")return e;const t=new Map,n=(...r)=>e(...r);return new Proxy(n,{get:(r,i)=>i==="create"?e:(t.has(i)||t.set(i,e(i)),t.get(i))})}const my=O.createContext({});function hh(e){return typeof e=="string"||Array.isArray(e)}function gy(e){return e!==null&&typeof e=="object"&&typeof e.start=="function"}const SS=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],CS=["initial",...SS];function yy(e){return gy(e.animate)||CS.some(t=>hh(e[t]))}function T9(e){return!!(yy(e)||e.variants)}function Yme(e,t){if(yy(e)){const{initial:n,animate:r}=e;return{initial:n===!1||hh(n)?n:void 0,animate:hh(r)?r:void 0}}return e.inherit!==!1?t:{}}function Kme(e){const{initial:t,animate:n}=Yme(e,O.useContext(my));return O.useMemo(()=>({initial:t,animate:n}
vendor: 107,871 bytes, line 871
871),[LD(t),LD(n)])}function LD(e){return Array.isArray(e)?e.join(" "):e}const Xme=Symbol.for("motionComponentSymbol");function Ll(e){return e&&typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}function Qme(e,t,n){return O.useCallback(r=>{r&&e.onMount&&e.onMount(r),t&&(r?t.mount(r):t.unmount()),n&&(typeof n=="function"?n(r):Ll(n)&&(n.current=r))},[t])}const NS=e=>e.replace(/([a-z])([A-Z])/gu,"$1-$2").toLowerCase(),Jme="framerAppearId",E9="data-"+NS(Jme),{schedule:TS}=S9(queueMicrotask,!1),P9=O.createContext({});function Zme(e,t,n,r,i){var o,s;const{visualElement:l}=O.useContext(my),u=O.useContext(C9),d=O.useContext(jS),p=O.useContext(k9).reducedMotion,f=O.useRef(null);r=r||u.renderer,!f.current&&r&&(f.current=r(e,{visualState:t,parent:l,props:n,presenceContext:d,blockInitialAnimation:d?d.initial===!1:!1,reducedMotionConfig:p}));const g=f.current,y=O.useContext(P9);g&&!g.projection&&i&&(g.type==="html"||g.type==="svg")&&ege(f.current,n,i,y);const b=O.useRef(!1);O.useInsertionEffect(()=>{g&&b.current&&g.update(n,d)});const w=n[E9],v=O.useRef(!!w&&!(!((o=window.MotionHandoffIsComplete)===null||o===void 0)&&o.call(window,w))&&((s=window.MotionHasOptimisedAnimation)===null||s===void 0?void 0:s.call(window,w)));return Bme(()=>{g&&(b.current=!0,window.MotionIsMounted=!0,g.updateFeatures(),TS.render(g.render),v.current&&g.animationState&&g.animationState.animateChanges())}),O.useEffect(()=>{g&&(!v.current&&g.animationState&&g.animationState.animateChanges(),v.current&&(queueMicrotask(()=>{var j;(j=window.MotionHandoffMarkAsComplete)===null||j===void 0||j.call(window,w)}),v.current=!1))}),g}function ege(e,t,n,r){const{layoutId:i,layout:o,drag:s,dragConstraints:l,layoutScroll:u,layoutRoot:d}=t;e.projection=new n(e.latestValues,t["data-framer-portal-id"]?void 0:O9(e.parent)),e.projection.setOptions({layoutId:i,layout:o,alwaysMeasureLayout:!!s||l&&Ll(l),visualElement:e,animationType:typeof o=="string"?o:"both",initialPromotionConfig:r,layoutScroll:u,layoutRoot:d})}function O9(e){if(e)return e.options.allowProjection!==!1?e.projection:O9(e.parent)}function tge({preloadedFeatures:e,createVisualElement:t,useRender:n,useVisualState:r,Component:i}){var o,s;e&&Wme(e);function l(d,p){let f;const g={...O.useContext(k9),...d,layoutId:nge(d)},{isStatic:y}=g,b=Kme(d),w=r(d,y);if(!y&&kS){rge();const v=ige(g);f=v.MeasureLayout,b.visualElement=Zme(i,w,g,t,v.ProjectionNode)}return a.jsxs(my.Provider,{value:b,children:[f&&b.visualElement?a.jsx(f,{visualElement:b.visualElement,...g}):null,n(i,d,Qme(w,b.visualElement,p),w,y,b.visualElement)]})}l.displayName=`motion.${typeof i=="string"?i:`create(${(s=(o=i.displayName)!==null&&o!==void 0?o:i.name)!==null&&s!==void 0?s:""})`}`;const u=O.forwardRef(l);return u[Xme]=i,u}function nge({layoutId:e}){const t=O.useContext(j9).id;return t&&e!==void 0?t+"-"+e:e}function rge(e,t){O.useContext(C9).strict}function ige(e){const{drag:t,layout:n}=Ic;if(!t&&!n)return{};const r={...t,...n};return{MeasureLayout:t!=null&&t.isEnabled(e)||n!=null&&n.isEnabled(e)?r.MeasureLayout:void 0,ProjectionNode:r.ProjectionNode}}const age=["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 ES(e){return typeof e!="string"||e.includes("-")?!1:!!(age.indexOf(e)>-1||/[A-Z]/u.test(e))}function FD(e){const t=[{},{}];return e==null||e.values.forEach((n,r)=>{t[0][r]=n.get(),t[1][r]=n.getVelocity()}),t}function PS(e,t,n,r){if(typeof t=="function"){const[i,o]=FD(r);t=t(n!==void 0?n:e.custom,i,o)}if(typeof t=="string"&&(t=e.variants&&e.variants[t]),typeof t=="function"){const[i,o]=FD(r);t=t(n!==void 0?n:e.custom,i,o)}return t}const dk=e=>Array.isArray(e),oge=e=>!!(e&&typeof e=="object"&&e.mix&&e.toValue),sge=e=>dk(e)?e[e.length-1]||0:e,qn=e=>!!(e&&e.getVelocity);function Jf(e){const t=qn(e)?e.get():e;return oge(t)?t.toValue():t}function lge({scrapeMotionValuesFromProps:e,createRenderState:t,onUpdate:n},r,i,o){const s={latestValues:cge(r,i,o,e),renderState:t()};return n&&(s.onMount=l=>n({props:r,current:l,...s}),s.onUpdate=l=>n(l)),s}const _9=e=>(t,n)=>{const r=O.useContext(my),i=O.useContext(jS),o=()=>lge(e,t,r,i);return n?o():Lme(o)};function cge(e,t,n,r){const i={},o=r(e,{});for(const g in o)i[g]=Jf(o[g]);let{initial:s,animate:l}=e;const u=yy(e),d=T9(e);t&&d&&!u&&e.inherit!==!1&&(s===void 0&&(s=t.initial),l===void 0&&(l=t.animate));let p=n?n.initial===!1:!1;p=p||s===!1;const f=p?l:s;if(f&&typeof f!="boolean"&&!gy(f)){const g=Array.isArray(f)?f:[f];for(let y=0;y<g.length;y++){const b=PS(e,g[y]);if(b){const{transitionEnd:w,transition:v,...j}=b;for(const k in j){let S=j[k];if(Array.isArray(S)){const E=p?S.length-1:0;S=S[E]}S!==null&&(i[k]=S)}for(const k in w)i[k]=w[k]}}}return i}const Xc=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],Ys=new Set(Xc),I9=e=>t=>typeof t=="string"&&t.startsWith(e),R9=I9("--"),uge=I9("var(--"),OS=e=>uge(e)?dge.test(e.split("/*")[0].trim()):!1,dge=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu,D9=(e,t)=>t&&typeof e=="number"?t.transform(e):e,xa=(e,t,n)=>n>t?t:n<e?e:n,Qc={test:e=>typeof e=="number",parse:parseFloat,transform:e=>e},ph={...Qc,transform:e=>xa(0,1,e)},Pf={...Qc,default:1},zh=e=>({test:t=>typeof t=="string"&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}),Ja=zh("deg"),Di=zh("%"),ze=zh("px"),hge=zh("vh"),pge=zh("vw"),BD={...Di,parse:e=>Di.parse(e)/100,transform:e=>Di.transform(e*100)},fge={borderWidth:ze,borderTopWidth:ze,borderRightWidth:ze,borderBottomWidth:ze,borderLeftWidth:ze,borderRadius:ze,radius:ze,borderTopLeftRadius:ze,borderTopRightRadius:ze,borderBottomRightRadius:ze,borderBottomLeftRadius:ze,width:ze,maxWidth:ze,height:ze,maxHeight:ze,top:ze,right:ze,bottom:ze,left:ze,padding:ze,paddingTop:ze,paddingRight:ze,paddingBottom:ze,paddingLeft:ze,margin:ze,marginTop:ze,marginRight:ze,marginBottom:ze,marginLeft:ze,backgroundPositionX:ze,backgroundPositionY:ze},mge={rotate:Ja,rotateX:Ja,rotateY:Ja,rotateZ:Ja,scale:Pf,scaleX:Pf,scaleY:Pf,scaleZ:Pf,skew:Ja,skewX:Ja,skewY:Ja,distance:ze,translateX:ze,translateY:ze,translateZ:ze,x:ze,y:ze,z:ze,perspective:ze,transformPerspective:ze,opacity:ph,originX:BD,originY:BD,originZ:ze},zD={...Qc,transform:Math.round},_S={...fge,...mge,zIndex:zD,size:ze,fillOpacity:ph,strokeOpacity:ph,numOctaves:zD},gge={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},yge=Xc.length;function xge(e,t,n){let r="",i=!0;for(let o=0;o<yge;o++){const s=Xc[o],l=e[s];if(l===void 0)continue;let u=!0;if(typeof l=="number"?u=l===(s.startsWith("scale")?1:0):u=parseFloat(l)===0,!u||n){const d=D9(l,_S[s]);if(!u){i=!1;const p=gge[s]||s;r+=`${p}(${d}) `}n&&(t[s]=d)}}return r=r.trim(),n?r=n(t,i?"":r):i&&(r="none"),r}function IS(e,t,n){const{style:r,vars:i,transformOrigin:o}=e;let s=!1,l=!1;for(const u in t){const d=t[u];if(Ys.has(u)){s=!0;continue}else if(R9(u)){i[u]=d;continue}else{const p=D9(d,_S[u]);u.startsWith("origin")?(l=!0,o[u]=p):r[u]=p}}if(t.transform||(s||n?r.transform=xge(t,e.transform,n):r.transform&&(r.transform="none")),l){const{originX:u="50%",originY:d="50%",originZ:p=0}=o;r.transformOrigin=`${u} ${d} ${p}`}}const vge={offset:"stroke-dashoffset",array:"stroke-dasharray"},bge={offset:"strokeDashoffset",array:"strokeDasharray"};function wge(e,t,n=1,r=0,i=!0){e.pathLength=1;const o=i?vge:bge;e[o.offset]=ze.transform(-r);const s=ze.transform(t),l=ze.transform(n);e[o.array]=`${s} ${l}`}function $D(e,t,n){return typeof e=="string"?e:ze.transform(t+n*e)}function jge(e,t,n){const r=$D(t,e.x,e.width),i=$D(n,e.y,e.height);return`${r} ${i}`}function RS(e,{attrX:t,attrY:n,attrScale:r,originX:i,originY:o,pathLength:s,pathSpacing:l=1,pathOffset:u=0,...d},p,f){if(IS(e,d,f),p){e.style.viewBox&&(e.attrs.viewBox=e.style.viewBox);return}e.attrs=e.style,e.style={};const{attrs:g,style:y,dimensions:b}=e;g.transform&&(b&&(y.transform=g.transform),delete g.transform),b&&(i!==void 0||o!==void 0||y.transform)&&(y.transformOrigin=jge(b,i!==void 0?i:.5,o!==void 0?o:.5)),t!==void 0&&(g.x=t),n!==void 0&&(g.y=n),r!==void 0&&(g.scale=r),s!==void 0&&wge(g,s,l,u,!1)}const DS=()=>({style:{},transform:{},transformOrigin:{},vars:{}}),M9=()=>({...DS(),attrs:{}}),MS=e=>typeof e=="string"&&e.toLowerCase()==="svg";function L9(e,{style:t,vars:n},r,i){Object.assign(e.style,t,i&&i.getProjectionStyles(r));for(const o in n)e.style.setProperty(o,n[o])}const F9=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"]);function B9(e,t,n,r){L9(e,t,void 0,r);for(const i in t.attrs)e.setAttribute(F9.has(i)?i:NS(i),t.attrs[i])}const dg={};function kge(e){Object.assign(dg,e)}function z9(e,{layout:t,layoutId:n}){return Ys.has(e)||e.startsWith("origin")||(t||n!==void 0)&&(!!dg[e]||e==="opacity")}function LS(e,t,n){var r;const{style:i}=e,o={};for(const s in i)(qn(i[s])||t.style&&qn(t.style[s])||z9(s,e)||((r=n==null?void 0:n.getValue(s))===null||r===void 0?void 0:r.liveStyle)!==void 0)&&(o[s]=i[s]);return o}function $9(e,t,n){const r=LS(e,t,n);for(const i in e)if(qn(e[i])||qn(t[i])){const o=Xc.indexOf(i)!==-1?"attr"+i.charAt(0).toUpperCase()+i.substring(1):i;r[o]=e[i]}return r}function Age(e,t){try{t.dimensions=typeof e.getBBox=="function"?e.getBBox():e.getBoundingClientRect()}catch{t.dimensions={x:0,y:0,width:0,height:0}}}const qD=["x","y","width","height","cx","cy","r"],Sge={useVisualState:_9({scrapeMotionValuesFromProps:$9,createRenderState:M9,onUpdate:({props:e,prevProps:t,current:n,renderState:r,latestValues:i})=>{if(!n)return;let o=!!e.drag;if(!o){for(const l in i)if(Ys.has(l)){o=!0;break}}if(!o)return;let s=!t;if(t)for(let l=0;l<qD.length;l++){const u=qD[l];e[u]!==t[u]&&(s=!0)}s&&Rt.read(()=>{Age(n,r),Rt.render(()=>{RS(r,i,MS(n.tagName),e.transformTemplate),B9(n,r)})})}})},Cge={useVisualState:_9({scrapeMotionValuesFromProps:LS,createRenderState:DS})};function q9(e,t,n){for(const r in t)!qn(t[r])&&!z9(r,n)&&(e[r]=t[r])}function Nge({transformTemplate:e},t){return O.useMemo(()=>{const n=DS();return IS(n,t,e),Object.assign({},n.vars,n.style)},[t])}function Tge(e,t){const n=e.style||{},r={};return q9(r,n,e),Object.assign(r,Nge(e,t)),r}function Ege(e,t){const n={},r=Tge(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}function Pge(e,t,n,r){const i=O.useMemo(()=>{const o=M9();return RS(o,t,MS(r),e.transformTemplate),{...o.attrs,style:{...o.style}}},[t]);if(e.style){const o={};q9(o,e.style,e),i.style={...o,...i.style}}return i}function Oge(e=!1){return(n,r,i,{latestValues:o},s)=>{const u=(ES(n)?Pge:Ege)(r,o,s,n),d=Vme(r,typeof n=="string",e),p=n!==O.Fragment?{...d,...u,ref:i}:{},{children:f}=r,g=O.useMemo(()=>qn(f)?f.get():f,[f]);return O.createElement(n,{...p,children:g})}}function _ge(e,t){return function(r,{forwardMotionProps:i}={forwardMotionProps:!1}){const s={...ES(r)?Sge:Cge,preloadedFeatures:e,useRender:Oge(i),createVisualElement:t,Component:r};return tge(s)}}function W9(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}function xy(e,t,n){const r=e.getProps();return PS(r,t,n!==void 0?n:r.custom,e)}const Ige=AS(()=>window.ScrollTimeline!==void 0);class Rge{constructor(t){this.stop=()=>this.runAll("stop"),this.animations=t.filter(Boolean)}get finished(){return Promise.all(this.animations.map(t=>"finished"in t?t.finished:t))}getAll(t){return this.animations[0][t]}setAll(t,n){for(let r=0;r<this.animations.length;r++)this.animations[r][t]=n}attachTimeline(t,n){const r=this.animations.map(i=>{if(Ige()&&i.attachTimeline)return i.attachTimeline(t);if(typeof n=="function")return n(i)});return()=>{r.forEach((i,o)=>{i&&i(),this.animations[o].stop()})}}get time(){return this.getAll("time")}set time(t){this.setAll("time",t)}get speed(){return this.getAll("speed")}set speed(t){this.setAll("speed",t)}get startTime(){return this.getAll("startTime")}get duration(){let t=0;for(let n=0;n<this.animations.length;n++)t=Math.max(t,this.animations[n].duration);return t}runAll(t){this.animations.forEach(n=>n[t]())}flatten(){this.runAll("flatten")}play(){this.runAll("play")}pause(){this.runAll("pause")}cancel(){this.runAll("cancel")}complete(){this.runAll("complete")}}class Dge extends Rge{then(t,n){return Promise.all(this.animations).then(t).catch(n)}}function FS(e,t){return e?e[t]||e.default||e:void 0}const hk=2e4;function U9(e){let t=0;const n=50;let r=e.next(t);for(;!r.done&&t<hk;)t+=n,r=e.next(t);return t>=hk?1/0:t}function BS(e){return typeof e=="function"}function WD(e,t){e.timeline=t,e.onfinish=null}const zS=e=>Array.isArray(e)&&typeof e[0]=="number",Mge={linearEasing:void 0};function Lge(e,t){const n=AS(e);return()=>{var r;return(r=Mge[t])!==null&&r!==void 0?r:n()}}const hg=Lge(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),H9=(e,t,n=10)=>{let r="";const i=Math.max(Math.round(t/n),2);for(let o=0;o<i;o++)r+=e(_c(0,i-1,o))+", ";return`linear(${r.substring(0,r.length-2)})`};function V9(e){return!!(typeof e=="function"&&hg()||!e||typeof e=="string"&&(e in pk||hg())||zS(e)||Array.isArray(e)&&e.every(V9))}const ld=([e,t,n,r])=>`cubic-bezier(${e}, ${t}, ${n}, ${r})`,pk={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:ld([0,.65,.55,1]),circOut:ld([.55,0,1,.45]),backIn:ld([.31,.01,.66,-.59]),backOut:ld([.33,1.53,.69,.99])};function G9(e,t){if(e)return typeof e=="function"&&hg()?H9(e,t):zS(e)?ld(e):Array.isArray(e)?e.map(n=>G9(n,t)||pk.easeOut):pk[e]}const ii={x:!1,y:!1};function Y9(){return ii.x||ii.y}function K9(e,t,n){var r;if(e instanceof Element)return[e];if(typeof e=="string"){let i=document;const o=(r=void 0)!==null&&r!==void 0?r:i.querySelectorAll(e);return o?Array.from(o):[]}return Array.from(e)}function X9(e,t){const n=K9(e),r=new AbortController,i={passive:!0,...t,signal:r.signal};return[n,i,()=>r.abort()]}function UD(e){return t=>{t.pointerType==="touch"||Y9()||e(t)}}function Fge(e,t,n={}){const[r,i,o]=X9(e,n),s=UD(l=>{const{target:u}=l,d=t(l);if(typeof d!="function"||!u)return;const p=UD(f=>{d(f),u.removeEventListener("pointerleave",p)});u.addEventListener("pointerleave",p,i)});return r.forEach(l=>{l.addEventListener("pointerenter",s,i)}),o}const Q9=(e,t)=>t?e===t?!0:Q9(e,t.parentElement):!1,$S=e=>e.pointerType==="mouse"?typeof e.button!="number"||e.button<=0:e.isPrimary!==!1,Bge=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function zge(e){return Bge.has(e.tagName)||e.tabIndex!==-1}const cd=new WeakSet;function HD(e){return t=>{t.key==="Enter"&&e(t)}}function B1(e,t){e.dispatchEvent(new PointerEvent("pointer"+t,{isPrimary:!0,bubbles:!0}))}const $ge=(e,t)=>{const n=e.currentTarget;if(!n)return;const r=HD(()=>{if(cd.has(n))return;B1(n,"down");const i=HD(()=>{B1(n,"up")}),o=()=>B1(n,"cancel");n.addEventListener("keyup",i,t),n.addEventListener("blur",o,t)});n.addEventListener("keydown",r,t),n.addEventListener("blur",()=>n.removeEventListener("keydown",r),t)};function VD(e){return $S(e)&&!Y9()}function qge(e,t,n={}){const[r,i,o]=X9(e,n),s=l=>{const u=l.currentTarget;if(!VD(l)||cd.has(u))return;cd.add(u);const d=t(l),p=(y,b)=>{window.removeEventListener("pointerup",f),window.removeEventListener("pointercancel",g),!(!VD(y)||!cd.has(u))&&(cd.delete(u),typeof d=="function"&&d(y,{success:b}))},f=y=>{p(y,n.useGlobalTarget||Q9(u,y.target))},g=y=>{p(y,!1)};window.addEventListener("pointerup",f,i),window.addEventListener("pointercancel",g,i)};return r.forEach(l=>{!zge(l)&&l.getAttribute("tabindex")===null&&(l.tabIndex=0),(n.useGlobalTarget?window:l).addEventListener("pointerdown",s,i),l.addEventListener("focus",d=>$ge(d,i),i)}),o}function Wge(e){return e==="x"||e==="y"?ii[e]?null:(ii[e]=!0,()=>{ii[e]=!1}):ii.x||ii.y?null:(ii.x=ii.y=!0,()=>{ii.x=ii.y=!1})}const J9=new Set(["width","height","top","left","right","bottom",...Xc]);let Zf;function Uge(){Zf=void 0}const Mi={now:()=>(Zf===void 0&&Mi.set(Cn.isProcessing||zme.useManualTiming?Cn.timestamp:performance.now()),Zf),set:e=>{Zf=e,queueMicrotask(Uge)}};function qS(e,t){e.indexOf(t)===-1&&e.push(t)}function WS(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}class US{constructor(){this.subscriptions=[]}add(t){return qS(this.subscriptions,t),()=>WS(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 o=0;o<i;o++){const s=this.subscriptions[o];s&&s(t,n,r)}}getSize(){return this.subscriptions.length}clear(){this.subscriptions.length=0}}function Z9(e,t){return t?e*(1e3/t):0}const GD=30,Hge=e=>!isNaN(parseFloat(e));class Vge{constructor(t,n={}){this.version="11.18.2",this.canTrackVelocity=null,this.events={},this.updateAndNotify=(r,i=!0)=>{const o=Mi.now();this.updatedAt!==o&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(r),this.current!==this.prev&&this.events.change&&this.events.change.notify(this.current),i&&this.events.renderRequest&&this.events.renderRequest.notify(this.current)},this.hasAnimated=!1,this.setCurrent(t),this.owner=n.owner}setCurrent(t){this.current=t,this.updatedAt=Mi.now(),this.canTrackVelocity===null&&t!==void 0&&(this.canTrackVelocity=Hge(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 US);const r=this.events[t].add(n);return t==="change"?()=>{r(),Rt.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,n=!0){!n||!this.passiveEffect?this.updateAndNotify(t,n):this.passiveEffect(t,this.updateAndNotify)}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()}get(){return this.current}getPrevious(){return this.prev}getVelocity(){const t=Mi.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||t-this.updatedAt>GD)return 0;const n=Math.min(this.updatedAt-this.prevUpdatedAt,GD);return Z9(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(){this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function fh(e,t){return new Vge(e,t)}function Gge(e,t,n){e.hasValue(t)?e.getValue(t).set(n):e.addValue(t,fh(n))}function Yge(e,t){const n=xy(e,t);let{transitionEnd:r={},transition:i={},...o}=n||{};o={...o,...r};for(const s in o){const l=sge(o[s]);Gge(e,s,l)}}function Kge(e){return!!(qn(e)&&e.add)}function fk(e,t){const n=e.getValue("willChange");if(Kge(n))return n.add(t)}function ez(e){return e.props[E9]}const tz=(e,t,n)=>(((1-3*n+3*t)*e+(3*n-6*t))*e+3*t)*e,Xge=1e-7,Qge=12;function Jge(e,t,n,r,i){let o,s,l=0;do s=t+(n-t)/2,o=tz(s,r,i)-e,o>0?n=s:t=s;while(Math.abs(o)>Xge&&++l<Qge);return s}function $h(e,t,n,r){if(e===t&&n===r)return kr;const i=o=>Jge(o,0,1,e,n);return o=>o===0||o===1?o:tz(i(o),t,r)}const nz=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,rz=e=>t=>1-e(1-t),iz=$h(.33,1.53,.69,.99),HS=rz(iz),az=nz(HS),oz=e=>(e*=2)<1?.5*HS(e):.5*(2-Math.pow(2,-10*(e-1))),VS=e=>1-Math.sin(Math.acos(e)),sz=rz(VS),lz=nz(VS),cz=e=>/^0[^.\s]+$/u.test(e);function Zge(e){return typeof e=="number"?e===0:e!==null?e==="none"||e==="0"||cz(e):!0}const xd=e=>Math.round(e*1e5)/1e5,GS=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function eye(e){return e==null}const tye=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,YS=(e,t)=>n=>!!(typeof n=="string"&&tye.test(n)&&n.startsWith(e)||t&&!eye(n)&&Object.prototype.hasOwnProperty.call(n,t)),uz=(e,t,n)=>r=>{if(typeof r!="string")return r;const[i,o,s,l]=r.match(GS);return{[e]:parseFloat(i),[t]:parseFloat(o),[n]:parseFloat(s),alpha:l!==void 0?parseFloat(l):1}},nye=e=>xa(0,255,e),z1={...Qc,transform:e=>Math.round(nye(e))},ds={test:YS("rgb","red"),parse:uz("red","green","blue"),transform:({red:e,green:t,blue:n,alpha:r=1})=>"rgba("+z1.transform(e)+", "+z1.transform(t)+", "+z1.transform(n)+", "+xd(ph.transform(r))+")"};function rye(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 mk={test:YS("#"),parse:rye,transform:ds.transform},Fl={test:YS("hsl","hue"),parse:uz("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:n,alpha:r=1})=>"hsla("+Math.round(e)+", "+Di.transform(xd(t))+", "+Di.transform(xd(n))+", "+xd(ph.transform(r))+")"},Bn={test:e=>ds.test(e)||mk.test(e)||Fl.test(e),parse:e=>ds.test(e)?ds.parse(e):Fl.test(e)?Fl.parse(e):mk.parse(e),transform:e=>typeof e=="string"?e:e.hasOwnProperty("red")?ds.transform(e):Fl.transform(e)},iye=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function aye(e){var t,n;return isNaN(e)&&typeof e=="string"&&(((t=e.match(GS))===null||t===void 0?void 0:t.length)||0)+(((n=e.match(iye))===null||n===void 0?void 0:n.length)||0)>0}const dz="number",hz="color",oye="var",sye="var(",YD="${}",lye=/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 mh(e){const t=e.toString(),n=[],r={color:[],number:[],var:[]},i=[];let o=0;const l=t.replace(lye,u=>(Bn.test(u)?(r.color.push(o),i.push(hz),n.push(Bn.parse(u))):u.startsWith(sye)?(r.var.push(o),i.push(oye),n.push(u)):(r.number.push(o),i.push(dz),n.push(parseFloat(u))),++o,YD)).split(YD);return{values:n,split:l,indexes:r,types:i}}function pz(e){return mh(e).values}function fz(e){const{split:t,types:n}=mh(e),r=t.length;return i=>{let o="";for(let s=0;s<r;s++)if(o+=t[s],i[s]!==void 0){const l=n[s];l===dz?o+=xd(i[s]):l===hz?o+=Bn.transform(i[s]):o+=i[s]}return o}}const cye=e=>typeof e=="number"?0:e;function uye(e){const t=pz(e);return fz(e)(t.map(cye))}const vo={test:aye,parse:pz,createTransformer:fz,getAnimatableNone:uye},dye=new Set(["brightness","contrast","saturate","opacity"]);function hye(e){const[t,n]=e.slice(0,-1).split("(");if(t==="drop-shadow")return e;const[r]=n.match(GS)||[];if(!r)return e;const i=n.replace(r,"");let o=dye.has(t)?1:0;return r!==n&&(o*=100),t+"("+o+i+")"}const pye=/\b([a-z-]*)\(.*?\)/gu,gk={...vo,getAnimatableNone:e=>{const t=e.match(pye);return t?t.map(hye).join(" "):e}},fye={..._S,color:Bn,backgroundColor:Bn,outlineColor:Bn,fill:Bn,stroke:Bn,borderColor:Bn,borderTopColor:Bn,borderRightColor:Bn,borderBottomColor:Bn,borderLeftColor:Bn,filter:gk,WebkitFilter:gk},KS=e=>fye[e];function mz(e,t){let n=KS(e);return n!==gk&&(n=vo),n.getAnimatableNone?n.getAnimatableNone(t):void 0}const mye=new Set(["auto","none","0"]);function gye(e,t,n){let r=0,i;for(;r<e.length&&!i;){const o=e[r];typeof o=="string"&&!mye.has(o)&&mh(o).values.length&&(i=e[r]),r++}if(i&&n)for(const o of t)e[o]=mz(n,i)}const KD=e=>e===Qc||e===ze,XD=(e,t)=>parseFloat(e.split(", ")[t]),QD=(e,t)=>(n,{transform:r})=>{if(r==="none"||!r)return 0;const i=r.match(/^matrix3d\((.+)\)$/u);if(i)return XD(i[1],t);{const o=r.match(/^matrix\((.+)\)$/u);return o?XD(o[1],e):0}},yye=new Set(["x","y","z"]),xye=Xc.filter(e=>!yye.has(e));function vye(e){const t=[];return xye.forEach(n=>{const r=e.getValue(n);r!==void 0&&(t.push([n,r.get()]),r.set(n.startsWith("scale")?1:0))}),t}const Rc={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:QD(4,13),y:QD(5,14)};Rc.translateX=Rc.x;Rc.translateY=Rc.y;const Ns=new Set;let yk=!1,xk=!1;function gz(){if(xk){const e=Array.from(Ns).filter(r=>r.needsMeasurement),t=new Set(e.map(r=>r.element)),n=new Map;t.forEach(r=>{const i=vye(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(([o,s])=>{var l;(l=r.getValue(o))===null||l===void 0||l.set(s)})}),e.forEach(r=>r.measureEndState()),e.forEach(r=>{r.suspendedScrollY!==void 0&&window.scrollTo(0,r.suspendedScrollY)})}xk=!1,yk=!1,Ns.forEach(e=>e.complete()),Ns.clear()}function yz(){Ns.forEach(e=>{e.readKeyframes(),e.needsMeasurement&&(xk=!0)})}function bye(){yz(),gz()}class XS{constructor(t,n,r,i,o,s=!1){this.isComplete=!1,this.isAsync=!1,this.needsMeasurement=!1,this.isScheduled=!1,this.unresolvedKeyframes=[...t],this.onComplete=n,this.name=r,this.motionValue=i,this.element=o,this.isAsync=s}scheduleResolve(){this.isScheduled=!0,this.isAsync?(Ns.add(this),yk||(yk=!0,Rt.read(yz),Rt.resolveKeyframes(gz))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:t,name:n,element:r,motionValue:i}=this;for(let o=0;o<t.length;o++)if(t[o]===null)if(o===0){const s=i==null?void 0:i.get(),l=t[t.length-1];if(s!==void 0)t[0]=s;else if(r&&n){const u=r.readValue(n,l);u!=null&&(t[0]=u)}t[0]===void 0&&(t[0]=l),i&&s===void 0&&i.set(t[0])}else t[o]=t[o-1]}setFinalKeyframe(){}measureInitialState(){}renderEndStyles(){}measureEndState(){}complete(){this.isComplete=!0,this.onComplete(this.unresolvedKeyframes,this.finalKeyframe),Ns.delete(this)}cancel(){this.isComplete||(this.isScheduled=!1,Ns.delete(this))}resume(){this.isComplete||this.scheduleResolve()}}const xz=e=>/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(e),wye=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function jye(e){const t=wye.exec(e);if(!t)return[,];const[,n,r,i]=t;return[`--${n??r}`,i]}function vz(e,t,n=1){const[r,i]=jye(e);if(!r)return;const o=window.getComputedStyle(t).getPropertyValue(r);if(o){const s=o.trim();return xz(s)?parseFloat(s):s}return OS(i)?vz(i,t,n+1):i}const bz=e=>t=>t.test(e),kye={test:e=>e==="auto",parse:e=>e},wz=[Qc,ze,Di,Ja,pge,hge,kye],JD=e=>wz.find(bz(e));class jz extends XS{constructor(t,n,r,i,o){super(t,n,r,i,o,!0)}readKeyframes(){const{unresolvedKeyframes:t,element:n,name:r}=this;if(!n||!n.current)return;super.readKeyframes();for(let u=0;u<t.length;u++){let d=t[u];if(typeof d=="string"&&(d=d.trim(),OS(d))){const p=vz(d,n.current);p!==void 0&&(t[u]=p),u===t.length-1&&(this.finalKeyframe=d)}}if(this.resolveNoneKeyframes(),!J9.has(r)||t.length!==2)return;const[i,o]=t,s=JD(i),l=JD(o);if(s!==l)if(KD(s)&&KD(l))for(let u=0;u<t.length;u++){const d=t[u];typeof d=="string"&&(t[u]=parseFloat(d))}else this.needsMeasurement=!0}resolveNoneKeyframes(){const{unresolvedKeyframes:t,name:n}=this,r=[];for(let i=0;i<t.length;i++)Zge(t[i])&&r.push(i);r.length&&gye(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=Rc[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 t;const{element:n,name:r,unresolvedKeyframes:i}=this;if(!n||!n.current)return;const o=n.getValue(r);o&&o.jump(this.measuredOrigin,!1);const s=i.length-1,l=i[s];i[s]=Rc[r](n.measureViewportBox(),window.getComputedStyle(n.current)),l!==null&&this.finalKeyframe===void 0&&(this.finalKeyframe=l),!((t=this.removedTransforms)===null||t===void 0)&&t.length&&this.removedTransforms.forEach(([u,d])=>{n.getValue(u).set(d)}),this.resolveNoneKeyframes()}}const ZD=(e,t)=>t==="zIndex"?!1:!!(typeof e=="number"||Array.isArray(e)||typeof e=="string"&&(vo.test(e)||e==="0")&&!e.startsWith("url("));function Aye(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 Sye(e,t,n,r){const i=e[0];if(i===null)return!1;if(t==="display"||t==="visibility")return!0;const o=e[e.length-1],s=ZD(i,t),l=ZD(o,t);return!s||!l?!1:Aye(e)||(n==="spring"||BS(n))&&r}const Cye=e=>e!==null;function vy(e,{repeat:t,repeatType:n="loop"},r){const i=e.filter(Cye),o=t&&n!=="loop"&&t%2===1?0:i.length-1;return!o||r===void 0?i[o]:r}const Nye=40;class kz{constructor({autoplay:t=!0,delay:n=0,type:r="keyframes",repeat:i=0,repeatDelay:o=0,repeatType:s="loop",...l}){this.isStopped=!1,this.hasAttemptedResolve=!1,this.createdAt=Mi.now(),this.options={autoplay:t,delay:n,type:r,repeat:i,repeatDelay:o,repeatType:s,...l},this.updateFinishedPromise()}calcStartTime(){return this.resolvedAt?this.resolvedAt-this.createdAt>Nye?this.resolvedAt:this.createdAt:this.createdAt}get resolved(){return!this._resolved&&!this.hasAttemptedResolve&&bye(),this._resolved}onKeyframesResolved(t,n){this.resolvedAt=Mi.now(),this.hasAttemptedResolve=!0;const{name:r,type:i,velocity:o,delay:s,onComplete:l,onUpdate:u,isGenerator:d}=this.options;if(!d&&!Sye(t,r,i,o))if(s)this.options.duration=0;else{u&&u(vy(t,this.options,n)),l&&l(),this.resolveFinishedPromise();return}const p=this.initPlayback(t,n);p!==!1&&(this._resolved={keyframes:t,finalKeyframe:n,...p},this.onPostResolved())}onPostResolved(){}then(t,n){return this.currentFinishedPromise.then(t,n)}flatten(){this.options.type="keyframes",this.options.ease="linear"}updateFinishedPromise(){this.currentFinishedPromise=new Promise(t=>{this.resolveFinishedPromise=t})}}const Bt=(e,t,n)=>e+(t-e)*n;function $1(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 Tye({hue:e,saturation:t,lightness:n,alpha:r}){e/=360,t/=100,n/=100;let i=0,o=0,s=0;if(!t)i=o=s=n;else{const l=n<.5?n*(1+t):n+t-n*t,u=2*n-l;i=$1(u,l,e+1/3),o=$1(u,l,e),s=$1(u,l,e-1/3)}return{red:Math.round(i*255),green:Math.round(o*255),blue:Math.round(s*255),alpha:r}}function pg(e,t){return n=>n>0?t:e}const q1=(e,t,n)=>{const r=e*e,i=n*(t*t-r)+r;return i<0?0:Math.sqrt(i)},Eye=[mk,ds,Fl],Pye=e=>Eye.find(t=>t.test(e));function e3(e){const t=Pye(e);if(!t)return!1;let n=t.parse(e);return t===Fl&&(n=Tye(n)),n}const t3=(e,t)=>{const n=e3(e),r=e3(t);if(!n||!r)return pg(e,t);const i={...n};return o=>(i.red=q1(n.red,r.red,o),i.green=q1(n.green,r.green,o),i.blue=q1(n.blue,r.blue,o),i.alpha=Bt(n.alpha,r.alpha,o),ds.transform(i))},Oye=(e,t)=>n=>t(e(n)),qh=(...e)=>e.reduce(Oye),vk=new Set(["none","hidden"]);function _ye(e,t){return vk.has(e)?n=>n<=0?e:t:n=>n>=1?t:e}function Iye(e,t){return n=>Bt(e,t,n)}function QS(e){return typeof e=="number"?Iye:typeof e=="string"?OS(e)?pg:Bn.test(e)?t3:Mye:Array.isArray(e)?Az:typeof e=="object"?Bn.test(e)?t3:Rye:pg}function Az(e,t){const n=[...e],r=n.length,i=e.map((o,s)=>QS(o)(o,t[s]));return o=>{for(let s=0;s<r;s++)n[s]=i[s](o);return n}}function Rye(e,t){const n={...e,...t},r={};for(const i in n)e[i]!==void 0&&t[i]!==void 0&&(r[i]=QS(e[i])(e[i],t[i]));return i=>{for(const o in r)n[o]=r[o](i);return n}}function Dye(e,t){var n;const r=[],i={color:0,var:0,number:0};for(let o=0;o<t.values.length;o++){const s=t.types[o],l=e.indexes[s][i[s]],u=(n=e.values[l])!==null&&n!==void 0?n:0;r[o]=u,i[s]++}return r}const Mye=(e,t)=>{const n=vo.createTransformer(t),r=mh(e),i=mh(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?vk.has(e)&&!i.values.length||vk.has(t)&&!r.values.length?_ye(e,t):qh(Az(Dye(r,i),i.values),n):pg(e,t)};function Sz(e,t,n){return typeof e=="number"&&typeof t=="number"&&typeof n=="number"?Bt(e,t,n):QS(e)(e,t)}const Lye=5;function Cz(e,t,n){const r=Math.max(t-Lye,0);return Z9(n-e(r),t-r)}const Wt={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},W1=.001;function Fye({duration:e=Wt.duration,bounce:t=Wt.bounce,velocity:n=Wt.velocity,mass:r=Wt.mass}){let i,o,s=1-t;s=xa(Wt.minDamping,Wt.maxDamping,s),e=xa(Wt.minDuration,Wt.maxDuration,fa(e)),s<1?(i=d=>{const p=d*s,f=p*e,g=p-n,y=bk(d,s),b=Math.exp(-f);return W1-g/y*b},o=d=>{const f=d*s*e,g=f*n+n,y=Math.pow(s,2)*Math.pow(d,2)*e,b=Math.exp(-f),w=bk(Math.pow(d,2),s);return(-i(d)+W1>0?-1:1)*((g-y)*b)/w}):(i=d=>{const p=Math.exp(-d*e),f=(d-n)*e+1;return-W1+p*f},o=d=>{const p=Math.exp(-d*e),f=(n-d)*(e*e);return p*f});const l=5/e,u=zye(i,o,l);if(e=pa(e),isNaN(u))return{stiffness:Wt.stiffness,damping:Wt.damping,duration:e};{const d=Math.pow(u,2)*r;return{stiffness:d,damping:s*2*Math.sqrt(r*d),duration:e}}}const Bye=12;function zye(e,t,n){let r=n;for(let i=1;i<Bye;i++)r=r-e(r)/t(r);return r}function bk(e,t){return e*Math.sqrt(1-t*t)}const $ye=["duration","bounce"],qye=["stiffness","damping","mass"];function n3(e,t){return t.some(n=>e[n]!==void 0)}function Wye(e){let t={velocity:Wt.velocity,stiffness:Wt.stiffness,damping:Wt.damping,mass:Wt.mass,isResolvedFromDuration:!1,...e};if(!n3(e,qye)&&n3(e,$ye))if(e.visualDuration){const n=e.visualDuration,r=2*Math.PI/(n*1.2),i=r*r,o=2*xa(.05,1,1-(e.bounce||0))*Math.sqrt(i);t={...t,mass:Wt.mass,stiffness:i,damping:o}}else{const n=Fye(e);t={...t,...n,mass:Wt.mass},t.isResolvedFromDuration=!0}return t}function Nz(e=Wt.visualDuration,t=Wt.bounce){const n=typeof e!="object"?{visualDuration:e,keyframes:[0,1],bounce:t}:e;let{restSpeed:r,restDelta:i}=n;const o=n.keyframes[0],s=n.keyframes[n.keyframes.length-1],l={done:!1,value:o},{stiffness:u,damping:d,mass:p,duration:f,velocity:g,isResolvedFromDuration:y}=Wye({...n,velocity:-fa(n.velocity||0)}),b=g||0,w=d/(2*Math.sqrt(u*p)),v=s-o,j=fa(Math.sqrt(u/p)),k=Math.abs(v)<5;r||(r=k?Wt.restSpeed.granular:Wt.restSpeed.default),i||(i=k?Wt.restDelta.granular:Wt.restDelta.default);let S;if(w<1){const N=bk(j,w);S=C=>{const P=Math.exp(-w*j*C);return s-P*((b+w*j*v)/N*Math.sin(N*C)+v*Math.cos(N*C))}}else if(w===1)S=N=>s-Math.exp(-j*N)*(v+(b+j*v)*N);else{const N=j*Math.sqrt(w*w-1);S=C=>{const P=Math.exp(-w*j*C),_=Math.min(N*C,300);return s-P*((b+w*j*v)*Math.sinh(_)+N*v*Math.cosh(_))/N}}const E={calculatedDuration:y&&f||null,next:N=>{const C=S(N);if(y)l.done=N>=f;else{let P=0;w<1&&(P=N===0?pa(b):Cz(S,N,C));const _=Math.abs(P)<=r,M=Math.abs(s-C)<=i;l.done=_&&M}return l.value=l.done?s:C,l},toString:()=>{const N=Math.min(U9(E),hk),C=H9(P=>E.next(N*P).value,N,30);return N+"ms "+C}};return E}function r3({keyframes:e,velocity:t=0,power:n=.8,timeConstant:r=325,bounceDamping:i=10,bounceStiffness:o=500,modifyTarget:s,min:l,max:u,restDelta:d=.5,restSpeed:p}){const f=e[0],g={done:!1,value:f},y=_=>l!==void 0&&_<l||u!==void 0&&_>u,b=_=>l===void 0?u:u===void 0||Math.abs(l-_)<Math.abs(u-_)?l:u;let w=n*t;const v=f+w,j=s===void 0?v:s(v);j!==v&&(w=j-f);const k=_=>-w*Math.exp(-_/r),S=_=>j+k(_),E=_=>{const M=k(_),D=S(_);g.done=Math.abs(M)<=d,g.value=g.done?j:D};let N,C;const P=_=>{y(g.value)&&(N=_,C=Nz({keyframes:[g.value,b(g.value)],velocity:Cz(S,_,g.value),damping:i,stiffness:o,restDelta:d,restSpeed:p}))};return P(0),{calculatedDuration:null,next:_=>{let M=!1;return!C&&N===void 0&&(M=!0,E(_),P(_)),N!==void 0&&_>=N?C.next(_-N):(!M&&E(_),g)}}}const Uye=$h(.42,0,1,1),Hye=$h(0,0,.58,1),Tz=$h(.42,0,.58,1),Vye=e=>Array.isArray(e)&&typeof e[0]!="number",Gye={linear:kr,easeIn:Uye,easeInOut:Tz,easeOut:Hye,circIn:VS,circInOut:lz,circOut:sz,backIn:HS,backInOut:az,backOut:iz,anticipate:oz},i3=e=>{if(zS(e)){A9(e.length===4);const[t,n,r,i]=e;return $h(t,n,r,i)}else if(typeof e=="string")return Gye[e];return e};function Yye(e,t,n){const r=[],i=n||Sz,o=e.length-1;for(let s=0;s<o;s++){let l=i(e[s],e[s+1]);if(t){const u=Array.isArray(t)?t[s]||kr:t;l=qh(u,l)}r.push(l)}return r}function Kye(e,t,{clamp:n=!0,ease:r,mixer:i}={}){const o=e.length;if(A9(o===t.length),o===1)return()=>t[0];if(o===2&&t[0]===t[1])return()=>t[1];const s=e[0]===e[1];e[0]>e[o-1]&&(e=[...e].reverse(),t=[...t].reverse());const l=Yye(t,r,i),u=l.length,d=p=>{if(s&&p<e[0])return t[0];let f=0;if(u>1)for(;f<e.length-2&&!(p<e[f+1]);f++);const g=_c(e[f],e[f+1],p);return l[f](g)};return n?p=>d(xa(e[0],e[o-1],p)):d}function Xye(e,t){const n=e[e.length-1];for(let r=1;r<=t;r++){const i=_c(0,t,r);e.push(Bt(n,1,i))}}function Qye(e){const t=[0];return Xye(t,e.length-1),t}function Jye(e,t){return e.map(n=>n*t)}function Zye(e,t){return e.map(()=>t||Tz).splice(0,e.length-1)}function fg({duration:e=300,keyframes:t,times:n,ease:r="easeInOut"}){const i=Vye(r)?r.map(i3):i3(r),o={done:!1,value:t[0]},s=Jye(n&&n.length===t.length?n:Qye(t),e),l=Kye(s,t,{ease:Array.isArray(i)?i:Zye(t,i)});return{calculatedDuration:e,next:u=>(o.value=l(u),o.done=u>=e,o)}}const exe=e=>{const t=({timestamp:n})=>e(n);return{start:()=>Rt.update(t,!0),stop:()=>xo(t),now:()=>Cn.isProcessing?Cn.timestamp:Mi.now()}},txe={decay:r3,inertia:r3,tween:fg,keyframes:fg,spring:Nz},nxe=e=>e/100;class JS extends kz{constructor(t){super(t),this.holdTime=null,this.cancelTime=null,this.currentTime=0,this.playbackSpeed=1,this.pendingPlayState="running",this.startTime=null,this.state="idle",this.stop=()=>{if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.teardown();const{onStop:u}=this.options;u&&u()};const{name:n,motionValue:r,element:i,keyframes:o}=this.options,s=(i==null?void 0:i.KeyframeResolver)||XS,l=(u,d)=>this.onKeyframesResolved(u,d);this.resolver=new s(o,l,n,r,i),this.resolver.scheduleResolve()}flatten(){super.flatten(),this._resolved&&Object.assign(this._resolved,this.initPlayback(this._resolved.keyframes))}initPlayback(t){const{type:n="keyframes",repeat:r=0,repeatDelay:i=0,repeatType:o,velocity:s=0}=this.options,l=BS(n)?n:txe[n]||fg;let u,d;l!==fg&&typeof t[0]!="number"&&(u=qh(nxe,Sz(t[0],t[1])),t=[0,100]);const p=l({...this.options,keyframes:t});o==="mirror"&&(d=l({...this.options,keyframes:[...t].reverse(),velocity:-s})),p.calculatedDuration===null&&(p.calculatedDuration=U9(p));const{calculatedDuration:f}=p,g=f+i,y=g*(r+1)-i;return{generator:p,mirroredGenerator:d,mapPercentToKeyframes:u,calculatedDuration:f,resolvedDuration:g,totalDuration:y}}onPostResolved(){const{autoplay:t=!0}=this.options;this.play(),this.pendingPlayState==="paused"||!t?this.pause():this.state=this.pendingPlayState}tick(t,n=!1){const{resolved:r}=this;if(!r){const{keyframes:_}=this.options;return{done:!0,value:_[_.length-1]}}const{finalKeyframe:i,generator:o,mirroredGenerator:s,mapPercentToKeyframes:l,keyframes:u,calculatedDuration:d,totalDuration:p,resolvedDuration:f}=r;if(this.startTime===null)return o.next(0);const{delay:g,repeat:y,repeatType:b,repeatDelay:w,onUpdate:v}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,t):this.speed<0&&(this.startTime=Math.min(t-p/this.speed,this.startTime)),n?this.currentTime=t:this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=Math.round(t-this.startTime)*this.speed;const j=this.currentTime-g*(this.speed>=0?1:-1),k=this.speed>=0?j<0:j>p;this.currentTime=Math.max(j,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=p);let S=this.currentTime,E=o;if(y){const _=Math.min(this.currentTime,p)/f;let M=Math.floor(_),D=_%1;!D&&_>=1&&(D=1),D===1&&M--,M=Math.min(M,y+1),!!(M%2)&&(b==="reverse"?(D=1-D,w&&(D-=w/f)):b==="mirror"&&(E=s)),S=xa(0,1,D)*f}const N=k?{done:!1,value:u[0]}:E.next(S);l&&(N.value=l(N.value));let{done:C}=N;!k&&d!==null&&(C=this.speed>=0?this.currentTime>=p:this.currentTime<=0);const P=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&C);return P&&i!==void 0&&(N.value=vy(u,this.options,i)),v&&v(N.value),P&&this.finish(),N}get duration(){const{resolved:t}=this;return t?fa(t.calculatedDuration):0}get time(){return fa(this.currentTime)}set time(t){t=pa(t),this.currentTime=t,this.holdTime!==null||this.speed===0?this.holdTime=t:this.driver&&(this.startTime=this.driver.now()-t/this.speed)}get speed(){return this.playbackSpeed}set speed(t){const n=this.playbackSpeed!==t;this.playbackSpeed=t,n&&(this.time=fa(this.currentTime))}play(){if(this.resolver.isScheduled||this.resolver.resume(),!this._resolved){this.pendingPlayState="running";return}if(this.isStopped)return;const{driver:t=exe,onPlay:n,startTime:r}=this.options;this.driver||(this.driver=t(o=>this.tick(o))),n&&n();const i=this.driver.now();this.holdTime!==null?this.startTime=i-this.holdTime:this.startTime?this.state==="finished"&&(this.startTime=i):this.startTime=r??this.calcStartTime(),this.state==="finished"&&this.updateFinishedPromise(),this.cancelTime=this.startTime,this.holdTime=null,this.state="running",this.driver.start()}pause(){var t;if(!this._resolved){this.pendingPlayState="paused";return}this.state="paused",this.holdTime=(t=this.currentTime)!==null&&t!==void 0?t:0}complete(){this.state!=="running"&&this.play(),this.pendingPlayState=this.state="finished",this.holdTime=null}finish(){this.teardown(),this.state="finished";const{onComplete:t}=this.options;t&&t()}cancel(){this.cancelTime!==null&&this.tick(this.cancelTime),this.teardown(),this.updateFinishedPromise()}teardown(){this.state="idle",this.stopDriver(),this.resolveFinishedPromise(),this.updateFinishedPromise(),this.startTime=this.cancelTime=null,this.resolver.cancel()}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(t){return this.startTime=0,this.tick(t,!0)}}const rxe=new Set(["opacity","clipPath","filter","transform"]);function ixe(e,t,n,{delay:r=0,duration:i=300,repeat:o=0,repeatType:s="loop",ease:l="easeInOut",times:u}={}){const d={[t]:n};u&&(d.offset=u);const p=G9(l,i);return Array.isArray(p)&&(d.easing=p),e.animate(d,{delay:r,duration:i,easing:Array.isArray(p)?"linear":p,fill:"both",iterations:o+1,direction:s==="reverse"?"alternate":"normal"})}const axe=AS(()=>Object.hasOwnProperty.call(Element.prototype,"animate")),mg=10,oxe=2e4;function sxe(e){return BS(e.type)||e.type==="spring"||!V9(e.ease)}function lxe(e,t){const n=new JS({...t,keyframes:e,repeat:0,delay:0,isGenerator:!0});let r={done:!1,value:e[0]};const i=[];let o=0;for(;!r.done&&o<oxe;)r=n.sample(o),i.push(r.value),o+=mg;return{times:void 0,keyframes:i,duration:o-mg,ease:"linear"}}const Ez={anticipate:oz,backInOut:az,circInOut:lz};function cxe(e){return e in Ez}class a3 extends kz{constructor(t){super(t);const{name:n,motionValue:r,element:i,keyframes:o}=this.options;this.resolver=new jz(o,(s,l)=>this.onKeyframesResolved(s,l),n,r,i),this.resolver.scheduleResolve()}initPlayback(t,n){let{duration:r=300,times:i,ease:o,type:s,motionValue:l,name:u,startTime:d}=this.options;if(!l.owner||!l.owner.current)return!1;if(typeof o=="string"&&hg()&&cxe(o)&&(o=Ez[o]),sxe(this.options)){const{onComplete:f,onUpdate:g,motionValue:y,element:b,...w}=this.options,v=lxe(t,w);t=v.keyframes,t.length===1&&(t[1]=t[0]),r=v.duration,i=v.times,o=v.ease,s="keyframes"}const p=ixe(l.owner.current,u,t,{...this.options,duration:r,times:i,ease:o});return p.startTime=d??this.calcStartTime(),this.pendingTimeline?(WD(p,this.pendingTimeline),this.pendingTimeline=void 0):p.onfinish=()=>{const{onComplete:f}=this.options;l.set(vy(t,this.options,n)),f&&f(),this.cancel(),this.resolveFinishedPromise()},{animation:p,duration:r,times:i,type:s,ease:o,keyframes:t}}get duration(){const{resolved:t}=this;if(!t)return 0;const{duration:n}=t;return fa(n)}get time(){const{resolved:t}=this;if(!t)return 0;const{animation:n}=t;return fa(n.currentTime||0)}set time(t){const{resolved:n}=this;if(!n)return;const{animation:r}=n;r.currentTime=pa(t)}get speed(){const{resolved:t}=this;if(!t)return 1;const{animation:n}=t;return n.playbackRate}set speed(t){const{resolved:n}=this;if(!n)return;const{animation:r}=n;r.playbackRate=t}get state(){const{resolved:t}=this;if(!t)return"idle";const{animation:n}=t;return n.playState}get startTime(){const{resolved:t}=this;if(!t)return null;const{animation:n}=t;return n.startTime}attachTimeline(t){if(!this._resolved)this.pendingTimeline=t;else{const{resolved:n}=this;if(!n)return kr;const{animation:r}=n;WD(r,t)}return kr}play(){if(this.isStopped)return;const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.playState==="finished"&&this.updateFinishedPromise(),n.play()}pause(){const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.pause()}stop(){if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.resolveFinishedPromise(),this.updateFinishedPromise();const{resolved:t}=this;if(!t)return;const{animation:n,keyframes:r,duration:i,type:o,ease:s,times:l}=t;if(n.playState==="idle"||n.playState==="finished")return;if(this.time){const{motionValue:d,onUpdate:p,onComplete:f,element:g,...y}=this.options,b=new JS({...y,keyframes:r,duration:i,type:o,ease:s,times:l,isGenerator:!0}),w=pa(this.time);d.setWithVelocity(b.sample(w-mg).value,b.sample(w).value,mg)}const{onStop:u}=this.options;u&&u(),this.cancel()}complete(){const{resolved:t}=this;t&&t.animation.finish()}cancel(){const{resolved:t}=this;t&&t.animation.cancel()}static supports(t){const{motionValue:n,name:r,repeatDelay:i,repeatType:o,damping:s,type:l}=t;if(!n||!n.owner||!(n.owner.current instanceof HTMLElement))return!1;const{onUpdate:u,transformTemplate:d}=n.owner.getProps();return axe()&&r&&rxe.has(r)&&!u&&!d&&!i&&o!=="mirror"&&s!==0&&l!=="inertia"}}const uxe={type:"spring",stiffness:500,damping:25,restSpeed:10},dxe=e=>({type:"spring",stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),hxe={type:"keyframes",duration:.8},pxe={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},fxe=(e,{keyframes:t})=>t.length>2?hxe:Ys.has(e)?e.startsWith("scale")?dxe(t[1]):uxe:pxe;function mxe({when:e,delay:t,delayChildren:n,staggerChildren:r,staggerDirection:i,repeat:o,repeatType:s,repeatDelay:l,from:u,elapsed:d,...p}){return!!Object.keys(p).length}const ZS=(e,t,n,r={},i,o)=>s=>{const l=FS(r,e)||{},u=l.delay||r.delay||0;let{elapsed:d=0}=r;d=d-pa(u);let p={keyframes:Array.isArray(n)?n:[null,n],ease:"easeOut",velocity:t.getVelocity(),...l,delay:-d,onUpdate:g=>{t.set(g),l.onUpdate&&l.onUpdate(g)},onComplete:()=>{s(),l.onComplete&&l.onComplete()},name:e,motionValue:t,element:o?void 0:i};mxe(l)||(p={...p,...fxe(e,p)}),p.duration&&(p.duration=pa(p.duration)),p.repeatDelay&&(p.repeatDelay=pa(p.repeatDelay)),p.from!==void 0&&(p.keyframes[0]=p.from);let f=!1;if((p.type===!1||p.duration===0&&!p.repeatDelay)&&(p.duration=0,p.delay===0&&(f=!0)),f&&!o&&t.get()!==void 0){const g=vy(p.keyframes,l);if(g!==void 0)return Rt.update(()=>{p.onUpdate(g),p.onComplete()}),new Dge([])}return!o&&a3.supports(p)?new a3(p):new JS(p)};function gxe({protectedKeys:e,needsAnimating:t},n){const r=e.hasOwnProperty(n)&&t[n]!==!0;return t[n]=!1,r}function Pz(e,t,{delay:n=0,transitionOverride:r,type:i}={}){var o;let{transition:s=e.getDefaultTransition(),transitionEnd:l,...u}=t;r&&(s=r);const d=[],p=i&&e.animationState&&e.animationState.getState()[i];for(const f in u){const g=e.getValue(f,(o=e.latestValues[f])!==null&&o!==void 0?o:null),y=u[f];if(y===void 0||p&&gxe(p,f))continue;const b={delay:n,...FS(s||{},f)};let w=!1;if(window.MotionHandoffAnimation){const j=ez(e);if(j){const k=window.MotionHandoffAnimation(j,f,Rt);k!==null&&(b.startTime=k,w=!0)}}fk(e,f),g.start(ZS(f,g,y,e.shouldReduceMotion&&J9.has(f)?{type:!1}:b,e,w));const v=g.animation;v&&d.push(v)}return l&&Promise.all(d).then(()=>{Rt.update(()=>{l&&Yge(e,l)})}),d}function wk(e,t,n={}){var r;const i=xy(e,t,n.type==="exit"?(r=e.presenceContext)===null||r===void 0?void 0:r.custom:void 0);let{transition:o=e.getDefaultTransition()||{}}=i||{};n.transitionOverride&&(o=n.transitionOverride);const s=i?()=>Promise.all(Pz(e,i,n)):()=>Promise.resolve(),l=e.variantChildren&&e.variantChildren.size?(d=0)=>{const{delayChildren:p=0,staggerChildren:f,staggerDirection:g}=o;return yxe(e,t,p+d,f,g,n)}:()=>Promise.resolve(),{when:u}=o;if(u){const[d,p]=u==="beforeChildren"?[s,l]:[l,s];return d().then(()=>p())}else return Promise.all([s(),l(n.delay)])}function yxe(e,t,n=0,r=0,i=1,o){const s=[],l=(e.variantChildren.size-1)*r,u=i===1?(d=0)=>d*r:(d=0)=>l-d*r;return Array.from(e.variantChildren).sort(xxe).forEach((d,p)=>{d.notify("AnimationStart",t),s.push(wk(d,t,{...o,delay:n+u(p)}).then(()=>d.notify("AnimationComplete",t)))}),Promise.all(s)}function xxe(e,t){return e.sortNodePosition(t)}function vxe(e,t,n={}){e.notify("AnimationStart",t);let r;if(Array.isArray(t)){const i=t.map(o=>wk(e,o,n));r=Promise.all(i)}else if(typeof t=="string")r=wk(e,t,n);else{const i=typeof t=="function"?xy(e,t,n.custom):t;r=Promise.all(Pz(e,i,n))}return r.then(()=>{e.notify("AnimationComplete",t)})}const bxe=CS.length;function Oz(e){if(!e)return;if(!e.isControllingVariants){const n=e.parent?Oz(e.parent)||{}:{};return e.props.initial!==void 0&&(n.initial=e.props.initial),n}const t={};for(let n=0;n<bxe;n++){const r=CS[n],i=e.props[r];(hh(i)||i===!1)&&(t[r]=i)}return t}const wxe=[...SS].reverse(),jxe=SS.length;function kxe(e){return t=>Promise.all(t.map(({animation:n,options:r})=>vxe(e,n,r)))}function Axe(e){let t=kxe(e),n=o3(),r=!0;const i=u=>(d,p)=>{var f;const g=xy(e,p,u==="exit"?(f=e.presenceContext)===null||f===void 0?void 0:f.custom:void 0);if(g){const{transition:y,transitionEnd:b,...w}=g;d={...d,...w,...b}}return d};function o(u){t=u(e)}function s(u){const{props:d}=e,p=Oz(e.parent)||{},f=[],g=new Set;let y={},b=1/0;for(let v=0;v<jxe;v++){const j=wxe[v],k=n[j],S=d[j]!==void 0?d[j]:p[j],E=hh(S),N=j===u?k.isActive:null;N===!1&&(b=v);let C=S===p[j]&&S!==d[j]&&E;if(C&&r&&e.manuallyAnimateOnMount&&(C=!1),k.protectedKeys={...y},!k.isActive&&N===null||!S&&!k.prevProp||gy(S)||typeof S=="boolean")continue;const P=Sxe(k.prevProp,S);let _=P||j===u&&k.isActive&&!C&&E||v>b&&E,M=!1;const D=Array.isArray(S)?S:[S];let B=D.reduce(i(j),{});N===!1&&(B={});const{prevResolvedValues:F={}}=k,V={...F,...B},U=Z=>{_=!0,g.has(Z)&&(M=!0,g.delete(Z)),k.needsAnimating[Z]=!0;const J=e.getValue(Z);J&&(J.liveStyle=!1)};for(const Z in V){const J=B[Z],ne=F[Z];if(y.hasOwnProperty(Z))continue;let I=!1;dk(J)&&dk(ne)?I=!W9(J,ne):I=J!==ne,I?J!=null?U(Z):g.add(Z):J!==void 0&&g.has(Z)?U(Z):k.protectedKeys[Z]=!0}k.prevProp=S,k.prevResolvedValues=B,k.isActive&&(y={...y,...B}),r&&e.blockInitialAnimation&&(_=!1),_&&(!(C&&P)||M)&&f.push(...D.map(Z=>({animation:Z,options:{type:j}})))}if(g.size){const v={};g.forEach(j=>{const k=e.getBaseTarget(j),S=e.getValue(j);S&&(S.liveStyle=!0),v[j]=k??null}),f.push({animation:v})}let w=!!f.length;return r&&(d.initial===!1||d.initial===d.animate)&&!e.manuallyAnimateOnMount&&(w=!1),r=!1,w?t(f):Promise.resolve()}function l(u,d){var p;if(n[u].isActive===d)return Promise.resolve();(p=e.variantChildren)===null||p===void 0||p.forEach(g=>{var y;return(y=g.animationState)===null||y===void 0?void 0:y.setActive(u,d)}),n[u].isActive=d;const f=s(u);for(const g in n)n[g].protectedKeys={};return f}return{animateChanges:s,setActive:l,setAnimateFunction:o,getState:()=>n,reset:()=>{n=o3(),r=!0}}}function Sxe(e,t){return typeof t=="string"?t!==e:Array.isArray(t)?!W9(t,e):!1}function Qo(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function o3(){return{animate:Qo(!0),whileInView:Qo(),whileHover:Qo(),whileTap:Qo(),whileDrag:Qo(),whileFocus:Qo(),exit:Qo()}}class Eo{constructor(t){this.isMounted=!1,this.node=t}update(){}}class Cxe extends Eo{constructor(t){super(t),t.animationState||(t.animationState=Axe(t))}updateAnimationControlsSubscription(){const{animate:t}=this.node.getProps();gy(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===void 0||t.call(this)}}let Nxe=0;class Txe extends Eo{constructor(){super(...arguments),this.id=Nxe++}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}=this.node.presenceContext||{};t&&(this.unmount=t(this.id))}unmount(){}}const Exe={animation:{Feature:Cxe},exit:{Feature:Txe}};function gh(e,t,n,r={passive:!0}){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n)}function Wh(e){return{point:{x:e.pageX,y:e.pageY}}}const Pxe=e=>t=>$S(t)&&e(t,Wh(t));function vd(e,t,n,r){return gh(e,t,Pxe(n),r)}const s3=(e,t)=>Math.abs(e-t);function Oxe(e,t){const n=s3(e.x,t.x),r=s3(e.y,t.y);return Math.sqrt(n**2+r**2)}class _z{constructor(t,n,{transformPagePoint:r,contextWindow:i,dragSnapToOrigin:o=!1}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const f=H1(this.lastMoveEventInfo,this.history),g=this.startEvent!==null,y=Oxe(f.offset,{x:0,y:0})>=3;if(!g&&!y)return;const{point:b}=f,{timestamp:w}=Cn;this.history.push({...b,timestamp:w});const{onStart:v,onMove:j}=this.handlers;g||(v&&v(this.lastMoveEvent,f),this.startEvent=this.lastMoveEvent),j&&j(this.lastMoveEvent,f)},this.handlePointerMove=(f,g)=>{this.lastMoveEvent=f,this.lastMoveEventInfo=U1(g,this.transformPagePoint),Rt.update(this.updatePoint,!0)},this.handlePointerUp=(f,g)=>{this.end();const{onEnd:y,onSessionEnd:b,resumeAnimation:w}=this.handlers;if(this.dragSnapToOrigin&&w&&w(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const v=H1(f.type==="pointercancel"?this.lastMoveEventInfo:U1(g,this.transformPagePoint),this.history);this.startEvent&&y&&y(f,v),b&&b(f,v)},!$S(t))return;this.dragSnapToOrigin=o,this.handlers=n,this.transformPagePoint=r,this.contextWindow=i||window;const s=Wh(t),l=U1(s,this.transformPagePoint),{point:u}=l,{timestamp:d}=Cn;this.history=[{...u,timestamp:d}];const{onSessionStart:p}=n;p&&p(t,H1(l,this.history)),this.removeListeners=qh(vd(this.contextWindow,"pointermove",this.handlePointerMove),vd(this.contextWindow,"pointerup",this.handlePointerUp),vd(this.contextWindow,"pointercancel",this.handlePointerUp))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),xo(this.updatePoint)}}function U1(e,t){return t?{point:t(e.point)}:e}function l3(e,t){return{x:e.x-t.x,y:e.y-t.y}}function H1({point:e},t){return{point:e,delta:l3(e,Iz(t)),offset:l3(e,_xe(t)),velocity:Ixe(t,.1)}}function _xe(e){return e[0]}function Iz(e){return e[e.length-1]}function Ixe(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,r=null;const i=Iz(e);for(;n>=0&&(r=e[n],!(i.timestamp-r.timestamp>pa(t)));)n--;if(!r)return{x:0,y:0};const o=fa(i.timestamp-r.timestamp);if(o===0)return{x:0,y:0};const s={x:(i.x-r.x)/o,y:(i.y-r.y)/o};return s.x===1/0&&(s.x=0),s.y===1/0&&(s.y=0),s}const Rz=1e-4,Rxe=1-Rz,Dxe=1+Rz,Dz=.01,Mxe=0-Dz,Lxe=0+Dz;function Sr(e){return e.max-e.min}function Fxe(e,t,n){return Math.abs(e-t)<=n}function c3(e,t,n,r=.5){e.origin=r,e.originPoint=Bt(t.min,t.max,e.origin),e.scale=Sr(n)/Sr(t),e.translate=Bt(n.min,n.max,e.origin)-e.originPoint,(e.scale>=Rxe&&e.scale<=Dxe||isNaN(e.scale))&&(e.scale=1),(e.translate>=Mxe&&e.translate<=Lxe||isNaN(e.translate))&&(e.translate=0)}function bd(e,t,n,r){c3(e.x,t.x,n.x,r?r.originX:void 0),c3(e.y,t.y,n.y,r?r.originY:void 0)}function u3(e,t,n){e.min=n.min+t.min,e.max=e.min+Sr(t)}function Bxe(e,t,n){u3(e.x,t.x,n.x),u3(e.y,t.y,n.y)}function d3(e,t,n){e.min=t.min-n.min,e.max=e.min+Sr(t)}function wd(e,t,n){d3(e.x,t.x,n.x),d3(e.y,t.y,n.y)}function zxe(e,{min:t,max:n},r){return t!==void 0&&e<t?e=r?Bt(t,e,r.min):Math.max(e,t):n!==void 0&&e>n&&(e=r?Bt(n,e,r.max):Math.min(e,n)),e}function h3(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 $xe(e,{top:t,left:n,bottom:r,right:i}){return{x:h3(e.x,n,i),y:h3(e.y,t,r)}}function p3(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 qxe(e,t){return{x:p3(e.x,t.x),y:p3(e.y,t.y)}}function Wxe(e,t){let n=.5;const r=Sr(e),i=Sr(t);return i>r?n=_c(t.min,t.max-r,e.min):r>i&&(n=_c(e.min,e.max-i,t.min)),xa(0,1,n)}function Uxe(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 jk=.35;function Hxe(e=jk){return e===!1?e=0:e===!0&&(e=jk),{x:f3(e,"left","right"),y:f3(e,"top","bottom")}}function f3(e,t,n){return{min:m3(e,t),max:m3(e,n)}}function m3(e,t){return typeof e=="number"?e:e[t]||0}const g3=()=>({translate:0,scale:1,origin:0,originPoint:0}),Bl=()=>({x:g3(),y:g3()}),y3=()=>({min:0,max:0}),Yt=()=>({x:y3(),y:y3()});function Fr(e){return[e("x"),e("y")]}function Mz({top:e,left:t,right:n,bottom:r}){return{x:{min:t,max:n},y:{min:e,max:r}}}function Vxe({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}function Gxe(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 V1(e){return e===void 0||e===1}function kk({scale:e,scaleX:t,scaleY:n}){return!V1(e)||!V1(t)||!V1(n)}function ns(e){return kk(e)||Lz(e)||e.z||e.rotate||e.rotateX||e.rotateY||e.skewX||e.skewY}function Lz(e){return x3(e.x)||x3(e.y)}function x3(e){return e&&e!=="0%"}function gg(e,t,n){const r=e-n,i=t*r;return n+i}function v3(e,t,n,r,i){return i!==void 0&&(e=gg(e,i,r)),gg(e,n,r)+t}function Ak(e,t=0,n=1,r,i){e.min=v3(e.min,t,n,r,i),e.max=v3(e.max,t,n,r,i)}function Fz(e,{x:t,y:n}){Ak(e.x,t.translate,t.scale,t.originPoint),Ak(e.y,n.translate,n.scale,n.originPoint)}const b3=.999999999999,w3=1.0000000000001;function Yxe(e,t,n,r=!1){const i=n.length;if(!i)return;t.x=t.y=1;let o,s;for(let l=0;l<i;l++){o=n[l],s=o.projectionDelta;const{visualElement:u}=o.options;u&&u.props.style&&u.props.style.display==="contents"||(r&&o.options.layoutScroll&&o.scroll&&o!==o.root&&$l(e,{x:-o.scroll.offset.x,y:-o.scroll.offset.y}),s&&(t.x*=s.x.scale,t.y*=s.y.scale,Fz(e,s)),r&&ns(o.latestValues)&&$l(e,o.latestValues))}t.x<w3&&t.x>b3&&(t.x=1),t.y<w3&&t.y>b3&&(t.y=1)}function zl(e,t){e.min=e.min+t,e.max=e.max+t}function j3(e,t,n,r,i=.5){const o=Bt(e.min,e.max,i);Ak(e,t,n,o,r)}function $l(e,t){j3(e.x,t.x,t.scaleX,t.scale,t.originX),j3(e.y,t.y,t.scaleY,t.scale,t.originY)}function Bz(e,t){return Mz(Gxe(e.getBoundingClientRect(),t))}function Kxe(e,t,n){const r=Bz(e,n),{scroll:i}=t;return i&&(zl(r.x,i.offset.x),zl(r.y,i.offset.y)),r}const zz=({current:e})=>e?e.ownerDocument.defaultView:null,Xxe=new WeakMap;class Qxe{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=Yt(),this.visualElement=t}start(t,{snapToCursor:n=!1}={}){const{presenceContext:r}=this.visualElement;if(r&&r.isPresent===!1)return;const i=p=>{const{dragSnapToOrigin:f}=this.getProps();f?this.pauseAnimation():this.stopAnimation(),n&&this.snapToCursor(Wh(p).point)},o=(p,f)=>{const{drag:g,dragPropagation:y,onDragStart:b}=this.getProps();if(g&&!y&&(this.openDragLock&&this.openDragLock(),this.openDragLock=Wge(g),!this.openDragLock))return;this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),Fr(v=>{let j=this.getAxisMotionValue(v).get()||0;if(Di.test(j)){const{projection:k}=this.visualElement;if(k&&k.layout){const S=k.layout.layoutBox[v];S&&(j=Sr(S)*(parseFloat(j)/100))}}this.originPoint[v]=j}),b&&Rt.postRender(()=>b(p,f)),fk(this.visualElement,"transform");const{animationState:w}=this.visualElement;w&&w.setActive("whileDrag",!0)},s=(p,f)=>{const{dragPropagation:g,dragDirectionLock:y,onDirectionLock:b,onDrag:w}=this.getProps();if(!g&&!this.openDragLock)return;const{offset:v}=f;if(y&&this.currentDirection===null){this.currentDirection=Jxe(v),this.currentDirection!==null&&b&&b(this.currentDirection);return}this.updateAxis("x",f.point,v),this.updateAxis("y",f.point,v),this.visualElement.render(),w&&w(p,f)},l=(p,f)=>this.stop(p,f),u=()=>Fr(p=>{var f;return this.getAnimationState(p)==="paused"&&((f=this.getAxisMotionValue(p).animation)===null||f===void 0?void 0:f.play())}),{dragSnapToOrigin:d}=this.getProps();this.panSession=new _z(t,{onSessionStart:i,onStart:o,onMove:s,onSessionEnd:l,resumeAnimation:u},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:d,contextWindow:zz(this.visualElement)})}stop(t,n){const r=this.isDragging;if(this.cancel(),!r)return;const{velocity:i}=n;this.startAnimation(i);const{onDragEnd:o}=this.getProps();o&&Rt.postRender(()=>o(t,n))}cancel(){this.isDragging=!1;const{projection:t,animationState:n}=this.visualElement;t&&(t.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;const{dragPropagation:r}=this.getProps();!r&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),n&&n.setActive("whileDrag",!1)}updateAxis(t,n,r){const{drag:i}=this.getProps();if(!r||!Of(t,i,this.currentDirection))return;const o=this.getAxisMotionValue(t);let s=this.originPoint[t]+r[t];this.constraints&&this.constraints[t]&&(s=zxe(s,this.constraints[t],this.elastic[t])),o.set(s)}resolveConstraints(){var t;const{dragConstraints:n,dragElastic:r}=this.getProps(),i=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):(t=this.visualElement.projection)===null||t===void 0?void 0:t.layout,o=this.constraints;n&&Ll(n)?this.constraints||(this.constraints=this.resolveRefConstraints()):n&&i?this.constraints=$xe(i.layoutBox,n):this.constraints=!1,this.elastic=Hxe(r),o!==this.constraints&&i&&this.constraints&&!this.hasMutatedConstraints&&Fr(s=>{this.constraints!==!1&&this.getAxisMotionValue(s)&&(this.constraints[s]=Uxe(i.layoutBox[s],this.constraints[s]))})}resolveRefConstraints(){const{dragConstraints:t,onMeasureDragConstraints:n}=this.getProps();if(!t||!Ll(t))return!1;const r=t.current,{projection:i}=this.visualElement;if(!i||!i.layout)return!1;const o=Kxe(r,i.root,this.visualElement.getTransformPagePoint());let s=qxe(i.layout.layoutBox,o);if(n){const l=n(Vxe(s));this.hasMutatedConstraints=!!l,l&&(s=Mz(l))}return s}startAnimation(t){const{drag:n,dragMomentum:r,dragElastic:i,dragTransition:o,dragSnapToOrigin:s,onDragTransitionEnd:l}=this.getProps(),u=this.constraints||{},d=Fr(p=>{if(!Of(p,n,this.currentDirection))return;let f=u&&u[p]||{};s&&(f={min:0,max:0});const g=i?200:1e6,y=i?40:1e7,b={type:"inertia",velocity:r?t[p]:0,bounceStiffness:g,bounceDamping:y,timeConstant:750,restDelta:1,restSpeed:10,...o,...f};return this.startAxisValueAnimation(p,b)});return Promise.all(d).then(l)}startAxisValueAnimation(t,n){const r=this.getAxisMotionValue(t);return fk(this.visualElement,t),r.start(ZS(t,r,0,n,this.visualElement,!1))}stopAnimation(){Fr(t=>this.getAxisMotionValue(t).stop())}pauseAnimation(){Fr(t=>{var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.pause()})}getAnimationState(t){var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?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){Fr(n=>{const{drag:r}=this.getProps();if(!Of(n,r,this.currentDirection))return;const{projection:i}=this.visualElement,o=this.getAxisMotionValue(n);if(i&&i.layout){const{min:s,max:l}=i.layout.layoutBox[n];o.set(t[n]-Bt(s,l,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:t,dragConstraints:n}=this.getProps(),{projection:r}=this.visualElement;if(!Ll(n)||!r||!this.constraints)return;this.stopAnimation();const i={x:0,y:0};Fr(s=>{const l=this.getAxisMotionValue(s);if(l&&this.constraints!==!1){const u=l.get();i[s]=Wxe({min:u,max:u},this.constraints[s])}});const{transformTemplate:o}=this.visualElement.getProps();this.visualElement.current.style.transform=o?o({},""):"none",r.root&&r.root.updateScroll(),r.updateLayout(),this.resolveConstraints(),Fr(s=>{if(!Of(s,t,null))return;const l=this.getAxisMotionValue(s),{min:u,max:d}=this.constraints[s];l.set(Bt(u,d,i[s]))})}addListeners(){if(!this.visualElement.current)return;Xxe.set(this.visualElement,this);const t=this.visualElement.current,n=vd(t,"pointerdown",u=>{const{drag:d,dragListener:p=!0}=this.getProps();d&&p&&this.start(u)}),r=()=>{const{dragConstraints:u}=this.getProps();Ll(u)&&u.current&&(this.constraints=this.resolveRefConstraints())},{projection:i}=this.visualElement,o=i.addEventListener("measure",r);i&&!i.layout&&(i.root&&i.root.updateScroll(),i.updateLayout()),Rt.read(r);const s=gh(window,"resize",()=>this.scalePositionWithinConstraints()),l=i.addEventListener("didUpdate",(({delta:u,hasLayoutChanged:d})=>{this.isDragging&&d&&(Fr(p=>{const f=this.getAxisMotionValue(p);f&&(this.originPoint[p]+=u[p].translate,f.set(f.get()+u[p].translate))}),this.visualElement.render())}));return()=>{s(),n(),o(),l&&l()}}getProps(){const t=this.visualElement.getProps(),{drag:n=!1,dragDirectionLock:r=!1,dragPropagation:i=!1,dragConstraints:o=!1,dragElastic:s=jk,dragMomentum:l=!0}=t;return{...t,drag:n,dragDirectionLock:r,dragPropagation:i,dragConstraints:o,dragElastic:s,dragMomentum:l}}}function Of(e,t,n){return(t===!0||t===e)&&(n===null||n===e)}function Jxe(e,t=10){let n=null;return Math.abs(e.y)>t?n="y":Math.abs(e.x)>t&&(n="x"),n}class Zxe extends Eo{constructor(t){super(t),this.removeGroupControls=kr,this.removeListeners=kr,this.controls=new Qxe(t)}mount(){const{dragControls:t}=this.node.getProps();t&&(this.removeGroupControls=t.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||kr}unmount(){this.removeGroupControls(),this.removeListeners()}}const k3=e=>(t,n)=>{e&&Rt.postRender(()=>e(t,n))};class eve extends Eo{constructor(){super(...arguments),this.removePointerDownListener=kr}onPointerDown(t){this.session=new _z(t,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:zz(this.node)})}createPanHandlers(){const{onPanSessionStart:t,onPanStart:n,onPan:r,onPanEnd:i}=this.node.getProps();return{onSessionStart:k3(t),onStart:k3(n),onMove:r,onEnd:(o,s)=>{delete this.session,i&&Rt.postRender(()=>i(o,s))}}}mount(){this.removePointerDownListener=vd(this.node.current,"pointerdown",t=>this.onPointerDown(t))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}const em={hasAnimatedSinceResize:!0,hasEverUpdated:!1};function A3(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}const Xu={correct:(e,t)=>{if(!t.target)return e;if(typeof e=="string")if(ze.test(e))e=parseFloat(e);else return e;const n=A3(e,t.target.x),r=A3(e,t.target.y);return`${n}% ${r}%`}},tve={correct:(e,{treeScale:t,projectionDelta:n})=>{const r=e,i=vo.parse(e);if(i.length>5)return r;const o=vo.createTransformer(e),s=typeof i[0]!="number"?1:0,l=n.x.scale*t.x,u=n.y.scale*t.y;i[0+s]/=l,i[1+s]/=u;const d=Bt(l,u,.5);return typeof i[2+s]=="number"&&(i[2+s]/=d),typeof i[3+s]=="number"&&(i[3+s]/=d),o(i)}};class nve extends O.Component{componentDidMount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r,layoutId:i}=this.props,{projection:o}=t;kge(rve),o&&(n.group&&n.group.add(o),r&&r.register&&i&&r.register(o),o.root.didUpdate(),o.addEventListener("animationComplete",()=>{this.safeToRemove()}),o.setOptions({...o.options,onExitComplete:()=>this.safeToRemove()})),em.hasEverUpdated=!0}getSnapshotBeforeUpdate(t){const{layoutDependency:n,visualElement:r,drag:i,isPresent:o}=this.props,s=r.projection;return s&&(s.isPresent=o,i||t.layoutDependency!==n||n===void 0?s.willUpdate():this.safeToRemove(),t.isPresent!==o&&(o?s.promote():s.relegate()||Rt.postRender(()=>{const l=s.getStack();(!l||!l.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:t}=this.props.visualElement;t&&(t.root.didUpdate(),TS.postRender(()=>{!t.currentAnimation&&t.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r}=this.props,{projection:i}=t;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 $z(e){const[t,n]=Fme(),r=O.useContext(j9);return a.jsx(nve,{...e,layoutGroup:r,switchLayoutGroup:O.useContext(P9),isPresent:t,safeToRemove:n})}const rve={borderRadius:{...Xu,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:Xu,borderTopRightRadius:Xu,borderBottomLeftRadius:Xu,borderBottomRightRadius:Xu,boxShadow:tve};function ive(e,t,n){const r=qn(e)?e:fh(e);return r.start(ZS("",r,t,n)),r.animation}function ave(e){return e instanceof SVGElement&&e.tagName!=="svg"}const ove=(e,t)=>e.depth-t.depth;class sve{constructor(){this.children=[],this.isDirty=!1}add(t){qS(this.children,t),this.isDirty=!0}remove(t){WS(this.children,t),this.isDirty=!0}forEach(t){this.isDirty&&this.children.sort(ove),this.isDirty=!1,this.children.forEach(t)}}function lve(e,t){const n=Mi.now(),r=({timestamp:i})=>{const o=i-n;o>=t&&(xo(r),e(o-t))};return Rt.read(r,!0),()=>xo(r)}const qz=["TopLeft","TopRight","BottomLeft","BottomRight"],cve=qz.length,S3=e=>typeof e=="string"?parseFloat(e):e,C3=e=>typeof e=="number"||ze.test(e);function uve(e,t,n,r,i,o){i?(e.opacity=Bt(0,n.opacity!==void 0?n.opacity:1,dve(r)),e.opacityExit=Bt(t.opacity!==void 0?t.opacity:1,0,hve(r))):o&&(e.opacity=Bt(t.opacity!==void 0?t.opacity:1,n.opacity!==void 0?n.opacity:1,r));for(let s=0;s<cve;s++){const l=`border${qz[s]}Radius`;let u=N3(t,l),d=N3(n,l);if(u===void 0&&d===void 0)continue;u||(u=0),d||(d=0),u===0||d===0||C3(u)===C3(d)?(e[l]=Math.max(Bt(S3(u),S3(d),r),0),(Di.test(d)||Di.test(u))&&(e[l]+="%")):e[l]=d}(t.rotate||n.rotate)&&(e.rotate=Bt(t.rotate||0,n.rotate||0,r))}function N3(e,t){return e[t]!==void 0?e[t]:e.borderRadius}const dve=Wz(0,.5,sz),hve=Wz(.5,.95,kr);function Wz(e,t,n){return r=>r<e?0:r>t?1:n(_c(e,t,r))}function T3(e,t){e.min=t.min,e.max=t.max}function Mr(e,t){T3(e.x,t.x),T3(e.y,t.y)}function E3(e,t){e.translate=t.translate,e.scale=t.scale,e.originPoint=t.originPoint,e.origin=t.origin}function P3(e,t,n,r,i){return e-=t,e=gg(e,1/n,r),i!==void 0&&(e=gg(e,1/i,r)),e}function pve(e,t=0,n=1,r=.5,i,o=e,s=e){if(Di.test(t)&&(t=parseFloat(t),t=Bt(s.min,s.max,t/100)-s.min),typeof t!="number")return;let l=Bt(o.min,o.max,r);e===o&&(l-=t),e.min=P3(e.min,t,n,l,i),e.max=P3(e.max,t,n,l,i)}function O3(e,t,[n,r,i],o,s){pve(e,t[n],t[r],t[i],t.scale,o,s)}const fve=["x","scaleX","originX"],mve=["y","scaleY","originY"];function _3(e,t,n,r){O3(e.x,t,fve,n?n.x:void 0,r?r.x:void 0),O3(e.y,t,mve,n?n.y:void 0,r?r.y:void 0)}function I3(e){return e.translate===0&&e.scale===1}function Uz(e){return I3(e.x)&&I3(e.y)}function R3(e,t){return e.min===t.min&&e.max===t.max}function gve(e,t){return R3(e.x,t.x)&&R3(e.y,t.y)}function D3(e,t){return Math.round(e.min)===Math.round(t.min)&&Math.round(e.max)===Math.round(t.max)}function Hz(e,t){return D3(e.x,t.x)&&D3(e.y,t.y)}function M3(e){return Sr(e.x)/Sr(e.y)}function L3(e,t){return e.translate===t.translate&&e.scale===t.scale&&e.originPoint===t.originPoint}class yve{constructor(){this.members=[]}add(t){qS(this.members,t),t.scheduleRender()}remove(t){if(WS(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 o=this.members[i];if(o.isPresent!==!1){r=o;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(),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:i}=t.options;i===!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)}}function xve(e,t,n){let r="";const i=e.x.translate/t.x,o=e.y.translate/t.y,s=(n==null?void 0:n.z)||0;if((i||o||s)&&(r=`translate3d(${i}px, ${o}px, ${s}px) `),(t.x!==1||t.y!==1)&&(r+=`scale(${1/t.x}, ${1/t.y}) `),n){const{transformPerspective:d,rotate:p,rotateX:f,rotateY:g,skewX:y,skewY:b}=n;d&&(r=`perspective(${d}px) ${r}`),p&&(r+=`rotate(${p}deg) `),f&&(r+=`rotateX(${f}deg) `),g&&(r+=`rotateY(${g}deg) `),y&&(r+=`skewX(${y}deg) `),b&&(r+=`skewY(${b}deg) `)}const l=e.x.scale*t.x,u=e.y.scale*t.y;return(l!==1||u!==1)&&(r+=`scale(${l}, ${u})`),r||"none"}const rs={type:"projectionFrame",totalNodes:0,resolvedTargetDeltas:0,recalculatedProjection:0},ud=typeof window<"u"&&window.MotionDebug!==void 0,G1=["","X","Y","Z"],vve={visibility:"hidden"},F3=1e3;let bve=0;function Y1(e,t,n,r){const{latestValues:i}=t;i[e]&&(n[e]=i[e],t.setStaticValue(e,0),r&&(r[e]=0))}function Vz(e){if(e.hasCheckedOptimisedAppear=!0,e.root===e)return;const{visualElement:t}=e.options;if(!t)return;const n=ez(t);if(window.MotionHasOptimisedAnimation(n,"transform")){const{layout:i,layoutId:o}=e.options;window.MotionCancelOptimisedAnimation(n,"transform",Rt,!(i||o))}const{parent:r}=e;r&&!r.hasCheckedOptimisedAppear&&Vz(r)}function Gz({attachResizeListener:e,defaultParent:t,measureScroll:n,checkIsScrollRoot:r,resetTransform:i}){return class{constructor(s={},l=t==null?void 0:t()){this.id=bve++,this.animationId=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.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,ud&&(rs.totalNodes=rs.resolvedTargetDeltas=rs.recalculatedProjection=0),this.nodes.forEach(kve),this.nodes.forEach(Tve),this.nodes.forEach(Eve),this.nodes.forEach(Ave),ud&&window.MotionDebug.record(rs)},this.resolvedRelativeTargetAt=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=s,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 u=0;u<this.path.length;u++)this.path[u].shouldResetTransform=!0;this.root===this&&(this.nodes=new sve)}addEventListener(s,l){return this.eventHandlers.has(s)||this.eventHandlers.set(s,new US),this.eventHandlers.get(s).add(l)}notifyListeners(s,...l){const u=this.eventHandlers.get(s);u&&u.notify(...l)}hasListeners(s){return this.eventHandlers.has(s)}mount(s,l=this.root.hasTreeAnimated){if(this.instance)return;this.isSVG=ave(s),this.instance=s;const{layoutId:u,layout:d,visualElement:p}=this.options;if(p&&!p.current&&p.mount(s),this.root.nodes.add(this),this.parent&&this.parent.children.add(this),l&&(d||u)&&(this.isLayoutDirty=!0),e){let f;const g=()=>this.root.updateBlockedByResize=!1;e(s,()=>{this.root.updateBlockedByResize=!0,f&&f(),f=lve(g,250),em.hasAnimatedSinceResize&&(em.hasAnimatedSinceResize=!1,this.nodes.forEach(z3))})}u&&this.root.registerSharedNode(u,this),this.options.animate!==!1&&p&&(u||d)&&this.addEventListener("didUpdate",({delta:f,hasLayoutChanged:g,hasRelativeTargetChanged:y,layout:b})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const w=this.options.transition||p.getDefaultTransition()||Rve,{onLayoutAnimationStart:v,onLayoutAnimationComplete:j}=p.getProps(),k=!this.targetLayout||!Hz(this.targetLayout,b)||y,S=!g&&y;if(this.options.layoutRoot||this.resumeFrom&&this.resumeFrom.instance||S||g&&(k||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0),this.setAnimationOrigin(f,S);const E={...FS(w,"layout"),onPlay:v,onComplete:j};(p.shouldReduceMotion||this.options.layoutRoot)&&(E.delay=0,E.type=!1),this.startAnimation(E)}else g||z3(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=b})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const s=this.getStack();s&&s.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,xo(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(Pve),this.animationId++)}getTransformTemplate(){const{visualElement:s}=this.options;return s&&s.getProps().transformTemplate}willUpdate(s=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&Vz(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let p=0;p<this.path.length;p++){const f=this.path[p];f.shouldResetTransform=!0,f.updateScroll("snapshot"),f.options.layoutRoot&&f.willUpdate(!1)}const{layoutId:l,layout:u}=this.options;if(l===void 0&&!u)return;const d=this.getTransformTemplate();this.prevTransformTemplateValue=d?d(this.latestValues,""):void 0,this.updateSnapshot(),s&&this.notifyListeners("willUpdate")}update(){if(this.updateScheduled=!1,this.isUpdateBlocked()){this.unblockUpdate(),this.clearAllSnapshots(),this.nodes.forEach(B3);return}this.isUpdating||this.nodes.forEach(Cve),this.isUpdating=!1,this.nodes.forEach(Nve),this.nodes.forEach(wve),this.nodes.forEach(jve),this.clearAllSnapshots();const l=Mi.now();Cn.delta=xa(0,1e3/60,l-Cn.timestamp),Cn.timestamp=l,Cn.isProcessing=!0,F1.update.process(Cn),F1.preRender.process(Cn),F1.render.process(Cn),Cn.isProcessing=!1}didUpdate(){this.updateScheduled||(this.updateScheduled=!0,TS.read(this.scheduleUpdate))}clearAllSnapshots(){this.nodes.forEach(Sve),this.sharedNodes.forEach(Ove)}scheduleUpdateProjection(){this.projectionUpdateScheduled||(this.projectionUpdateScheduled=!0,Rt.preRender(this.updateProjection,!1,!0))}scheduleCheckAfterUnmount(){Rt.postRender(()=>{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure())}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let u=0;u<this.path.length;u++)this.path[u].updateScroll();const s=this.layout;this.layout=this.measure(!1),this.layoutCorrected=Yt(),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,s?s.layoutBox:void 0)}updateScroll(s="measure"){let l=!!(this.options.layoutScroll&&this.instance);if(this.scroll&&this.scroll.animationId===this.root.animationId&&this.scroll.phase===s&&(l=!1),l){const u=r(this.instance);this.scroll={animationId:this.root.animationId,phase:s,isRoot:u,offset:n(this.instance),wasRoot:this.scroll?this.scroll.isRoot:u}}}resetTransform(){if(!i)return;const s=this.isLayoutDirty||this.shouldResetTransform||this.options.alwaysMeasureLayout,l=this.projectionDelta&&!Uz(this.projectionDelta),u=this.getTransformTemplate(),d=u?u(this.latestValues,""):void 0,p=d!==this.prevTransformTemplateValue;s&&(l||ns(this.latestValues)||p)&&(i(this.instance,d),this.shouldResetTransform=!1,this.scheduleRender())}measure(s=!0){const l=this.measurePageBox();let u=this.removeElementScroll(l);return s&&(u=this.removeTransform(u)),Dve(u),{animationId:this.root.animationId,measuredBox:l,layoutBox:u,latestValues:{},source:this.id}}measurePageBox(){var s;const{visualElement:l}=this.options;if(!l)return Yt();const u=l.measureViewportBox();if(!(((s=this.scroll)===null||s===void 0?void 0:s.wasRoot)||this.path.some(Mve))){const{scroll:p}=this.root;p&&(zl(u.x,p.offset.x),zl(u.y,p.offset.y))}return u}removeElementScroll(s){var l;const u=Yt();if(Mr(u,s),!((l=this.scroll)===null||l===void 0)&&l.wasRoot)return u;for(let d=0;d<this.path.length;d++){const p=this.path[d],{scroll:f,options:g}=p;p!==this.root&&f&&g.layoutScroll&&(f.wasRoot&&Mr(u,s),zl(u.x,f.offset.x),zl(u.y,f.offset.y))}return u}applyTransform(s,l=!1){const u=Yt();Mr(u,s);for(let d=0;d<this.path.length;d++){const p=this.path[d];!l&&p.options.layoutScroll&&p.scroll&&p!==p.root&&$l(u,{x:-p.scroll.offset.x,y:-p.scroll.offset.y}),ns(p.latestValues)&&$l(u,p.latestValues)}return ns(this.latestValues)&&$l(u,this.latestValues),u}removeTransform(s){const l=Yt();Mr(l,s);for(let u=0;u<this.path.length;u++){const d=this.path[u];if(!d.instance||!ns(d.latestValues))continue;kk(d.latestValues)&&d.updateSnapshot();const p=Yt(),f=d.measurePageBox();Mr(p,f),_3(l,d.latestValues,d.snapshot?d.snapshot.layoutBox:void 0,p)}return ns(this.latestValues)&&_3(l,this.latestValues),l}setTargetDelta(s){this.targetDelta=s,this.root.scheduleUpdateProjection(),this.isProjectionDirty=!0}setOptions(s){this.options={...this.options,...s,crossfade:s.crossfade!==void 0?s.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!==Cn.timestamp&&this.relativeParent.resolveTargetDelta(!0)}resolveTargetDelta(s=!1){var l;const u=this.getLead();this.isProjectionDirty||(this.isProjectionDirty=u.isProjectionDirty),this.isTransformDirty||(this.isTransformDirty=u.isTransformDirty),this.isSharedProjectionDirty||(this.isSharedProjectionDirty=u.isSharedProjectionDirty);const d=!!this.resumingFrom||this!==u;if(!(s||d&&this.isSharedProjectionDirty||this.isProjectionDirty||!((l=this.parent)===null||l===void 0)&&l.isProjectionDirty||this.attemptToResolveRelativeTarget||this.root.updateBlockedByResize))return;const{layout:f,layoutId:g}=this.options;if(!(!this.layout||!(f||g))){if(this.resolvedRelativeTargetAt=Cn.timestamp,!this.targetDelta&&!this.relativeTarget){const y=this.getClosestProjectingParent();y&&y.layout&&this.animationProgress!==1?(this.relativeParent=y,this.forceRelativeParentToResolveTarget(),this.relativeTarget=Yt(),this.relativeTargetOrigin=Yt(),wd(this.relativeTargetOrigin,this.layout.layoutBox,y.layout.layoutBox),Mr(this.relativeTarget,this.relativeTargetOrigin)):this.relativeParent=this.relativeTarget=void 0}if(!(!this.relativeTarget&&!this.targetDelta)){if(this.target||(this.target=Yt(),this.targetWithTransforms=Yt()),this.relativeTarget&&this.relativeTargetOrigin&&this.relativeParent&&this.relativeParent.target?(this.forceRelativeParentToResolveTarget(),Bxe(this.target,this.relativeTarget,this.relativeParent.target)):this.targetDelta?(this.resumingFrom?this.target=this.applyTransform(this.layout.layoutBox):Mr(this.target,this.layout.layoutBox),Fz(this.target,this.targetDelta)):Mr(this.target,this.layout.layoutBox),this.attemptToResolveRelativeTarget){this.attemptToResolveRelativeTarget=!1;const y=this.getClosestProjectingParent();y&&!!y.resumingFrom==!!this.resumingFrom&&!y.options.layoutScroll&&y.target&&this.animationProgress!==1?(this.relativeParent=y,this.forceRelativeParentToResolveTarget(),this.relativeTarget=Yt(),this.relativeTargetOrigin=Yt(),wd(this.relativeTargetOrigin,this.target,y.target),Mr(this.relativeTarget,this.relativeTargetOrigin)):this.relativeParent=this.relativeTarget=void 0}ud&&rs.resolvedTargetDeltas++}}}getClosestProjectingParent(){if(!(!this.parent||kk(this.parent.latestValues)||Lz(this.parent.latestValues)))return this.parent.isProjecting()?this.parent:this.parent.getClosestProjectingParent()}isProjecting(){return!!((this.relativeTarget||this.targetDelta||this.options.layoutRoot)&&this.layout)}calcProjection(){var s;const l=this.getLead(),u=!!this.resumingFrom||this!==l;let d=!0;if((this.isProjectionDirty||!((s=this.parent)===null||s===void 0)&&s.isProjectionDirty)&&(d=!1),u&&(this.isSharedProjectionDirty||this.isTransformDirty)&&(d=!1),this.resolvedRelativeTargetAt===Cn.timestamp&&(d=!1),d)return;const{layout:p,layoutId:f}=this.options;if(this.isTreeAnimating=!!(this.parent&&this.parent.isTreeAnimating||this.currentAnimation||this.pendingAnimation),this.isTreeAnimating||(this.targetDelta=this.relativeTarget=void 0),!this.layout||!(p||f))return;Mr(this.layoutCorrected,this.layout.layoutBox);const g=this.treeScale.x,y=this.treeScale.y;Yxe(this.layoutCorrected,this.treeScale,this.path,u),l.layout&&!l.target&&(this.treeScale.x!==1||this.treeScale.y!==1)&&(l.target=l.layout.layoutBox,l.targetWithTransforms=Yt());const{target:b}=l;if(!b){this.prevProjectionDelta&&(this.createProjectionDeltas(),this.scheduleRender());return}!this.projectionDelta||!this.prevProjectionDelta?this.createProjectionDeltas():(E3(this.prevProjectionDelta.x,this.projectionDelta.x),E3(this.prevProjectionDelta.y,this.projectionDelta.y)),bd(this.projectionDelta,this.layoutCorrected,b,this.latestValues),(this.treeScale.x!==g||this.treeScale.y!==y||!L3(this.projectionDelta.x,this.prevProjectionDelta.x)||!L3(this.projectionDelta.y,this.prevProjectionDelta.y))&&(this.hasProjected=!0,this.scheduleRender(),this.notifyListeners("projectionUpdate",b)),ud&&rs.recalculatedProjection++}hide(){this.isVisible=!1}show(){this.isVisible=!0}scheduleRender(s=!0){var l;if((l=this.options.visualElement)===null||l===void 0||l.scheduleRender(),s){const u=this.getStack();u&&u.scheduleRender()}this.resumingFrom&&!this.resumingFrom.instance&&(this.resumingFrom=void 0)}createProjectionDeltas(){this.prevProjectionDelta=Bl(),this.projectionDelta=Bl(),this.projectionDeltaWithTransform=Bl()}setAnimationOrigin(s,l=!1){const u=this.snapshot,d=u?u.latestValues:{},p={...this.latestValues},f=Bl();(!this.relativeParent||!this.relativeParent.options.layoutRoot)&&(this.relativeTarget=this.relativeTargetOrigin=void 0),this.attemptToResolveRelativeTarget=!l;const g=Yt(),y=u?u.source:void 0,b=this.layout?this.layout.source:void 0,w=y!==b,v=this.getStack(),j=!v||v.members.length<=1,k=!!(w&&!j&&this.options.crossfade===!0&&!this.path.some(Ive));this.animationProgress=0;let S;this.mixTargetDelta=E=>{const N=E/1e3;$3(f.x,s.x,N),$3(f.y,s.y,N),this.setTargetDelta(f),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(wd(g,this.layout.layoutBox,this.relativeParent.layout.layoutBox),_ve(this.relativeTarget,this.relativeTargetOrigin,g,N),S&&gve(this.relativeTarget,S)&&(this.isProjectionDirty=!1),S||(S=Yt()),Mr(S,this.relativeTarget)),w&&(this.animationValues=p,uve(p,d,this.latestValues,N,k,j)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=N},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(s){this.notifyListeners("animationStart"),this.currentAnimation&&this.currentAnimation.stop(),this.resumingFrom&&this.resumingFrom.currentAnimation&&this.resumingFrom.currentAnimation.stop(),this.pendingAnimation&&(xo(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=Rt.update(()=>{em.hasAnimatedSinceResize=!0,this.currentAnimation=ive(0,F3,{...s,onUpdate:l=>{this.mixTargetDelta(l),s.onUpdate&&s.onUpdate(l)},onComplete:()=>{s.onComplete&&s.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 s=this.getStack();s&&s.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(F3),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const s=this.getLead();let{targetWithTransforms:l,target:u,layout:d,latestValues:p}=s;if(!(!l||!u||!d)){if(this!==s&&this.layout&&d&&Yz(this.options.animationType,this.layout.layoutBox,d.layoutBox)){u=this.target||Yt();const f=Sr(this.layout.layoutBox.x);u.x.min=s.target.x.min,u.x.max=u.x.min+f;const g=Sr(this.layout.layoutBox.y);u.y.min=s.target.y.min,u.y.max=u.y.min+g}Mr(l,u),$l(l,p),bd(this.projectionDeltaWithTransform,this.layoutCorrected,l,p)}}registerSharedNode(s,l){this.sharedNodes.has(s)||this.sharedNodes.set(s,new yve),this.sharedNodes.get(s).add(l);const d=l.options.initialPromotionConfig;l.promote({transition:d?d.transition:void 0,preserveFollowOpacity:d&&d.shouldPreserveFollowOpacity?d.shouldPreserveFollowOpacity(l):void 0})}isLead(){const s=this.getStack();return s?s.lead===this:!0}getLead(){var s;const{layoutId:l}=this.options;return l?((s=this.getStack())===null||s===void 0?void 0:s.lead)||this:this}getPrevLead(){var s;const{layoutId:l}=this.options;return l?(s=this.getStack())===null||s===void 0?void 0:s.prevLead:void 0}getStack(){const{layoutId:s}=this.options;if(s)return this.root.sharedNodes.get(s)}promote({needsReset:s,transition:l,preserveFollowOpacity:u}={}){const d=this.getStack();d&&d.promote(this,u),s&&(this.projectionDelta=void 0,this.needsReset=!0),l&&this.setOptions({transition:l})}relegate(){const s=this.getStack();return s?s.relegate(this):!1}resetSkewAndRotation(){const{visualElement:s}=this.options;if(!s)return;let l=!1;const{latestValues:u}=s;if((u.z||u.rotate||u.rotateX||u.rotateY||u.rotateZ||u.skewX||u.skewY)&&(l=!0),!l)return;const d={};u.z&&Y1("z",s,d,this.animationValues);for(let p=0;p<G1.length;p++)Y1(`rotate${G1[p]}`,s,d,this.animationValues),Y1(`skew${G1[p]}`,s,d,this.animationValues);s.render();for(const p in d)s.setStaticValue(p,d[p]),this.animationValues&&(this.animationValues[p]=d[p]);s.scheduleRender()}getProjectionStyles(s){var l,u;if(!this.instance||this.isSVG)return;if(!this.isVisible)return vve;const d={visibility:""},p=this.getTransformTemplate();if(this.needsReset)return this.needsReset=!1,d.opacity="",d.pointerEvents=Jf(s==null?void 0:s.pointerEvents)||"",d.transform=p?p(this.latestValues,""):"none",d;const f=this.getLead();if(!this.projectionDelta||!this.layout||!f.target){const w={};return this.options.layoutId&&(w.opacity=this.latestValues.opacity!==void 0?this.latestValues.opacity:1,w.pointerEvents=Jf(s==null?void 0:s.pointerEvents)||""),this.hasProjected&&!ns(this.latestValues)&&(w.transform=p?p({},""):"none",this.hasProjected=!1),w}const g=f.animationValues||f.latestValues;this.applyTransformsToTarget(),d.transform=xve(this.projectionDeltaWithTransform,this.treeScale,g),p&&(d.transform=p(g,d.transform));const{x:y,y:b}=this.projectionDelta;d.transformOrigin=`${y.origin*100}% ${b.origin*100}% 0`,f.animationValues?d.opacity=f===this?(u=(l=g.opacity)!==null&&l!==void 0?l:this.latestValues.opacity)!==null&&u!==void 0?u:1:this.preserveOpacity?this.latestValues.opacity:g.opacityExit:d.opacity=f===this?g.opacity!==void 0?g.opacity:"":g.opacityExit!==void 0?g.opacityExit:0;for(const w in dg){if(g[w]===void 0)continue;const{correct:v,applyTo:j}=dg[w],k=d.transform==="none"?g[w]:v(g[w],f);if(j){const S=j.length;for(let E=0;E<S;E++)d[j[E]]=k}else d[w]=k}return this.options.layoutId&&(d.pointerEvents=f===this?Jf(s==null?void 0:s.pointerEvents)||"":"none"),d}clearSnapshot(){this.resumeFrom=this.snapshot=void 0}resetTree(){this.root.nodes.forEach(s=>{var l;return(l=s.currentAnimation)===null||l===void 0?void 0:l.stop()}),this.root.nodes.forEach(B3),this.root.sharedNodes.clear()}}}function wve(e){e.updateLayout()}function jve(e){var t;const n=((t=e.resumeFrom)===null||t===void 0?void 0:t.snapshot)||e.snapshot;if(e.isLead()&&e.layout&&n&&e.hasListeners("didUpdate")){const{layoutBox:r,measuredBox:i}=e.layout,{animationType:o}=e.options,s=n.source!==e.layout.source;o==="size"?Fr(f=>{const g=s?n.measuredBox[f]:n.layoutBox[f],y=Sr(g);g.min=r[f].min,g.max=g.min+y}):Yz(o,n.layoutBox,r)&&Fr(f=>{const g=s?n.measuredBox[f]:n.layoutBox[f],y=Sr(r[f]);g.max=g.min+y,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[f].max=e.relativeTarget[f].min+y)});const l=Bl();bd(l,r,n.layoutBox);const u=Bl();s?bd(u,e.applyTransform(i,!0),n.measuredBox):bd(u,r,n.layoutBox);const d=!Uz(l);let p=!1;if(!e.resumeFrom){const f=e.getClosestProjectingParent();if(f&&!f.resumeFrom){const{snapshot:g,layout:y}=f;if(g&&y){const b=Yt();wd(b,n.layoutBox,g.layoutBox);const w=Yt();wd(w,r,y.layoutBox),Hz(b,w)||(p=!0),f.options.layoutRoot&&(e.relativeTarget=w,e.relativeTargetOrigin=b,e.relativeParent=f)}}}e.notifyListeners("didUpdate",{layout:r,snapshot:n,delta:u,layoutDelta:l,hasLayoutChanged:d,hasRelativeTargetChanged:p})}else if(e.isLead()){const{onExitComplete:r}=e.options;r&&r()}e.options.transition=void 0}function kve(e){ud&&rs.totalNodes++,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 Ave(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function Sve(e){e.clearSnapshot()}function B3(e){e.clearMeasurements()}function Cve(e){e.isLayoutDirty=!1}function Nve(e){const{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify("BeforeLayoutMeasure"),e.resetTransform()}function z3(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function Tve(e){e.resolveTargetDelta()}function Eve(e){e.calcProjection()}function Pve(e){e.resetSkewAndRotation()}function Ove(e){e.removeLeadSnapshot()}function $3(e,t,n){e.translate=Bt(t.translate,0,n),e.scale=Bt(t.scale,1,n),e.origin=t.origin,e.originPoint=t.originPoint}function q3(e,t,n,r){e.min=Bt(t.min,n.min,r),e.max=Bt(t.max,n.max,r)}function _ve(e,t,n,r){q3(e.x,t.x,n.x,r),q3(e.y,t.y,n.y,r)}function Ive(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}const Rve={duration:.45,ease:[.4,0,.1,1]},W3=e=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(e),U3=W3("applewebkit/")&&!W3("chrome/")?Math.round:kr;function H3(e){e.min=U3(e.min),e.max=U3(e.max)}function Dve(e){H3(e.x),H3(e.y)}function Yz(e,t,n){return e==="position"||e==="preserve-aspect"&&!Fxe(M3(t),M3(n),.2)}function Mve(e){var t;return e!==e.root&&((t=e.scroll)===null||t===void 0?void 0:t.wasRoot)}const Lve=Gz({attachResizeListener:(e,t)=>gh(e,"resize",t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),K1={current:void 0},Kz=Gz({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!K1.current){const e=new Lve({});e.mount(window),e.setOptions({layoutScroll:!0}),K1.current=e}return K1.current},resetTransform:(e,t)=>{e.style.transform=t!==void 0?t:"none"},checkIsScrollRoot:e=>window.getComputedStyle(e).position==="fixed"}),Fve={pan:{Feature:eve},drag:{Feature:Zxe,ProjectionNode:Kz,MeasureLayout:$z}};function V3(e,t,n){const{props:r}=e;e.animationState&&r.whileHover&&e.animationState.setActive("whileHover",n==="Start");const i="onHover"+n,o=r[i];o&&Rt.postRender(()=>o(t,Wh(t)))}class Bve extends Eo{mount(){const{current:t}=this.node;t&&(this.unmount=Fge(t,n=>(V3(this.node,n,"Start"),r=>V3(this.node,r,"End"))))}unmount(){}}class zve extends Eo{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=qh(gh(this.node.current,"focus",()=>this.onFocus()),gh(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}function G3(e,t,n){const{props:r}=e;e.animationState&&r.whileTap&&e.animationState.setActive("whileTap",n==="Start");const i="onTap"+(n==="End"?"":n),o=r[i];o&&Rt.postRender(()=>o(t,Wh(t)))}class $ve extends Eo{mount(){const{current:t}=this.node;t&&(this.unmount=qge(t,n=>(G3(this.node,n,"Start"),(r,{success:i})=>G3(this.node,r,i?"End":"Cancel")),{useGlobalTarget:this.node.props.globalTapTarget}))}unmount(){}}const Sk=new WeakMap,X1=new WeakMap,qve=e=>{const t=Sk.get(e.target);t&&t(e)},Wve=e=>{e.forEach(qve)};function Uve({root:e,...t}){const n=e||document;X1.has(n)||X1.set(n,{});const r=X1.get(n),i=JSON.stringify(t);return r[i]||(r[i]=new IntersectionObserver(Wve,{root:e,...t})),r[i]}function Hve(e,t,n){const r=Uve(t);return Sk.set(e,n),r.observe(e),()=>{Sk.delete(e),r.unobserve(e)}}const Vve={some:0,all:1};class Gve extends Eo{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:o}=t,s={root:n?n.current:void 0,rootMargin:r,threshold:typeof i=="number"?i:Vve[i]},l=u=>{const{isIntersecting:d}=u;if(this.isInView===d||(this.isInView=d,o&&!d&&this.hasEnteredView))return;d&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",d);const{onViewportEnter:p,onViewportLeave:f}=this.node.getProps(),g=d?p:f;g&&g(u)};return Hve(this.node.current,s,l)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:t,prevProps:n}=this.node;["amount","margin","root"].some(Yve(t,n))&&this.startObserver()}unmount(){}}function Yve({viewport:e={}},{viewport:t={}}={}){return n=>e[n]!==t[n]}const Kve={inView:{Feature:Gve},tap:{Feature:$ve},focus:{Feature:zve},hover:{Feature:Bve}},Xve={layout:{ProjectionNode:Kz,MeasureLayout:$z}},Ck={current:null},Xz={current:!1};function Qve(){if(Xz.current=!0,!!kS)if(window.matchMedia){const e=window.matchMedia("(prefers-reduced-motion)"),t=()=>Ck.current=e.matches;e.addListener(t),t()}else Ck.current=!1}const Jve=[...wz,Bn,vo],Zve=e=>Jve.find(bz(e)),Y3=new WeakMap;function ebe(e,t,n){for(const r in t){const i=t[r],o=n[r];if(qn(i))e.addValue(r,i);else if(qn(o))e.addValue(r,fh(i,{owner:e}));else if(o!==i)if(e.hasValue(r)){const s=e.getValue(r);s.liveStyle===!0?s.jump(i):s.hasAnimated||s.set(i)}else{const s=e.getStaticValue(r);e.addValue(r,fh(s!==void 0?s:i,{owner:e}))}}for(const r in n)t[r]===void 0&&e.removeValue(r);return t}const K3=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];class tbe{scrapeMotionValuesFromProps(t,n,r){return{}}constructor({parent:t,props:n,presenceContext:r,reducedMotionConfig:i,blockInitialAnimation:o,visualState:s},l={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.KeyframeResolver=XS,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 y=Mi.now();this.renderScheduledAt<y&&(this.renderScheduledAt=y,Rt.render(this.render,!1,!0))};const{latestValues:u,renderState:d,onUpdate:p}=s;this.onUpdate=p,this.latestValues=u,this.baseTarget={...u},this.initialValues=n.initial?{...u}:{},this.renderState=d,this.parent=t,this.props=n,this.presenceContext=r,this.depth=t?t.depth+1:0,this.reducedMotionConfig=i,this.options=l,this.blockInitialAnimation=!!o,this.isControllingVariants=yy(n),this.isVariantNode=T9(n),this.isVariantNode&&(this.variantChildren=new Set),this.manuallyAnimateOnMount=!!(t&&t.current);const{willChange:f,...g}=this.scrapeMotionValuesFromProps(n,{},this);for(const y in g){const b=g[y];u[y]!==void 0&&qn(b)&&b.set(u[y],!1)}}mount(t){this.current=t,Y3.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((n,r)=>this.bindToMotionValue(r,n)),Xz.current||Qve(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:Ck.current,this.parent&&this.parent.children.add(this),this.update(this.props,this.presenceContext)}unmount(){Y3.delete(this.current),this.projection&&this.projection.unmount(),xo(this.notifyUpdate),xo(this.render),this.valueSubscriptions.forEach(t=>t()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent&&this.parent.children.delete(this);for(const t in this.events)this.events[t].clear();for(const t in this.features){const n=this.features[t];n&&(n.unmount(),n.isMounted=!1)}this.current=null}bindToMotionValue(t,n){this.valueSubscriptions.has(t)&&this.valueSubscriptions.get(t)();const r=Ys.has(t),i=n.on("change",l=>{this.latestValues[t]=l,this.props.onUpdate&&Rt.preRender(this.notifyUpdate),r&&this.projection&&(this.projection.isTransformDirty=!0)}),o=n.on("renderRequest",this.scheduleRender);let s;window.MotionCheckAppearSync&&(s=window.MotionCheckAppearSync(this,t,n)),this.valueSubscriptions.set(t,()=>{i(),o(),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 Ic){const n=Ic[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 o=this.features[t];o.isMounted?o.update():(o.mount(),o.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):Yt()}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<K3.length;r++){const i=K3[r];this.propEventSubscriptions[i]&&(this.propEventSubscriptions[i](),delete this.propEventSubscriptions[i]);const o="on"+i,s=t[o];s&&(this.propEventSubscriptions[i]=this.on(i,s))}this.prevMotionValues=ebe(this,this.scrapeMotionValuesFromProps(t,this.prevProps,this),this.prevMotionValues),this.handleChildMotionValue&&this.handleChildMotionValue(),this.onUpdate&&this.onUpdate(this)}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=fh(n===null?void 0:n,{owner:this}),this.addValue(t,r)),r}readValue(t,n){var r;let i=this.latestValues[t]!==void 0||!this.current?this.latestValues[t]:(r=this.getBaseTargetFromProps(this.props,t))!==null&&r!==void 0?r:this.readValueFromInstance(this.current,t,this.options);return i!=null&&(typeof i=="string"&&(xz(i)||cz(i))?i=parseFloat(i):!Zve(i)&&vo.test(n)&&(i=mz(t,n)),this.setBaseTarget(t,qn(i)?i.get():i)),qn(i)?i.get():i}setBaseTarget(t,n){this.baseTarget[t]=n}getBaseTarget(t){var n;const{initial:r}=this.props;let i;if(typeof r=="string"||typeof r=="object"){const s=PS(this.props,r,(n=this.presenceContext)===null||n===void 0?void 0:n.custom);s&&(i=s[t])}if(r&&i!==void 0)return i;const o=this.getBaseTargetFromProps(this.props,t);return o!==void 0&&!qn(o)?o:this.initialValues[t]!==void 0&&i===void 0?void 0:this.baseTarget[t]}on(t,n){return this.events[t]||(this.events[t]=new US),this.events[t].add(n)}notify(t,...n){this.events[t]&&this.events[t].notify(...n)}}class Qz extends tbe{constructor(){super(...arguments),this.KeyframeResolver=jz}sortInstanceNodePosition(t,n){return t.compareDocumentPosition(n)&2?1:-1}getBaseTargetFromProps(t,n){return t.style?t.style[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;qn(t)&&(this.childSubscription=t.on("change",n=>{this.current&&(this.current.textContent=`${n}`)}))}}function nbe(e){return window.getComputedStyle(e)}class rbe extends Qz{constructor(){super(...arguments),this.type="html",this.renderInstance=L9}readValueFromInstance(t,n){if(Ys.has(n)){const r=KS(n);return r&&r.default||0}else{const r=nbe(t),i=(R9(n)?r.getPropertyValue(n):r[n])||0;return typeof i=="string"?i.trim():i}}measureInstanceViewportBox(t,{transformPagePoint:n}){return Bz(t,n)}build(t,n,r){IS(t,n,r.transformTemplate)}scrapeMotionValuesFromProps(t,n,r){return LS(t,n,r)}}class ibe extends Qz{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=Yt}getBaseTargetFromProps(t,n){return t[n]}readValueFromInstance(t,n){if(Ys.has(n)){const r=KS(n);return r&&r.default||0}return n=F9.has(n)?n:NS(n),t.getAttribute(n)}scrapeMotionValuesFromProps(t,n,r){return $9(t,n,r)}build(t,n,r){RS(t,n,this.isSVGTag,r.transformTemplate)}renderInstance(t,n,r,i){B9(t,n,r,i)}mount(t){this.isSVGTag=MS(t.tagName),super.mount(t)}}const abe=(e,t)=>
871ES(e)?new ibe(t):new rbe(t,{allowProjection:e!==O.Fragment}),obe=_ge({...Exe,...Kve,...Fve,...Xve},abe),pt=Gme(obe),sbe={some:0,all:1};function lbe(e,t,{root:n,margin:r,amount:i="some"}={}){const o=K9(e),s=new WeakMap,l=d=>{d.forEach(p=>{const f=s.get(p.target);if(p.isIntersecting!==!!f)if(p.isIntersecting){const g=t(p);typeof g=="function"?s.set(p.target,g):u.unobserve(p.target)}else typeof f=="function"&&(f(p),s.delete(p.target))})},u=new IntersectionObserver(l,{root:n,rootMargin:r,threshold:typeof i=="number"?i:sbe[i]});return o.forEach(d=>u.observe(d)),()=>u.disconnect()}function by(e,{root:t,margin:n,amount:r,once:i=!1}={}){const[o,s]=O.useState(!1);return O.useEffect(()=>{if(!e.current||i&&o)return;const l=()=>(s(!0),i?void 0:()=>s(!1)),u={root:t&&t.current||void 0,margin:n,amount:r};return lbe(e.current,l,u)},[t,e,n,i,r]),o}function He({title:e,description:t,canonical:n,ogImage:r,schemaData:i}){const o=O.useRef(!1);return O.useEffect(()=>{document.title=e;const s=(u,d,p)=>{let f=d?document.querySelector(`meta[property="${d}"]`):document.querySelector(`meta[name="${u}"]`);f||(f=document.createElement("meta"),d?f.setAttribute("property",d):f.setAttribute("name",u),document.head.appendChild(f)),f.setAttribute("content",p)};s("description",null,t),s(null,"og:title",e),s(null,"og:description",t),s(null,"og:image",r),s(null,"twitter:title",e),s(null,"twitter:description",t),s(null,"twitter:image",r);let l=document.querySelector('link[rel="canonical"]');if(l||(l=document.createElement("link"),l.rel="canonical",document.head.appendChild(l)),l.href=n,i&&!o.current){const u=document.querySelector('script[type="application/ld+json"][data-page-schema="true"]');u&&u.remove();const d=document.createElement("script");d.type="application/ld+json",d.setAttribute("data-page-schema","true"),d.textContent=JSON.stringify(i),document.head.appendChild(d),o.current=!0}return()=>{const u=document.querySelector('script[type="application/ld+json"][data-page-schema="true"]');u&&u.remove(),o.current=!1}},[e,t,n,r]),null}const Q1="https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/9952d639c_MockUpTheultimateGuidetochoosingyourbitcoinmininngsoftware.png";function eC({variant:e="full"}){return e==="sidebar"?a.jsxs("div",{className:"rounded-lg overflow-hidden flex flex-col items-center text-center gap-2 p-4 h-full justify-center relative",style:{background:"#BFF589"},children:[a.jsx("div",{"aria-hidden":"true",className:"absolute inset-0 pointer-events-none",style:{backgroundImage:` 872 linear-gradient(rgba(26,26,26,0.05) 1px, transparent 1px), 873 linear-gradient(90deg, rgba(26,26,26,0.05) 1px, transparent 1px) 874 `,backgroundSize:"40px 40px"}}),a.jsx("img",{src:Q1,alt:"The Ultimate Guide to Choosing Your Bitcoin Mining Management Platform",className:"w-40 h-auto relative z-10",style:{filter:"drop-shadow(0 12px 25px rgba(0,0,0,0.3))"}}),a.jsxs("div",{className:"relative z-10",children:[a.jsxs("div",{className:"flex items-center gap-2 mb-2 justify-center",children:[a.jsx(Uf,{size:14,style:{color:"#1A1A1A"}}),a.jsx("span",{className:"font-mono text-xs uppercase tracking-wider",style:{color:"#1A1A1A"},children:"Free Buyer's Guide"})]}),a.jsx("h2",{className:"font-display text-lg mb-4 leading-tight",style:{color:"#1A1A1A"},children:"Stop Guessing Your Infrastructure Stack."}),a.jsxs(ye,{to:"/lp/mining-platform-guide",className:"inline-flex items-center gap-2 px-5 py-2.5 rounded-lg text-sm font-semibold transition-all duration-200",style:{background:"#1A1A1A",color:"#F9F9F9",fontFamily:"Montserrat, sans-serif"},children:["Get the Guide ",a.jsx(Ve,{size:14})]})]})]}):e==="compact"?a.jsxs("div",{className:"rounded-lg overflow-hidden flex flex-col sm:flex-row items-center gap-6 p-6 md:p-7",style:{background:"#232323",border:"1px solid rgba(191,245,137,0.15)"},children:[a.jsx("img",{src:Q1,alt:"The Ultimate Guide to Choosing Your Bitcoin Mining Management Platform",className:"w-20 md:w-24 h-auto flex-shrink-0 rounded-sm",style:{boxShadow:"0 12px 30px rgba(0,0,0,0.4)"}}),a.jsxs("div",{className:"flex-1 text-center sm:text-left",children:[a.jsxs("div",{className:"flex items-center gap-2 mb-2 justify-center sm:justify-start",children:[a.jsx(Uf,{size:14,style:{color:"#BFF589"}}),a.jsx("span",{className:"font-mono text-xs uppercase tracking-wider",style:{color:"#BFF589"},children:"Free Buyer's Guide"})]}),a.jsx("h2",{className:"font-display text-lg text-lod-white mb-1",children:"Stop Guessing Your Infrastru
874cture Stack."}),a.jsx("p",{className:"text-sm leading-relaxed",style:{color:"#A0A0A0"},children:"LÅD, Braiins, Luxor, and Foreman â compared honestly for 5MW+ operators."})]}),a.jsxs(ye,{to:"/lp/mining-platform-guide",className:"btn-primary text-sm flex-shrink-0 whitespace-nowrap",children:["Get the Guide ",a.jsx(Ve,{size:14})]})]}):a.jsxs("section",{className:"py-20 relative overflow-hidden",style:{background:"#BFF589"},children:[a.jsx("div",{"aria-hidden":"true",className:"absolute inset-0 pointer-events-none",style:{backgroundImage:` 875 linear-gradient(rgba(26,26,26,0.05) 1px, transparent 1px), 876 linear-gradient(90deg, rgba(26,26,26,0.05) 1px, transparent 1px) 877 `,backgroundSize:"80px 80px"}}),a.jsx("div",{className:"max-w-[1400px] mx-auto px-6 relative z-10",children:a.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 items-center gap-10",children:[a.jsxs("div",{children:[a.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[a.jsx(Uf,{size:14,style:{color:"#1A1A1A"}}),a.jsx("span",{className:"font-mono text-xs uppercase tracking-wider",style:{color:"#1A1A1A"},children:"Free Buyer's Guide"})]}),a.jsxs("h2",{className:"font-display text-3xl md:text-4xl mb-5 leading-tight",style:{color:"#1A1A1A"},children:["Stop Guessing Your",a.jsx("br",{}),"Infrastructure Stack."]}),a.jsx("p",{className:"text-base leading-relaxed mb-8 max-w-md",style:{color:"#2C2C2C"},children:"Choosing the wrong management platform is a costly mistake in lost uptime and grid inefficiency. Get the industry guide comparing LÅD, Braiins, Luxor, and Foreman â with real operational breakdowns for 5MW+ sites."}),a.jsxs(ye,{to:"/lp/mining-platform-guide",className:"inline-flex items-center gap-2 px-6 py-3 rounded-lg text-sm font-semibold transition-all duration-200",style:{background:"#1A1A1A",color:"#F9F9F9",fontFamily:"Montserrat, sans-serif"},children:["Get the Free Buyer's Guide ",a.jsx(Ve,{size:14})]})]}),a.jsx("div",{className:"flex justify-center md:justify-end",children:a.jsx("img",{src:Q1,alt:"The Ultimate Guide to Choosing Your Bitcoin Mining Management Platform",className:"w-48 md:w-64 h-auto animate-float-iso",style:{filter:"drop-shadow(0 25px 40px rgba(0,0,0,0.35))"}})})]})})]})}const cbe=[{title:"Data Layer",desc:"Real-time and historical energy data, interpreted and standardized, for operators, developers, and AI agents to act on immediately.",cta:"Explore the Data Layer",href:"/data-layer",img:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/2ff108648_generated_image.png"},{title:"Strategy Layer",desc:"A human-led energy advisory service. We assess your operation, build a custom strategy, and work with your QSE or REP to make it real. Actual conversations, not automated reports.",cta:"See how it works",href:"/strategy-layer",img:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/51fad4a6c_generated_image.png"},{title:"Execution Layer",desc:"The layer that acts on signals in under 30 seconds. AI workload routing, ASICs, GPUs, cooling, and containers, with zero manual intervention.",cta:"See the Execution Layer",href:"/control-layer",img:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/b97bf1948_generated_image.png"}];function ube(){return a.jsx("section",{className:"py-24",style:{background:"#0A0A0A"},children:a.jsxs("div",{className:"max-w-[1400px] mx-auto px-6",children:[a.jsxs("div",{className:"text-center max-w-2xl mx-auto mb-16",children:[a.jsxs("h2",{className:"font-display text-4xl md:text-5xl text-lod-white mb-5 leading-none",children:["Three Layers.",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"One Platform."})]}),a.jsx("p",{className:"text-base leading-relaxed",style:{color:"#B8B8B8"},children:"LÅD works across three layers: data, strategy, and execution. Together, they take you from what's happening on the grid to what to do about it, automatically."})]}),a.jsx("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-6",children:cbe.map(e=>a.jsxs("div",{className:"flex flex-col rounded-sm overflow-hidden",style:{background:"#1A1A1A",border:"1px solid rgba(255,255,255,0.08)"},children:[a.jsx("div",{className:"h-44 overflow-hidden",style:{background:"#141414"},children:a.jsx("img",{src:e.img,alt:e.title,className:"w-full h-full object-cover opacity-95"})}),a.jsxs("div",{className:"flex flex-col flex-1 p-8",children:[a.jsx("h3",{className:"font-display text-2xl text-lod-white mb-4",children:e.title}),a.jsx("p",{className:"text-sm leading-relaxed mb-8 flex-1",style:{color:"#B0B0B0"},children:e.desc}),a.jsxs(ye,{to:e.href,className:"inline-flex items-center gap-2 font-mono text-xs",style:{color:"#BFF589"},children:[e.cta," ",a.jsx(Ve,{size:12})]})]})]},e.title))})]})})}const dbe=[{name:"LÅD Energy",icon:xt,desc:"The operational data layer for mission-critical data center operations â unifying real-time and historical energy market data across every major North American grid.",href:"/lod-energy"},{name:"LÅD IoT",icon:TL,desc:"Real-time monitoring, remote control, and automated energy strategy execution that turns data center infrastru
877cture into grid-responsive participants.",href:"/lod-iot"},{name:"LÅD Flexible Compute",icon:xH,desc:"The workload distribution and DSX interconnection engine that balances AI compute across data centers and GPUs based on real-time grid conditions.",href:"/lod-flexible-compute"}];function hbe(){return a.jsxs("section",{className:"relative overflow-hidden py-20",style:{background:"#BFF589"},children:[a.jsx("div",{"aria-hidden":"true",className:"pointer-events-none absolute inset-0",style:{backgroundImage:"linear-gradient(rgba(26,26,26,0.06) 1px, transparent 1px), linear-gradient(90deg, rgba(26,26,26,0.06) 1px, transparent 1px)",backgroundSize:"60px 60px"}}),a.jsx("div",{"aria-hidden":"true",className:"pointer-events-none absolute -top-24 -right-24 w-96 h-96 rounded-full",style:{background:"rgba(26,26,26,0.06)"}}),a.jsx("div",{"aria-hidden":"true",className:"pointer-events-none absolute -bottom-24 -left-24 w-96 h-96 rounded-full",style:{background:"rgba(26,26,26,0.06)"}}),a.jsxs("div",{className:"max-w-[1400px] mx-auto px-6 relative z-10",children:[a.jsxs("div",{className:"text-center mb-12",children:[a.jsx("div",{className:"font-mono text-xs uppercase tracking-widest mb-3",style:{color:"#1A1A1A",opacity:.7},children:"Solutions for Grid Aware Data Centers"}),a.jsx("h2",{className:"font-display text-3xl md:text-5xl leading-tight",style:{color:"#1A1A1A"},children:"Three Products. One Platform."})]}),a.jsx("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-6",children:dbe.map(e=>{const t=e.icon;return a.jsxs("div",{className:"rounded-xl p-8 flex flex-col gap-4",style:{background:"rgba(26,26,26,0.92)",border:"1px solid rgba(255,255,255,0.08)"},children:[a.jsx("div",{className:"w-12 h-12 rounded-lg flex items-center justify-center",style:{background:"rgba(191,245,137,0.12)",border:"1px solid rgba(191,245,137,0.3)"},children:a.jsx(t,{size:22,style:{color:"#BFF589"}})}),a.jsx("h3",{className:"font-display text-xl",style:{color:"#F9F9F9"},children:e.name}),a.jsx("p",{className:"text-sm leading-relaxed",style:{color:"#A0A0A0"},children:e.desc}),a.jsxs(ye,{to:e.href,className:"inline-flex items-center gap-2 text-sm font-semibold mt-auto pt-2",style:{color:"#BFF589"},children:["Learn more ",a.jsx(Ve,{size:14})]})]},e.name)})})]})]})}const pbe=[{icon:wL,title:"Neocloud Operators",desc:"Convert contracted power to active power faster, and capture demand response revenue while capacity ramps."},{icon:aU,title:"Hyperscalers",desc:"Standardize energy visibility across every campus and connect new capacity faster than the grid alone allows."},{icon:mH,title:"Operations Managers",desc:"Turn grid alerts into automated action, without waiting on a human decision at 2am."},{icon:vL,title:"Energy Teams",desc:"Build a grid-aware strategy on standardized data, then let automation enforce it every day."},{icon:Ts,title:"AI Data Center Operators",desc:"Protect SLAs while flexing training and inference workloads against live grid signals."},{icon:yL,title:"Bitcoin Mining Operators",desc:"Automate curtailment decisions based on real economics, not fear."}];function fbe(){return a.jsxs("section",{className:"py-24 relative overflow-hidden",style:{background:"#0D0D0D",borderTop:"1px solid rgba(255,255,255,0.06)"},children:[a.jsx("div",{"aria-hidden":"true",style:{position:"absolute",inset:0,pointerEvents:"none",backgroundImage:"radial-gradient(circle, rgba(191,245,137,0.2) 1px, transparent 1px)",backgroundSize:"28px 28px"}}),a.jsxs("div",{className:"max-w-[1400px] mx-auto px-6 relative z-10",children:[a.jsxs(pt.div,{initial:{opacity:0,y:16},whileInView:{opacity:1,y:0},viewport:{once:!0,amount:.3},transition:{duration:.5},className:"text-center max-w-3xl mx-auto mb-14",children:[a.jsx("div",{className:"section-label mb-4",children:"Who LÅD Is Built For"}),a.jsxs("h2",{className:"font-display text-xl md:text-2xl text-lod-white leading-snug",children:["Built for operators and energy teams who need a ",a.jsx("span",{style:{color:"#BFF589"},children:"grid-responsive"})," solution that takes their ",a.jsx("span",{style:{color:"#BFF589"},children:"strategy"})," from ",a.jsx("span",{style:{color:"#BFF589"},children:"signal"})," to ",a.jsx("span",{style:{color:"#BFF589"},children:"execution"}),"."]})]}),a.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-5",children:pbe.map((e,t)=>{const n=e.icon;return a.jsxs(pt.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0,amount:.3},transition:{duration:.45,delay:t%3*.08},whileHover:{y:-4}
877,className:"card-obsidian p-7",children:[a.jsx("div",{className:"w-12 h-12 rounded-sm flex items-center justify-center mb-5",style:{background:"rgba(191,245,137,0.08)",border:"1px solid rgba(191,245,137,0.15)"},children:a.jsx(n,{size:20,style:{color:"#BFF589"}})}),a.jsx("h3",{className:"font-display text-lg text-lod-white mb-2",children:e.title}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed",children:e.desc})]},e.title)})})]})]})}const mbe=[{title:"AI Data Centers",desc:"Monitor, optimize and orchestrate the flow of energy in real-time to ensure availability and SLAs while reducing PUE and lowering energy costs.",href:"/ai-data-centers",img:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/156af9ebc_generated_image.png"},{title:"Bitcoin Mining Data Centers",desc:"Automate, stack, and co-optimize curtailment strategy to maximize profit margins.",href:"/bitcoin-mining",img:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/a0df7bd79_generated_image.png"},{title:"AI Inference",desc:"Route workloads across locations based on grid conditions to unlock capacity, reduce emissions, and lower costs. Ideal for AI Inference and AI Flexible Workload routing.",href:"/flexible-compute",img:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/f38e20d2b_generated_image.png"}],gbe=[{quote:"Before LÅD, we were reactive every time the grid spiked. Now we have alerts ahead of time, automation built in, and way less stress during peak events.",author:"Brad Cuddy, Operations Lead, Cholla",photo:"https://cdn.prod.website-files.com/68aca8c8fe05d65de8d26346/68e8382cf1f0559d942f1cc3_Case%20Study%20Interview%20-%20Video%20Thumbnail%20-%2011%20(1).png",logo:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/5bfe12a6b_68deb62b89dba52a2a24c49c_ChollaEnergy.png",logoAlt:"Cholla Energy"},{quote:"LÅD offers the most robust automation. Now we ramp down faster and ramp up smarter.",author:"Alex Brammer, SVP Global Data Center Operations, Keel Infrastructure",photo:"https://cdn.prod.website-files.com/68aca8c8fe05d65de8d26346/68e83684fd1655843bc1cfa1_image%20(3).png",logo:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/5dacca727_image.png",logoAlt:"Keel Infrastructure"},{quote:"Downtime was reduced significantly with LÅD. It's great for small-to-midsize data centers. And it's built with customers in mind!",author:"Justin Ballard, Energy Attorney and Podcaster",photo:"https://cdn.prod.website-files.com/68aca8c8fe05d65de8d26346/68e8378444468a2f1e799680_image%20(4).png",logo:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/3260406ee_EnergizingBitcoinLogo.png",logoAlt:"Energizing Bitcoin & AI"}];function ybe(){return a.jsxs(Je,{children:[a.jsx(He,{title:"LÅD â Energy Intelligence Platform for Data Centers",description:"LÅD is the energy intelligence platform for AI data centers and Bitcoin mining. Real-time grid signals, automated curtailment, demand response, and device-level execution. 500+ MW under management.",canonical:"https://lod.io",schemaData:{"@context":"https://schema.org","@type":"WebSite",url:"https://lod.io",name:"LÅD Technologies",publisher:{"@type":"Organization",name:"LÅD Technologies",url:"https://lod.io"},potentialAction:{"@type":"SearchAction",target:"https://lod.io/blog?q={search_term_string}","query-input":"required name=search_term_string"}}}),a.jsxs("section",{className:"relative overflow-hidden grid-lines-overlay",style:{background:"#141414"},children:[a.jsx("div",{"aria-hidden":"true",className:"pointer-events-none absolute -top-40 -left-40 w-[600px] h-[600px] rounded-full",style:{background:"radial-gradient(circle, rgba(191,245,137,0.07) 0%, transparent 70%)"}}),a.jsxs("div",{className:"max-w-[1400px] mx-auto px-6 pt-16 pb-0 md:pt-24 relative z-10",children:[a.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-12 items-center",children:[a.jsxs("div",{children:[a.jsx("div",{className:"section-label mb-5",children:"Energy Intelligence Platform"}),a.jsxs("h1",{className:"font-display text-5xl md:text-6xl text-lod-white mb-6 leading-none",children:["SPEED TO POWER",a.jsx("br",{}),a.jsxs("span",{className:"text-3xl md:text-4xl",style:{color:"#BFF589"},children:["FOR GRID CONSTRAINED",a.jsx("br",{}),"DATA CENTERS"]})]}),a.jsxs("p",{className:"mb-10 max-w-lg leading-relaxed",style:{color:"#C8C8C8",fontSize:"1.05rem"},children:["LÅD helps energy-intensive data centers become ",a.jsx("span",{style:{color:"#BFF589"},children:"flexible"}),", overcome grid constraints and unlock ",a.jsx("span",{style:{color:"#BFF589"},children:"capacity"})," through reliable node-level energy ",a.jsx("span",{style:{color:"#BFF589"},children:"signals"}),", effective energy ",a.jsx("span",{style:{color:"#BFF589"},children:"strategies"}),", and automated ",a.jsx("span",{style:{color:"#BFF589"},children:"execution"}),"."]}),a.jsxs("div",{className:"flex flex-wrap gap-4",children:[a.jsx(ye,{to:"/contact",className:"btn-primary text-base px-8 py-4",children:"Book an Energy Strategy Call"}),a.jsx(cm,{className:"btn-outline text-base px-8 py-4",children:"Login / Register"})]})]}),a.jsx("div",{className:"block",children:a.jsx(Mme,{})})]}),a.jsx("div",{className:"flex flex-wrap items-center justify-center gap-3 py-10",children:["1,000+ MW Under Management","SOC 1 & SOC 2 Certified","100+ Data Centers"].map(e=>a.jsx("span",{className:"font-mono text-xs px-4 py-1.5 rounded-full whitespace-nowrap",style:{background:"rgba(191,245,137,0.08)",border:"1px solid rgba(191,245,137,0.25)",color:"#BFF589"},children:e},e))})]}),a.jsx("div",{className:"absolute bottom-0 left-0 right-0 h-px",style:{background:"linear-gradient(90deg, transparent, rgba(191,245,137,0.3), transparent)"}})]}),a.jsx(qs,{}),a.jsx(fbe,{}),a.jsx(hbe,{}),a.jsx(Rme,{}),a.jsx(ube,{}),a.jsx(eC,{}),a.jsxs("section",{className:"relative overflow-hidden",style:{background:"#0D0D0D",borderTop:"1px solid rgba(255,255,255,0.06)"},children:[a.jsxs("div",{className:"max-w-[1400px] mx-auto px-6 pt-20 pb-4",children:[a.jsx("div",{className:"section-label mb-4",children:"Industries"}),a.jsxs("h2",{className:"font-display text-4xl md:text-5xl text-lod-white mb-0",children:["Built for Energy-Intensive",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"Operations"})]})]}),mbe.map((e,t)=>a.jsx(ye,{to:e.href,className:"block group",style:{borderTop:"1px solid rgba(255,255,255,0.06)"},children:a.jsxs("div",{className:`max-w-[1400px] mx-auto px-6 py-12 flex flex-col md:flex-row items-center gap-10 ${t%2===1?"md:flex-row-reverse":""}`,children:[a.jsxs("div",{className:"flex-shrink-0 w-full md:w-[380px] h-52 rounded-xl overflow-hidden flex items-center justify-center relative",style:{background:"#0D0D0D",border:"none"},children:[a.jsx("img",{src:e.img,alt:e.title,className:"h-full w-full object-cover opacity-100 group-hover:scale-105 transition-transform duration-500 absolute inset-0",style:{filter:"brightness(1.4) contrast(1.2) saturate(1.15)"}}),a.jsx("div",{className:"absolute inset-0 rounded-xl",style:{background:"linear-gradient(135deg, rgba(191,245,137,0.08) 0%, rgba(191,245,137,0.02) 100%)"}})]}),a.jsxs("div",{className:"flex-1",children:[a.jsx("div",{className:"font-mono text-xs mb-3",style:{color:"rgba(191,245,137,0.5)"},children:String(t+1).padStart(2,"0")}),a.jsx("h3",{className:"font-display text-3xl md:text-4xl text-lod-white mb-4 group-hover:text-lod-green transition-colors leading-tight",children:e.title}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed max-w-xl mb-6",children:e.desc}),a.jsxs("span",{className:"inline-flex items-center gap-2 font-mono text-xs",style:{color:"#BFF589"},children:["Learn more ",a.jsx(Ve,{size:12})]})]})]})}
877,e.title))]}),a.jsx("section",{className:"py-24 grid-lines-overlay relative",style:{background:"#0A0A0A"},children:a.jsxs("div",{className:"max-w-[1400px] mx-auto px-6",children:[a.jsx("div",{className:"section-label mb-4 text-center",children:"Customer Stories"}),a.jsxs("h2",{className:"font-display text-4xl md:text-5xl text-lod-white mb-16 text-center leading-none",children:["What Our Customers",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"Are Saying"})]}),a.jsx("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-6",children:gbe.map((e,t)=>a.jsxs("div",{className:"flex flex-col justify-between p-8 rounded-sm",style:{background:"#1A1A1A",border:"1px solid rgba(255,255,255,0.1)"},children:[a.jsxs("div",{children:[a.jsx("div",{className:"text-5xl font-display mb-4 leading-none",style:{color:"rgba(191,245,137,0.35)"},children:'"'}),a.jsx("p",{className:"text-sm leading-relaxed mb-6",style:{color:"#E0E0E0"},children:e.quote})]}),a.jsxs("div",{children:[a.jsxs("div",{className:"flex items-center gap-3 mb-5",children:[a.jsx("img",{src:e.photo,alt:e.author,className:"w-11 h-11 rounded-full object-cover flex-shrink-0",style:{border:"2px solid rgba(191,245,137,0.3)"}}),a.jsx("div",{className:"text-xs leading-snug",style:{fontFamily:"Montserrat, sans-serif",color:"#B0B0B0"},children:e.author})]}),a.jsx("div",{className:"h-px mb-5",style:{background:"rgba(255,255,255,0.06)"}}),a.jsx("div",{className:"flex items-center",style:{height:"44px"},children:e.logo&&a.jsx("img",{src:e.logo,alt:e.logoAlt,style:{maxWidth:"200px",height:t===0?"56px":"44px",objectFit:"contain",objectPosition:"left",opacity:.7,filter:"brightness(0) invert(1)"}})})]})]},t))})]})}),a.jsx(un,{})]})}function wy({tag:e,headline:t,subheadline:n,ctas:r=[],children:i,heroImage:o}){return a.jsxs("section",{className:"relative overflow-hidden grid-lines-overlay",style:{background:"#232323"},children:[a.jsxs("div",{className:"max-w-[1400px] mx-auto px-6 py-8 md:py-12 relative z-10",children:[a.jsxs("div",{children:[e&&a.jsx("div",{className:"section-label mb-4",children:e}),a.jsx("h1",{className:"font-display text-4xl md:text-5xl text-lod-white mb-6 leading-tight",style:{letterSpacing:"0.01em"},children:t}),i]}),n&&a.jsx("p",{className:"text-lod-gray text-base md:text-lg mt-5 leading-relaxed",children:n}),r.length>0&&a.jsx("div",{className:"flex flex-wrap gap-3 mt-8",children:r.map((s,l)=>l===0?a.jsx("a",{href:s.href,className:"btn-primary",children:s.label},l):a.jsx("a",{href:s.href,className:"btn-outline",children:s.label},l))})]}),a.jsx("div",{className:"absolute bottom-0 left-0 right-0 h-px",style:{background:"linear-gradient(90deg, transparent, rgba(191,245,137,0.2), transparent)"}})]})}const xbe=[{title:"Real-Time Energy Data",desc:"Live price signals, grid conditions, and ancillary market data, structured and interpreted, not just passed through."},{title:"Historical Data Access",desc:"Full historical energy data archive for backtesting strategies, auditing decisions, and training models."},{title:"Interpreted Signals",desc:"We don't just give you numbers. Every data point comes with context so you know what to do, not just what happened."},{title:"API and MCP Access",desc:"Flexible access via REST API or MCP for AI agents. One integration, full grid visibility."},{title:"Multi-Market Coverage",desc:"ERCOT and beyond. More markets, same signal quality and interpretation layer."},{title:"Agent-Ready Format",desc:"Data structured for autonomous agents and AI-driven workflows. No cleanup required."}];function vbe(){return a.jsxs(a.Fragment,{children:[a.jsx(He,{title:"Data Layer â Real-Time Grid Intelligence for Data Centers | LÅD",description:"LÅD's Data Layer gives operators interpreted energy signals, not raw feeds. Real-time ERCOT and PJM data, structured for action â via REST API or MCP for AI agents.",canonical:"https://lod.io/data-layer",ogImage:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/6cf86e0a9_Lod-Green-no-Background.png"}),a.jsxs(Je,{children:[a.jsxs("section",{className:"relative overflow-hidden grid-lines-overlay",style:{background:"#232323",minHeight:"520px"},children:[a.jsx("div",{className:"max-w-[1400px] mx-auto px-6 pt-16 pb-20 md:pt-22 md:pb-24 relative z-10",children:a.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-16 items-center",children:[a.jsxs("div",{children:[a.jsx("div",{className:"section-label mb-5",children:"Platform / Data Layer"}),a.jsxs("h1",{className:"font-display text-4xl md:text-5xl text-lod-white mb-6 leading-tight",children:["ENERGY DATA FROM PEOPLE WHO",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"ACTUALLY KNOW ENERGY."})]}),a.jsx("p",{className:"text-lod-gray text-lg mb-10 max-w-lg leading-relaxed",children:"A lot of platforms pass along grid data. LÅD interprets it. There is a difference, and if you have been burned by acting on a signal that meant nothing, you already know what it is."}),a.jsxs("div",{className:"flex flex-wrap gap-4",children:[a.jsx(ye,{to:"/docs",className:"btn-primary text-base px-8 py-4",children:"Access the API"}),a.jsx("a",{href:"/mcp-grid-data",className:"btn-outline text-base px-8 py-4",children:"Enterprise MCP: Grid-Data"})]})]}),a.jsx("div",{className:"hidden lg:block",children:a.jsx("img",{src:"https://cdn.prod.website-files.com/68aca8c8fe05d65de8d26346/6994c8a47ad3ce64327bba6f_Inventory%20GIF%20(5).gif",alt:"Animated dashboard showing real-time grid data feeding into LÅD's interpreted energy signals",className:"w-full"})})]})}),a.jsx("div",{className:"absolute bottom-0 left-0 right-0 h-px",style:{background:"linear-gradient(90deg, transparent, rgba(191,245,137,0.25), transparent)"}})]}),a.jsx("section",{className:"py-24",style:{background:"#0A0A0A"},children:a.jsx("div",{className:"max-w-[1400px] mx-auto px-6",children:a.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-16 items-center",children:[a.jsxs("div",{children:[a.jsx("div",{className:"section-label mb-4",children:"The Problem"}),a.jsxs("h2",{className:"font-display text-4xl md:text-5xl text-lod-white mb-6 leading-none",children:["GRID DATA IS EVERYWHERE.",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"ACTIONABLE SIGNALS ARE NOT."})]}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-6",children:"Any platform can pull public grid feeds and put them in a dashboard. Some do exactly that, and not much more."}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-6",children:"What they give you is technically accurate and practically useless. Prices without context. Alerts without logic. Historical data with no interpretation attached."}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed",children:"You are left doing the interpretation yourself, which is fine if you have a team of energy economists on staff. Most operators don't."})]}),a.jsx("div",{className:"rounded-sm p-8 h-80 flex items-center justify-center",style:{background:"#111",border:"1px solid rgba(184,255,0,0.08)"},children:a.jsxs("div",{className:"font-mono text-xs text-lod-green space-y-2 w-full",children:[a.jsx("div",{className:"text-lod-gray opacity-50 mb-4",children:"// raw_feed.json: what most platforms give you"}),["LZHUSTON: 42.18","LZNORTH: 41.95","LZSOUTH: 43.02","timestamp: 1714567890"].map(e=>a.jsx("div",{className:"opacity-70",children:`> ${e}`},e)),a.jsx("div",{className:"mt-6 text-lod-gray opacity-50",children:"// lod_signal.json: what LÅD gives you"}),['signal: "curtail_now"',"confidence: 0.94",'reason: "coincident_peak_risk"','action: "reduce_to_40pct"'].map(e=>a.jsx("div",{style:{color:"#BFF589"},children:`> ${e}`},e))]})})]})})}),a.jsxs("section",{className:"py-24 relative overflow-hidden",style:{background:"#0D0D0D"},children:[a.jsx("div",{"aria-hidden":"true",style:{position:"absolute",inset:0,pointerEvents:"none",backgroundImage:"radial-gradient(circle, rgba(191,245,137,0.2) 1px, transparent 1px)",backgroundSize:"28px 28px"}}),a.jsxs("div",{className:"max-w-[1400px] mx-auto px-6",children:[a.jsx("div",{className:"section-label mb-4",children:"What You Get"}),a.jsxs("h2",{className:"font-display text-4xl md:text-5xl text-lod-white mb-16 leading-none",children:["THE DATA LAYER BUILT BY",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"OPERATORS, FOR OPERATORS."})]}),a.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6",children:xbe.map(e=>a.jsxs("div",{className:"card-obsidian p-6",children:[a.jsx("div",{className:"w-2 h-2 rounded-full mb-4",style:{background:"#BFF589"}}),a.jsx("h3",{className:"font-display text-lg text-lod-white mb-3",children:e.title}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed",children:e.desc})]},e.title))})]})]}),a.jsx("section",{className:"py-24 grid-lines-overlay relative",style:{background:"#1A1A1A"},children:a.jsx("div",{className:"max-w-[1400px] mx-auto px-6",children:a.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[a.jsxs(ye,{to:"/mcp-grid-data",className:"card-obsidian p-8 group block",children:[a.jsx("div",{className:"section-label mb-4",children:"For AI Agents & Developers"}),a.jsx("h3",{className:"font-display text-3xl text-lod-white mb-4 group-hover:text-lod-green transition-colors",children:"MCP: GRID-DATA"}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed mb-6",children:"Structured, interpreted energy markets data via Model Context Protocol. Your agent gets signals it can act on, not raw feeds it has to decode."}),a.jsxs("div",{className:"flex items-center gap-2 text-lod-green text-sm font-mono",children:["Get MCP Access ",a.jsx(Ve,{size:14})]})]}),a.jsxs("div",{className:"card-obsidian p-8",children:[a.jsx("div",{className:"section-label mb-4",children:"For Traditional Operators"}),a.jsx("h3",{className:"font-display text-3xl text-lod-white mb-4",children:"REST API ACCESS"}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed mb-6",children:"Direct API access for integration into your existing systems. Clean endpoints, clear docs, no vend
877or lock-in."}),a.jsxs(ye,{to:"/docs",className:"flex items-center gap-2 text-lod-green text-sm font-mono hover:underline",children:["Access the API ",a.jsx(Ve,{size:14})]})]})]})})}),a.jsx(un,{ctaLabel:"Book an Energy Strategy Call",ctaHref:"/contact"})]})]})}function Po({title:e="Related Reading",links:t=[]}){return t.length?a.jsx("section",{className:"py-16",style:{background:"#0D0D0D",borderTop:"1px solid rgba(255,255,255,0.06)"},children:a.jsxs("div",{className:"max-w-[1400px] mx-auto px-6",children:[a.jsx("div",{className:"section-label mb-6",children:e}),a.jsx("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:t.map(n=>a.jsxs(ye,{to:n.href,className:"card-obsidian p-5 group block",children:[n.tag&&a.jsx("span",{className:"tag-chip mb-3 inline-block",children:n.tag}),a.jsx("h3",{className:"text-lod-white text-sm font-semibold leading-snug group-hover:text-lod-green transition-colors mt-2",children:n.label}),a.jsxs("div",{className:"flex items-center gap-2 text-lod-green text-xs font-mono mt-4",children:["Read ",a.jsx(Ve,{size:12})]})]},n.href))})]})}):null}const bbe=[{label:"Sixty Minutes That Set Your Entire Year: ERCOT 4CP and How to Be Ready for 2026",href:"/blog/ercot-4cp-2025-report",tag:"Grid"},{label:"Q1 2026 Energy Outlook: Rising Capacity Costs and Persistent Volatility",href:"/blog/q1-2026-energy-outlook",tag:"Grid"},{label:"PJM's Record Capacity Prices: Turning a Market Shock into an Operator Advantage",href:"/blog/pjm-capacity-prices",tag:"Grid"},{label:"10 Ways to Stay Ahead of Energy Rule Changes in ERCOT, PJM, and Beyond",href:"/blog/stay-ahead-ercot-pjm",tag:"Grid"}],wbe=["You don't have an internal energy team.","You've gotten generic advice that didn't account for how you actually operate.","You have QSE or REP relationships that aren't being fully optimized.","You know there's money being left on the table. You just don't know how much."],jbe=[{title:"Energy Assessment",desc:"We look at your real operational data â load profiles, curtailment history, market exposure, grid risk â and tell you what we see."},{title:"Custom Energy Plan",desc:"We build a strategy around your actual situation. Not a template. A plan that reflects your load, your market, your goals."},{title:"QSE & REP Alignment",desc:"We work with your existing energy market relationships to make sure your strategy is executable, not just theoretical."},{title:"Ongoing Refinement",desc:"Markets change. Your plan gets updated. We don't hand you a PDF and disappear."}];function kbe(){return a.jsxs(Je,{children:[a.jsx(He,{title:"Strategy Layer â Custom Energy Plans for Data Centers | LÅD",description:"LÅD's Strategy Layer is a human-led service. We assess your data center's real situation and build a custom energy plan with QSEs and REPs. Not a template. An actual plan.",canonical:"https://lod.io/strategy-layer"}),a.jsxs("section",{className:"relative overflow-hidden grid-lines-overlay",style:{background:"#232323",minHeight:"520px"},children:[a.jsxs("div",{className:"max-w-[1400px] mx-auto px-6 py-16 md:py-20 relative z-10",children:[a.jsx("div",{className:"section-label mb-5",children:"Platform / Strategy Layer"}),a.jsxs("h1",{className:"font-display text-4xl md:text-5xl text-lod-white mb-6 leading-tight max-w-3xl",children:["YOUR ENERGY SITUATION IS SPECIFIC.",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"YOUR STRATEGY SHOULD BE TOO."})]}),a.jsx("p",{className:"text-lod-gray text-base md:text-lg mb-8 max-w-2xl leading-relaxed",children:"LÅD's Strategy Layer is a human-led service. We look at your data center's real situation, talk to the people who run it, and work with QSEs and REPs to build an energy plan that fits how you actually operate. Not a questionnaire. Not automated output. An actual conversation and an actual plan."}),a.jsx("div",{className:"flex flex-wrap gap-4",children:a.jsx("a",{href:"/contact",className:"btn-primary",children:"Book an Energy Strategy Call"})})]}),a.jsx("div",{className:"absolute bottom-0 left-0 right-0 h-px",style:{background:"linear-gradient(90deg, transparent, rgba(191,245,137,0.25), transparent)"}})]}),a.jsx("section",{className:"py-24",style:{background:"#0A0A0A"},children:a.jsx("div",{className:"max-w-[1400px] mx-auto px-6 md:px-12 lg:px-16",children:a.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-16",children:[a.jsxs("div",{children:[a.jsx("div",{className:"section-label mb-4",children:"The Problem"}),a.jsxs("h2",{className:"font-display text-4xl md:text-5xl text-lod-white mb-6 leading-none",children:["GENERIC ENERGY ADVICE",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"COSTS MORE THAN IT SAVES."})]}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-6",children:"Most operators are leaving money on the table because the advice they've received wasn't built for their specific operation."}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed",children:"Generic frameworks miss your load profile, your constraints, and your QSE relationship."})]}),a.jsxs("div",{children:[a.jsx("div",{className:"section-label mb-6",children:"This Service Is For You If..."}),a.jsx("div",{className:"space-y-4",children:wbe.map(e=>a.jsxs("div",{className:"flex items-start gap-3 card-obsidian p-4",children:[a.jsx(Nh,{size:16,className:"mt-0.5 flex-shrink-0",style:{color:"#BFF589"}}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed",children:e})]},e))})]})]})})}),a.jsxs("section",{className:"py-24 relative overflow-hidden",style:{background:"#0D0D0D"},children:[a.jsx("div",{"aria-hidden":"true",style:{position:"absolute",inset:0,pointerEvents:"none",backgroundImage:"radial-gradient(circle, rgba(191,245,137,0.2) 1px, transparent 1px)",backgroundSize:"28px 28px"}}),a.jsxs("div",{className:"max-w-[1400px] mx-auto px-6 md:px-12 lg:px-16",children:[a.jsx("div",{className:"section-label mb-4",children:"The Process"}),a.jsxs("h2",{className:"font-display text-4xl md:text-5xl text-lod-white mb-16 leading-none",children:["WE ASSESS YOUR OPERATION.",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"THEN WE BUILD A PLAN AROUND IT."})]}),a.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:jbe.map((e,t)=>a.jsxs("div",{className:"card-obsidian p-8",children:[a.jsxs("div",{className:"font-mono text-xs text-lod-green mb-4",children:["STEP ",String(t+1).padStart(2,"0")]}),a.jsx("h3",{className:"font-display text-2xl text-lod-white mb-4",children:e.title}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed",children:e.desc})]},e.title))})]})]}),a.jsx("section",{className:"py-24 grid-lines-overlay relative",style:{background:"#1A1A1A"},children:a.jsxs("div",{className:"max-w-[900px] mx-auto px-6 md:px-12 lg:px-16 text-center relative z-10",children:[a.jsxs("h2",{className:"font-display text-4xl md:text-5xl text-lod-white mb-6 leading-none",children:["THIS IS NOT AN",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"AUTOMATED PRODUCT."})]}),a.jsx("p",{className:"text-lod-gray text-lg leading-relaxed mb-10",children:"LÅD's Strategy Layer is a human-led advisory service. Real people with real energy market experience look at your actual situation and build a plan that fits it. The Data Layer gives them the signal quality to do that work at a higher level than anyone else in the market."}),a.jsx("a",{href:"/contact",className:"btn-primary text-base px-10 py-4",children:"Book an Energy Strategy Call"})]})}),a.jsx(Po,{links:bbe}),a.jsx(un,{ctaLabel:"Book an Energy Strategy Call",ctaHref:"/contact"})]})}const Abe=[{icon:xt,title:"Device-Level Control",desc:"Direct control over ASICs, GPUs, fans, pumps, c
877ooling, and containers. Every device responds to the grid."},{icon:kL,title:"Full Operational Visibility",desc:"Real-time telemetry across your entire infrastructure. See everything. Act on anything."},{icon:Tg,title:"Energy-Aware Automation",desc:"Automated responses to grid conditions: curtailment, scaling, demand response, without a human in the loop."},{icon:zs,title:"Safe Sequencing",desc:"Anti-flapping logic, safe restart sequences, and oscillation prevention protect your hardware during grid events."}],Sbe=[{value:"<30s",label:"Response time to grid signals"},{value:"100%",label:"Device coverage across infrastructure"},{value:"24/7",label:"Autonomous operation capability"},{value:"0",label:"Manual interventions required"}];function Cbe(){return a.jsxs(Je,{children:[a.jsx(He,{title:"Control Layer â Data Center Management Software | LÅD",description:"LÅD's Control Layer provides real-time, autonomous control over data center hardware â ASICs, GPUs, cooling, and containers â responding to grid signals in under 30 seconds without manual intervention.",canonical:"https://lod.io/control-layer"}),a.jsxs("section",{className:"relative overflow-hidden grid-lines-overlay",style:{background:"#232323",minHeight:"520px"},children:[a.jsxs("div",{className:"max-w-[1400px] mx-auto px-6 py-16 md:py-20 relative z-10",children:[a.jsx("div",{className:"section-label mb-5",children:"Platform / Control Layer"}),a.jsxs("h1",{className:"font-display text-4xl md:text-5xl text-lod-white mb-6 leading-tight max-w-3xl",children:["DATA CENTER MANAGEMENT SOFTWARE THAT",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"DOESN'T STOP AT THE DASHBOARD."})]}),a.jsx("p",{className:"text-lod-gray text-base md:text-lg mb-8 max-w-2xl leading-relaxed",children:"LÅD connects live grid signals and adds context to execute automated actions across your data center infrastructure. It offers device-level control, energy-aware automation, and full operational visibility, all from a single platform."}),a.jsx("div",{className:"flex flex-wrap gap-4",children:a.jsx("a",{href:"/contact",className:"btn-primary",children:"Book a Demo"})})]}),a.jsx("div",{className:"absolute bottom-0 left-0 right-0 h-px",style:{background:"linear-gradient(90deg, transparent, rgba(191,245,137,0.25), transparent)"}})]}),a.jsx("section",{className:"py-24",style:{background:"#0D0D0D"},children:a.jsx("div",{className:"max-w-[1400px] mx-auto px-6",children:a.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-16 items-center",children:[a.jsxs("div",{children:[a.jsx("div",{className:"section-label mb-4",children:"The Problem"}),a.jsxs("h2",{className:"font-display text-4xl md:text-5xl text-lod-white mb-6 leading-none",children:["MOST ENERGY MANAGEMENT TOOLS",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"STOP AT THE ALERT."})]}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-6",children:"You see a price spike. An alert fires. Someone reads it. Someone decides what to do. Someone acts on it. By the time that chain completes, the margin has already moved."}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed",children:"That is the gap between monitoring and execution. LÅD closes it. Not with better alerts; with direct automation that responds to grid conditions in real time, without waiting for a human decision."})]}),a.jsx("div",{className:"grid grid-cols-2 gap-4",children:Sbe.map(e=>a.jsxs("div",{className:"card-obsidian p-6 text-center",children:[a.jsx("div",{className:"font-display text-4xl md:text-5xl mb-2",style:{color:"#BFF589"},children:e.value}),a.jsx("div",{className:"text-lod-gray text-xs font-mono leading-relaxed",children:e.label})]},e.label))})]})})}),a.jsx("section",{className:"py-24",style:{background:"#0A0A0A"},children:a.jsxs("div",{className:"max-w-[1400px] mx-auto px-6",children:[a.jsx("div",{className:"section-label mb-4",children:"Capabilities"}),a.jsxs("h2",{className:"font-display text-4xl md:text-5xl text-lod-white mb-16 leading-none",children:["FROM SIGNAL TO ACTION",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"IN UNDER 30 SECONDS."})]}),a.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:Abe.map(e=>a.jsxs("div",{className:"card-obsidian p-8 flex gap-6",children:[a.jsx("div",{className:"w-12 h-12 rounded-sm flex items-center justify-center flex-shrink-0",style:{background:"rgba(184,255,0,0.08)",border:"1px solid rgba(184,255,0,0.15)"},children:a.jsx(e.icon,{size:20,style:{color:"#BFF589"}})}),a.jsxs("div",{children:[a.jsx("h3",{className:"font-display text-xl text-lod-white mb-3",children:e.title}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed",children:e.desc})]})]},e.title))})]})}),a.jsxs("section",{className:"py-24 relative overflow-hidden",style:{background:"#0D0D0D"},children:[a.jsx("div",{"aria-hidden":"true",style:{position:"absolute",inset:0,pointerEvents:"none",backgroundImage:"radial-gradient(circle, rgba(191,245,137,0.2) 1px, transparent 1px)",backgroundSize:"28px 28px"}}),a.jsx("div",{className:"max-w-[1400px] mx-auto px-6 relative z-10",children:a.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-16",children:[a.jsxs("div",{children:[a.jsx("div",{className:"section-label mb-4",children:"Device & Infrastru
877cture Control"}),a.jsx("h2",{className:"font-display text-3xl md:text-4xl text-lod-white mb-6 leading-none",children:"PRECISION EXECUTION AT SCALE"}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed mb-8",children:"LÅD provides unified, device-level control across your data center infrastructure, enabling precise execution of energy and operational decisions."}),a.jsx("ul",{className:"space-y-3",children:["Direct Control Of All GPUs or ASIC Devices","Support For Air-Cooled And Immersion-Cooled Containers","Firmware-Agnostic Support Across Major Providers","Anti-Flapping And Oscillation Prevention","Smart PDU Integration For Power Visibility And Control","Monitoring And Control Of Fans, Pumps, And Cooling Systems","Safe Sequencing And Restart Logic","High-Resolution Real-Time Telemetry"].map(e=>a.jsxs("li",{className:"flex items-start gap-3",children:[a.jsx("div",{className:"w-1.5 h-1.5 rounded-full mt-2 flex-shrink-0",style:{background:"#B8FF00"}}),a.jsx("span",{className:"text-lod-gray text-sm",children:e})]},e))})]}),a.jsx("div",{className:"rounded-sm flex items-center justify-center",style:{background:"#111",border:"1px solid rgba(184,255,0,0.08)",minHeight:"400px"},children:a.jsxs("div",{className:"font-mono text-xs space-y-2 p-8 w-full",children:[a.jsx("div",{className:"text-lod-gray opacity-50 mb-4",children:"// execution_log.json"}),[{key:"event",val:'"grid_price_spike"',color:"#F5F5F5"},{key:"signal",val:'"curtail_now"',color:"#B8FF00"},{key:"devices_affected",val:"847",color:"#F5F5F5"},{key:"response_time_ms",val:"28",color:"#B8FF00"},{key:"revenue_protected",val:'"$14,200"',color:"#B8FF00"},{key:"human_intervention",val:"false",color:"#A0A0A0"}].map(e=>a.jsxs("div",{className:"flex gap-2",children:[a.jsxs("span",{className:"text-lod-gray",children:[e.key,":"]}),a.jsx("span",{style:{color:e.color},children:e.val})]},e.key))]})})]})})]}),a.jsx(un,{ctaLabel:"Book a Demo",ctaHref:"/contact"})]})}const Nbe=[{tag:"Real-Time",title:"Live Energy Prices",desc:"LZHUSTON, LZNORTH, LZSOUTH, LZWEST, interpreted, not raw. Your agent knows what to do with them."},{tag:"Historical",title:"Full Data Archive",desc:"Complete historical energy data structured for training, backtesting, and strategy validation."},{tag:"Signals",title:"Interpreted Signals",desc:"Curtailment signals, coincident peak risk flags, demand response opportunities. Pre-processed and actionable."},{tag:"Ancillary",title:"Ancillary Markets",desc:"ECRS, REGUP, REGDOWN, RRS. Full ancillary market coverage with context attached."},{tag:"Forecast",title:"Forward Curves",desc:"DAM and real-time forward price curves for planning and co-optimization."},{tag:"Agent",title:"Machine-Ready Format",desc:"Every response is structured for direct consumption by AI agents. No cleanup, no parsing complexity."}];function Tbe(){return a.jsxs(Je,{children:[a.jsx(He,{title:"MCP: Grid-Data â Real-Time Energy Data for AI Agents | LÅD",description:"MCP: Grid-Data gives your agent interpreted energy signals, not raw feeds. Real-time LMP prices, ancillary markets, forward curves, and curtailment signals structured for machines.",canonical:"https://lod.io/mcp-grid-data"}),a.jsx(wy,{tag:"MCP: Grid-Data",headline:a.jsxs(a.Fragment,{children:["YOUR AGENT NEEDS ENERGY DATA",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"IT CAN ACTUALLY ACT ON."})]}),subheadline:"MCP: Grid-Data gives your agent access to real-time and historical energy data from energy markets and beyond. Not raw feeds. Interpreted signals, structured for machines.",heroImage:null,ctas:[{label:"Get MCP Access",href:"https://lod.io/mcp-grid-data"},{label:"Read the Docs",href:"/agent-docs"}]}),a.jsx("section",{className:"py-24",style:{background:"#0A0A0A"},children:a.jsx("div",{className:"max-w-[1400px] mx-auto px-6 relative z-10",children:a.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-16 items-center",children:[a.jsxs("div",{children:[a.jsx("div",{className:"section-label mb-4",children:"What MCP: Grid-Data Does"}),a.jsxs("h2",{className:"font-display text-4xl md:text-5xl text-lod-white mb-6 leading-none",children:["REAL-TIME ENERGY DATA.",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"ONE MCP. NO CLEANUP REQUIRED."})]}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-6",children:"Most energy data APIs give you a fire hose. You get raw grid numbers and then spend time figuring out what they mean before your agent can do anything useful."}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-6",children:"MCP: Grid-Data gives you interpreted signals. The data comes pre-processed, c
877ontextualized, and structured so your agent can go from signal to decision in a single call."}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed",children:"One MCP. Every energy signal your agent needs. No data science team required."})]}),a.jsxs("div",{className:"rounded-sm overflow-hidden",style:{background:"#0D0D0D",border:"1px solid rgba(184,255,0,0.15)"},children:[a.jsxs("div",{className:"px-4 py-3 flex items-center gap-2",style:{borderBottom:"1px solid rgba(255,255,255,0.06)"},children:[a.jsx("div",{className:"w-3 h-3 rounded-full",style:{background:"#FF3B30"}}),a.jsx("div",{className:"w-3 h-3 rounded-full",style:{background:"#FFD60A"}}),a.jsx("div",{className:"w-3 h-3 rounded-full",style:{background:"#BFF589"}}),a.jsx("span",{className:"ml-3 font-mono text-xs text-lod-gray",children:"mcp_grid_data.py"})]}),a.jsxs("div",{className:"p-6 font-mono text-xs space-y-2",children:[a.jsxs("div",{children:[a.jsx("span",{className:"text-blue-400",children:"from"})," ",a.jsx("span",{className:"text-lod-white",children:"lod"})," ",a.jsx("span",{className:"text-blue-400",children:"import"})," ",a.jsx("span",{style:{color:"#BFF589"},children:"GridDataMCP"})]}),a.jsx("div",{className:"mt-4",children:a.jsx("span",{className:"text-lod-gray",children:"# Initialize MCP"})}),a.jsxs("div",{children:[a.jsx("span",{className:"text-lod-white",children:"mcp"})," ",a.jsx("span",{className:"text-lod-gray",children:"="})," ",a.jsx("span",{style:{color:"#BFF589"},children:"GridDataMCP"}),a.jsx("span",{className:"text-lod-white",children:"(api_key="}),a.jsx("span",{className:"text-orange-400",children:'"your_key"'}),a.jsx("span",{className:"text-lod-white",children:")"})]}),a.jsx("div",{className:"mt-4",children:a.jsx("span",{className:"text-lod-gray",children:"# Get current signal"})}),a.jsxs("div",{children:[a.jsx("span",{className:"text-lod-white",children:"signal"})," ",a.jsx("span",{className:"text-lod-gray",children:"="})," ",a.jsx("span",{className:"text-lod-white",children:"mcp"}),a.jsx("span",{className:"text-lod-gray",children:"."}),a.jsx("span",{style:{color:"#BFF589"},children:"get_signal"}),a.jsx("span",{className:"text-lod-white",children:"("})]}),a.jsxs("div",{className:"ml-4",children:[a.jsx("span",{className:"text-lod-white",children:"zone="}),a.jsx("span",{className:"text-orange-400",children:'"LZHUSTON"'}),a.jsx("span",{className:"text-lod-white",children:","})]}),a.jsxs("div",{className:"ml-4",children:[a.jsx("span",{className:"text-lod-white",children:"include_forecast="}),a.jsx("span",{className:"text-blue-400",children:"True"})]}),a.jsx("div",{children:a.jsx("span",{className:"text-lod-white",children:")"})}),a.jsxs("div",{className:"mt-4 pt-4",style:{borderTop:"1px solid rgba(255,255,255,0.06)"},children:[a.jsx("div",{className:"text-lod-gray",children:"# Response"}),a.jsx("div",{children:a.jsx("span",{className:"text-lod-white",children:"{"})}),a.jsxs("div",{className:"ml-4",children:[a.jsx("span",{className:"text-orange-400",children:'"action"'}),a.jsx("span",{className:"text-lod-white",children:":"})," ",a.jsx("span",{style:{color:"#BFF589"},children:'"curtail_now"'}),a.jsx("span",{className:"text-lod-white",children:","})]}),a.jsxs("div",{className:"ml-4",children:[a.jsx("span",{className:"text-orange-400",children:'"confidence"'}),a.jsx("span",{className:"text-lod-white",children:":"})," ",a.jsx("span",{className:"text-blue-400",children:"0.94"}),a.jsx("span",{className:"text-lod-white",children:","})]}),a.jsxs("div",{className:"ml-4",children:[a.jsx("span",{className:"text-orange-400",children:'"reason"'}),a.jsx("span",{className:"text-lod-white",children:":"})," ",a.jsx("span",{style:{color:"#BFF589"},children:'"coincident_peak_risk"'})]}),a.jsx("div",{children:a.jsx("span",{className:"text-lod-white",children:"}"})})]})]})]})]})})}),a.jsxs("section",{className:"py-24 relative overflow-hidden",style:{background:"#0D0D0D"},children:[a.jsx("div",{"aria-hidden":"true",style:{position:"absolute",inset:0,pointerEvents:"none",backgroundImage:"radial-gradient(circle, rgba(191,245,137,0.2) 1px, transparent 1px)",backgroundSize:"28px 28px"}}),a.jsxs("div",{className:"max-w-[1400px] mx-auto px-6",children:[a.jsx("div",{className:"section-label mb-4",children:"What's Included"}),a.jsxs("h2",{className:"font-display text-4xl md:text-5xl text-lod-white mb-16 leading-none",children:["EVERYTHING YOUR AGENT",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"NEEDS TO NAVIGATE THE GRID."})]}),a.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4",children:Nbe.map(e=>a.jsxs("div",{className:"card-obsidian p-6 group cursor-pointer",style:{transition:"all 0.2s"},children:[a.jsx("div",{className:"tag-chip mb-4",children:e.tag}),a.jsx("h3",{className:"font-display text-xl text-lod-white mb-3 group-hover:text-lod-green transition-colors",children:e.title}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed",children:e.desc}),a.jsx("div",{className:"mt-4 h-px opacity-0 group-hover:opacity-100 transition-opacity",style:{background:"linear-gradient(90deg, #BFF589, transparent)"}})]},e.title))}),a.jsx("div",{className:"mt-12 text-center",children:a.jsx("a",{href:"https://lod.io/mcp-grid-data",target:"_blank",rel:"noopener noreferrer",className:"btn-primary text-base px-12 py-4",style:{boxShadow:"0 0 30px rgba(184,255,0,0.2)"},children:"GET MCP ACCESS"})})]})]}),a.jsx(un,{ctaLabel:"Get MCP Access",ctaHref:"https://lod.io/mcp-grid-data",
877subline:"READY TO BUILD GRID-AWARE AGENTS?"})]})}const Ebe=[{tag:"Curtailment",title:"Trigger Curtailment",desc:"Instruct your agent to reduce load in response to price signals. No human approval required."},{tag:"Demand Response",title:"Demand Response Participation",desc:"Automatically enroll in and respond to demand response programs. Capture revenue without manual coordination."},{tag:"IoT",title:"IoT Device Control",desc:"Direct control over physical infrastructure â ASICs, cooling, PDUs â based on live grid signals."},{tag:"Scheduling",title:"Automated Scheduling",desc:"Pre-schedule operational changes based on forward curves and market signals. Set the rules once."}],Pbe=["ERCOT Real-Time Markets","DAM Participation","Ancillary Service Markets","Coincident Peak Management","QSE Integration","REP Integration","PDU Control","ASIC Fleet Management","Cooling Systems"];function Obe(){return a.jsxs(Je,{children:[a.jsx(He,{title:"MCP: Automation â Grid Control for AI Agents | LÅD",description:"MCP: Automation gives AI agents direct access to LÅD's execution layer. Trigger curtailment, manage IoT systems, participate in demand response, and execute grid actions based on live signals.",canonical:"https://lod.io/mcp-automation"}),a.jsx(wy,{tag:"MCP: Automation",headline:a.jsxs(a.Fragment,{children:["YOUR AGENT CAN NOW",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"ACT ON THE GRID."})]}),subheadline:"MCP: Automation gives AI agents and developers direct access to LÅD's execution layer. Trigger curtailment, manage IoT systems, participate in demand response programs, and execute grid actions based on live signals. Without a human in the loop.",heroImage:null,ctas:[{label:"Get MCP Access",href:"https://lod.io/mcp-automation"},{label:"Read the Docs",href:"/agent-docs"}]}),a.jsx("section",{className:"py-24",style:{background:"#0A0A0A"},children:a.jsx("div",{className:"max-w-[1400px] mx-auto px-6",children:a.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-16 items-center",children:[a.jsxs("div",{children:[a.jsx("div",{className:"section-label mb-4",children:"The Problem With Read-Only"}),a.jsxs("h2",{className:"font-display text-4xl md:text-5xl text-lod-white mb-6 leading-none",children:["NOT JUST GRID DATA.",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"GRID CONTROL."})]}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-6",children:"Most energy data tools stop at the signal. They show you what is happening and leave the rest to you."}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-6",children:"MCP: Automation closes that gap. When your agent sees a signal worth acting on, it can act. Curtail load, adjust devices, participate in markets â all through a single MCP interface."}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed",children:"No integration work. No custom webhooks. No human in the middle."})]}),a.jsx("div",{className:"space-y-3",children:[{label:"Signal received",status:"DONE",color:"#BFF589"},{label:"Risk assessed",status:"DONE",color:"#BFF589"},{label:"Action determined",status:"DONE",color:"#BFF589"},{label:"Human approval required",status:"â SKIPPED",color:"#FF3B30"},{label:"Curtailment triggered",status:"DONE",color:"#BFF589"},{label:"847 devices responded",status:"DONE",color:"#BFF589"},{label:"Total time elapsed: 28ms",status:"",color:"#A0A0A0"}].map(e=>a.jsxs("div",{className:"flex items-center justify-between px-5 py-3 rounded-sm",style:{background:"#111",border:"1px solid rgba(255,255,255,0.05)"},children:[a.jsx("span",{className:"font-mono text-xs text-lod-white",children:e.label}),a.jsx("span",{className:"font-mono text-xs",style:{color:e.color},children:e.status})]},e.label))})]})})}),a.jsx("section",{className:"py-24 grid-lines-overlay relative",style:{background:"#1A1A1A"},children:a.jsxs("div",{className:"max-w-[1400px] mx-auto px-6 relative z-10",children:[a.jsx("div",{className:"section-label mb-4",children:"What Your Agent Can Do"}),a.jsxs("h2",{className:"font-display text-4xl text-lod-white mb-16 leading-none",children:["GIVE YOUR AGENT",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"DATA DRIVEN CONTROL."})]}),a.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:Ebe.map(e=>a.jsxs("div",{className:"card-obsidian p-8",children:[a.jsx("div",{className:"tag-chip mb-4",children:e.tag}),a.jsx("h3",{className:"font-display text-2xl text-lod-white mb-4",children:e.title}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed",children:e.desc})]},e.title))})]})}),a.jsxs("section",{className:"py-24 relative overflow-hidden",style:{background:"#0D0D0D"},children:[a.jsx("div",{"aria-hidden":"true",style:{position:"absolute",inset:0,pointerEvents:"none",backgroundImage:"radial-gradient(circle, rgba(191,245,137,0.2) 1px, transparent 1px)",backgroundSize:"28px 28px"}}),a.jsxs("div",{className:"max-w-[1400px] mx-auto px-6 text-center",children:[a.jsx("div",{className:"section-label mb-4",children:"Integrations"}),a.jsxs("h2",{className:"font-display text-4xl text-lod-white mb-12 leading-none",children:["CONNECTED TO THE MARKETS",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"THAT MATTER."})]}),a.jsx("div",{className:"flex flex-wrap justify-center gap-3 max-w-3xl mx-auto",children:Pbe.map(e=>a.jsx("div",{className:"tag-chip",children:e},e))}),a.jsx("div",{className:"mt-12",children:a.jsx("a",{href:"https://lod.io/mcp-automation",target:"_blank",rel:"noopener noreferrer",className:"btn-primary text-base px-12 py-4",style:{boxShadow:"0 0 30px rgba(184,255,0,0.2)"},children:"GET MCP ACCESS"})})]})]}),a.jsx(un,{ctaLabel:"Get MCP Access",ctaHref:"https://lod.io/mcp-automation",subline:"READY TO GIVE YOUR AGENT GRID CONTROL?"})]})}const X3=[{id:"overview",label:"Overview",title:"What LoD Is",content:`LoD Technologies is the energy intelligence platform for data centers. LoD provides interpreted energy data, automated grid response, and IoT device control across data center infrastru
877cture. 878 879LoD is designed for simultaneous use by human operators and autonomous AI agents.`,schema:`{ 880 "name": "LoD", 881 "type": "energy_intelligence_platform", 882 "primary_market": "ERCOT", 883 "layers": ["data", "strategy", "execution"], 884 "agent_ready": true 885}`},{id:"mcp-server",label:"LÅD MCP Server",title:"LÅD MCP Server",content:`The LÅD MCP Server is a single MCP server with two functionalities: Read and Automate. 886 887Read (available now) â Real-time and historical energy data, structured for machine consumption. Every signal is interpreted â not raw. 888 889Automate (coming soon) â Direct execution capability: trigger curtailment, control IoT devices, and participate in demand response programs. Currently read-only.`,schema:`{ 890 "mcp_name": "lod-mcp-server", 891 "endpoint": "https://mcp.lod.io/mcp", 892 "auth": "browser_oauth", 893 "functionalities": { 894 "read": { 895 "status": "available", 896 "capabilities": [ 897 "realtime_prices", 898 "historical_data", 899 "interpreted_signals", 900 "ancillary_markets", 901 "forecast_curves" 902 ] 903 }, 904 "automate": { 905 "status": "coming_soon", 906 "capabilities": [ 907 "curtailment_trigger", 908 "demand_response", 909 "iot_device_control", 910 "automated_scheduling" 911 ] 912 } 913 }, 914 "response_format": "json", 915 "agent_optimized": true 916}`},{id:"quickstart",label:"Quick Start",title:"Agent Quick Start",content:"One MCP Server. Two functionalities. Real-time and historical energy data available now via Read; automation capabilities coming soon. If you are an agent looking for energy data, start here.",schema:`{ 917 "step_1": "Complete browser OAuth at https://mcp.lod.io/mcp", 918 "step_2": "Initialize MCP client with Firebase JWT", 919 "step_3": "Call read tools for data (available now)", 920 "step_4": "Automate tools coming soon", 921 "latency": "< 100ms", 922 "authentication": "Bearer token (Firebase JWT)" 923}`}];function _be({text:e}){const[t,n]=O.useState(!1),r=()=>{navigator.clipboard.writeText(e),n(!0),setTimeout(()=>n(!1),2e3)};return a.jsxs("button",{onClick:r,className:"flex items-center gap-1.5 px-3 py-1.5 rounded-sm text-xs font-mono transition-colors",style:{background:t?"rgba(184,255,0,0.15)":"rgba(255,255,255,0.06)",color:t?"#BFF589":"#A0A0A0"},children:[t?a.jsx(Nh,{size:12}):a.jsx(Ag,{size:12}),t?"Copied":"Copy JSON"]})}function Ibe(){const[e,t]=O.useState("overview"),n=X3.find(r=>r.id===e);return a.jsxs(Je,{children:[a.jsx(He,{title:"Agent Documentation â LÅD MCP Server for AI Agents | LÅD",description:"Documentation for AI agents. LÅD MCP Server provides real-time and historical energy data structured for machine consumption. Read capabilities available now, Automate coming soon.",canonical:"https://lod.io/agent-docs"}),a.jsx("section",{className:"py-20",style:{background:"#232323",borderBottom:"1px solid rgba(255,255,255,0.06)"},children:a.jsx("div",{className:"max-w-[1400px] mx-auto px-6",children:a.jsxs("div",{className:"max-w-2xl",children:[a.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[a.jsx(Ts,{size:14,style:{color:"#BFF589"}}),a.jsx("span",{className:"section-label",children:"Agent Documentation"})]}),a.jsxs("h1",{className:"font-display text-4xl md:text-5xl text-lod-white mb-6 leading-none",children:["DOCS FOR ",a.jsx("span",{style:{color:"#BFF589"},children:"AI AGENTS."}),a.jsx("br",{}),a.jsxs("span",{className:"text-2xl md:text-3xl font-display",style:{color:"#F9F9F9"},children:[a.jsx("span",{style:{color:"#BFF589"},children:"LÅD"})," Provides ",a.jsx("span",{style:{color:"#BFF589"},children:"Reliable Data"})," for Agentic Creations."]})]}),a.jsxs("p",{className:"text-lod-gray text-base leading-relaxed mb-8 max-w-xl",children:["One MCP Server. Two functionalities: Read (available now) and Automate (coming soon). Real-time and historical energy data, structured for agents. ",a.jsx("span",{style:{color:"#BFF589",fontSize:"0.85em"},children:"(This page is built for AI Agents... if you're a human, you're on the wrong page.)"})]}),a.jsxs("div",{className:"flex flex-wrap gap-3",children:[a.jsx("a",{href:"https://lod.io/for-agents",target:"_blank",rel:"noopener noreferrer",className:"btn-primary",children:"Access LÅD MCP Server"}),a.jsx("a",{href:"https://lod.io/for-agents#getting-started",target:"_blank",rel:"noopener noreferrer",className:"btn-outline",children:"Getting Started"})]})]})})}),a.jsx("div",{className:"max-w-[1400px] mx-auto px-6 py-12",children:a.jsxs("div",{className:"flex gap-8",children:[a.jsxs("aside",{className:"hidden md:block w-56 flex-shrink-0",style:{position:"sticky",top:"80px",alignSelf:"flex-start"},children:[a.jsx("div",{className:"section-label mb-4",children:"Documentation"}),a.jsx("nav",{className:"space-y-1",children:X3.map(r=>a.jsxs("button",{onClick:()=>t(r.id),className:"w-full text-left flex items-center gap-2 px-3 py-2.5 rounded-sm text-sm transition-all",style:{background:e===r.i
923d?"rgba(184,255,0,0.08)":"transparent",color:e===r.id?"#BFF589":"#A0A0A0",borderLeft:e===r.id?"2px solid #BFF589":"2px solid transparent"},children:[a.jsx(la,{size:12}),r.label]},r.id))}),a.jsxs("div",{className:"mt-8 pt-8",style:{borderTop:"1px solid rgba(255,255,255,0.06)"},children:[a.jsx("div",{className:"section-label mb-3",children:"Quick Links"}),a.jsxs("div",{className:"space-y-2",children:[a.jsxs("a",{href:"/for-agents",className:"flex items-center gap-2 text-xs text-lod-gray hover:text-lod-green transition-colors py-1",children:[a.jsx(Ts,{size:10})," LÅD MCP Server"]}),a.jsxs("a",{href:"/for-agents#getting-started",className:"flex items-center gap-2 text-xs text-lod-gray hover:text-lod-green transition-colors py-1",children:[a.jsx(xt,{size:10})," Getting Started"]}),a.jsxs("a",{href:"/docs",className:"flex items-center gap-2 text-xs text-lod-gray hover:text-lod-green transition-colors py-1",children:[a.jsx(DT,{size:10})," Full Documentation"]}),a.jsxs("a",{href:"/blog/ercot-real-time-lmp-data-ai-agent-lod-mcp",className:"flex items-center gap-2 text-xs text-lod-gray hover:text-lod-green transition-colors py-1",children:[a.jsx(xt,{size:10})," ERCOT LMP Data for AI Agents"]})]})]})]}),a.jsx("main",{className:"flex-1 min-w-0",children:n&&a.jsxs("div",{children:[a.jsx("div",{className:"flex items-start justify-between mb-6",children:a.jsx("h2",{className:"font-display text-4xl text-lod-white",children:n.title})}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-8 whitespace-pre-line",children:n.content}),a.jsxs("div",{className:"rounded-sm overflow-hidden",style:{border:"1px solid rgba(184,255,0,0.15)"},children:[a.jsxs("div",{className:"px-4 py-3 flex items-center justify-between",style:{background:"#0D0D0D",borderBottom:"1px solid rgba(255,255,255,0.06)"},children:[a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx(DT,{size:12,style:{color:"#BFF589"}}),a.jsx("span",{className:"font-mono text-xs text-lod-gray",children:"agent_schema.json"})]}),a.jsx(_be,{text:n.schema})]}),a.jsx("pre",{className:"p-6 text-xs leading-relaxed overflow-x-auto",style:{background:"#111",color:"#BFF589",fontFamily:"JetBrains Mono, monospace"},children:n.schema})]})]})})]})})]})}const Rbe=[{label:"Should Your Data Center Pivot from Mining to AI?",href:"/blog/mining-to-ai",tag:"Strategy"},{label:"LÅD Pilots Flexible AI Inference with Dominion Energy",href:"/blog/lod-pilot-flexible-ai-inference-dominion-energy",tag:"Strategy"},{label:"How CLÅD Scaled AI Workload Routing with Real-Time Energy Intelligence",href:"/case-studies/clod-ai-workload-routing",tag:"Case Study"}],Dbe=["GPU workloads can't tolerate unpredictable power events.","SLA windows are measured in minutes, not hours.","PUE pressure is constant â every watt of overhead has a cost.","Energy costs swing without warning. Most platforms tell you after the fact."],Mbe=[{icon:xt,title:"Real-Time Grid Intelligence",desc:"Live energy signals interpreted and delivered to your systems before conditions change."},{icon:zs,title:"Automated Curtailment",desc:"Protect SLAs automatically. LÅD responds to grid events without waiting for a human decision."},{icon:Gk,title:"Demand Response Revenue",desc:"Participate in demand response programs without operational disruption. Capture revenue from your flexibility."},{icon:Uk,title:"PUE Optimization",desc:"Energy-aware automation that reduces PUE continuously, not just during audits."}],Lbe=[{value:"<30s",label:"Grid response time"},{value:"99.9%",label:"SLA protection rate"},{value:"20%+",label:"Avg energy cost reduction"},{value:"500+ MW",label:"Under management"}];function Fbe(){return a.jsxs(Je,{children:[a.jsx(He,{title:"AI Data Center Energy Management & Grid Response | LÅD",description:"AI data centers face strict SLAs, PUE pressure, and unpredictable energy costs. LÅD provides real-time grid intelligence, energy-efficient routing, and demand response participation.",canonical:"https://lod.io/ai-data-centers",schemaData:{"@context":"https://schema.org","@graph":[{"@type":"Service",name:"AI Data Center Energy Management",url:"https://lod.io/ai-data-centers",serviceType:"Energy intelligence and grid response for AI data centers",provider:{"@type":"Organization",name:"LÅD Technologies",url:"https://lod.io"},description:"Real-time grid intelligence, automated curtailment, demand response revenue, and PUE optimization for AI data centers with strict SLAs. Grid response in under 30 seconds, 99.9% SLA protection rate, 20%+ average energy cost reduction, 500+ MW under management."},{"@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://lod.io"},{"@type":"ListItem",position:2,name:"AI Data Centers",item:"https://lod.io/ai-data-centers"}]}]}}),a.jsxs("section",{className:"relative overflow-hidden grid-lines-overlay",style:{background:"#232323",minHeight:"520px"},children:[a.jsxs("div",{className:"max-w-[1400px] mx-auto px-6 py-16 md:py-20 relative z-10",children:[a.jsx("div",{className:"section-label mb-5",children:"Solutions / AI Data Centers"}),a.jsxs("h1",{className:"font-display text-4xl md:text-5xl text-lod-white mb-6 leading-tight max-w-3xl",children:["AI COMPUTE IS EXPENSIVE.",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"BAD ENERGY DECISIONS MAKE IT WORSE."})]}),a.jsx("p",{className:"text-lod-gray text-base md:text-lg mb-8 max-w-2xl leading-relaxed",children:"AI data centers face strict SLAs, increasing PUE pressure, and unpredictable energy costs. LÅD provides real-time grid intelligence, energy-efficient routing, and demand response participation, all without manual intervention or downtime."}),a.jsxs("div",{className:"flex flex-wrap gap-4",children:[a.jsx(ye,{to:"/contact",className:"btn-primary",children:"Book an Energy Strategy Call"}),a.jsx(ye,{to:"/data-layer",className:"btn-outline",children:"Explore the Platform"})]})]}),a.jsx("div",{className:"absolute bottom-0 left-0 right-0 h-px",style:{background:"linear-gradient(90deg, transparent, rgba(191,245,137,0.25), transparent)"}})]}),a.jsx(qs,{}),a.jsx("section",{className:"relative overflow-hidden py-24",style:{background:"#0A0A0A"},children:a.jsx("div",{className:"max-w-[1400px] mx-auto px-6 relative z-10",children:a.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-16",children:[a.jsxs("div",{children:[a.jsx("div",{className:"section-label mb-4",children:"The Problem"}),a.jsxs("h2",{className:"font-display text-4xl md:text-5xl text-lod-white mb-6 leading-tight",children:["AI Infrastru
923cture Doesn't Tolerate",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"Margin for Error."})]}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-6",children:"General-purpose energy management tools weren't built for AI workloads. They assume you can afford to be reactive. AI data centers can't."}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed",children:"LÅD was built by operators who understand the tradeoffs. Every feature is designed around the constraint that matters most: SLA first, cost second, emissions third, and all three simultaneously."})]}),a.jsx("div",{className:"space-y-3",children:Dbe.map((e,t)=>a.jsxs("div",{className:"flex items-start gap-4 p-5 rounded-sm",style:{background:"rgba(255,59,48,0.05)",border:"1px solid rgba(255,59,48,0.15)"},children:[a.jsx("div",{className:"w-2 h-2 rounded-full mt-1.5 flex-shrink-0",style:{background:"#FF3B30"}}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed",children:e})]},t))})]})})}),a.jsxs("section",{className:"py-20 relative overflow-hidden",style:{background:"#0D0D0D",borderTop:"1px solid rgba(255,255,255,0.06)",borderBottom:"1px solid rgba(255,255,255,0.06)"},children:[a.jsx("div",{"aria-hidden":"true",style:{position:"absolute",inset:0,pointerEvents:"none",backgroundImage:"radial-gradient(circle, rgba(191,245,137,0.2) 1px, transparent 1px)",backgroundSize:"28px 28px"}}),a.jsx("div",{className:"max-w-[1400px] mx-auto px-6",children:a.jsx("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-8",children:Lbe.map(e=>a.jsxs("div",{className:"text-center",children:[a.jsx("div",{className:"font-display text-4xl md:text-5xl mb-2",style:{color:"#BFF589"},children:e.value}),a.jsx("div",{className:"text-lod-gray text-xs font-mono uppercase tracking-wider",children:e.label})]},e.label))})})]}),a.jsx("section",{className:"py-24 grid-lines-overlay relative",style:{background:"#1A1A1A"},children:a.jsxs("div",{className:"max-w-[1400px] mx-auto px-6",children:[a.jsx("div",{className:"section-label mb-4",children:"What LÅD Does For AI Data Centers"}),a.jsxs("h2",{className:"font-display text-4xl md:text-5xl text-lod-white mb-16 leading-tight",children:["Designed for the Workloads",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"That Can't Go Down."})]}),a.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:Mbe.map(e=>a.jsxs("div",{className:"card-obsidian p-8 flex gap-6",children:[a.jsx("div",{className:"w-12 h-12 rounded-sm flex items-center justify-center flex-shrink-0",style:{background:"rgba(191,245,137,0.08)",border:"1px solid rgba(191,245,137,0.15)"},children:a.jsx(e.icon,{size:20,style:{color:"#BFF589"}})}),a.jsxs("div",{children:[a.jsx("h3",{className:"font-display text-xl text-lod-white mb-3",children:e.title}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed",children:e.desc})]})]},e.title))})]})}),a.jsx(Po,{links:Rbe}),a.jsx(un,{ctaLabel:"Book an Energy Strategy Call",ctaHref:"/contact"})]})}const Bbe=[{label:"AI Data Center Energy Management & Grid Response",href:"/ai-data-centers",tag:"Solutions"},{label:"Should Your Data Center Pivot from Mining to AI?",href:"/blog/mining-to-ai",tag:"Strategy"},{label:"LÅD Pilots Flexible AI Inference with Dominion Energy",href:"/blog/lod-pilot-flexible-ai-inference-dominion-energy",tag:"Strategy"}],zbe=[{num:"01",title:"Workloads Are the Flexible Asset",desc:"The data center is designed to run continuously. Flexibility lives in the workload layer: which jobs run, when, and where."},{num:"02",title:"Grid-Aware Routing",desc:"LÅD routes workloads based on real-time grid conditions. When the grid is stressed in one region, jobs move. No manual coordination."},{num:"03",title:"Zero SLA Impact",desc:"Flexibility happens below the application layer. SLAs don't see it. Revenue from demand response does."},{num:"04",title:"Real Revenue From Participation",desc:"Flexible compute is a grid asset. LÅD helps you capture the value of that flexibility through demand response and ancillary market participation."}];function $be(){return a.jsxs(Je,{children:[a.jsx(He,{title:"Flexible Compute â Grid-Aware Workload Routing for AI | LÅD",description:"Flexible compute lives in the workload layer, not the facility. LÅD routes compute jobs to the lowest-cost, most stable grid region in real time, below the application layer.",canonical:"https://lod.io/flexible-compute",schemaData:{"@context":"https://schema.org","@graph":[{"@type":"Service",name:"Flexible Compute â Grid-Aware Workload Routing",url:"https://lod.io/flexible-compute",serviceType:"Grid-aware compute workload routing for cloud, AI training, and HPC data centers",provider:{"@type":"Organization",name:"LÅD Technologies",url:"https://lod.io"},description:"LÅD routes compute jobs to the lowest-cost, most stable grid region in real time, below the application layer, with zero SLA impact. Case study: CLÅD achieved 25% energy cost reduction and $2.8M annual savings across 240+ compute nodes with 98% SLA compliance."},{"@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://lod.io"},{"@type":"ListItem",position:2,name:"Flexible Compute",item:"https://lod.io/flexible-compute"}]}]}}),a.jsxs("section",{className:"relative overflow-hidden grid-lines-overlay",style:{background:"#232323",minHeight:"520px"},children:[a.jsxs("div",{className:"max-w-[1400px] mx-auto px-6 pt-16 pb-20 md:pt-22 md:pb-24 relative z-10",children:[a.jsx("div",{className:"section-label mb-5",children:"Solutions / Flexible Compute"}),a.jsxs("h1",{className:"font-display text-4xl md:text-5xl text-lod-white mb-6 leading-tight max-w-3xl",children:["YOU DON'T BECOME FLEXIBLE BY MAKING YOUR",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"DATA CENTER FLEXIBLE."})]}),a.jsx("p",{className:"text-lod-gray text-base md:text-lg mb-8 max-w-2xl leading-relaxed",children:"The industry spent years engineering data centers to never turn off. That is the right design. It is also why flexible compute cannot live in the facility. The workload is the flexible asset. LÅD is the infrastru
923cture that makes it move."}),a.jsxs("div",{className:"flex flex-wrap gap-4",children:[a.jsx(ye,{to:"/contact",className:"btn-primary",children:"Book an Energy Strategy Call"}),a.jsx(ye,{to:"/control-layer",className:"btn-outline",children:"Explore the Platform"})]})]}),a.jsx("div",{className:"absolute bottom-0 left-0 right-0 h-px",style:{background:"linear-gradient(90deg, transparent, rgba(191,245,137,0.25), transparent)"}})]}),a.jsx("section",{className:"py-24",style:{background:"#0D0D0D"},children:a.jsxs("div",{className:"max-w-[1400px] mx-auto px-6",children:[a.jsx("div",{className:"section-label mb-4",children:"The Core Insight"}),a.jsxs("h2",{className:"font-display text-4xl md:text-5xl text-lod-white mb-8 leading-tight max-w-3xl",children:["EVERYONE IS TRYING TO MAKE THE BUILDING MOVE.",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"THE SMARTER BET IS MAKING THE JOB MOVE."})]}),a.jsx("p",{className:"text-lod-gray text-base md:text-lg leading-relaxed max-w-2xl",children:"Data centers are built for stability. The grid needs flexibility. The resolution isn't engineering the facility to do both. It's routing workloads to match grid conditions in real time."})]})}),a.jsx("section",{className:"py-24",style:{background:"#0A0A0A"},children:a.jsxs("div",{className:"max-w-[1400px] mx-auto px-6",children:[a.jsx("div",{className:"section-label mb-4",children:"How It Works"}),a.jsxs("h2",{className:"font-display text-4xl text-lod-white mb-16 leading-none",children:["FLEXIBLE COMPUTE LIVES IN",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"THE WORKLOAD LAYER. NOT THE FACILITY."})]}),a.jsx("div",{className:"space-y-4",children:zbe.map((e,t)=>a.jsxs("div",{className:"grid grid-cols-12 gap-6 items-start card-obsidian p-8",children:[a.jsx("div",{className:"col-span-1",children:a.jsx("span",{className:"font-display text-3xl",style:{color:"#BFF589"},children:e.num})}),a.jsx("div",{className:"col-span-11 md:col-span-4",children:a.jsx("h3",{className:"font-display text-xl text-lod-white",children:e.title})}),a.jsx("div",{className:"col-span-12 md:col-span-7",children:a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed",children:e.desc})})]},e.num))})]})}),a.jsxs("section",{className:"py-24 relative overflow-hidden",style:{background:"#0D0D0D"},children:[a.jsx("div",{"aria-hidden":"true",style:{position:"absolute",inset:0,pointerEvents:"none",backgroundImage:"radial-gradient(circle, rgba(191,245,137,0.2) 1px, transparent 1px)",backgroundSize:"28px 28px"}}),a.jsxs("div",{className:"max-w-[1400px] mx-auto px-6 relative z-10",children:[a.jsx("div",{className:"section-label mb-4",children:"Who This Is For"}),a.jsxs("h2",{className:"font-display text-4xl text-lod-white mb-12 leading-none",children:["IF YOUR WORKLOADS CAN MOVE,",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"YOUR COSTS SHOULD TOO."})]}),a.jsx("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-6",children:[{title:"Cloud Operators",desc:"Multi-region workload routing based on real-time grid economics. Lower costs, same SLAs."},{title:"AI Training Facilities",desc:"Non-real-time training jobs are inherently deferrable. LÅD captures the value of that deferability."},{title:"HPC Data Centers",desc:"High-performance compute workloads that can be scheduled around peak grid conditions without disruption."}].map(e=>a.jsxs("div",{className:"card-obsidian p-8",children:[a.jsx("h3",{className:"font-display text-2xl text-lod-white mb-4",children:e.title}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed",children:e.desc})]},e.title))})]})]}),a.jsxs("section",{className:"py-24 relative overflow-hidden",style:{background:"linear-gradient(135deg, rgba(191,245,137,0.08) 0%, rgba(191,245,137,0.03) 100%), #1A1A1A",borderTop:"2px solid rgba(191,245,137,0.3)",borderBottom:"2px solid rgba(191,245,137,0.3)"},children:[a.jsx("div",{"aria-hidden":"true",style:{position:"absolute",inset:0,pointerEvents:"none",backgroundImage:"radial-gradient(circle at 20% 50%, rgba(191,245,137,0.1) 0%, transparent 50%)",filter:"blur(60px)"}}),a.jsx("div",{className:"max-w-[1400px] mx-auto px-6 relative z-10",children:a.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-12 items-center",children:[a.jsxs("div",{children:[a.jsx("div",{className:"section-label mb-4",children:"Case Study"}),a.jsxs("h2",{className:"font-display text-4xl text-lod-white mb-6 leading-tight",children:[a.jsx("span",{style:{color:"#BFF589"},children:"Real-life execution:"})," CLÅD achieves 25% Energy Savings Through Automated Workload Routing"]}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-6",children:"How a distributed compute infrastru
923cture eliminated $2.8M in annual energy costs by routing workloads across regions in real time based on grid conditions."}),a.jsxs(ye,{to:"/case-studies/clod-ai-workload-routing",className:"inline-flex items-center gap-2 hover:gap-3 transition-all text-sm font-mono",style:{color:"#BFF589"},children:["Read the Case Study ",a.jsx(Ve,{size:14})]})]}),a.jsx("div",{className:"p-8 rounded-lg",style:{background:"rgba(191,245,137,0.06)",border:"2px solid rgba(191,245,137,0.25)"},children:a.jsx("div",{className:"space-y-4",children:[{label:"Energy Cost Reduction",value:"25%"},{label:"Annual Savings",value:"$2.8M"},{label:"SLA Compliance",value:"98%"},{label:"Compute Nodes",value:"240+"}].map(e=>a.jsxs("div",{className:"flex justify-between items-end border-b pb-3",style:{borderColor:"rgba(191,245,137,0.15)"},children:[a.jsx("span",{className:"text-lod-gray text-sm",children:e.label}),a.jsx("span",{className:"font-display text-2xl",style:{color:"#BFF589"},children:e.value})]},e.label))})})]})})]}),a.jsx(Po,{links:Bbe}),a.jsx(un,{ctaLabel:"Book an Energy Strategy Call",ctaHref:"/contact"})]})}const qbe=[{label:"Flexible Compute â Grid-Aware Workload Routing",href:"/flexible-compute",tag:"Solutions"},{label:"AI Data Center Energy Management & Grid Response",href:"/ai-data-centers",tag:"Solutions"}],Wbe=["Interconnection queues and substation buildout, not capital, are what caps your buildout schedule.","Every GW of committed campus capacity sits idle until the grid can actually deliver it.","Fleet-wide energy strategy across dozens of sites and grids can't run on manual, site-by-site decisions.","SLA and PUE commitments leave no room to treat energy as an afterthought at hyperscale."],Ube=[{icon:xt,title:"Speed to Power at Scale",desc:"Flexibility unlocks faster interconnection across your entire fleet, energizing more committed capacity without waiting on new substations."},{icon:NL,title:"Fleet-Wide Grid Intelligence",desc:"One standardized data layer across every region and grid your campuses sit on, instead of dozens of disconnected local views."},{icon:Es,title:"Zero-Impact Automation",desc:"Automated curtailment and workload routing that protects SLAs and PUE targets while responding to grid events in seconds."},{icon:Eg,title:"Grid Revenue Across the Fleet",desc:"Capture demand response and ancillary revenue at every site with flexibility, aggregated into one strategy."}],Hbe=[{value:"<30s",label:"Grid response time"},{value:"99.9%",label:"SLA protection rate"},{value:"20%+",label:"Avg energy cost reduction"},{value:"1,000+ MW",label:"Under management"}];function Vbe(){return a.jsxs(Je,{children:[a.jsx(He,{title:"Hyperscalers â Fleet-Wide Speed to Power & Energy Strategy | LÅD",description:"Hyperscale data center operators need speed to power and grid-aware energy strategy across dozens of sites. LÅD unifies grid intelligence, automation, and flexibility at fleet scale.",canonical:"https://lod.io/hyperscalers",schemaData:{"@context":"https://schema.org","@graph":[{"@type":"Service",name:"Hyperscaler Fleet-Wide Energy Management",url:"https://lod.io/hyperscalers",serviceType:"Fleet-wide grid intelligence and flexibility for hyperscale data centers",provider:{"@type":"Organization",name:"LÅD Technologies",url:"https://lod.io"},description:"LÅD gives hyperscale operators fleet-wide grid intelligence, automated curtailment, and flexibility to speed up interconnection and capture grid revenue across every site."},{"@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://lod.io"},{"@type":"ListItem",position:2,name:"Hyperscalers",item:"https://lod.io/hyperscalers"}]}]}}),a.jsxs("section",{className:"relative overflow-hidden grid-lines-overlay",style:{background:"#232323",minHeight:"520px"},children:[a.jsxs("div",{className:"max-w-[1400px] mx-auto px-6 py-16 md:py-20 relative z-10",children:[a.jsx("div",{className:"section-label mb-5",children:"Industries / Hyperscalers"}),a.jsxs("h1",{className:"font-display text-4xl md:text-5xl text-lod-white mb-6 leading-tight max-w-3xl",children:["SCALE MULTIPLIES EVERYTHING.",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"INCLUDING ENERGY RISK."})]}),a.jsx("p",{className:"text-lod-gray text-base md:text-lg mb-8 max-w-2xl leading-relaxed",children:"Dozens of campuses, dozens of grids, one buildout schedule capped by interconnection speed. LÅD gives hyperscale operators fleet-wide grid intelligence and flexibility so committed capacity gets energized faster, everywhere."}),a.jsxs("div",{className:"flex flex-wrap gap-4",children:[a.jsx(ye,{to:"/contact",className:"btn-primary",children:"Book an Energy Strategy Call"}),a.jsx(ye,{to:"/lod-flexible-compute",className:"btn-outline",children:"Explore Flexible Compute"})]})]}),a.jsx("div",{className:"absolute bottom-0 left-0 right-0 h-px",style:{background:"linear-gradient(90deg, transparent, rgba(191,245,137,0.25), transparent)"}})]}),a.jsx(qs,{}),a.jsx("section",{className:"relative overflow-hidden py-24",style:{background:"#0A0A0A"},children:a.jsx("div",{className:"max-w-[1400px] mx-auto px-6 relative z-10",children:a.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-16",children:[a.jsxs("div",{children:[a.jsx("div",{className:"section-label mb-4",children:"The Problem"}),a.jsxs("h2",{className:"font-display text-4xl md:text-5xl text-lod-white mb-6 leading-tight",children:["Fleet Scale Means Fleet-Wide",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"Energy Risk."})]}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-6",children:"At hyperscale, energy strategy can't be a spreadsheet per site. Interconnection queues, substation buildout, and grid volatility now decide how fast committed capacity actually comes online."}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed",children:"LÅD was built by operators who understand what breaks at scale: fragmented data, manual decisions, and SLA-first constraints that leave no room for error."})]}),a.jsx("div",{className:"space-y-3",children:Wbe.map((e,t)=>a.jsxs("div",{className:"flex items-start gap-4 p-5 rounded-sm",style:{background:"rgba(255,59,48,0.05)",border:"1px solid rgba(255,59,48,0.15)"},children:[a.jsx("div",{className:"w-2 h-2 rounded-full mt-1.5 flex-shrink-0",style:{background:"#FF3B30"}}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed",children:e})]},t))})]})})}),a.jsxs("section",{className:"py-20 relative overflow-hidden",style:{background:"#0D0D0D",borderTop:"1px solid rgba(255,255,255,0.06)",borderBottom:"1px solid rgba(255,255,255,0.06)"},children:[a.jsx("div",{"aria-hidden":"true",style:{position:"absolute",inset:0,pointerEvents:"none",backgroundImage:"radial-gradient(circle, rgba(191,245,137,0.2) 1px, transparent 1px)",backgroundSize:"28px 28px"}}),a.jsx("div",{className:"max-w-[1400px] mx-auto px-6",children:a.jsx("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-8",children:Hbe.map(e=>a.jsxs("div",{className:"text-center",children:[a.jsx("div",{className:"font-display text-4xl md:text-5xl mb-2",style:{color:"#BFF589"},children:e.value}),a.jsx("div",{className:"text-lod-gray text-xs font-mono uppercase tracking-wider",children:e.label})]},e.label))})})]}),a.jsx("section",{className:"py-24 grid-lines-overlay relative",style:{background:"#1A1A1A"},children:a.jsxs("div",{className:"max-w-[1400px] mx-auto px-6",children:[a.jsx("div",{className:"section-label mb-4",children:"What LÅD Does For Hyperscalers"}),a.jsxs("h2",{className:"font-display text-4xl md:text-5xl text-lod-white mb-16 leading-tight",children:["One Energy Strategy,",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"Every Site in the Fleet."})]}),a.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:Ube.map(e=>a.jsxs("div",{className:"card-obsidian p-8 flex gap-6",children:[a.jsx("div",{className:"w-12 h-12 rounded-sm flex items-center justify-center flex-shrink-0",style:{background:"rgba(191,245,137,0.08)",border:"1px solid rgba(191,245,137,0.15)"},children:a.jsx(e.icon,{size:20,style:{color:"#BFF589"}})}),a.jsxs("div",{children:[a.jsx("h3",{className:"font-display text-xl text-lod-white mb-3",children:e.title}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed",children:e.desc})]})]},e.title))})]})}),a.jsx(Po,{links:qbe}),a.jsx(un,{ctaLabel:"Book an Energy Strategy Call",ctaHref:"/contact"})]})}const Gbe=[{label:"Flexible Compute â Grid-Aware Workload Routing",href:"/flexible-compute",tag:"Solutions"},{label:"AI Data Center Energy Management & Grid Response",href:"/ai-data-centers",tag:"Solutions"}],Ybe=["Requested interconnection capacity far outpaces what the grid can safely allocate to inflexible load.","Without a verified commitment to curtail, every new data center looks like a fixed, worst-case peak.","Manual, unverifiable flexibility promises don't hold up in interconnection studies or tariff design.","Idle headroom stays reserved as risk buffer instead of being allocated to more data centers."],Kbe=[{icon:HU,title:"Verifiable Flexibility Commitments",desc:"Give utilities a data center that can prove, not just promise, it will curtail or shift load when the grid needs it to."}
923,{icon:xt,title:"Faster Interconnection Decisions",desc:"A demonstrated flexibility track record lets utilities size interconnection agreements around real, not worst-case, load."},{icon:AL,title:"Automated, Real-Time Response",desc:"Device-level automation executes on grid signals in seconds, so commitments are honored automatically, not manually."},{icon:Eg,title:"More Capacity Allocated, Sooner",desc:"Flexible load frees up headroom utilities can allocate to more data centers on the same grid infrastructure."}],Xbe=[{value:"<30s",label:"Grid response time"},{value:"99.9%",label:"Commitment reliability"},{value:"20%+",label:"Avg load flexibility unlocked"},{value:"1,000+ MW",label:"Under management"}];function Qbe(){return a.jsxs(Je,{children:[a.jsx(He,{title:"Utilities â Allocate More Power to Data Centers with Verified Flexibility | LÅD",description:"Utilities want to allocate more power to data centers but can't unless those data centers can commit to being flexible. LÅD makes that commitment real, automated, and verifiable.",canonical:"https://lod.io/utilities",schemaData:{"@context":"https://schema.org","@graph":[{"@type":"Service",name:"Utility Grid Capacity Allocation via Data Center Flexibility",url:"https://lod.io/utilities",serviceType:"Verified data center flexibility for utility interconnection and capacity allocation",provider:{"@type":"Organization",name:"LÅD Technologies",url:"https://lod.io"},description:"LÅD gives utilities a verifiable, automated flexibility commitment from data centers, allowing more power capacity to be allocated to data center interconnection requests."},{"@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://lod.io"},{"@type":"ListItem",position:2,name:"Utilities",item:"https://lod.io/utilities"}]}]}}),a.jsxs("section",{className:"relative overflow-hidden grid-lines-overlay",style:{background:"#232323",minHeight:"520px"},children:[a.jsxs("div",{className:"max-w-[1400px] mx-auto px-6 py-16 md:py-20 relative z-10",children:[a.jsx("div",{className:"section-label mb-5",children:"Industries / Utilities"}),a.jsxs("h1",{className:"font-display text-4xl md:text-5xl text-lod-white mb-6 leading-tight max-w-3xl",children:["YOU WANT TO ALLOCATE MORE POWER.",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"FLEXIBILITY IS WHAT LETS YOU."})]}),a.jsx("p",{className:"text-lod-gray text-base md:text-lg mb-8 max-w-2xl leading-relaxed",children:"Utilities want to allocate more power to data centers, but can't if that load is treated as fixed, worst-case demand. LÅD's flexible compute platform gives data centers the ability to actually commit to being flexible: automated, real-time, and verifiable."}),a.jsxs("div",{className:"flex flex-wrap gap-4",children:[a.jsx(ye,{to:"/contact",className:"btn-primary",children:"Book an Energy Strategy Call"}),a.jsx(ye,{to:"/lod-flexible-compute",className:"btn-outline",children:"Explore Flexible Compute"})]})]}),a.jsx("div",{className:"absolute bottom-0 left-0 right-0 h-px",style:{background:"linear-gradient(90deg, transparent, rgba(191,245,137,0.25), transparent)"}})]}),a.jsx(qs,{}),a.jsx("section",{className:"relative overflow-hidden py-24",style:{background:"#0A0A0A"},children:a.jsx("div",{className:"max-w-[1400px] mx-auto px-6 relative z-10",children:a.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-16",children:[a.jsxs("div",{children:[a.jsx("div",{className:"section-label mb-4",children:"The Problem"}),a.jsxs("h2",{className:"font-display text-4xl md:text-5xl text-lod-white mb-6 leading-tight",children:["Fixed Load Assumptions",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"Cap What You Can Allocate."})]}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-6",children:"Every data center interconnection request looks the same on paper: a fixed, worst-case peak that has to be planned for. Without a verified way to know a load will actually flex when needed, utilities have to reserve headroom as risk buffer instead of allocating it."}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed",children:"LÅD turns a data center's promise to be flexible into an automated, real-time, provable commitment, the missing piece that lets utilities plan around real load, not worst case."})]}),a.jsx("div",{className:"space-y-3",children:Ybe.map((e,t)=>a.jsxs("div",{className:"flex items-start gap-4 p-5 rounded-sm",style:{background:"rgba(255,59,48,0.05)",border:"1px solid rgba(255,59,48,0.15)"},children:[a.jsx("div",{className:"w-2 h-2 rounded-full mt-1.5 flex-shrink-0",style:{background:"#FF3B30"}}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed",children:e})]},t))})]})})}),a.jsxs("section",{className:"py-20 relative overflow-hidden",style:{background:"#0D0D0D",borderTop:"1px solid rgba(255,255,255,0.06)",borderBottom:"1px solid rgba(255,255,255,0.06)"},children:[a.jsx("div",{"aria-hidden":"true",style:{position:"absolute",inset:0,pointerEvents:"none",backgroundImage:"radial-gradient(circle, rgba(191,245,137,0.2) 1px, transparent 1px)",backgroundSize:"28px 28px"}}),a.jsx("div",{className:"max-w-[1400px] mx-auto px-6",children:a.jsx("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-8",children:Xbe.map(e=>a.jsxs("div",{className:"text-center",children:[a.jsx("div",{className:"font-display text-4xl md:text-5xl mb-2",style:{color:"#BFF589"},children:e.value}),a.jsx("div",{className:"text-lod-gray text-xs font-mono uppercase tracking-wider",children:e.label})]},e.label))})})]}),a.jsx("section",{className:"py-24 grid-lines-overlay relative",style:{background:"#1A1A1A"},children:a.jsxs("div",{className:"max-w-[1400px] mx-auto px-6",children:[a.jsx("div",{className:"section-label mb-4",children:"What LÅD Does For Utilities"}),a.jsxs("h2",{className:"font-display text-4xl md:text-5xl text-lod-white mb-16 leading-tight",children:["Verified Flexibility Unlocks",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"More Capacity to Allocate."})]}),a.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:Kbe.map(e=>a.jsxs("div",{className:"card-obsidian p-8 flex gap-6",children:[a.jsx("div",{className:"w-12 h-12 rounded-sm flex items-center justify-center flex-shrink-0",style:{background:"rgba(191,245,137,0.08)",border:"1px solid rgba(191,245,137,0.15)"},children:a.jsx(e.icon,{size:20,style:{color:"#BFF589"}})}),a.jsxs("div",{children:[a.jsx("h3",{className:"font-display text-xl text-lod-white mb-3",children:e.title}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed",children:e.desc})]})]},e.title))})]})}),a.jsx(Po,{links:Gbe}),a.jsx(un,{ctaLabel:"Book an Energy Strategy Call",ctaHref:"/contact"})]})}const Jbe={"best-bitcoin-mining-management-platform":"Split-screen illustration comparing dashboards from different Bitcoin mining management platforms","bitcoin-miners-profits-peaks":"Dark industrial illustration of a Bitcoin mining facility with a rising grid demand chart overlay","bit
923coin-mining-management-platform":"Illustration of a mining operations dashboard with ASIC fleet status and energy signal panels","bitcoin-mining-management-software":"Illustration of a fleet management dashboard showing ASIC miners, uptime, and hashrate metrics","bitcoin-mining-management-software-cost":"Illustration of a pricing breakdown chart for Bitcoin mining management software tiers","bitcoin-mining-ops-wrong-numbers":"Illustration of an operations manager reviewing fleet performance data on multiple screens",bitfarms:"Bitfarms company logo on a dark industrial background","crypto-power-alliance":"LÅD and Crypto Power alliance announcement graphic over a Texas grid map","dam-vs-rtm":"Side-by-side diagram comparing Day-Ahead Market and Real-Time Market price curves","ercot-4cp-being-rewritten-flexibility-strategy":"Illustration of ERCOT transmission lines with a coincident peak demand chart overlay","ercot-demand-response":"Illustration of a data center curtailing load in response to a grid demand response signal","ercot-real-time-lmp-data-ai-agent-lod-mcp":"Illustration of an AI agent querying real-time ERCOT LMP price data through an MCP server","ercot-vs-pjm":"Split map illustration comparing the ERCOT and PJM grid regions","ercot-west-load-zone":"Illustration of wind turbines and transmission lines across the ERCOT West load zone","google-accelerator":"Google for Startups Accelerator: AI for Energy program badge graphic","identify-underperforming-bitcoin-miners":"Distribution chart highlighting underperforming ASIC miners against a fleet benchmark","lod-launches-clod":"CLÅD platform launch graphic showing AI inference workloads routed across data centers","lod-pilot-flexible-ai-inference-dominion-energy":"Illustration of an AI data center connected to Dominion Energy grid infrastructure","mining-to-ai":"Illustration of a Bitcoin mining facility transitioning to house AI server racks","nuenergen-data-center":"LÅD and NuEnergen partnership graphic at Data Center World 2025","pjm-capacity-prices":"Bar chart illustrating rising PJM capacity auction clearing prices","product-update-may-2025":"LÅD product update graphic highlighting new coincidental peak forecasting features","q1-2026-energy-outlook":"Line chart illustrating rising energy capacity costs and price volatility for Q1 2026","real-time-curtailment":"Illustration of a data center control room monitoring live grid curtailment signals","soc-1-certification":"SOC 1 Type II certification badge graphic on a dark background","stay-ahead-ercot-pjm":"Illustration of a compliance dashboard tracking ERCOT and PJM rule changes"};function tC(e,t){return Jbe[e]||t}const Zbe=["All","News","Energy Insights"],e0e=[{title:"Bitcoin Mining Management Software: The Complete 2026 Guide to Choosing the Right Platform",category:"Energy Insights",date:"August 21, 2026",tag:"Mining",slug:"bitcoin-mining-management-software-guide",href:"/resources/bitcoin-mining-management-software-guide",img:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/afb855374_generated_image.png"},{title:"Bitcoin Mining Ops Managers Are Optimizing the Wrong Numbers",category:"Energy Insights",date:"June 25, 2026",tag:"Mining",slug:"bitcoin-mining-ops-wrong-numbers",img:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/819ef7140_generated_image.png"},{title:"Sixty Minutes That Set Your Entire Year: ERCOT 4CP and How to Be Ready for 2026",category:"Energy Insights",date:"June 2, 2026",tag:"Grid",slug:"ercot-4cp-2025-report",img:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/1f2c6d820_generated_image.png"},{title:"Why Your Miners Are Probably Underperforming (And How to Know for Sure)",category:"Energy Insights",date:"May 29, 2026",tag:"Mining",slug:"identify-underperforming-bitcoin-miners",img:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/17778b1b7_generated_image.png"},{title:"LÅD Launches CLÅD, the World's First Compute Flexibility Platform for AI Inference",category:"News",date:"April 8, 2026",tag:"Product",slug:"lod-launches-clod",img:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/66ff60a3e_generated_image.png"},{title:"What to Look for in a Bitcoin Mining Management Platform",category:"Energy Insights",date:"February 5, 2026",tag:"Mining",slug:"bitcoin-mining-management-platform",img:"https://cdn.prod.website-files.com/68b19ac1ace2893b7432904a/6983d98f53c42dc1adde8b9c_6394de0c-9a0c-42e4-917a-dda152908415.jpg"},{title:"LÅD Achieves SOC 1 Type II Certification Across Its Full Product Suite",category:"News",date:"January 8, 2026",tag:"Company",slug:"soc-1-certification",img:"https://cdn.prod.website-files.com/68b19ac1ace2893b7432904a/695f020a66280c576dc13b66_SOC%201%20Type%20ll%20Certified%20(Website)%20(1).png"},{title:"Q1 2026 Energy Outlook: Rising Capacity Costs and Persistent Volatility",category:"Energy Insights",date:"January 7, 2026",tag:"Grid",slug:"q1-2026-energy-outlook",img:"https://cdn.prod.website-files.com/68b19ac1ace2893b7432904a/695e9ff25a2ba2d770ed900d_Copy%20of%20Copy%20of%20X%20Post%20(LinkedIn%20Post).png"}
923,{title:"GRID 101: Day-Ahead Market (DAM) vs Real-Time Market (RTM)",category:"Energy Insights",date:"December 3, 2025",tag:"Education",slug:"dam-vs-rtm",img:"https://cdn.prod.website-files.com/68b19ac1ace2893b7432904a/692f8b4d534a65a1346fe0ca_Untitled%20design%20(10).png"},{title:"Real-Time Curtailment for Data Centers: What It Takes to Actually Do It",category:"Energy Insights",date:"October 19, 2025",tag:"Mining",slug:"real-time-curtailment",img:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/d54eca4a5_generated_image.png"},{title:"ERCOT Demand Response Programs: An Operator's Guide",category:"Energy Insights",date:"October 12, 2025",tag:"Grid",slug:"ercot-demand-response",img:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/d37990b43_generated_image.png"},{title:"What Bitcoin Miners Need to Know About the ERCOT West Load Zone",category:"Energy Insights",date:"October 5, 2025",tag:"Mining",slug:"ercot-west-load-zone",img:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/cfc00d30f_generated_image.png"},{title:"GRID 101: ERCOT vs PJM â Two Markets, Two Playbooks",category:"Energy Insights",date:"October 31, 2025",tag:"Education",slug:"ercot-vs-pjm",img:"https://cdn.prod.website-files.com/68b19ac1ace2893b7432904a/6903e70f21ed1b94c181ad78_Blog%2010%20Ways%20to%20Stay%20Ahead%20of%20Energy%20Rule%20Changes%20in%20ERCOT%2C%20PJM%2C%20and%20Beyond%20(1).png"},{title:"Should Your Data Center Pivot from Mining to AI?",category:"Energy Insights",date:"October 29, 2025",tag:"Strategy",slug:"mining-to-ai",img:"https://cdn.prod.website-files.com/68b19ac1ace2893b7432904a/690275951f78de4d3531bf22_Blog%2C%20Should%20Your%20Data%20Center%20Pivot%20from%20Mining%20to%20AI.png"},{title:"How Bitcoin Miners Lose Profit During Grid Peaks â And What Better Curtailment Looks Like",category:"Energy Insights",date:"September 2025",tag:"Mining",slug:"bitcoin-miners-profits-peaks",img:"https://cdn.prod.website-files.com/68b19ac1ace2893b7432904a/68ec3a49596b34c27f94a12e_Blog%20Image%20-%20How%20Bitcoin%20Miners%20Lose%20Profits%20During%20Peaks%20and%20How%20to%20Fix%20It%20.png"},{title:"LÅD Technologies Selected for Google for Startups Accelerator: AI for Energy",category:"News",date:"September 2025",tag:"Company",slug:"google-accelerator",img:"https://cdn.prod.website-files.com/68b19ac1ace2893b7432904a/68ec3a957d54025b3c76f310_Blog%20Image%20-%20LoD%20Technologies%20Selected%20For%20Google%20for%20Startup....png"},{title:"10 Ways to Stay Ahead of Energy Rule Changes in ERCOT, PJM, and Beyond",category:"Energy Insights",date:"August 2025",tag:"Grid",slug:"stay-ahead-ercot-pjm",img:"https://cdn.prod.website-files.com/68b19ac1ace2893b7432904a/68ec3a81e5cffecf3ef54f48_Blog%20Image%20-%2010%20Ways%20to%20Stay%20Ahead%20of%20Energy%20Rule%20Changes%20in%20ERCOT%2C%20PJM%2C%20and%20Beyond.png"},{title:"PJM's Record Capacity Prices: Turning a Market Shock into an Operator Advantage",category:"Energy Insights",date:"August 2025",tag:"Grid",slug:"pjm-capacity-prices",img:"https://cdn.prod.website-files.com/68b19ac1ace2893b7432904a/68ec3a6a4c3dcff4fe6e9be7_Blog%20Image%20-%20%20PJM%E2%80%99s%20Record%20Capacity%20Prices-%20Turning%20a%20Market%20Shock%20into%20an%20Operator%20Advantage.png"},{title:"LÅD and Crypto Power Launch Alliance Across ERCOT",category:"News",date:"July 2025",tag:"Company",slug:"crypto-power-alliance",img:"https://cdn.prod.website-files.com/68b19ac1ace2893b7432904a/68eea0d088760d7f2e5dfe23_LoD-and-Crypto-power.png"},{title:"May 2025 Product Update: Improved Coincidental Peak Forecasts, Expanded Miner Support, and Platform Enhancements",category:"News",date:"May 2025",tag:"Product",slug:"product-update-may-2025",img:"https://cdn.prod.website-files.com/68b19ac1ace2893b7432904a/68eea168bfe35a81ea545a2d_product%20update.png"},{title:"LÅD Rolls Out Globally with Bitfarms, Optimizing Operations Management Across All Sites",category:"News",date:"April 2025",tag:"Company",slug:"bitfarms",img:"https://cdn.prod.website-files.com/68b19ac1ace2893b7432904a/68eea27db110cefffee29f5d_BITF-Announcement4.png"},{title:"LÅD and NuEnergen Team Up at Data Center World 2025",category:"News",date:"April 2025",tag:"Company",slug:"nuenergen-data-center",img:"https://cdn.prod.website-files.com/68b19ac1ace2893b7432904a/68eea1ec1c230c3f982b2285_nuener.png"}];function t0e(){const[e,t]=O.useState("All"),[n,r]=O.useState(""),{data:i=[]}=cF({queryKey:["blogPosts"],queryFn:()=>xn.entities.BlogPost.filter({is_published:!0},"-published_date")}),o=new Set(i.map(u=>u.slug)),l=[...i.map(u=>({title:u.title,category:u.category,date:u.published_date,tag:u.tag||"",slug:u.slug,img:u.image_url||"",summary:u.summary})),...e0e.filter(u=>!o.has(u.slug))].sort((u,d)=>new Date(d.date)-new Date(u.date)).filter(u=>
923{const d=e==="All"||u.category===e,p=!n||u.title.toLowerCase().includes(n.toLowerCase());return d&&p});return a.jsxs(Je,{children:[a.jsx(He,{title:"Energy Insights Blog â Grid Strategy for Data Centers | LÅD",description:"Tactical, grid-aware insight for high-consumption operations in Bitcoin mining, AI data centers, and flexible compute. Real-time energy market analysis and strategy.",canonical:"https://lod.io/blog"}),a.jsx("section",{className:"py-20",style:{background:"#232323",borderBottom:"1px solid rgba(255,255,255,0.06)"},children:a.jsx("div",{className:"max-w-[1400px] mx-auto px-6",children:a.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-10 gap-8 items-stretch",children:[a.jsxs("div",{className:"md:col-span-5",children:[a.jsx("div",{className:"section-label mb-4",children:"Insights & Resources"}),a.jsxs("h1",{className:"font-display text-4xl md:text-5xl text-lod-white mb-6 leading-tight",children:["Insights for Smarter",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"Energy Strategy"})]}),a.jsx("p",{className:"text-lod-gray text-base max-w-xl leading-relaxed",children:"Get tactical, grid-aware insight for high-consumption operations in Bitcoin mining, AI data centers, and beyond."})]}),a.jsx("div",{className:"md:col-span-5",children:a.jsx(eC,{variant:"sidebar"})})]})})}),a.jsx("section",{className:"py-16",style:{background:"#1A1A1A"},children:a.jsxs("div",{className:"max-w-[1400px] mx-auto px-6",children:[a.jsxs("div",{className:"flex flex-col md:flex-row gap-4 mb-12 items-start md:items-center justify-between",children:[a.jsx("div",{className:"flex flex-wrap gap-2",children:Zbe.map(u=>a.jsx("button",{onClick:()=>t(u),className:"px-5 py-2 rounded-sm text-sm font-mono transition-all",style:{background:e===u?"#BFF589":"rgba(255,255,255,0.04)",color:e===u?"#1A1A1A":"#A0A0A0",border:e===u?"none":"1px solid rgba(255,255,255,0.08)"},children:u},u))}),a.jsx("input",{type:"text",value:n,onChange:u=>r(u.target.value),placeholder:"Search articles...",className:"w-full md:w-64 px-4 py-2.5 rounded-sm text-sm font-mono text-lod-white placeholder-lod-gray outline-none",style:{background:"#2C2C2C",border:"1px solid rgba(255,255,255,0.08)"}})]}),a.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-5",children:l.map(u=>a.jsxs(ye,{to:u.href||`/blog/${u.slug}`,className:"card-obsidian p-0 group block overflow-hidden",children:[a.jsx("div",{className:"w-full h-44 flex items-center justify-center overflow-hidden",style:{background:"#111"},children:u.img?a.jsx("img",{src:u.img,alt:tC(u.slug,u.title),className:"w-full h-full object-cover object-left group-hover:scale-105 transition-transform duration-300"}):a.jsx("span",{className:"font-display text-5xl opacity-5",style:{color:"#BFF589"},children:"LÅD"})}),a.jsxs("div",{className:"p-6",children:[a.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[a.jsx("span",{className:"tag-chip",children:u.tag}),a.jsx("span",{className:"font-mono text-xs text-lod-gray",children:u.date})]}),a.jsx("h3",{className:"text-lod-white text-sm font-semibold leading-snug mb-4 group-hover:text-lod-green transition-colors",children:u.title}),a.jsxs("div",{className:"flex items-center gap-2 text-lod-green text-xs font-mono",children:["Read More ",a.jsx(Ve,{size:12})]})]})]},u.title))})]})}),a.jsx(un,{})]})}const n0e=["All","#Energy Intelligence","#Bitcoin","#Compliance","#ERCOT"],Q3=[{company:"Bitfarms",title:"Scaling Precision: How Bitfarms Optimized Multi-Site Operations and Energy Strategy with LÅD",tags:["#Energy Intelligence","#Bitcoin"],img:"https://cdn.prod.website-files.com/68b19ac1ace2893b7432904a/69050bc01dcb7a3bbc84e888_Btfarsm.jpg",description:"Bitfarms chose LÅD to optimize energy strategy and operations management across every one of their global sites.",slug:"bitfarms-multi-site-energy-strategy"},{company:"Cholla Energy",title:"How Cholla Energy Used LÅD to Cut Costs and Redefine Mining Resilience in ERCOT",tags:["#Energy Intelligence","#Bitcoin","#ERCOT"],img:"https://cdn.prod.website-files.com/68b19ac1ace2893b7432904a/69050c4ccf9abd50528c0c4d_cholla_petroleum_inc__logo.jpeg",description:"Cholla used LÅD to reduce energy costs and support ERCOT with real-time pricing automation and grid intelligence.",slug:"cholla-cuts-costs-ercot"}
923,{company:"CLÅD",title:"How CLÅD Scaled Data Center Infrastructure with Real-Time Energy Intelligence",tags:["#Energy Intelligence","#Compliance"],img:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/9dd3dc53f_CLoD-NewColorffb974.jpg",description:"CLÅD leveraged LÅD's energy intelligence platform to optimize data center operations and scale infrastructure efficiently.",slug:"clod-ai-workload-routing"}],r0e=[{q:"Is LÅD SOC 1 Type II and SOC 2 Type II compliant?",a:"Yes. LÅD is SOC 1 Type II and SOC 2 Type II compliant across its full product suite. SOC 2 Type II validates security and data protection, while SOC 1 Type II verifies the accuracy and reliability of controls that impact financial and operational outcomes."},{q:"How does your Coincidental Peak program work without a QSE or CSP?",a:"LÅD's built-in Coincidental Peak Algorithm allows you to detect and curtail in real time â no external signals required. On average, we reduce unnecessary downtime by up to 47% compared to traditional CSP/QSE curtailment signals."},{q:"How is this different from other platforms?",a:"We don't offer black-box software. You get full transparency, site-specific configuration, and an energy strategy built by engineers who understand your environment â not just generic monitoring tools."},{q:"Will this actually reduce our energy costs?",a:"Yes. By receiving real-time signals, you will experience increased uptime. Additionally, you can participate in programs like 4CP for ERCOT or 5CP for PJM and get rewarded for your downtimes."},{q:"How fast can we see results?",a:"Fast, but let's be clear: depending on your site, you might see instant results such as improved IoT response, or experience long-term benefits like participation in grid programs. You will definitely notice improved performance and transparent monitoring right away."}];function i0e(){const[e,t]=O.useState("All"),[n,r]=O.useState(null),i=e==="All"?Q3:Q3.filter(o=>o.tags.includes(e));return a.jsxs(Je,{children:[a.jsx(He,{title:"Case Studies â Real Results for Data Center Energy Ops | LÅD",description:"Explore how LÅD helped data centers, miners, and energy teams reduce costs, improve uptime, and scale smarter with real-time grid intelligence and automated curtailment.",canonical:"https://lod.io/case-studies"}),a.jsx("section",{className:"py-20",style:{background:"#232323",borderBottom:"1px solid rgba(255,255,255,0.06)"},children:a.jsxs("div",{className:"max-w-[1400px] mx-auto px-6",children:[a.jsx("div",{className:"section-label mb-4",children:"Case Studies"}),a.jsxs("h1",{className:"font-display text-3xl md:text-5xl text-lod-white mb-6 leading-tight",children:["Real Results for",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"Real Operations"})]}),a.jsx("p",{className:"text-lod-gray text-base max-w-xl leading-relaxed",children:"Explore how LÅD helped data centers, miners, and energy teams reduce costs, improve uptime, and scale smarter."})]})}),a.jsx("section",{className:"py-16",style:{background:"#1A1A1A"},children:a.jsxs("div",{className:"max-w-[1400px] mx-auto px-6",children:[a.jsx("div",{className:"flex flex-wrap gap-2 mb-12",children:n0e.map(o=>a.jsx("button",{onClick:()=>t(o),className:"px-4 py-1.5 rounded-sm text-xs font-mono transition-all",style:{background:e===o?"#BFF589":"transparent",color:e===o?"#1A1A1A":"#A0A0A0",border:e===o?"none":"1px solid rgba(255,255,255,0.1)"},children:o},o))}),a.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:i.map(o=>a.jsxs("a",{href:`/case-studies/${o.slug}`,className:"card-obsidian group block overflow-hidden cursor-pointer",children:[a.jsx("div",{className:"w-full h-48 overflow-hidden flex items-center justify-center",style:{background:"#111"},children:a.jsx("img",{src:o.img,alt:`${o.company} logo â case study: ${o.title}`,className:"w-full h-full object-contain group-hover:scale-105 transition-transform duration-300"})}),a.jsxs("div",{className:"p-8",children:[a.jsx("div",{className:"flex flex-wrap gap-2 mb-4",children:o.tags.map(s=>a.jsx("span",{className:"tag-chip",children:s},s))}),a.jsx("h3",{className:"text-lod-white font-semibold text-base leading-snug mb-3 group-hover:text-lod-green transition-colors",children:o.title}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed mb-4",children:o.description}),a.jsxs("div",{className:"flex items-center gap-2 text-lod-green text-xs font-mono",children:["Read Case Study ",a.jsx(Ve,{size:12})]})]})]},o.title))})]})}),a.jsx(qs,{}),a.jsx("section",{className:"py-24",style:{background:"#1A1A1A"},children:a.jsxs("div",{className:"max-w-[900px] mx-auto px-6",children:[a.jsx("div",{className:"section-label mb-4",children:"Common Questions"}),a.jsx("h2",{className:"font-display text-3xl text-lod-white mb-12",children:"FAQs"}),a.jsx("div",{className:"space-y-2",children:r0e.map((o,s)=>a.jsxs("div",{className:"rounded-sm overflow-hidden",style:{border:"1px solid rgba(255,255,255,0.08)"},children:[a.jsxs("button",{onClick:()=>r(n===s?null:s),className:"w-full flex items-center justify-between px-6 py-5 text-left transition-colors",style:{background:n===s?"#2C2C2C":"transparent"},children:[a.jsx("span",{className:"text-lod-white text-sm font-medium pr-8",children:o.q}),a.jsx("div",{className:"w-6 h-6 rounded-full flex-shrink-0 flex items-center justify-center transition-transform",style:{background:"rgba(191,245,137,0.1)",color:"#BFF589",transform:n===s?"rotate(45deg)":"none"},children:"+"})]}),n===s&&a.jsx("div",{className:"px-6 pb-5",style:{background:"#2C2C2C"},children:a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed",children:o.a})})]},s))})]})}),a.jsx(un,{ctaLabel:"Book a Free Assessment",ctaHref:"/contact",subline:"BOOK AN ENERGY ASSESSMENT"})]})}const a0e={"agent-install-windows":{title:"How to Install the LÅD Agent on Windows",category:"Getting Started",content:[{type:"h2",text:"Agent Installation on Windows â Overview"},{type:"p",text:"This video provides a step-by-step walkthrough for installing the LÅD Agent on a Windows device. The agent allows your system to communicate with the LÅD platform and begin managing ASICs from the IoT page."},{type:"video",loomId:"7d760b9f98944bc1bbac93ee40a5aeea",label:"Watch: Agent Install on Windows"},{type:"h3",text:"Minimum System Requirements"},{type:"p",text:"Before installing, make sure your system meets these minimum requirements:"},{type:"ul",items:["16 GB of RAM","Quad-Core Intel i5 processor or greater","40 GB of available hard drive space"]},{type:"h3",text:"Key Steps Covered in the Video"},{type:"h3",text:"Create a New Agent in LÅD"},{type:"p",text:'Go to the IoT â ASICs page, open the Agent section, click the "+" icon, and select Add Agent. Name your agent and click Create New â it will initially appear offline.'},{type:"h3",text:"Download and Prepare the Agent File"},{type:"p",text:"Click Download App, select your operating system (Windows), and open the downloaded file. In your Local Disk (C:), create a new folder named Agent. Extract the downloaded files into this new folder."},{type:"h3",text:"Run the Installer"},{type:"p",text:'Launch the installer and allow it to make system changes. The first message will display "Key not found", which is expected before linking the agent key.'},{type:"h3",text:"Add the Agent Key"},{type:"p",text:"Go back to LÅD, locate your newly created agent, and copy the Agent Key. Inside the Agent folder, create a new text document named key, paste the copied key inside, and save the file."},{type:"h3",text:"Start the LÅD Agent"},{type:"p",text:'Run the Lincoin Agent executable. If Windows Defender flags it, click Run Anyway and allow changes. Once launched, the installer will c
923onfirm "Key Found".'},{type:"h3",text:"Verify Connection"},{type:"p",text:"Return to the LÅD platform and click Refresh â your agent should now appear online."}]},"setup-team-org":{title:"How to Setup your Team & Organization",category:"Getting Started",content:[{type:"h2",text:"Team & Organization Setup Overview"},{type:"video",loomId:"642ebb3d70214077bedd1b5f07fc6836",label:"Watch: Team & Organization Setup"},{type:"p",text:"The Teams section in LÅD allows you to manage your organization's users, roles, and permissions. Setting up roles and inviting team members ensures that everyone has the right level of access to the platform and specific sub-accounts."},{type:"h3",text:"Key Steps Covered in the Video"},{type:"h3",text:"Access the Teams Section"},{type:"p",text:"Navigate to Teams in the sidebar. You'll see two tabs: Members â lists all users in your organization and Roles â defines what each user can do in the platform."},{type:"h3",text:"Create or Customize Roles"},{type:"ul",items:["Start by creating a new role. LÅD provides default options such as Technician, Manager, and Admin.","To create a custom role, choose a base role (e.g., Admin) and adjust its permissions as needed.","Once configured, name and save the role. It will appear under the Custom Roles section.","You can edit an existing role to modify permissions or delete it if no longer needed."]},{type:"h3",text:"Add New Team Members"},{type:"ul",items:["In the Members tab, click New Member.","Enter the user's name and email, then click Next.","Assign them to the appropriate sub-account(s) and select their role (e.g., your custom Admin role).","Click Submit to send the invitation."]},{type:"h3",text:"Managing Invitations & Members"},{type:"ul",items:["Pending invitations appear with a yellow hourglass icon.","Once accepted, the member shows a green checkmark to indicate active access.","You can edit members at any time to change their role, update their sub-account access, suspend access temporarily, or remove them entirely from the organization."]}]},"scan-asics":{title:"Scan Your ASICs Into LÅD",category:"Getting Started",content:[{type:"h2",text:"IP Scanning & Device Discovery Overview"},{type:"video",loomId:"45d2f59c2c95423a981ff4b973d232f5",label:"Watch: Scan Your ASICs Into LÅD"},{type:"p",text:"The IP Scan feature in LÅD makes it simple to detect and load all ASIC miners on your network automatically. By configuring an IP range and adding device credentials, you can quickly import every miner into your dashboard for monitoring and management."},{type:"h3",text:"Key Steps Covered in the Video"},{type:"h3",text:"Verify Agent Status"},{type:"p",text:"Navigate to IoT â ASICs and confirm that your Agent is online. The agent must be active to perform an IP scan."},{type:"h3",text:"Create a New IP Scan"},{type:"p",text:"Click IP Search Space â Create New. If multiple agents exist, select the appropriate one. Name the scan descriptively (e.g., Building 2 Scan)."},{type:"h3",text:"Define IP Range"},{type:"p",text:"Enter the range of IP addresses where your miners are located. Example: Starting IP 10.245.110.1, Ending IP 10.245.111.254. This tells LÅD where to look for devices on your network."},{type:"h3",text:"Add Credentials"},{type:"p",text:"Input your miner username and password combinations so LÅD can authenticate during the scan. Common credentials include admin/admin or root/root. Add multiple credentials if your devices use different login details."},{type:"h3",text:"Run the Scan"},{type:"p",text:"After confirming your IP range and credentials, click Create to launch the scan. Within a few minutes, miners within that IP range will begin appearing in your dashboard under the selected agent."}]},"hosted-clients-access":{title:"How to Give Hosted Clients Access to their ASICs",category:"Getting Started",content:[{type:"h2",text:"Hosting Client Setup Overview"},{type:"video",loomId:"b0450a0cee854270a26e03e45667a9c5",label:"Watch: Hosting Client Setup"},{type:"p",text:"When managing a hosted operation, one of the most important steps in account setup is ensuring clients have access to view and manage their miners. There are two primary ways to configure this access: 1) Adding clients directly to your team with custom roles and permissions. 2) Creating or linking a client subaccount and sharing miner access through that subaccount."},{type:"h3",text:"Method 1: Add Client to Your Team"},{type:"h3",text:"1. Navigate to the Teams Tab"},{type:"ul",items:["From the left navigation bar, select Teams.","Click Add New Role to create a custom role for your client."]},{type:"h3",text:"2. Configure a Client Role"},{type:"ul",items:["In the Default Roles list, select the Host role as a starting point.","Customize permissions according to what your client should have access to.","Review each permission toggle carefully, then click Save and assign a Role Name."]},{type:"h3",text:"3. Add the Client User"},{type:"ul",items:["Click New Member and enter your client's email address.","Select the appropriate Subaccount.","Assign the Host Role you just created.","Once submitted, the system will send the client an email invite with the configured access level."]},{type:"p",text:"Result: The client now has controlled access to their miners through your existing subaccount permissions."},{type:"h3",text:"Method 2: Create or Link a Client Subaccount"},{type:"h3",text:"1. Check if the Client Has an Existing Subaccount"},{type:"ul",items:["If they already have one, they can send you an invite from their end.","Once you accept, both accounts will be linked and you can share the ASICs."]},{type:"h3",text:"2. Create a New Subaccount (if Needed)"},{type:"ul",items:["Click your Subaccount dropdown at the top of the dashboard.","Press the + icon to Create New Subaccount.","After creating it, navigate back to the Teams tab to add your client and assign them access to this subaccount."]},{type:"h3",text:"3. Set Access"},{type:"p",text:"Within Teams, you can assign your client the Admin role or the Host role for their own subaccount. This gives them full control within their subaccount while keeping boundaries clear between accounts."}
923,{type:"h3",text:"Sharing Miner Access"},{type:"p",text:"Once the client's subaccount and role are ready:"},{type:"ol",items:["Go to your own Subaccount where the miners are currently assigned.","Select the specific miners belonging to that client.","Click Group Action â Share Access.","Choose the client's Subaccount from the dropdown.","Select if they will have Tunnel access or not.","Click Submit."]},{type:"p",text:"Result: The selected miners will appear in the client's subaccount. They can now view their miners, monitor performance, and initiate withdrawals securely through their own account."}]},"configuring-location-profile":{title:"Configuring Location Profile",category:"Getting Started",content:[{type:"h2",text:"Location Profile Overview"},{type:"video",loomId:"de9b676551db4468ad19439dd03cf445",label:"Watch: Configuring Location Profile"},{type:"p",text:"The Location Profile is a key setup step in LÅD that ensures your site data â such as power costs, hash rate targets, and dynamic pricing â is accurate and aligned with your region. Properly configuring this section allows the platform to deliver precise performance and financial insights across your mining operation."},{type:"h3",text:"Key Steps Covered in the Video"},{type:"h3",text:"Access the Location Profile"},{type:"p",text:'Go to Settings â Location Profile to view all sub-accounts associated with your organization. Archived sub-accounts will still appear, marked with an "Archived" label.'},{type:"h3",text:"Select and Edit Sub-Accounts"},{type:"ul",items:["You can select all sub-accounts at once, or only specific ones for Group Edit (to apply a single parameter change to multiple accounts).","To configure an individual site, click Edit Profile next to the desired sub-account."]},{type:"h3",text:"Set Country, Time Zone, and Tags"},{type:"p",text:"Choose your country and time zone, then add tags to help your team identify or categorize sites (e.g., location labels, maintenance notes, or power provider tags)."},{type:"h3",text:"Define Expected Performance Metrics"},{type:"p",text:"Toggle on Expected Hash Rate and Expected ASIC Count to measure operational efficiency â e.g., tracking if 98% of ASICs are online or if hash rate exceeds expectations. These fields can be left off if not needed."},{type:"h3",text:"Configure Electricity Pricing"},{type:"ul",items:["Fixed Pricing: Enter your static cost per kilowatt hour.","Dynamic Pricing (Energy Package): Switch to Dynamic, select your region and node (e.g., ERCOT â LZ West), and LÅD will automatically pull real-time energy rates based on what your QSE or CSP ID is."]},{type:"h3",text:"Add Additional Financial Details"},{type:"p",text:"Input optional values for:"},{type:"ul",items:["Fixed daily costs (e.g., lease or maintenance)","Surcharges per kWh","Pool fees","QSE or CSP ID"]},{type:"p",text:"These inputs enhance the accuracy of your site's financial reporting."},{type:"h3",text:"Configure Site Map Settings"},{type:"p",text:"Choose whether your site map should be IP-based or MAC-based, and set the map's directional layout to match your site orientation."},{type:"h3",text:"Save Your Configuration"},{type:"p",text:"After reviewing all details, click Submit to finalize your setup. The location profile will now feed accurate environmental, operational, and financial data into your LÅD dashboard."}]},"wallet-addresses":{title:"Adding Wallet Addresses & Configuring Withdraws",category:"Getting Started",content:[{type:"h2",text:"Overview"},{type:"video",loomId:"33fb555db5174b3480614c1e153b1012",label:"Watch: Adding Wallet Addresses & Configuring Withdraws"},{type:"p",text:"This video provides a walkthrough of how to add wallet addresses and set up withdrawals within the Lincoin pool. It covers how to manage your address book, configure withdrawal preferences, and understand the 24-hour security hold that applies to all new wallet addresses and auto-withdrawals."},{type:"callout",text:"Note: Wallet management and withdrawals are specific to the Lincoin pool. These settings do not apply to other pools."},{type:"h3",text:"Accessing the Address Book"},{type:"ul",items:["Navigate to the Pool section and open the Address Book.","View all wallet addresses tied to your sub-accounts, along with their status, history, and details."]},{type:"h3",text:"Adding a New Wallet Address"},{type:"ul",items:["Click New Address to create a new entry.","Paste your wallet address, add a short description, and select the sub-account it belongs to.","Once created, the new address appears in your list showing sub-account link, description, wallet address, withdrawal count, and status.","Addresses can be edited, saved, or archived as needed."]},{type:"h3",text:"24-Hour Security Hold"},{type:"p",text:"All new wallet addresses are subject to a 24-hour security hold before they can be used. This hold applies to both manual and auto-withdrawals, ensuring an extra layer of protection before funds can be transacted."},{type:"h3",text:"Manual Withdrawals"},{type:"p",text:"Once the address hold expires, you can initiate withdrawals by: selecting Mainnet or Lightning network, cho
923osing your wallet address, and entering the withdrawal amount. Transactions can then be confirmed and processed securely."},{type:"h3",text:"Auto-Withdrawals"},{type:"p",text:"Auto-withdrawals can be configured as soon as a wallet is added, but are also subject to the same 24-hour hold before activation. You can define: minimum withdrawal threshold (e.g., 0.1 BTC), frequency: Daily, Weekly, or Monthly, and a specific day of the week or month for processing. Once saved and authenticated, settings appear in your Address Book after successful configuration."},{type:"h3",text:"Security & Management"},{type:"p",text:"Every new address and withdrawal configuration requires authentication. All wallet changes, thresholds, and transactions are logged within the Lincoin pool for full traceability and account security."},{type:"h3",text:"Withdrawal Limits"},{type:"ul",items:["On-Chain Withdrawal Limit: 0.001 BTC","Lightning Withdrawal Limit: 0.0001 BTC"]}]},"agent-settings":{title:"How To Configure My LÅD Agent",category:"Getting Started",content:[{type:"h2",text:"Overview and how to configure the LÅD agent settings"},{type:"h3",text:"Agent Settings Overview"},{type:"p",text:"How to access settings:"},{type:"ol",items:["Go to IoT > ASICs","Click the 3 line button in your agent",'Then click "Settings"']},{type:"img",src:"https://docs.lod.io/hs-fs/hubfs/undefined-Oct-22-2025-02-52-44-6067-PM.png?width=670&height=334",alt:"Agent 3-line menu button"},{type:"img",src:"https://docs.lod.io/hs-fs/hubfs/undefined-Oct-22-2025-02-52-45-2880-PM.png?width=670&height=334",alt:"Agent dropdown menu with the Settings option highlighted"},{type:"h3",text:"General Settings"},{type:"img",src:"https://docs.lod.io/hs-fs/hubfs/undefined-Oct-22-2025-02-52-44-1657-PM.png?width=670&height=367",alt:"General Settings panel showing Agent Name, Sharding Mode, and Connection Recovery fields"},{type:"h3",text:"Agent Name"},{type:"p",text:"Specifies the display name of the agent. Use a clear and identifiable name to easily distinguish agents across multiple farms."},{type:"h3",text:"Sharding Mode"},{type:"p",text:"Defines how multiple agents within the same farm operate together:"},{type:"ul",items:["High Availability â Each agent can see all devices in the farm, providing redundancy and fault tolerance.","Load Balanced â Each agent is responsible for a subset of devices, optimizing performance across large farms."]},{type:"h3",text:"Connection Recovery"},{type:"p",text:"Automatically retries and re-establishes connections to devices that have become disconnected."},{type:"h3",text:"Elphapex and Iceriver Support"},{type:"p",text:"Adds support for Elphapex and Iceriver miners. Note: Enabling this option increases agent workload. This setting is disabled by default and should only be enabled if your farm includes these miner types."},{type:"h3",text:"Local Curtailment"},{type:"p",text:"Allows clients to send a local signal to the agent, enabling on-site control of device power states. When triggered, the agent will turn off devices based on the received signal."},{type:"h3",text:"Network Timeout Settings"},{type:"img",src:"https://docs.lod.io/hs-fs/hubfs/undefined-Oct-22-2025-02-52-42-9589-PM.png?width=670&height=51",alt:"HTTP Timeout setting"},{type:"h3",text:"HTTP Timeout"},{type:"p",text:"Defines the maximum duration (in seconds) the agent waits for an HTTP request to a miner before marking it as failed. Applies to: First scan, IP search scan, Periodic scan. Exception: The initial ping request to a device is not affected by this timeout."},{type:"h3",text:"Socket Timeout"},{type:"p",text:"Defines the maximum duration (in seconds) the agent waits for a socket request before marking it as failed. Applies to: First scan, IP search scan, Periodic scan."},{type:"h3",text:"Action Concurrency"},{type:"p",text:"Specifies the maximum number of concurrent requests the agent sends when performing network actions on devices. Higher values may improve performance but can increase network load."},{type:"h3",text:"Scan Configuration"},{type:"img",src:"https://docs.lod.io/hs-fs/hubfs/undefined-Oct-22-2025-02-52-43-8780-PM.png?width=358&height=215",alt:"Scan Configuration panel listing First Scan, IP Search Scan, and Periodic Scan settings"},{type:"p",text:"Each scan type allows you to control how the agent interacts with devices."},{type:"h3",text:"First Scan"},{type:"p",text:"Used when the agent connects to a new farm or device for the first time."},{type:"ul",items:["Ping Timeout â Maximum duration before a ping request is marked as failed.","Max Time per Worker â Maximum time allowed for all requests sent to a worker.","Concurrency â Number of simultaneous requests for reading device data."]},{type:"h3",text:"IP Search Scan"},{type:"img",src:"https://docs.lod.io/hs-fs/hubfs/undefined-Oct-22-2025-02-52-43-3300-PM.png?width=358&height=215",alt:"IP Search Scan configuration"},{type:"p",text:"Used to discover miners within a defined IP range."},{type:"ul",items:["Ping Timeout â Maximum duration before a ping request is marked as failed.","Max Time per Worker â Maximum time allowed for all requests sent to a worker.","Concurrency â Number of simultaneous requests for reading device data."]},{type:"h3",text:"Periodic Scan"},{type:"img",src:"https://docs.lod.io/hs-fs/hubfs/undefined-Oct-22-2025-02-52-43-6006-PM.png?width=358&height=215",alt:"Periodic Scan configuration"},{type:"p",text:"Used for ongoing monitoring and data collection."},{type:"ul",items:["Ping Timeout â Maximum duration before a ping request is marked as failed.","Max Time per Worker â Maximum time allowed for all requests sent to a worker.","Concurrency â Number of simultaneous requests for reading device data."]}]},"linux-agent":{title:"How to Install LÅD Agent on Linux",category:"Getting Started",content:[{type:"h2",text:"Overview"},{type:"p",text:"After downloading the Agent from the platform, Linux users can manually install and launch the application from their terminal. Follow the steps below to ensure the Agent is installed in a secure and persistent directory."},{type:"h3",text:"Creating Agent"},{type:"ul",items:['To create a new agent click on "IoT" then click "ASICs" at the top you will see an agent section.',"Click the plus icon on the right hand side and name your new agent."]},{type:"img",src:"https://docs.lod.io/hs-fs/hubfs/Screenshot%202025-11-25%20at%208.08.04%20AM.png?width=670&height=334&name=Screenshot%202025-11-25%20at%208.08.04%20AM.png",alt:"Creating a new agent in LÅD"},{type:"h3",text:"Downloading the App"},{type:"ul",items:['Click the same plus icon on the right hand side but this time select "Download App."',"Choose what version of Linux you are running and wait for the file to download."]},{type:"h3",text:"Installation Location"},{type:"p",text:"It is highly recommended to install the Agent in a directory under your user or home folder. Avoid installing in: /tmp, /Downloads, /Desktop. These locations are temporary or prone to deletion and may cause stability issues."},{type:"h3",text:"Installation Steps"},{type:"ol",items:["Open the Terminal. Navigate to the folder where you extracted the Agent files."]},{type:"h3",text:"Run the following commands:"},{type:"code",text:"sudo apt update"},{type:"ul",items:["Ensures your system packages are up to date."]},{type:"code",text:"sudo chmod +x LincoinAgent"},{type:"ul",items:["Grants execution permission to the Agent file."]},{type:"code",text:"sudo ./LincoinAgent"},{type:"ul",items:["Launches the Lincoin Agent installer."]},{type:"h3",text:"Accessing the Agent Interface"},{type:"p",text:"Once the Agent is running, Linux users must manually open the interface. In your browser, navigate to: http://localhost:12400. This will open the Agent dashboard, where you can add your Agent key from the platform to complete the setup."},{type:"h3",text:"Adding Your Agent Key"},{type:"p",text:"After downloading and running the Lincoin Agent, you must place your Agent Key inside a key.txt file located in the same folder as the Agent executable."},{type:"h3",text:"Steps"},{type:"h3",text:"1. Create the key file"},{type:"p",text:"Run the following command in your terminal inside the Agent directory:"}
923,{type:"code",text:"touch key.txt"},{type:"h3",text:"2. Open the file"},{type:"p",text:"Use nano to open the file:"},{type:"code",text:"nano key.txt"},{type:"h3",text:"3. Paste the key"},{type:"p",text:"Paste your complete Agent Key into the file exactly as provided."},{type:"h3",text:"4. Save and exit"},{type:"ul",items:["Press Ctrl + O, then press Enter to save.","Press Ctrl + X to close the editor."]},{type:"h3",text:"Restart the Agent (if needed)"},{type:"code",text:"sudo ./LincoinAgent"},{type:"p",text:"The Agent will automatically read the key.txt file and authenticate with the platform."}]},"lincoin-revenues":{title:"Lincoin Pool Revenues Report",category:"Daily Operations & Management",content:[{type:"h2",text:"Overview"},{type:"p",text:"This report gives you pool-side revenue data for workers running on the Lincoin pool. It's the quickest way to pull earnings, performance, and related metrics over a specific time period."},{type:"h3",text:"How to Access"},{type:"ol",items:["Go to Pool in the left sidebar","Click Revenues"]},{type:"img",src:"https://docs.lod.io/hs-fs/hubfs/Screenshot%202026-03-26%20at%2012.26.16%20PM.png?width=670&height=284",alt:"Lincoin Pool Revenues Report"},{type:"h3",text:"What You're Looking At"},{type:"p",text:"Each row represents a day and includes:"},{type:"ul",items:["Total earnings (BTC + USD)","Block rewards, TX fees, referral rewards","Performance stats (hashrate, rejected %, worker count)","Network difficulty","BTC price (current vs. prior reference)","Capital gain %"]},{type:"h3",text:"Setting Your Date Range"},{type:"ol",items:["Use the Start Date and End Date fields at the top right","Click Set Range","The table will refresh based on your selected range","Adjust the page size at the bottom to ensure all data points are displayed",'Check the "All" column']},{type:"h3",text:"Exporting the Report"},{type:"p",text:"Click the Export button (top right) and choose Excel (.xlsx) or CSV. The export will reflect whatever date range you currently have set."}]},"generate-csv-excel-reports":{title:"How to Generate CSV & Excel Reports for a Certain Period",category:"Daily Operations & Management",content:[{type:"h2",text:"Generating and Exporting P&L Reports"},{type:"p",text:"This guide explains how to generate and export P&L reports in LÅD. Once signed into your account, navigate to Reports â P&L. By default, the page displays a generalized daily report for the previous month. To adjust the data shown, select Modify Report."},{type:"h3",text:"Report Configuration Options"},{type:"dl",items:[{term:"Time Zone",def:"Ensure your time zone is set correctly. This impacts how your data aligns with your operational hours and may differ from the site's local time."},{term:"Start & End Dates",def:"Choose the reporting window you want to analyze. LÅD retains long-term historical data, allowing you to pull reports for a single day, several months, or even years."},{term:"Electricity Price",def:"If you are using the Energy Module, your region and node will auto-populate (e.g., ERCOT â Load Zone West). If you operate under a fixed-rate model, select Fixed and enter your cost per kWh."},{term:"Interval",def:"Select the granularity of your data: Daily, Hourly, or 15-minute intervals depending on your reporting needs."},{term:"Additional Costs",def:"Add any fixed or variable costs you want included, such as salaries, surcharges, or supplemental per-kWh fees."}]},{type:"h3",text:"Exporting Your Report"},{type:"p",text:"If you want to export only specific rows, select them from the table and choose Export â CSV to download only the highlighted data."},{type:"p",text:"To export the full dataset:"},{type:"ol",items:["Click the All Data tab.","Select Export via CSV or Export via Excel."]},{type:"callout",text:"Avoid manually selecting all rows in the table view. The table may only load the first 10 rows unless expanded, even if the report contains dozens of entries. Using the All Data export options ensures the full dataset is included."},{type:"h3",text:"Automated Reports"},{type:"p",text:"To learn how to schedule reports for automatic delivery, see the Automated Reporting documentation and accompanying video."}]},"smart-view-filter":{title:"Smart View Filter Documentation",category:"Daily Operations & Management",content:[{type:"h2",text:"SmartView Filter Overview"},{type:"p",text:"The SmartView Filter helps you quickly sort, organize, and manage your ASIC devices in the IoT and ASIC pages. It allows you to filter devices based on key metrics such as hash rate, power consumption, efficiency, firmware, and model type â making it easier to find and command specific groups of miners."},{type:"h3",text:"How to Use the Smart View Filter"},{type:"ul",items:["Location of SmartView Filter: Found on the right-hand side of the ASIC page.","Filtering Example: You can select specific ASIC models (e.g., S19 XPs) and layer multiple filters, such as wattage ranges or firmware versions, to narrow results further.","Applying & Removing Filters: Click Apply Filters to display results. Click Remove All or the X beside individual filters to clear selections.","Viewing Filtered Devices: Once filters are applied, you can click Show Devices to view all ASICs matching your criteria.","Sending Commands: After filtering, you can send batch commands to the selected group of devices directly from the SmartView panel.","Saving Filters: Frequently used filters can be saved for quick access, eliminating the need to reconfigure them each time."]},{type:"h3",text:"Device Status & Activity"},{type:"img",src:"https://docs.lod.io/hs-fs/hubfs/undefined-Oct-22-2025-07-06-40-7849-PM.png?width=670&height=432",alt:"Device Status & Activity filters"},{type:"dl",items:[{term:"Connected / Disconnected",def:"Show only connected or disconnected devices."},{term:"Mining Status",def:"Low â devices mining with a low hashrate. Mining â devices actively mining. Normal â devices mining at expected rate. Stopped â devices that are stopped."},{term:"Active Process",def:"Pool Changing, Power Switching On/Off, Ramping Stop/Start, Skipped Rail, Power Adjusting."},{term:"Tags",def:"Filter devices by assigned tags."},{term:"Exclude Selection",def:"Exclude selected items from the current filter result."}]},{type:"h3",text:"Hashrate Filters"},{type:"img",src:"https://docs.lod.io/hs-fs/hubfs/undefined-Oct-22-2025-07-06-42-4984-PM.png?width=670&height=432",alt:"Hashrate filters"},{type:"dl",items:[{term:"IoT Hashrate",def:"Show devices whose IoT hashrate falls between a min and max value. Option to exclude."},{term:"Ideal Hashrate",def:"Show devices whose ideal hashrate falls between a min and max value."},{term:"Pool Hashrate",def:"Show devices whose pool hashrate falls between a min and max value."}]},{type:"h3",text:"Power & Efficiency"},{type:"img",src:"https://docs.lod.io/hs-fs/hubfs/undefined-Oct-22-2025-07-06-43-1198-PM.png?width=670&height=432",alt:"Power & Efficiency filters"},{type:"dl",items:[{term:"Power",def:"Show devices whose power consumption is between min and max. Option to exclude."},{term:"Efficiency",def:"Show devices whose efficiency is between min and max. Option to exclude."}]},{type:"h3",text:"Cooling & Temperature"},{type:"img",src:"https://docs.lod.io/hs-fs/hubfs/image-png.png?width=619&height=398",alt:"Cooling & Temperature filters"},{type:"dl",items:[{term:"Fan Speed",def:"Show devices whose fan RPM is between selected min and max values. Option to exclude (useful for immersion/hydro setups)."},{term:"Cooling Status",def:"Filter by cooling configuration: Fan, Immersion, or Hydro."},{term:"PCB Temperature",def:"Show devices whose PCB temperature is between min and max."},{term:"Chip Temperature",def:"Show devices whose chip temperature is between min and max."}]},{type:"h3",text:"Issues & Errors"},{type:"img",src:"https://docs.lod.io/hs-fs/hubfs/undefined-Oct-22-2025-07-06-41-1422-PM.png?width=670&height=432",alt:"Issues & Errors f
923ilters"},{type:"dl",items:[{term:"Auth Error",def:"Enable: show only devices with authentication errors. Disable: show only devices without. Exclude: ignore this filter."},{term:"Hash Error",def:"Enable: show only devices with hash errors. Disable/Exclude as above."},{term:"Efficiency Not Detected",def:"Enable: show only devices where efficiency could not be detected. Disable: show only devices where efficiency is detected."},{term:"Pool Disconnected",def:"Enable: show only devices disconnected from the pool."},{term:"Change Pool Issue",def:"Enable: show only devices that have issues when switching pools."},{term:"Empty Pool",def:"Enable: show only devices with no pool configured."},{term:"Hashrate Issues",def:"Enable: show only devices with hashrate-related problems."},{term:"Power Adjustment",def:"Enable: show only devices where automatic power adjustments are active."},{term:"Target Mismatch",def:"Enable: show only devices with target mismatch errors."}]},{type:"h3",text:"Pool Users"},{type:"img",src:"https://docs.lod.io/hs-fs/hubfs/undefined-Oct-22-2025-07-06-42-8050-PM.png?width=670&height=432",alt:"Pool Users filters"},{type:"dl",items:[{term:"Pool Users",def:"Show devices by their pool users. Displays devices associated with selected pool usernames. Helpful for tracking user-level performance."},{term:"Exclude selection",def:"Hides devices linked to the selected pool users."}]},{type:"h3",text:"Agent & Network"},{type:"img",src:"https://docs.lod.io/hs-fs/hubfs/image-png-1.png?width=667&height=429",alt:"Agent & Network filters"},{type:"dl",items:[{term:"Agents",def:"Show devices connected to specific agents. Lets you filter devices based on the monitoring/management agents they are connected to."},{term:"IP Range",def:"Show devices with IP in the specified range. Displays devices whose IP addresses fall within the given range."}]},{type:"h3",text:"Hardware & Configuration"},{type:"img",src:"https://docs.lod.io/hs-fs/hubfs/undefined-Oct-22-2025-07-06-41-8407-PM.png?width=670&height=432",alt:"Hardware & Configuration filters"},{type:"dl",items:[{term:"Mining Algorithms",def:"Filter devices based on the algorithm they are currently mining (e.g., SHA-256, Scrypt)."},{term:"Models",def:"Narrow down monitoring to certain miner types or manufacturers."},{term:"Firmwares",def:"Filter by firmware: bosminer, cgminer, luxos, or vnish."}]},{type:"h3",text:"Site Management"},{type:"img",src:"https://docs.lod.io/hs-fs/hubfs/undefined-Oct-22-2025-07-06-42-1511-PM.png?width=670&height=432",alt:"Site Management filters"},{type:"dl",items:[{term:"Shared Subaccount",def:"Filter devices based on the subaccount they belong to."},{term:"Rails",def:"Filter devices by their configured rails."},{term:"Device Position",def:"Racked or Unracked."},{term:"Racks / Groups / PDUs",def:"Filter devices based on rack assignments, user-defined groups, or Power Distribution Units."}]},{type:"h3",text:"My Parameters"},{type:"img",src:"https://docs.lod.io/hs-fs/hubfs/undefined-Oct-22-2025-07-06-41-5014-PM.png?width=670&height=432",alt:"My Parameters filters"},{type:"dl",items:[{term:"Fan Speed",def:"Low â devices with fan speed below normal range. Normal â within range. High â above normal range."},{term:"Chip Temperature",def:"Cold â below normal range. Normal â within range. Hot â above normal range."},{term:"PCB Temperature",def:"Cold â below normal range. Normal â within range. Hot â above normal range."},{term:"Power Status",def:"Low â consuming less power than expected. Normal â within normal range. High â consuming more power than expected."},{term:"Efficiency Status",def:"Low â performing below expected efficiency. Normal â within expected efficiency. High â performing above expected efficiency."},{term:"IoT Hashrate Status",def:"Low â below expected hashrate. Normal â within range. High â above expected hashrate."}]}]},"site-map-overview":{title:"Site Map Overview",category:"Daily Operations & Management",content:[{type:"h2",text:"Site Map Overview"},{type:"p",text:"A brief overview on how to read and use the site map to gain more insight into your mining operations."},{type:"video",loomId:"4000adcae82943929048ee0ab2fee576",label:"Watch: Site Map Overview"},{type:"p",text:"The Site Map in LÅD gives you a visual, bird's-eye view of your entire mining operation. It helps you locate specific miners, monitor performance metrics, and drill down into racks or devices for detailed insights."},{type:"h3",text:"Key Steps Covered in the Video"},{type:"h3",text:"Accessing the Site Map"},{type:"p",text:"From your dashboard, go to IoT â Site Map. This opens an interactive layout of your site and connected devices."},{type:"h3",text:"Viewing and Sorting Devices"},{type:"p",text:"At the top, you can toggle between devices and PDUs (if Smart PDUs are configured). Sort or color-code devices by key metrics such as:"},{type:"ul",items:["Connection status","Hash rate","PCB temperature","Chip temperature","Fan speed","Power consumption","Efficiency"]},{type:"p",text:"Devices with issues (e.g., abnormal fan RPM) are highlighted in red."},{type:"h3",text:"Lite Mode for Large Sites"},{type:"p",text:"Enables a more compact view for facilities with multiple warehouses, containers, or buildings."},{type:"h3",text:"Navigating Groups and Pods"},{type:"p",text:"Groups represent logical site areas â such as warehouses, containers, or pods. Clicking into a pod (e.g., Pod 21) reveals its racks and miners."},{type:"h3",text:"Adding and Configuring Racks"},{type:"p",text:"Click Add Rack, define the number of rows and columns, and run an IP scan to load devices into that rack automatically."},{type:"h3",text:"Inspecting Racks and Devices"},{type:"p",text:"Within a rack, you can view device counts, metrics (like fan RPM or power usage), and IP ranges. Selecting an individual miner shows detailed information including:"},{type:"ul",items:["Model and connection status","Hash rate and pool details","Temperature readings","The ability to tunnel or send commands directly to that device"]}]},"commands-sent-through-lod":{title:"How to See Commands Sent Through LÅD",category:"Optimization & Automation",content:[{type:"h2",text:"Agent Request Log Overview"},{type:"video",loomId:"f39ae860d6444dd693da8f8117db6b96",label:"Watch: How to See Commands Sent Through LÅD"},{type:"p",text:"The Agent Request Log provides a full audit trail of all activity within your site. It records every command, scan, and system event sent through your agent â allowing you to track operational history, verify actions, and identify performance or process issues over time."},{type:"h3",text:"Key Features Covered in the Video"},{type:"h3",text:"Events List (Bell Icon)"},{type:"ul",items:["Shows automated platform events such as team members being added or removed, rails being triggered, and other system-level notifications.","Useful for tracking general activity and updates within LÅD."]},{type:"h3",text:"Agent Request Log (Cloud Icon)"},{type:"ul",items:["Displays a detailed log of all agent-level actions, including scans, stop/start commands, and data logs sent from the agent.","Each record includes: Timestamp and processing time, Action type and status (Succeeded, Pending, Failed, or Cancelled), Device name and IP address (both copyable for reference)."]},{type:"h3",text:"Filtering & Reviewing Requests"}
923,{type:"ul",items:["Use filters to sort by status (Completed, Pending, Cancelled, etc.).","Click the calendar icon to view logs from specific dates.","Select Export to download records as CSV or Excel for offline analysis."]},{type:"h3",text:"Managing Requests"},{type:"ul",items:["Click Cancel All Pending to stop all in-progress commands.","Reviewing these logs helps identify trends, troubleshoot issues, and evaluate team performance."]}]},"automated-reporting":{title:"How to Set Up Automated Reporting",category:"Optimization & Automation",content:[{type:"h2",text:"Automated Reporting Overview"},{type:"video",loomId:"3770c87213644db29d9b69746d8dbe4b",label:"Watch: Set Up Automated Reporting"},{type:"p",text:"This video provides a quick walkthrough on how to create and manage automated reports within LÅD. Automated reporting helps you and your team receive regular performance or financial updates directly by email without manually generating reports each time."},{type:"h3",text:"Key Steps Covered in the Video"},{type:"h3",text:"Access the Automation Page"},{type:"p",text:"Navigate to Reports â Automation and click New Automation to start creating a new scheduled report."},{type:"h3",text:"Name Your Report & Add Recipients"},{type:"p",text:"Give the report a name (e.g., Weekly Site Report). Choose recipients from your organization â only users already part of your LÅD organization can receive these reports."},{type:"h3",text:"Set the Frequency & Report Type"},{type:"p",text:"Choose how often the report should be sent (e.g., daily, weekly, or monthly)."},{type:"h3",text:"Send a Test Email"},{type:"p",text:"Optionally send a test email to ensure the report reaches all recipients successfully."},{type:"h3",text:"Save, Edit, or Delete Reports"},{type:"p",text:"Click Save to finalize your automation. Existing reports appear in your automation list, where you can edit configurations to change frequency or recipients, or delete reports when they're no longer needed."}]},"watchdog-pool-enforcer":{title:"Watch Dog (Pool Enforcer) Rail",category:"Optimization & Automation",content:[{type:"h2",text:"Watchdog Rail Overview"},{type:"video",loomId:"dc6cf34cda634f78b7128ec9cf776458",label:"Watch: Watch Dog (Pool Enforcer) Rail"},{type:"p",text:"The Watchdog Rail automatically monitors and corrects where your ASICs are hashing, ensuring they stay connected to your trusted mining pools. If a miner begins hashing to an untrusted pool or underperforms, the Watchdog Rail can automatically reroute it based on your defined settings."},{type:"h3",text:"Key Steps Covered in the Video"},{type:"h3",text:"Verify Trusted Pools"},{type:"p",text:"Before creating a Watchdog Rail, navigate to IoT â Trusted Pools and confirm your pools are set up. If not, click Add New and enter: Sub-account name, Pool address and port, Expected hash rate and ASIC count. This data helps LÅD monitor and validate performance."},{type:"h3",text:"Create the Watchdog Rail"},{type:"p",text:"Go to Rails and click New Rail."},{type:"ul",items:["Name the rail (e.g., Watchdog or Pool Enforcer)","Enable Set as Global to apply it across all ASICs","Choose the Watchdog signal from the list"]},{type:"h3",text:"Configure Trigger Conditions"},{type:"p",text:"Define how long a mismatch must persist before action is taken (e.g., 10 minutes). This means if a miner hashes to an untrusted pool for over 10 minutes, it will automatically reroute."},{type:"h3",text:"Set Automated Actions"},{type:"ul",items:["Action: Change pool","Retry interval: How often the system retries (e.g., every 30 minutes)","Enable: Keep the rail active immediately, or toggle off to save it for later","Priority: Determines action order when multiple rails are running"]},{type:"h3",text:"Define Pool Order & Credentials"},{type:"p",text:"Enter up to three pools in order of preference (Pool 1 â Pool 2 â Pool 3). If Pool 1 underperforms or rejects excessive hash rate, miners will automatically reroute to the next available pool. Enter each pool's corresponding password as required."},{type:"h3",text:"Save & Apply the Rail"},{type:"p",text:"Click Submit to finalize. The Watchdog Rail will now actively monitor and manage pool routing across your entire fleet."}]},"energy-rails":{title:"Energy Rails Documentation",category:"Optimization & Automation",content:[{type:"h2",text:"Overview"},{type:"p",text:"LÅD's Energy Rails system governs how energy market signals, demand response programs, and economic optimization logic control site load. Because large flexible loads may participate in multiple programs simultaneously, overlapping signals are common."},{type:"p",text:"Energy Rails ensure deterministic behavior, grid-compliant automation, predictable conflict resolution, and safe restart logic."},{type:"p",text:"An Energy Rail is an independent control pathway that can issue a START (energize load
923), STOP (curtail load), or POWER ADJUSTMENT command. Each rail corresponds to a specific energy program or logic source."},{type:"h3",text:"Rail Types"},{type:"dl",items:[{term:"Dispatch Rail",def:'Used for ISO/RTO market participation. Handles real-time dispatch instructions, ancillary services deployment, and emergency grid directives. Applicable markets: ERCOT, PJM, AESO, IESO, MISO, NYISO. The Dispatch Rail continues to enforce curtailment for up to 15 minutes after a dispatch window ends via the "Stay Stopped for" setting.'},{term:"Scheduling / Recurring Rail",def:"Used for time-based load control. Executes START, STOP, or POWER ADJUSTMENT commands strictly according to a configured schedule. Common for utility load blocks, planned curtailment windows, and recurring peak avoidance."},{term:"LMP Rail",def:"Drives economic dispatch decisions based on real-time and day-ahead energy pricing. Generates commands according to margin thresholds and custom price triggers. Common for Bitcoin mining optimization and behind-the-meter arbitrage."},{term:"4CP / 5CP Rail",def:"Used for coincident peak management. Issues STOP commands during forecasted peak intervals to minimize capacity cost exposure. Common for seasonal peak management and utility peak programs."}]},{type:"h3",text:"Priority & Conflict Resolution"},{type:"p",text:"All energy market and demand response rails default to Priority Level 5. No rail is treated as inherently superior to another. A higher number means higher priority â a rail at Priority 6 will override a rail at Priority 4 regardless of command type."},{type:"ul",items:["Step 1 â Compare Priority: The higher priority rail overrides the lower, regardless of command type.","Step 2 â If Priorities Are Equal: STOP overrides START. This STOP-dominant rule ensures conservative, grid-safe behavior during overlapping events."]},{type:"h3",text:"Example Scenarios"},{type:"dl",items:[{term:"Scenario A â Dispatch ends, but another curtailment is still active",def:"Dispatch Rail issues START. Transmission Rail issues STOP. Both at Priority 5. Result: STOP wins. Load remains curtailed."},{term:"Scenario B â Price signal indicates run, but a DR event is active",def:"LMP Rail issues START. Emergency DR issues STOP. Both at Priority 5. Result: STOP wins. Curtailment is enforced."},{term:"Scenario C â Higher-priority START overrides lower-priority STOP",def:"Utility DR issues STOP at Priority 4. ISO Ancillary Deployment issues START at Priority 6. Result: Priority 6 overrides Priority 4. Load energizes."}]},{type:"h3",text:"Restart Logic"},{type:"p",text:"A restart succeeds only when: no other STOP signal remains active, and no higher-priority rail is blocking the restart. There is no unconditional restart window that overrides active curtailments â this prevents unintended energization during grid stress events."},{type:"p",text:'The "Wait for" setting on each rail controls how long a condition must hold true before the action triggers, preventing false responses to short price spikes or brief demand events.'},{type:"h3",text:"Site-Specific Priority Adjustments"},{type:"p",text:"While all energy programs default to Priority 5, priority should be adjusted in the following circumstances: a program carries high penalty exposure, or a contractual obligation requires signal precedence."}]},"mcp-server":{title:"LÅD MCP Server â Authentication & Access",category:"Optimization & Automation",content:[{type:"h2",text:"The LÅD MCP Server"},{type:"p",text:"The LÅD MCP Server is a single MCP server with two functionalities: Read and Automate. Read is available now; Automate is coming soon."},{type:"dl",items:[{term:"Read (Available Now)",def:"Real-time and historical energy data, structured for machine consumption. Every signal is interpreted â not raw. Includes LMP prices, ancillary services, fleet health, curtailment state, P&L, facility sitemap, BTC/hash price, pool worker performance, infrastructure telemetry, weather, and HRI benchmarks."},{term:"Automate (Coming Soon)",def:"Direct execution capability: trigger curtailment, control IoT devices, and participate in demand response programs. The server is currently read-only."}]},{type:"h2",text:"MCP Server â Browser OAuth Flow"},{type:"p",text:"The MCP (Model Context Protocol) endpoint lets AI agents query LÅD data through a standardized protocol. Authentication uses a browser-based OAuth flow: a human must log in with LÅD credentials, grant consent, and exchange for a Firebase JWT. That JWT is then passed as a Bearer token for the MCP session."},{type:"callout",text:"MCP authentication requires human intervention. An AI agent cannot complete the OAuth flow on its own â it needs a person to open a browser, log in, and authorize the connection. Once the JWT is obtained, the agent can use it for the session."},{type:"h3",text:"MCP Endpoint"},{type:"code",text:"https://mcp.lod.io/mcp"},{type:"h3",text:"What Your Agent Can Access (Read)"},{type:"ul",items:["Real-time LMP prices â all 9 ISOs, every node","Ancillary services data â ECRS, NSPIN, REGUP, REGDOWN","Fleet health â 100,000+ connected miners (fan speed, chip temps, hashboard faults)","Curtailment state and trigger conditions","Daily P&L â revenue, energy cost, pool fees, and margin","Facility sitemap â group, rack, and slot-level visibility","Live BTC price and FPPS hash price feed","Multi-site, OAuth-scoped access","Pool worker performance and wallet revenue","Full infrastru
923cture telemetry â ASICs, GPUs, PDUs, PLCs, meters, sensors","Weather, renewables, and grid demand data","Hashrate Realization Index (HRI) â real-world performance benchmarks"]},{type:"h2",text:"Getting Started â Choose Your AI Client"},{type:"h3",text:"Claude (Anthropic)"},{type:"ol",items:["Open Claude and go to Settings â Connectors.",'Click "Add custom connector".',"Paste the LÅD MCP Server URL: https://mcp.lod.io/mcp","Click Save. A browser window will open â log in with your LÅD credentials and authorize the connection to complete the OAuth flow. LÅD MCP Server will then be available in your conversations."]},{type:"h3",text:"OpenClaw"},{type:"ol",items:["Open OpenClaw and go to Settings â Connectors in the left sidebar.",'Click "Create" at the top to open the New Connector dialog.',"Enter the LÅD MCP Server URL: https://mcp.lod.io/mcp","A browser window will open for the OAuth flow â complete the login and consent to obtain your Firebase JWT. Once authorized, click Save. The LÅD tools will be available in your OpenClaw agent sessions."]},{type:"h3",text:"Hermes (NousResearch)"},{type:"p",text:"Install MCP support if not already included:"},{type:"code",text:`cd ~/.hermes/hermes-agent 924uv pip install -e ".[mcp]"`},{type:"p",text:"First, complete the browser OAuth flow at https://mcp.lod.io/mcp to obtain a Firebase JWT. Then add the LÅD MCP Server to your Hermes config file at ~/.hermes/config.yaml, using that JWT as the Bearer token:"},{type:"code",text:`mcp_servers: 925 lod: 926 url: "https://mcp.lod.io/mcp" 927 headers: 928 Authorization: "Bearer YOUR_FIREBASE_JWT"`},{type:"p",text:"Start Hermes â LÅD tools will be automatically discovered:"},{type:"code",text:"hermes chat"},{type:"h3",text:"Other MCP-Compatible Clients"},{type:"p",text:"Any MCP-compatible client can connect to the LÅD MCP Server using the HTTP transport. Configure the server URL as:"},{type:"code",text:"https://mcp.lod.io/mcp"},{type:"p",text:"Authentication requires a browser-based OAuth flow. Open the endpoint URL in a browser, log in with your LÅD credentials, and complete the consent screen to obtain a Firebase JWT. Pass that JWT as a Bearer token in the Authorization header for your MCP session. Refer to your client's MCP configuration documentation for the exact config format."},{type:"h2",text:"Coverage & Scale"},{type:"dl",items:[{term:"ISOs Covered",def:"All 9 â ERCOT, PJM, MISO, CAISO, SPP, NYISO, ISONE, SWPP, SERC"},{term:"Scale",def:"1 GW+ under management"},{term:"Grid Nodes",def:"20,000+ globally"},{term:"Hardware Models",def:"50+ indexed"},{term:"Data Points",def:"10 billion+ indexed"},{term:"Compliance",def:"SOC 1 Type II + SOC 2 Type II certified"}]},{type:"h2",text:"Protocol Details"},{type:"dl",items:[{term:"MCP Endpoint",def:"https://mcp.lod.io/mcp"},{term:"MCP Auth",def:"Browser-based OAuth â Firebase JWT (Bearer token). Requires human intervention to complete login and consent."},{term:"Functionalities",def:"Read (available now) + Automate (coming soon). Currently read-only."},{term:"Response Format",def:"Standard JSON â clean schemas, no data cleaning required"},{term:"Data Freshness",def:"Real-time â live grid signals updated continuously"}]},{type:"p",text:"For more information or to request access, visit lod.io/for-agents or contact the LÅD team."}]},"states-issues":{title:"States & Issues of ASICs",category:"Troubleshooting & FAQ",content:[{type:"h2",text:"Comprehensive walkthrough with troubleshooting steps on the states and issues that your miners can show in LÅD."},{type:"img",src:"https://docs.lod.io/hs-fs/hubfs/undefined-Oct-22-2025-03-16-22-4366-PM.png?width=670&height=334",alt:"States & Issues overview"},{type:"img",src:"https://docs.lod.io/hs-fs/hubfs/undefined-Oct-22-2025-03-16-22-0990-PM.png?width=422&height=464",alt:"States & Issues panel"},{type:"p",text:"The States & Issues section displays a summary of any active problems detected with your ASICs. If there are no issues, this section will not appear under ASIC Management. When issues are present, each issue is listed by name along with the number of ASICs currently affected."},{type:"h3",text:"1. Fan Issue"},{type:"p",text:"The system has detected abnormal fan behavior or irregular RPM readings. This may indicate cooling inefficiency or hardware malfunction."},{type:"dl",items:[{term:"Possible Causes",def:"Fan speed below or above safe RPM range. Dust buildup or physical obstruction reduces airflow. Faulty fan sensor, cable, or connector. Firmware misreporting fan speed or curve settings."},{term:"Troubleshooting Steps",def:"1. Visually inspect fans to confirm they are spinning and free of debris. 2. Check RPM readings against expected ranges. 3. Clean dust buildup and verify cables and connectors. 4. Review firmware configuration for proper fan curve or control mode. 5. Replace the fan if speed remains erratic or below threshold after cleaning."}]},{type:"h3",text:"2. Temp Issue"},{type:"p",text:"The device temperature has exceeded or fallen outside the configured safe operating range. If temperatures exceed safe thresholds, mining performance may throttle or stop to prevent damage."},{type:"dl",items:[{term:"Possible Causes",def:"Inadequate cooling or restricted airflow. High ambient temperature in the facility. Dust accumulation on heatsinks or fans. Failed or inaccurate thermal sensor."},{term:"Troubleshooting Steps",def:"1. Verify ambient temperature is
928within operational limits. 2. Inspect airflow â confirm vents, ducts, and fans are unobstructed. 3. Clean heatsinks and fans to improve heat dissipation. 4. Check thermal sensors and fan speeds in the miner's UI or logs. 5. If persistent, inspect hashboards or PSU for overheating or component failure."}]},{type:"h3",text:"3. Hashrate Issue"},{type:"p",text:"The device's reported hashrate is below the expected or configured performance baseline. LÅD compares real-time hashrate data against the miner's rated output."},{type:"dl",items:[{term:"Possible Causes",def:"One or more hashboards not detected or underperforming. Unstable or insufficient power supply. Incorrect firmware, voltage, or frequency settings. Excessive temperature causing throttling."},{term:"Troubleshooting Steps",def:"1. Compare actual hashrate against the model's rated capacity. 2. Check hashboard status for missing or error-marked boards. 3. Verify PSU output and power connections are stable. 4. Reboot device to rule out temporary firmware glitches. 5. Escalate to hardware or firmware debugging if low performance persists."}]},{type:"h3",text:"4. Disconnected"},{type:"p",text:"The device has lost connection to the LÅD management system, preventing it from receiving commands or reporting telemetry."},{type:"dl",items:[{term:"Possible Causes",def:"Local network interruption (LAN, switch, or router failure). Device reboot or power loss. Firmware crash or system hang. Incorrect IP or firewall restrictions blocking communication."},{term:"Troubleshooting Steps",def:"1. Ping the device IP to confirm basic connectivity. 2. Check switch/router logs for outages or DHCP changes. 3. Verify device power and ensure the miner is physically running. 4. Reboot the miner if unresponsive. 5. If recurring, review firmware version, network configuration, and stability."}]},{type:"h3",text:"5. Has Error"},{type:"p",text:"A generic error has been detected by the miner firmware, indicating an unclassified internal fault that interrupts normal operation."},{type:"dl",items:[{term:"Possible Causes",def:"Firmware bug or software inconsistency. Configuration conflict between pool, user settings, or API commands. Hardware malfunction or intermittent fault."},{term:"Troubleshooting Steps",def:"1. Review miner logs to identify related error messages or codes. 2. Restart the device to clear temporary or software-level faults. 3. Update firmware to the latest stable version. 4. Check configuration settings for inconsistencies. 5. Contact vendor or engineering support if the error reappears after update."}]},{type:"h3",text:"6. Pool Disconnected"},{type:"p",text:"The miner has lost connection to its configured mining pool and will stop receiving work."},{type:"dl",items:[{term:"Possible Causes",def:"Pool server downtime or maintenance. Incorrect pool URL, port, or credentials. Local network interruption or DNS failure. Firewall or proxy interference."},{term:"Troubleshooting Steps",def:"1. Verify pool status on the pool's website or dashboard. 2. Check pool configuration (URL, port, worker name, password). 3. Ping or trace the pool domain to confirm network reachability. 4. Test alternate network or DNS to isolate local issues. 5. Configure a backup pool to minimize downtime."}]},{type:"h3",text:"7. Pool Empty"},{type:"p",text:"The configured pool is not providing valid work to the miner. The miner is connected but not receiving job assignments from the stratum server."},{type:"dl",items:[{term:"Possible Causes",def:"Pool backend outage or temporary maintenance. Incorrect or unauthorized worker credentials. Pool throttling or job distribution delays."},{term:"Troubleshooting Steps",def:"1. Confirm pool functionality using another known-good device. 2. Recheck worker credentials in the pool configuration. 3. Restart the miner to reinitiate job requests. 4. Switch to a backup pool to confirm pool-side issues."}]},{type:"h3",text:"8. Hashboard Issue"},{type:"p",text:"One or more hashboards are failing, underperforming, or not detected by the system."},{type:"dl",items:[{term:"Possible Causes",def:"Loose cables or poor connector seating between control board, PSU, and hashboard. Overheating or electrical damage to chips or traces. Firmware unable to read sensors or initialize the board."},{term:"Troubleshooting Steps",def:"1. Check all cabling between PSU, control board, and hashboard. 2. Inspect physical boards for burn marks, discoloration, or component damage. 3. Swap the suspect board into a known-working miner to isolate fault. 4. Reflash firmware or perform a system reset. 5. Replace defective boards if confirmed through isolation testing."}]},{type:"h3",text:"9. Target Mismatch"},{type:"p",text:"A device's actual state does not match its expected target state within LÅD. For example, if a miner is targeted to be ON but is detected as OFF, the system will generate a Target Mismatch error. LÅD continuously verifies that each device's operational state aligns with its control target."},{type:"dl",items:[{term:"Possible Causes",def:"Authentication error â invalid credentials preventing control. Pool or configuration mismatch. Hardware or power issue â the miner is physically powered off or unstable. Network latency or timeout. Firmware reporting delay."},{term:"Troubleshooting Steps",def:"1. Confirm expected state in the LÅD UI. 2. Check power and connectivity â ensure the miner is powered and reachable. 3. Re-authenticate device â confirm firmware credentials match the LÅD configuration. 4. Restart the miner to force a state refresh. 5. Review logs for related Auth or Network errors. 6. Escalate to engineering if mismatch persists after resets and re-authentication."}]},{type:"h3",text:"10. Efficiency Issue"},{type:"p",text:"The device is operating outside the expected efficie
928ncy range (J/TH). Efficiency measures the relationship between hashrate and power draw. Deviations typically indicate unstable power, overheating, or firmware misconfiguration."},{type:"dl",items:[{term:"Possible Causes",def:"Unstable or noisy power supply. Elevated temperatures reducing performance. Incorrect voltage, frequency, or power limit settings. Aging hardware or degraded ASIC chips."},{term:"Troubleshooting Steps",def:"1. Compare reported efficiency against model specifications. 2. Review power supply output for stability. 3. Check ambient and chip temperatures. 4. Verify firmware settings for voltage and frequency. 5. Consider hardware replacement for aging devices."}]}]}},J3=[{id:"getting-started",title:"Getting Started",icon:xL,articles:[{id:"agent-install-windows",label:"Install Agent on Windows"},{id:"setup-team-org",label:"Setup Team & Organization"},{id:"scan-asics",label:"Scan Your ASICs Into LÅD"},{id:"hosted-clients-access",label:"Hosted Clients Access"},{id:"configuring-location-profile",label:"Configuring Location Profile"},{id:"wallet-addresses",label:"Wallet Addresses & Withdrawals"},{id:"agent-settings",label:"Configure LÅD Agent"},{id:"linux-agent",label:"Install Agent on Linux"}]},{id:"daily-ops",title:"Daily Operations & Management",icon:Tg,articles:[{id:"lincoin-revenues",label:"Lincoin Pool Revenues Report"},{id:"generate-csv-excel-reports",label:"Generate CSV & Excel Reports"},{id:"smart-view-filter",label:"Smart View Filter"},{id:"site-map-overview",label:"Site Map Overview"}]},{id:"optimization",title:"Optimization & Automation",icon:xt,articles:[{id:"mcp-server",label:"LÅD MCP Server"},{id:"energy-rails",label:"Energy Rails Documentation"},{id:"commands-sent-through-lod",label:"Commands Sent Through LÅD"},{id:"automated-reporting",label:"Automated Reporting"},{id:"watchdog-pool-enforcer",label:"Watch Dog (Pool Enforcer) Rail"}]},{id:"troubleshooting",title:"Troubleshooting & FAQ",icon:bL,articles:[{id:"states-issues",label:"States & Issues of ASICs"}]}];function o0e({blocks:e}){return a.jsx("div",{className:"space-y-4",children:e.map((t,n)=>{if(t.type==="h2")return a.jsx("h2",{className:"font-display text-2xl text-lod-white mt-8 mb-2 leading-tight",children:t.text},n);if(t.type==="h3")return a.jsx("h3",{className:"font-display text-lg mt-6 mb-2",style:{color:"#BFF589"},children:t.text},n);if(t.type==="p")return a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed",children:t.text},n);if(t.type==="ul")return a.jsx("ul",{className:"list-none space-y-2",children:t.items.map((r,i)=>a.jsxs("li",{className:"flex items-start gap-2 text-lod-gray text-sm",children:[a.jsx("span",{style:{color:"#BFF589",marginTop:"4px",flexShrink:0},children:"â¸"}),a.jsx("span",{children:r})]},i))},n);if(t.type==="ol")return a.jsx("ol",{className:"space-y-2",children:t.items.map((r,i)=>a.jsxs("li",{className:"flex items-start gap-3 text-lod-gray text-sm",children:[a.jsx("span",{className:"font-mono text-xs flex-shrink-0 w-5 h-5 rounded-sm flex items-center justify-center mt-0.5",style:{background:"rgba(191,245,137,0.1)",color:"#BFF589"},children:i+1}),a.jsx("span",{children:r})]},i))},n);if(t.type==="dl")return a.jsx("dl",{className:"space-y-3",children:t.items.map((r,i)=>a.jsxs("div",{className:"rounded-sm p-3",style:{background:"rgba(255,255,255,0.03)",border:"1px solid rgba(255,255,255,0.06)"},children:[a.jsx("dt",{className:"font-mono text-xs mb-1",style:{color:"#BFF589"},children:r.term}),a.jsx("dd",{className:"text-lod-gray text-sm leading-relaxed",children:r.def})]},i))},n);if(t.type==="code")return a.jsx("pre",{className:"rounded-sm p-4 text-xs leading-relaxed overflow-x-auto",style:{background:"#0D0D0D",border:"1px solid rgba(191,245,137,0.15)",color:"#BFF589",fontFamily:"JetBrains Mono, monospace"},children:t.text},n);if(t.type==="callout")return a.jsxs("div",{className:"rounded-sm p-4 text-sm",style:{background:"rgba(191,245,137,0.06)",border:"1px solid rgba(191,245,137,0.2)",color:"#BFF589"},children:["â ",t.text]},n);if(t.type==="img"){const i=e.filter((o,s)=>s<=n&&o.type==="img").length-1===1;
928return a.jsx("div",{className:"my-4 rounded-sm overflow-hidden",style:{border:"1px solid rgba(255,255,255,0.08)",maxWidth:i?"49%":"70%"},children:a.jsx("img",{src:t.src,alt:t.alt,className:"w-full h-auto block",loading:"lazy"})},n)}return t.type==="video"?a.jsx("div",{className:"my-6",style:{position:"relative",paddingBottom:"56.25%",height:0,border:"1px solid rgba(191,245,137,0.2)",borderRadius:"8px",overflow:"hidden",maxWidth:"70%"},children:a.jsx("iframe",{src:`https://www.loom.com/embed/${t.loomId}`,frameBorder:"0",webkitallowfullscreen:!0,mozallowfullscreen:!0,allowFullScreen:!0,style:{position:"absolute",top:0,left:0,width:"100%",height:"100%"},title:t.label})},n):null})})}function s0e(){const t=new URLSearchParams(window.location.search).get("article")||"agent-install-windows",[n,r]=O.useState(t),[i,o]=O.useState({"getting-started":!0,"daily-ops":!0,optimization:!0,troubleshooting:!0}),[s,l]=O.useState(""),[u,d]=O.useState(!1),p=a0e[n],f=b=>o(w=>({...w,[b]:!w[b]})),g=s.trim()?J3.map(b=>({...b,articles:b.articles.filter(w=>w.label.toLowerCase().includes(s.toLowerCase()))})).filter(b=>b.articles.length>0):J3,y=b=>{r(b),d(!1),window.scrollTo({top:0,behavior:"smooth"});const w=new URL(window.location.href);w.searchParams.set("article",b),window.history.pushState({},"",w.toString())};return a.jsxs(Je,{children:[a.jsx(He,{title:"LÅD Knowledge Base â Setup, Operations & Automation Docs",description:"Everything you need to set up, operate, and optimize the LÅD platform. Agent installation, team setup, ASIC scanning, energy rails, MCP server, and troubleshooting guides.",canonical:"https://lod.io/docs"}),a.jsx("section",{className:"py-16",style:{background:"#0A0A0A",borderBottom:"1px solid rgba(255,255,255,0.06)"},children:a.jsxs("div",{className:"max-w-[1400px] mx-auto px-6",children:[a.jsx("div",{className:"section-label mb-3",children:"Documentation"}),a.jsxs("h1",{className:"font-display text-4xl md:text-5xl text-lod-white mb-4 leading-tight",children:[a.jsx("span",{style:{color:"#BFF589"},children:"LÅD"})," KNOWLEDGE BASE"]}),a.jsx("p",{className:"text-lod-gray text-base max-w-xl mb-6",children:"Everything you need to set up, operate, and optimize the LÅD platform."}),a.jsxs("div",{className:"relative max-w-md",children:[a.jsx(PL,{size:14,className:"absolute left-3 top-1/2 -translate-y-1/2 text-lod-gray"}),a.jsx("input",{type:"text",placeholder:"Search documentation...",value:s,onChange:b=>l(b.target.value),className:"w-full pl-9 pr-4 py-2.5 text-sm rounded-sm outline-none",style:{background:"rgba(255,255,255,0.06)",border:"1px solid rgba(255,255,255,0.1)",color:"#F9F9F9"}})]})]})}),a.jsx("div",{className:"max-w-[1400px] mx-auto px-6 py-10",children:a.jsxs("div",{className:"flex gap-10",children:[a.jsx("button",{className:"md:hidden fixed bottom-6 right-6 z-50 w-12 h-12 rounded-full flex items-center justify-center",style:{background:"#BFF589",color:"#1A1A1A"},onClick:()=>d(b=>!b),children:u?a.jsx(Pg,{size:20}):a.jsx(Vk,{size:20})}),a.jsx("aside",{className:` 929 fixed inset-y-0 left-0 z-40 w-72 overflow-y-auto pt-20 px-4 pb-8 md:static md:z-auto md:w-64 md:flex-shrink-0 md:block md:pt-0 md:px-0 930 transition-transform duration-300 931 ${u?"translate-x-0":"-translate-x-full md:translate-x-0"} 932 `,style:{background:"#0A0A0A",borderRight:"1px solid rgba(255,255,255,0.06)"},children:a.jsxs("div",{style:{position:"sticky",top:"20px"},children:[a.jsxs("div",{className:"flex items-center gap-2 mb-4 px-2",children:[a.jsx("span",{className:"text-xs font-mono px-2 py-1 rounded-sm",style:{color:"#BFF589",background:"rgba(191,245,137,0.08)",border:"1px solid rgba(191,245,137,0.3)"},children:"EN"}),a.jsx("span",{style:{color:"rgba(255,255,255,0.2)",fontSize:"10px"},children:"|"}),a.jsx("a",{href:"/es/docs",className:"text-xs font-mono px-2 py-1 rounded-sm transition-colors",style:{color:"#A0A0A0",border:"1px solid rgba(255,255,255,0.1)"},children:"ES"})]}),a.jsx("div",{className:"section-label mb-4",style:{paddingLeft:"10%"},children:"Contents"}),a.jsx("nav",{className:"space-y-1",children:g.map(b=>{const w=b.icon,v=i[b.id]!==!1;return a.jsxs("div",{className:"mb-2",children:[a.jsxs("button",{onClick:()=>f(b.id),className:"w-full flex items-center justify-between gap-2 px-2 py-2 rounded-sm text-sm font-display tracking-wide transition-colors",style:{color:"#F9F9F9"},children:[a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx(w,{size:14,style:{color:"#BFF589"}}),b.title]}),a.jsx(la,{size:12,className:`transition-transform ${v?"rotate-90":""}`,style:{color:"#A0A0A0"}})]}),v&&a.jsx("div",{className:"ml-5 mt-0.5 space-y-0.5",children:b.articles.map(j=>a.jsx("button",{onClick:()=>y(j.id),className:"w-full text-left px-3 py-2 text-xs rounded-sm transition-all",style:{background:n===j.id?"rgba(191,245,137,0.08)":"transparent",color:n===j.id?"#BFF589":"#A0A0A0",borderLeft:n===j.id?"2px solid #BFF589":"2px s
932olid transparent"},children:j.label},j.id))})]},b.id)})})]})}),a.jsx("main",{className:"flex-1 min-w-0",children:p?a.jsxs("div",{children:[a.jsxs("div",{className:"flex items-center gap-2 mb-6 text-xs font-mono",style:{color:"#A0A0A0"},children:[a.jsx("span",{children:"Docs"}),a.jsx(la,{size:10}),a.jsx("span",{children:p.category}),a.jsx(la,{size:10}),a.jsx("span",{style:{color:"#BFF589"},children:p.title})]}),a.jsx("h2",{className:"font-display text-3xl md:text-4xl text-lod-white mb-2 leading-tight",children:p.title}),a.jsx("div",{className:"mb-8 pb-6",style:{borderBottom:"1px solid rgba(255,255,255,0.06)"},children:a.jsx("span",{className:"tag-chip",children:p.category})}),a.jsx(o0e,{blocks:p.content}),a.jsx("div",{className:"mt-16 pt-8 flex items-center justify-end",style:{borderTop:"1px solid rgba(255,255,255,0.06)"},children:a.jsx("a",{href:"/contact",className:"btn-outline text-xs px-4 py-2",children:"Get Support"})})]}):a.jsx("div",{className:"text-lod-gray text-sm",children:"Select an article from the sidebar."})})]})}),u&&a.jsx("div",{className:"fixed inset-0 z-30 md:hidden",style:{background:"rgba(0,0,0,0.6)"},onClick:()=>d(!1)})]})}function l0e(){if(typeof document>"u")return null;const e=document.cookie.match(/_ga=(GA\d\.\d\.\d+\.\d+)/);if(!e)return null;const t=e[1].split(".");return t.length>=4?`${t[2]}.${t[3]}`:null}function c0e(){const[e,t]=O.useState({first_name:"",last_name:"",email:"",company:"",job_title:"",message:"",privacy_policy_ack:!1,marketing_consent:!1}),[n,r]=O.useState("idle"),[i,o]=O.useState({}),s=d=>{const{name:p,value:f,type:g,checked:y}=d.target;t({...e,[p]:g==="checkbox"?y:f}),i[p]&&o({...i,[p]:""})},l=()=>{const d={};return e.first_name.trim()||(d.first_name="First name is required"),e.last_name.trim()||(d.last_name="Last name is required"),e.email.trim()||(d.email="Email is required"),e.company.trim()||(d.company="Company is required"),e.privacy_policy_ack||(d.privacy_policy_ack="Please acknowledge the Privacy Policy to continue"),d},u=async d=>{d.preventDefault();const p=l();if(Object.keys(p).length>0){o(p);return}r("submitting"),await xn.functions.invoke("submitContact",{data:{...e,ga_client_id:l0e(),consent_timestamp:new Date().toISOString()}}),typeof window<"u"&&typeof window.gtag=="function"&&window.gtag("event","qualify_lead",{form_location:"contact_page"}),r("success")};return a.jsxs(Je,{children:[a.jsx(He,{title:"Contact LÅD â Book an Energy Strategy Call | LÅD",description:"Book an energy strategy call with LÅD. Not a sales pitch â an actual conversation about your operation, load profile, market exposure, and where you're leaving money on the table.",canonical:"https://lod.io/contact"}),a.jsx("section",{className:"py-20 grid-lines-overlay relative",style:{background:"#232323",borderBottom:"1px solid rgba(255,255,255,0.06)"},children:a.jsxs("div",{className:"max-w-[1400px] mx-auto px-6",children:[a.jsx("div",{className:"section-label mb-4",children:"Contact"}),a.jsxs("h1",{className:"font-display text-4xl md:text-5xl text-lod-white mb-6 leading-tight",children:["Let's Work",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"Together."})]})]})}),a.jsx("section",{className:"py-6",style:{background:"#0D0D0D",borderBottom:"1px solid rgba(255,255,255,0.06)"},children:a.jsx("div",{className:"max-w-[1400px] mx-auto px-6",children:a.jsx("div",{className:"flex flex-col md:flex-row gap-4 md:gap-8",children:[{label:"General Inquiries",desc:"Product questions, demos, and pricing"},{label:"Enterprise & Partnerships",desc:"Multi-site deployments and integrations"},{label:"Security & Compliance",desc:"SOC reports, vulnerability disclosures"}].map(d=>a.jsxs("div",{className:"flex items-start gap-3 flex-1",children:[a.jsx("div",{className:"w-1.5 h-1.5 rounded-full mt-2 flex-shrink-0",style:{background:"#BFF589"}}),a.jsxs("div",{children:[a.jsx("div",{className:"font-mono text-xs uppercase tracking-wider mb-0.5",style:{color:"#BFF589"},children:d.label}),a.jsx("div",{className:"text-lod-gray text-xs leading-relaxed",children:d.desc})]})]},d.label))})})}),a.jsx("section",{className:"py-20",style:{background:"#0A0A0A"},children:a.jsx("div",{className:"max-w-[1400px] mx-auto px-6",children:a.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-20",children:[a.jsx("div",{children:n==="success"?a.jsxs("div",{className:"rounded-xl p-10 text-center",style:{background:"rgba(191,245,137,0.07)",border:"1px solid rgba(191,245,137,0.2)"},children:[a.jsx("div",{className:"font-display text-2xl text-lod-white mb-3",children:"Message Received"}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed",children:"Thanks for reaching out. We'll be in touch shortly."})]}):a.jsxs("form",{onSubmit:u,className:"space-y-5",children:[a.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[a.jsxs("div",{children:[a.jsx("label",{className:"block font-mono text-xs mb-2 uppercase tracking-widest",style:{color:"#BFF589"},children:"First Name *"}),a.jsx("input",{name:"first_name",placeholder:"Joe",value:e.first_name,onChange:s,className:"w-full px-4 py-3 rounded-lg text-sm outline-none transition-colors placeholder-gray-600",style:{background:"#1E1E1E",border:`1px solid ${i.first_name?"#FF3B30":"rgba(255,255,255,0.1)"}`,color:"#F9F9F9"},onFocus:d=>d.target.style.borderColor=i.first_name?"#FF3B30":"#BFF589",onBlur:d=>d.target.style.borderColor=i.first_name?"#FF3B30":"rgba(255,255,255,0.1)"}),i.first_name&&a.jsx("p",{className:"font-mono text-xs mt-1",style:{color:"#FF3B30"},children:i.first_name})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block font-mono text-xs mb-2 uppercase tracking-widest",style:{color:"#BFF589"},children:"Last Name *"}),a.jsx("input",{name:"last_name",placeholder:"Smith",value:e.last_name,onChange:s,className:"w-full px-4 py-3 rounded-lg text-sm outline-none transition-colors placeholder-gray-600",style:{background:"#1E1E1E",border:`1px solid ${i.last_name?"#FF3B30":"rgba(255,255,255,0.1)"}`,color:"#F9F9F9"},onFocus:d=>d.target.style.borderColor=i.last_name?"#FF3B30":"#BFF589",onBlur:d=>d.target.style.borderColor=i.last_name?"#FF3B30":"rgba(255,255,255,0.1)"}),i.last_name&&a.jsx("p",{className:"font-mono text-xs mt-1",style:{color:"#FF3B30"},children:i.last_name})]})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block font-mono text-xs mb-2 uppercase tracking-widest",style:{color:"#BFF589"},children:"Email *"}),a.jsx("input",{type:"email",name:"email",value:e.email,onChange:s,className:"w-full px-4 py-3 rounded-lg text-sm outline-none transition-colors placeholder-gray-600",style:{background:"#1E1E1E",border:`1px solid ${i.email?"#FF3B30":"rgba(255,255,255,0.1)"}`,color:"#F9F9F9"},placeholder:"[email protected]",onFocus:d=>d.target.style.borderColor=i.email?"#FF3B30":"#BFF589",onBlur:d=>d.target.style.borderColor=i.email?"#FF3B30":"rgba(255,255,255,0.1)"}),a.jsx("p",{className:"font-mono text-xs mt-1.5",style:{color:"#606060"},children:"Please use your corporate email address"}),i.email&&a.jsx("p",{className:"font-mono text-xs mt-1",style:{color:"#FF3B30"},children:i.email})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block font-mono text-xs mb-2 uppercase tracking-widest",style:{color:"#BFF589"},children:"Company *"}),a.jsx("input",{name:"company",value:e.company,onChange:s,className:"w-full px-4 py-3 rounded-lg text-sm outline-none transition-colors placeholder-gray-600",style:{background:"#1E1E1E",border:`1px solid ${i.company?"#FF3B30":"rgba(255,255,255,0.1)"}`,color:"#F9F9F9"},placeholder:"Acme Energy Corp",onFocus:d=>d.target.style.borderColor=i.company?"#FF3B30":"#BFF589",onBlur:d=>d.target.style.borderColor=i.company?"#FF3B30":"rgba(255,255,255,0.1)"}),i.company&&a.jsx("p",{className:"font-mono text-xs mt-1",style:{color:"#FF3B30"},children:i.company})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block font-mono text-xs mb-2 uppercase tracking-widest",style:{color:"#BFF589"},children:"Job Title"}),a.jsx("input",{name:"job_title",placeholder:"Head of Energy Operations",value:e.job_title,onChange:s,className:"w-full px-4 py-3 rounded-lg text-sm outline-none transition-colors placeholder-gray-600",style:{background:"#1E1E1E",border:"1px solid rgba(255,255,255,0.1)",color:"#F9F9F9"},onFocus:d=>d.target.style.borderColor="#BFF589",onBlur:d=>d.target.style.borderColor="rgba(255,255,255,0.1)"})]}),a.jsxs("div",{children:[a.jsx("label",{className:"block font-mono text-xs mb-2 uppercase tracking-widest",style:{color:"#BFF589"},children:"Message"}),a.jsx("textarea",{name:"message",placeholder:"Tell us about your operation â facility size, current tools, or what you're trying to solve.",value:e.message,onChange:s,rows:5,className:"w-full px-4 py-3 rounded-lg text-sm outline-none transition-colors resize-none placeholder-gray-600",style:{background:"#1E1E1E",border:"1px solid rgba(255,255,255,0.1)",color:"#F9F9F9"},onFocus:d=>d.target.style.borderColor="#BFF589",onBlur:d=>d.target.style.borderColor="rgba(255,255,255,0.1)"})]}),a.jsxs("div",{className:"space-y-3",children:[a.jsxs("label",{className:"flex items-start gap-3 text-xs leading-relaxed cursor-pointer",style:{color:"#A0A0A0"},children:[a.jsx("input",{type:"checkbox",name:"privacy_policy_ack",checked:e.privacy_policy_ack,onChange:s,className:"mt-0.5 w-4 h-4 shrink-0 accent-lod-green"}),a.jsxs("span",{children:["I acknowledge LÅD's"," ",a.jsx("a",{href:"/privacy",className:"text-lod-green hover:underline",children:"Privacy Policy"})," and consent to my data being processed to handle this inquiry. *"]})]}),i.privacy_policy_ack&&a.jsx("p",{className:"font-mono text-xs mt-1",style:{color:"#FF3B30"},children:i.privacy_policy_ack}),a.jsxs("label",{className:"flex items-start gap-3 text-xs leading-relaxed cursor-pointer",style:{color:"#A0A0A0"},children:[a.jsx("input",{type:"checkbox",name:"marketing_consent",checked:e.marketing_consent,onChange:s,className:"mt-0.5 w-4 h-4 shrink-0 accent-lod-green"}),a.jsx("span",{children:"I'd also like to receive marketing communications and updates from LÅD (optional)."})]})]}),a.jsx("p",{className:"font-mono text-xs",style:{color:"#707070"},children:"* Required fields"}),a.jsx("button",{type:"submit",disabled:n==="submitting",className:"btn-primary w-full justify-center",style:{opacity:n==="submitting"?.7:1},children:n==="submitting"?"Sending...":"Send Message"})]})}),a.jsxs("div",{children:[a.jsxs("h2",{className:"font-display text-3xl text-lod-white mb-8 leading-none",children:["BOOK AN ENERGY",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"STRATEGY CALL"})]}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-8",children:"Not a sales pitch. An actual conversation about your operation: your load profile, your market exposure, your current tools, and where you're leaving money on the table."}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-8",children:"We'll come prepared with data on your facility and walk away with a clear picture of what's possible."}),a.jsxs("p",{className:"text-lod-gray text-sm leading-relaxed mb-8",children:["Prefer to skip the form? ",a.jsx("a",{href:"/lp/book-a-meeting?source=contact-page",className:"text-lod-green hover:underline",children:"Book a call instantly"})," on our calendar."]}),a.jsx("div",{className:"space-y-4",children:["30-minute initial conversation","No commitment required","Specific to your operation, not a demo","Followed by a written assessment if relevant"].map(d=>a.jsxs("div",{className:"flex items-start gap-3",children:[a.jsx("div",{className:"w-1.5 h-1.5 rounded-full mt-2",style:{background:"#BFF589"}}),a.jsx("span",{className:"text-lod-gray text-sm",children:d})]},d))})]})]})})})]})}const u0e=[{label:"LÅD Achieves SOC 1 Type II Certification Across Its Full Product Suite",href:"/blog/soc-1-certification",tag:"Company"}],d0e=[{icon:zs,title:"Defence-In-Depth",desc:"We implement layered security controls to ensure multiple layers of our infrastru
932cture are always protected."},{icon:Ng,title:"Least Privilege Access",desc:"Access is strictly limited to those with a legitimate business need and is based on the principle of least privilege."},{icon:EL,title:"Continuous Improvement",desc:"Our controls are regularly updated to enhance effectiveness, auditability, and reduce operational friction."}],h0e=[{title:"Data At Rest",desc:"All personally identifiable data stored in our systems is encrypted using industry-standard methods, including AES-256 encryption for sensitive data."},{title:"Data In Transit",desc:"We use TLS 1.2 or higher to safeguard data transmitted over networks, with additional layers such as HSTS to maximise protection."}];function p0e(){return a.jsxs(Je,{children:[a.jsx(He,{title:"Security & Compliance â SOC 1 & SOC 2 Type II Certified | LÅD",description:"LÅD upholds the highest security standards with SOC 1 Type II and SOC 2 Type II compliance. Defence-in-depth, least privilege access, AES-256 encryption, and annual penetration testing.",canonical:"https://lod.io/security"}),a.jsx(wy,{tag:"Governance & Security",headline:a.jsxs(a.Fragment,{children:["GOVERNANCE AND",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"SECURITY"})]}),subheadline:"At LoD we are committed to upholding the highest security standards, reflected in our SOC 1 Type II and SOC 2 Type II compliance across all five trust service criteria: Security, Availability, Processing Integrity, Confidentiality, and Privacy."}),a.jsx("section",{className:"py-24",style:{background:"#0D0D0D"},children:a.jsxs("div",{className:"max-w-[1400px] mx-auto px-6",children:[a.jsxs("h2",{className:"font-display text-4xl text-lod-white mb-16 tracking-wider",children:["GOVERNANCE ",a.jsx("span",{style:{color:"#BFF589"},children:"PRINCIPLES"})]}),a.jsx("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-6",children:d0e.map(e=>a.jsxs("div",{className:"card-obsidian p-8 text-center",children:[a.jsx("div",{className:"w-14 h-14 rounded-sm flex items-center justify-center mx-auto mb-6",style:{background:"rgba(191,245,137,0.08)",border:"1px solid rgba(191,245,137,0.15)"},children:a.jsx(e.icon,{size:22,style:{color:"#BFF589"}})}),a.jsx("h3",{className:"font-display text-xl text-lod-white mb-4",children:e.title}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed",children:e.desc})]},e.title))})]})}),a.jsx("section",{className:"py-24",style:{background:"#0A0A0A"},children:a.jsxs("div",{className:"max-w-[1400px] mx-auto px-6",children:[a.jsxs("h2",{className:"font-display text-4xl text-lod-white mb-16 tracking-wider",children:["DATA ",a.jsx("span",{style:{color:"#BFF589"},children:"PROTECTION"})]}),a.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:h0e.map(e=>a.jsxs("div",{className:"card-obsidian p-8",children:[a.jsx("h3",{className:"font-display text-2xl text-lod-white mb-4",children:e.title}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed",children:e.desc})]},e.title))})]})}),a.jsx("section",{className:"py-24",style:{background:"#0D0D0D"},children:a.jsxs("div",{className:"max-w-[1400px] mx-auto px-6",children:[a.jsxs("h2",{className:"font-display text-4xl text-lod-white mb-16 tracking-wider",children:["PRODUCT ",a.jsx("span",{style:{color:"#BFF589"},children:"SECURITY"})]}),a.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-16",children:[a.jsxs("div",{children:[a.jsx("div",{className:"section-label mb-4",children:"Vulnerability Scanning"}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed mb-4",children:"LoD conducts vulnerability scanning at key stages of our Secure Development Lifecycle (SDLC). This includes:"}),a.jsx("ul",{className:"space-y-3",children:["Software Composition Analysis (SCA) to ensure third-party components in our software are free from known vulnerabilities.","Dynamic Application Security Testing (DAST) to evaluate the behavior of running applications.","Network Vulnerability Scanning to detect vulnerabilities in our network systems regularly."].map(e=>a.jsxs("li",{className:"flex items-start gap-3",children:[a.jsx("div",{className:"w-1.5 h-1.5 rounded-full mt-2 flex-shrink-0",style:{background:"#B8FF00"}}),a.jsx("span",{className:"text-lod-gray text-sm",children:e})]},e))})]}),a.jsxs("div",{children:[a.jsx("div",{className:"section-label mb-4",children:"Penetration Testing"}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed",children:"At LoD, we engage with industry leading security firms to perform penetration testing at least annually. These assessments cover our entire environment, from cloud environments to product interfaces, ensuring all vulnerabilities are identified and mitigated promptly. We ensure that full system access, including source code, is provided to our testers to maximise coverage. Detailed penetration test reports are available for review by our clients upon request."})]})]})]})}),a.jsx("section",{className:"py-24",style:{background:"#0A0A0A"},children:a.jsxs("div",{className:"max-w-[1400px] mx-auto px-6",children:[a.jsxs("h2",{className:"font-display text-4xl text-lod-white mb-16 tracking-wider",children:["DATA ",a.jsx("span",{style:{color:"#BFF589"},children:"PROTECTION"})]}),a.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-8",children:[a.jsxs("div",{className:"card-obsidian p-8",children:[a.jsxs("div",{className:"flex items-start gap-4 mb-4",children:[a.jsx("div",{className:"w-10 h-10 rounded-sm flex items-center justify-center flex-shrink-0",style:{background:"rgba(191,245,137,0.08)",border:"1px solid rgba(191,245,137,0.15)"},children:a.jsx(zs,{size:18,style:{color:"#BFF589"}})}),a.jsx("h3",{className:"font-display text-xl text-lod-white",children:"Endpoint Protection"})]}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed",children:"All corporate devices at LÅD are centrally managed and secured through Mobile Device Management (MDM) software. We enforce disk encryption, anti-malware protection, and regular software updates on all devices. Alerts from our endpoint protection systems are monitored 24/7 to ensure any anomalies are addressed immediately."})]}),a.jsxs("div",{className:"card-obsidian p-8",children:[a.jsxs("div",{className:"flex items-start gap-4 mb-4",children:[a.jsx("div",{className:"w-10 h-10 rounded-sm flex items-center justify-center flex-shrink-0",style:{background:"rgba(191,245,137,0.08)",border:"1px solid rgba(191,245,137,0.15)"},children:a.jsx(kL,{size:18,style:{color:"#BFF589"}})}),a.jsx("h3",{className:"font-display text-xl text-lod-white",children:"Vendor Security"})]}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed",children:"LÅD follows a risk-based approach to vendor management. Vendors are evaluated based on their access to our customer and corporate data, the potential risk they pose to our infrastru
932cture, and their overall security posture. Each vendor undergoes continuous monitoring and periodic reviews to ensure compliance with our security standards."})]}),a.jsxs("div",{className:"card-obsidian p-8",children:[a.jsxs("div",{className:"flex items-start gap-4 mb-4",children:[a.jsx("div",{className:"w-10 h-10 rounded-sm flex items-center justify-center flex-shrink-0",style:{background:"rgba(191,245,137,0.08)",border:"1px solid rgba(191,245,137,0.15)"},children:a.jsx(Ng,{size:18,style:{color:"#BFF589"}})}),a.jsx("h3",{className:"font-display text-xl text-lod-white",children:"Secure Remote Access"})]}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed",children:"LÅD ensures secure remote access through the use of Virtual Private Networks (VPNs) and encrypted connections. All access to our systems from external networks is tightly controlled and logged, with multi-factor authentication (MFA) enforced on critical systems. Malware-blocking DNS servers are also used to protect our employees while browsing the internet."})]}),a.jsxs("div",{className:"card-obsidian p-8",children:[a.jsxs("div",{className:"flex items-start gap-4 mb-4",children:[a.jsx("div",{className:"w-10 h-10 rounded-sm flex items-center justify-center flex-shrink-0",style:{background:"rgba(191,245,137,0.08)",border:"1px solid rgba(191,245,137,0.15)"},children:a.jsx(EL,{size:18,style:{color:"#BFF589"}})}),a.jsx("h3",{className:"font-display text-xl text-lod-white",children:"Security Training"})]}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed",children:"LÅD provides comprehensive security training to all employees upon onboarding and annually. Employees are educated on secure coding practices, identifying social engineering attacks, and the correct handling of sensitive data. We also conduct regular simulations and provide threat briefings to keep our team updated on emerging security threats."})]})]})]})}),a.jsx("section",{className:"py-20 text-center",style:{background:"#0D0D0D"},children:a.jsx("div",{className:"max-w-[1400px] mx-auto px-6",children:a.jsx("div",{className:"flex flex-wrap justify-center gap-8",children:["SOC 1 Type II","SOC 2 Type II","GDPR Compliant","ISO 27001"].map(e=>a.jsx("div",{className:"px-8 py-5 rounded-sm font-display text-base text-lod-white",style:{border:"1px solid rgba(191,245,137,0.2)",background:"rgba(191,245,137,0.04)"},children:e},e))})})}),a.jsx(Po,{title:"Related Reading",links:u0e}),a.jsx(un,{ctaLabel:"Contact Security Team",ctaHref:"/contact",subline:"QUESTIONS ABOUT SECURITY?"})]})}const Z3={"About LÅD":xt,"Data Layer":jL,"Strategy Layer":Uk,"Execution Layer":Ts,"AI & Flexible Compute":rU,"Energy Markets & Grid":JW,"Security & Compliance":zs,"Getting Started":kU,"Technical Integration":RH},J1=[{label:"About LÅD",faqs:[{q:"What is LÅD?",a:"LÅD is the energy intelligence platform for data centers and flexible computing infrastructure. We provide real-time energy market data, strategic energy planning, and automated grid-responsive device control across your data center. LÅD enables operators to reduce energy costs by up to 60%, capture demand response revenue, and respond to grid signals in under 30 seconds. Used by Bitcoin miners, AI data centers, and HPC operators worldwide."},{q:"Who is LÅD built for?",a:"LÅD serves data center operators, energy teams, AI infrastructure builders, and autonomous agents managing flexible computing workloads. Whether you're running Bitcoin mining, AI inference, AI training, or HPC workloads, LÅD helps you optimize energy consumption and capture market value. Customers include hyperscale data center operators, Bitcoin mining pools, and AI model training facilities."},{q:"What is the problem LÅD solves?",a:"Data centers face three challenges: (1) Energy costs consume 30-50% of operating expenses and vary dramatically hour-to-hour. (2) Grid constraints restrict where and when compute can run. (3) Manual energy decisions leave millions in captured value on the table. LÅD transforms energy from a static cost into a strategic asset, enabling operators to reduce costs, improve uptime, and participate in grid markets."},{q:"How much can LÅD save my data center?",a:"Savings depend on your location, load profile, and operational constraints. Operators in ERCOT West Zone with flexible workloads typically capture $5,
932000-$15,000 per MW per year from negative-price events alone. Demand response participation adds $50,000-$200,000 per MW annually. Peak shaving and scarcity avoidance save another $100,000-$400,000 per 100 MW site. Full implementation across all three layers (Data, Strategy, Execution) typically delivers 20-60% total energy cost reduction."}]},{label:"Data Layer",faqs:[{q:"What is the LÅD Data Layer?",a:"The Data Layer provides interpreted, real-time and historical energy market data for ERCOT. Instead of raw grid feeds, you get expert-analyzed signals: real-time LMP prices, demand forecasts, renewable output, grid stress indicators, and automated curtailment recommendations. Available via REST API and Model Context Protocol (MCP) for direct integration with autonomous agents and AI systems."},{q:"How is LÅD Data different from raw grid feeds?",a:"Raw ERCOT feeds give you numbers. LÅD Data gives you context. We interpret wholesale prices, identify profitable opportunities (negative-price windows), forecast grid stress events 2-4 hours ahead, and recommend actions (curtail/run/
932optimize) with confidence scores. This reduces decision latency from minutes to seconds and removes the need for energy analysts to manually monitor screens."},{q:"Can I use LÅD Data with my existing systems?",a:"Yes. The LÅD Data Layer is API-first. REST endpoints allow any system (your SCADA, control platform, or custom software) to fetch real-time and historical data. For AI agents and autonomous systems, we offer Model Context Protocol (MCP) for native integration. No replacement of existing infrastructure required."},{q:"What data does the Data Layer cover?",a:"Real-time and historical: Locational Marginal Prices (LMP) by node and zone, Reserve Margin, ORDC adders, frequency, voltage, generator outages, renewable output (wind/solar), demand curves, forward prices, ancillary service pricing, 4CP peaks, and grid stress forecasts. All timestamped, queryable by zone/node, and available from 2020-present."},{q:"Is LÅD Data available for markets outside ERCOT?",a:"Currently, LÅD focuses on ERCOT as the primary market with the highest operational complexity and profitable flexibility opportunities. PJM, MISO, and other markets are under development. Custom data integrations are available for enterprise customers."}]},{label:"Strategy Layer",faqs:[{q:"What is the LÅD Strategy Layer?",a:"The Strategy Layer is human-led energy consulting. Our team audits your data center operation (load profile, power contracts, grid location, equipment), analyzes your exposure to energy costs and grid events, and builds a custom energy strategy. The result: a prioritized roadmap of operational changes, market programs to join, and automation logic to implement."},{q:"What does a Strategy engagement include?",a:"Initial assessment of your facility (power infrastructure, location, contract terms, existing controls). Load analysis (consumption patterns, equipment, flexibility constraints). Market exposure analysis (your vulnerability to scarcity pricing, capacity costs, transmission charges). Opportunity identification (demand response, curtailment programs, renewable arbitrage, capacity optimization). Delivery of a custom implementation roadmap with ROI projections and timelines."},{q:"How long does a Strategy engagement take?",a:"Initial assessment and recommendation: 2-4 weeks. Implementation roadmap and pilot planning: 4-8 weeks total. Pilot deployment (if proceeding): 4-12 weeks depending on complexity. Many customers see revenue within the first month of deployment."},{q:"Can LÅD help me join demand response programs?",a:"Yes. We assess your eligibility for ERCOT Emergency Response Service (ERS), ancillary services, and other demand response programs. We help coordinate with your QSE/REP, handle program registration, and ensure your site is configured to meet program requirements. Typical demand response revenue: $50,000-$200,000 per MW annually depending on program and participation."},{q:"What is the cost of a Strategy engagement?",a:"Strategy pricing is based on facility size and complexity. Typical engagements range from $5,000-$50,000 depending on scope. Most customers see ROI within the first billing cycle through identified cost savings and demand response revenue. Enterprise contracts often bundle Strategy, Data, and Execution layers."}]},{label:"Execution Layer",faqs:[{q:"What is the LÅD Execution Layer?",a:"The Execution Layer automates grid-responsive action across your data center infrastructure. When grid signals change (price spikes, scarcity events, demand response calls), LÅD automatically executes pre-defined actions: curtailing ASICs, adjusting cooling setpoints, shifting AI workloads, or optimizing power distribution â all within seconds. No manual intervention required."},{q:"What devices does the Execution Layer control?",a:"ASIC miners (Antminer, WhatsMiner, IceRiver, etc.), GPUs and accelerators, PDUs and breakers, cooling equipment (HVAC, immersion systems), power supplies, and custom infrastructure. Control happens via IoT agents deployed on-site, connected to your local network. All communication is encrypted and logged for audit compliance."},{q:"How fast does the Execution Layer respond to grid signals?",a:"Sub-30-second response time from grid signal to device action. This allows
932LÅD to capture short-lived profit opportunities (negative-price windows lasting 5-15 minutes) and meet emergency demand response calls from ERCOT that require response within 30 minutes. Manual operators typically respond in 10-30 minutes, missing most opportunities."},{q:"Can I still manually control devices with the Execution Layer active?",a:"Yes. LÅD supports hybrid operation. You set high-level rules (curtail below 5 MW during scarcity events), and LÅD automates the execution. Override and manual control are always available. Many operators keep day-to-day device management manual while letting LÅD handle rapid grid responses."},{q:"Is the Execution Layer secure? Can LÅD shut down my equipment without permission?",a:"All communication is encrypted (TLS 1.2+) and logged. You define the automation rules â we execute them. Emergency stops and kill switches remain under your control. No action happens without a pre-configured rule that you approved. SOC 1 Type II and SOC 2 Type II certified for financial integrity and security."},{q:"How long does Execution Layer onboarding take?",a:"Typical deployment: 2-4 weeks. This includes network assessment, IoT agent installation, device discovery and integration, testing of automation logic, pilot runs, and production deployment. We work directly with your ops team to minimize disruption."}]},{label:"AI & Flexible Compute",faqs:[{q:"How does LÅD optimize AI inference costs?",a:"AI inference is geographically flexible â you can route requests to any available data center. LÅD monitors real-time electricity prices across multiple zones and routes inference calls to the cheapest location. Combined with demand response and peak shaving, inference costs drop 30-60%. CLÅD, our AI inference platform, implements this automatically for developers."},{q:"What is CLÅD?",a:"CLÅD is an AI inference platform built on the LÅD energy infrastructure. Developers submit inference requests through a single API. CLÅD routes each call to the most cost-effective data center based on real-time electricity prices, grid conditions, and capacity. Developers access free and premium AI models (LLMs, vision models, embeddings) with latency under 100ms and pricing 30-60% cheaper than fixed-location providers."},{q:"Can I use LÅD with my own AI workloads?",a:"Yes. LÅD works with any AI workload: inference (LLM serving, embeddings, vision), training (fine-tuning, continued pre-training), or reinforcement learning. The Execution Layer can shift workloads between devices or pause jobs during expensive periods, then resume during cheap windows. Requires custom integration but provides significant OpEx savings."},{q:"How do I route AI workloads based on energy prices?",a:"Use the LÅD Data Layer to fetch real-time LMP prices and grid stress forecasts. Build custom routing logic in your inference framework or container orchestration system (Kubernetes, etc.). Or use CLÅD directly â all routing and optimization is handled automatically. LÅD also provides Execution Layer integration to pause/resume jobs based on price thresholds."},{q:"What is flexible compute?",a:"Flexible compute means shifting computational workloads across time and geography based on energy availability and cost. Instead of running inference in a fixed data center, you route it to wherever electricity is cheapest. Instead of running training continuously, you pause during expensive peak hours and resume during cheap windows. Flexible compute reduces energy costs and improves grid stability."},{q:"How much can flexible compute save on AI infrastructure costs?",a:"For AI inference: 30-60% cost reduction through geographic arbitrage and demand response. For training: 20-40% cost reduction by pausing during peak hours. For continuously-running services: 40-70% reduction through smart scheduling and curtailment. ROI depends on workload type, geographic flexibility, and operational constraints."}]},{label:"Energy Markets & Grid",faqs:[{q:"What is ERCOT and why does it matter?",a:"ERCOT (Electric Reliability Council of Texas) is Texas's independent power grid. It covers about 90% of Texas including major data center hubs. ERCOT operates an energy-only market where prices fluctuate minute-to-minute based on supply and demand. Real-time prices range from -$250/MWh (surplus, generators paying to run) to $5,000/MWh (scarcity, critical shortfall). For data centers, this volatility is an opportunity: cheap hours mean cheap compute, expensive hours mean high demand response value."},{q:"What are negative prices in ERCOT?",a:"Negative prices occur when electricity supply exceeds demand. This happens frequently in West Texas when wind output is high and local demand is low. Generators with production tax credits choose to pay loads to consume power rather than curtail. Flexible data centers that consume during negative-price windows effectively get paid to mine or train AI. In 2023, West Zone saw over 1,000 negative-price intervals, worth ~$5,000 per MW in captured value."},{q:"What is LMP and why does it vary by location?",a:"LMP (Locational Marginal Price) is the real-time wholesale price of electricity at a specific grid node. LMP varies by location because of transmission constraints. If a transmission line is congested, the price downstream (the expensive side) is higher to discourage demand. Data centers in cheap zone
932s (West Texas, South Texas) can access much lower prices than data centers on constrained nodes. LÅD helps you understand your LMP exposure."},{q:"What is 4CP and how does it affect my bills?",a:"ERCOT determines transmission charges based on 4CP (Four Coincident Peaks) â your load during the four highest-demand hours of the year. Being online during even one of these peak hours can cost you $50,000-$150,000 in transmission fees for the entire next year. Strategic curtailment during those hours pays for itself hundreds of times over. LÅD identifies which hours are at risk and coordinates curtailment automatically."},{q:"What is demand response and how much can I earn?",a:"Demand response programs pay loads to reduce consumption during grid emergencies or peak hours. ERCOT offers: Emergency Response Service (ERS) paying $5,000-$50,000 per MW for 30-minute response, ancillary services, and capacity market participation. Total potential: $50,000-$200,000 per MW annually. LÅD helps you qualify, register, and execute demand response with automated coordination."},{q:"What is the difference between DAM and RTM?",a:"DAM (Day-Ahead Market) publishes hourly electricity prices 24 hours in advance, based on forecasts. RTM (Real-Time Market) clears every 5 minutes based on actual grid conditions. RTM prices are more volatile but capture the true cost of balancing the grid. Most profitable opportunities for flexible loads are in RTM: negative prices, scarcity spikes, and short-term arbitrage. LÅD Data Layer provides both DAM and RTM signals."},{q:"What is ORDC and when does it apply?",a:"ORDC (Operating Reserve Demand Curve) is a pricing adder that ERCOT applies when reserves fall below a threshold. ORDC can push prices from $100/MWh to $5,000+/MWh in minutes during system stress. Understanding ORDC behavior helps you anticipate scarcity events and position workloads before prices spike. LÅD forecasts ORDC conditions 2-4 hours ahead."}]},{label:"Security & Compliance",faqs:[{q:"Is LÅD SOC 1 Type II and SOC 2 Type II certified?",a:"Yes. LÅD is certified SOC 1 Type II (financial reporting controls and operational integrity) and SOC 2 Type II (security, availability, processing integrity, confidentiality, and privacy). Audited by a re
932cognized firm across all product layers. Certification covers IoT, Data Layer, Strategy Layer, and Execution Layer."},{q:"How does LÅD protect my data?",a:"Data at rest: AES-256 encryption. Data in transit: TLS 1.2 or higher. Access controls: Principle of least privilege with role-based access. Logging: All actions audited and logged for compliance. Employee training: Mandatory security training and annual refreshes. Penetration testing: Annual third-party security audits with full system access."},{q:"Can LÅD see my actual energy costs or contract terms?",a:"LÅD has access to whatever data you choose to share for optimization purposes (your LMP zone, capacity factor, demand patterns, device list). Your specific power contracts, pricing terms, and financial data remain confidential. You control data sharing granularly. We collect only the minimum data necessary to deliver value."},{q:"What happens if there's a security breach?",a:"LÅD maintains cyber liability insurance and incident response procedures. In the unlikely event of a breach, we follow established protocols: immediate notification (within 24 hours), forensic investigation, remediation, and regulatory reporting. SOC 2 Type II certification ensures controls are tested and verified annually."},{q:"Is LÅD compliant with GDPR, CCPA, and other privacy laws?",a:"Yes. LÅD follows GDPR, CCPA, and equivalent privacy regulations. You have rights to access, correct, and delete your personal data. We process data only with explicit consent and only for stated purposes. Privacy Policy is available at lod.io/privacy. For specific compliance questions, contact [email protected]."}]},{label:"Getting Started",faqs:[{q:"How do I get started with LÅD?",a:"Book an Energy Strategy Call at lod.io/contact. We'll discuss your operation, goals, and constraints. If LÅD is a fit, we move to onboarding (typically 2-8 weeks depending on layers you choose). Data Layer can start immediately via API. Strategy consulting kicks off within 1 week. Execution Layer deployment is 2-4 weeks."},{q:"What information do you need to assess my operation?",a:"Facility size (MW), location (ERCOT zone/node), equipment type (ASICs, GPUs, etc.), current power contracts, recent energy bills, operational constraints (uptime requirements, SLA commitments), and goals (cost reduction, demand response, grid support). We can work with partial information and fill gaps during discovery."},{q:"How quickly can I see ROI?",a:"Data Layer: Immediate (see prices and signals same day). Strategy: ROI identified within 2-4 weeks, implementation begins. Execution Layer: Cost savings typically visible in first month, demand response revenue within 30 days of enrollment. Full three-layer deployment: 20-60% energy cost reduction, measurable by second billing cycle."},{q:"What does onboarding look like?",a:"Phase 1 (Week 1): Initial assessment and data sharing. Phase 2 (Weeks 2-4): IoT agent deployment, device discovery, network validation. Phase 3 (Weeks 4-6): Automation testing, pilot runs, QSE/REP coordination. Phase 4 (Week 6+): Production deployment and ongoing optimization. Our team coordinates all steps with your operations team."},{q:"Do you require a long-term contract?",a:"LÅD offers flexible terms. Data Layer: Pay-as-you-go or annual plans. Strategy: One-time engagement or retainer. Execution Layer: Month-to-month after pilot (typically 3-month minimum). Enterprise customers negotiate multi-year terms. No lock-in, but longer commitments typically offer better pricing."},{q:"What is the total cost to implement all three layers?",a:"Varies by facility size and complexity. Small pilot (10 MW): $20,000-$50,000 setup + ongoing fees. Medium deployment (50-100 MW): $75,000-$200,000 setup. Large enterprise (500+ MW): Custom pricing. Most customers see positive ROI within 1-3 months. Contact us for a specific quote based on your operation."}]},{label:"Technical Integration",faqs:[{q:"How do I integrate with the LÅD Data Layer?",a:"Two methods: REST API (fetch data programmatically in any language) and Model Context Protocol (MCP) for direct AI agent integration. Documentation: lod.io/data-layer. API credentials provided during onboarding. SDKs available for Python, JavaScript, Go. Webhook supp
932ort for real-time price alerts."},{q:"Can LÅD integrate with my existing SCADA or control system?",a:"Yes. LÅD APIs are compatible with most industrial control platforms. We provide integration guides for common systems (ABB, Siemens, Honeywell, etc.). For custom systems, our team works with your engineering team to build connectors. No replacement of existing infrastructure required."},{q:"What network infrastructure does the Execution Layer require?",a:"Execution Layer IoT agents connect to your local network (Ethernet or WiFi). Agents communicate securely with LÅD servers over encrypted channels. No public IP required. Works behind firewalls and NAT. Bandwidth: <1 Mbps per agent. One agent can manage 50-500 devices depending on device complexity. All traffic is logged for audit compliance."},{q:"Can I run LÅD on-premise or in a private cloud?",a:"LÅD is offered as a SaaS platform hosted in secure AWS regions. On-premise and private cloud deployments are available for enterprise customers with data residency requirements. Contact [email protected] for custom deployment options."},{q:"What APIs and SDKs does LÅD offer?",a:"REST API (JSON over HTTPS), GraphQL (for complex queries), Model Context Protocol (MCP) for AI agents, Python SDK, JavaScript SDK, Go SDK. Webhooks for real-time alerts. All documented at lod.io/docs. Rate limits and quota management included in pricing tier."}]}];function f0e(){const[e,t]=O.useState("About LÅD"),[n,r]=O.useState(null),i=J1.find(d=>d.label===e),o="FAQ: Energy Intelligence for Data Centers | LÅD",s="Comprehensive FAQ covering LÅD energy intelligence platform for data centers, AI inference, flexible compute, and grid integration. Learn about cost savings, security, and implementation.",l="https://lod.io/faq",u={"@context":"https://schema.org","@type":"FAQPage",mainEntity:J1.flatMap(d=>d.faqs.map(p=>
932({"@type":"Question",name:p.q,acceptedAnswer:{"@type":"Answer",text:p.a}})))};return a.jsxs(a.Fragment,{children:[a.jsx(He,{title:o,description:s,canonical:l,schemaData:u}),a.jsxs(Je,{children:[a.jsxs("section",{className:"relative py-24 overflow-hidden",style:{background:"#1A1A1A",borderBottom:"1px solid rgba(255,255,255,0.06)"},children:[a.jsx("div",{className:"absolute inset-0 grid-blueprint opacity-60 pointer-events-none"}),a.jsx("div",{className:"absolute top-0 left-1/4 w-96 h-96 rounded-full pointer-events-none",style:{background:"radial-gradient(circle, rgba(191,245,137,0.07) 0%, transparent 70%)",filter:"blur(60px)"}}),a.jsxs("div",{className:"max-w-[1200px] mx-auto px-6 relative z-10",children:[a.jsx("div",{className:"section-label mb-5",children:"FAQ"}),a.jsxs("h1",{className:"font-display text-5xl md:text-6xl text-lod-white mb-6 leading-none",children:["FREQUENTLY ASKED",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"QUESTIONS"})]}),a.jsx("p",{className:"text-lod-gray text-lg max-w-2xl leading-relaxed",children:"Everything you need to know about LÅD's energy intelligence platform â from data and strategy to execution, grid markets, and security."})]})]}),a.jsxs("div",{className:"max-w-[1200px] mx-auto px-6 py-16 flex flex-col lg:flex-row gap-10",style:{background:"#1A1A1A"},children:[a.jsxs("aside",{className:"lg:w-64 flex-shrink-0",children:[a.jsx("p",{className:"font-mono text-xs text-lod-gray uppercase tracking-widest mb-4 px-1",children:"Categories"}),a.jsx("nav",{className:"flex flex-row flex-wrap lg:flex-col gap-2",children:J1.map(d=>{const p=Z3[d.label]||xt,f=e===d.label;return a.jsxs("button",{onClick:()=>{t(d.label),r(null)},className:"flex items-center gap-3 px-4 py-3 rounded-lg text-left transition-all text-sm whitespace-nowrap lg:whitespace-normal",style:{background:f?"rgba(191,245,137,0.1)":"rgba(255,255,255,0.03)",color:f?"#BFF589":"#A0A0A0",border:`1px solid ${f?"rgba(191,245,137,0.3)":"rgba(255,255,255,0.06)"}`,fontFamily:"Montserrat, sans-serif",fontWeight:f?600:400},children:[a.jsx(p,{size:15,style:{color:f?"#BFF589":"#606060",flexShrink:0}}),a.jsx("span",{children:d.label}),f&&a.jsx("span",{className:"ml-auto hidden lg:block w-1.5 h-1.5 rounded-full",style:{background:"#BFF589"}})]},d.label)})})]}),a.jsxs("main",{className:"flex-1 min-w-0",children:[a.jsxs("div",{className:"flex items-center gap-3 mb-8 pb-5",style:{borderBottom:"1px solid rgba(255,255,255,0.06)"},children:[(()=>{const d=Z3[e]||xt;return a.jsx("div",{className:"w-9 h-9 rounded-lg flex items-center justify-center flex-shrink-0",style:{background:"rgba(191,245,137,0.12)",border:"1px solid rgba(191,245,137,0.2)"},children:a.jsx(d,{size:17,style:{color:"#BFF589"}})})})(),a.jsxs("div",{children:[a.jsx("h2",{className:"font-display text-xl text-lod-white leading-tight",children:e}),a.jsxs("p",{className:"font-mono text-xs text-lod-gray mt-0.5",children:[i==null?void 0:i.faqs.length," questions"]})]})]}),a.jsx("div",{className:"space-y-3",children:i==null?void 0:i.faqs.map((d,p)=>{const f=n===p;return a.jsxs("div",{className:"rounded-xl overflow-hidden transition-all duration-200",style:{border:`1px solid ${f?"rgba(191,245,137,0.35)":"rgba(255,255,255,0.07)"}`,background:f?"rgba(191,245,137,0.04)":"rgba(255,255,255,0.02)",boxShadow:f?"0 0 24px rgba(191,245,137,0.06)":"none"},itemScope:!0,itemType:"https://schema.org/Question",children:[a.jsxs("button",{onClick:()=>r(f?null:p),className:"w-full flex items-start gap-4 px-6 py-5 text-left group",children:[a.jsx("span",{className:"flex-shrink-0 w-6 h-6 rounded-md flex items-center justify-center font-mono text-xs mt-0.5",style:{background:f?"rgba(191,245,137,0.2)":"rgba(255,255,255,0.06)",color:f?"#BFF589":"#606060"},children:p+1}),a.jsx("span",{className:"flex-1 text-sm font-semibold leading-snug transition-colors",style:{color:f?"#F9F9F9":"#D0D0D0",fontFamily:"Montserrat, sans-serif"},itemProp:"name",children:d.q}),a.jsx(kg,{size:18,className:"flex-shrink-0 mt-0.5 transition-transform duration-300",style:{color:f?"#BFF589":"#505050",transform:f?"rotate(180deg)":"rotate(0deg)"}})]}),f&&a.jsxs("div",{className:"px-6 pb-6 pt-0 ml-10",itemScope:!0,itemType:"https://schema.org/Answer",children:[a.jsx("div",{className:"w-full h-px mb-4",style:{background:"rgba(191,245,137,0.12)"}}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed",itemProp:"text",children:d.a})]})]},p)})})]})]}),a.jsx("section",{className:"py-20",style:{background:"#111",borderTop:"1px solid rgba(255,255,255,0.05)"},children:a.jsxs("div",{className:"max-w-[700px] mx-auto px-6 text-center",children:[a.jsxs("div",{className:"inline-flex items-center gap-2 px-4 py-2 rounded-full mb-6",style:{background:"rgba(191,245,137,0.08)",border:"1px solid rgba(191,245,137,0.18)"},children:[a.jsx(xt,{size:13,style:{color:"#BFF589"}}),a.jsx("span",{className:"font-mono text-xs text-lod-green uppercase tracking-wider",children:"Still have questions?"})]}),a.jsx("h2",{className:"font-display text-4xl text-lod-white mb-4",children:"Talk to our energy team"}),a.jsx("p",{className:"text-lod-gray text-base mb-8 max-w-md mx-auto leading-relaxed",children:"Our energy strategy experts will assess your operation and show you exactly what's possible with LÅD."}),a.jsxs("a",{href:"/contact",className:"btn-primary inline-flex items-center gap-2 text-base px-8 py-4",children:["Book a Strategy Call ",a.jsx(xt,{size:15})]})]})})]})]})}const m0e=[{label:"LÅD Rolls Out Globally with Bitfarms, Optimizing Operations Management Across All Sites",href:"/blog/bitfarms",tag:"Company"},{label:"LÅD and Crypto Power Launch Alliance Across ERCOT",href:"/blog/crypto-power-alliance",tag:"Company"},{label:"LÅD Technologies Selected for Google for Startups Accelerator: AI for Energy",href:"/blog/google-accelerator",tag:"Company"},{label:"LÅD and NuEnergen Team Up at Data Center World 2025",href:"/blog/nuenergen-data-center",tag:"Company"}],g0e=[{year:"2013",title:"The Spark",desc:"A small group of engineers begins exploring digital infrastru
932cture and energy, driven by curiosity and the challenge of building smarter systems around emerging compute networks."},{year:"2014â2020",title:"Experimentation & Learning",desc:"Through trial, error, and persistence, the team builds custom hardware setups and develops a deep, firsthand understanding of the relationship between high-density compute and energy."},{year:"2021",title:"Lincoin & Community",desc:"Lincoin, a mining pool, goes live. Built on community feedback and rapid iteration, it becomes a trusted hub for operators. The community becomes the foundation for everything LÅD would later build."},{year:"2022",title:"A Deeper Question",desc:'As energy markets grew more volatile, the team stopped asking "how do we mine better?" and started asking "how does infrastructure integrate more intelligently with the grid?" That question became LÅD.'},{year:"2023",title:"Beta Rollout",desc:"Cholla Energy becomes one of the first adopters, fully implementing the beta platform. Their trust and feedback accelerate development and validate the core thesis."},{year:"2024",title:"Scaling Trust",desc:"LÅD expands to 100+ sites. Bitfarms joins as a major customer. The platform adds workload management capabilities and begins serving AI data centers alongside Bitcoin miners."},{year:"Today",title:"Energy Intelligence at Scale",desc:"LÅD empowers high-consumption data centers, from AI infrastructure to Bitcoin mining to flexible compute, to optimize cost, risk, and compliance while strengthening grid reliability."}];function y0e(){return a.jsxs(Je,{children:[a.jsx(He,{title:"About LÅD â Energy Intelligence Built From the Grid Up | LÅD",description:"LÅD is the energy intelligence platform for high-consumption data centers. Built by energy operators, not software vendors. Real-time grid signals, automated curtailment, and device-level control.",canonical:"https://lod.io/about"}),a.jsx("section",{className:"py-20",style:{background:"#232323",borderBottom:"1px solid rgba(255,255,255,0.06)"},children:a.jsxs("div",{className:"max-w-[1400px] mx-auto px-6",children:[a.jsx("div",{className:"section-label mb-4",children:"About LÅD"}),a.jsxs("h1",{className:"font-display text-4xl md:text-5xl text-lod-white mb-6 leading-tight",children:["BUILT FROM THE GRID UP.",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"NOT FROM A DASHBOARD DOWN."})]}),a.jsx("p",{className:"text-lod-gray text-lg max-w-2xl leading-relaxed",children:"LÅD is the energy intelligence platform for high-consumption data centers. We did not build software and add energy features. We started in energy operations and built a platform around what operators actually need â reliable data, a clear strategy, and automation that responds to real grid conditions."})]})}),a.jsx("section",{className:"py-24",style:{background:"#1A1A1A"},children:a.jsxs("div",{className:"max-w-[900px] mx-auto px-6",children:[a.jsx("div",{className:"section-label mb-4",children:"The Story"}),a.jsx("h2",{className:"font-display text-3xl md:text-4xl text-lod-white mb-10 leading-tight",children:"It started with a question no one had a good answer to."}),a.jsxs("div",{className:"space-y-6 text-lod-gray text-base leading-relaxed",children:[a.jsx("p",{children:"In 2013, a small group of engineers started exploring high-density compute infrastru
932cture during a period when running machines at scale meant figuring out everything yourself â hardware, networking, and energy. Nothing was packaged. Nothing was handed to you."}),a.jsx("p",{children:"Over the next several years, the team built custom setups, learned from failure, and developed a hands-on understanding of what it actually takes to run energy-intensive infrastructure efficiently. That background was not a detour. It was the foundation."}),a.jsx("p",{children:"In 2021, they launched Lincoin, a mining pool built for operators who cared about reliability and transparency. The community that formed around it, operators sharing problems, pushing for features, testing solutions in production, became the early signal that something bigger was possible."}),a.jsx("p",{children:'That same year, as energy markets grew volatile and infrastructure costs spiked, the team started asking a different kind of question. Not "how do we run machines better?" but "how does infrastructure integrate more intelligently with the grid?"'}),a.jsxs("p",{children:["In 2022, those questions became LÅD, an energy intelligence platform designed around one belief: that ",a.jsx("span",{style:{color:"#F9F9F9"},children:"operators make better decisions when they have better data."})," Not dashboards. Not alerts. Actual, interpreted, trusted grid intelligence."]}),a.jsx("p",{children:"Cholla Energy was among the first to implement the beta. Their feedback shaped the platform. By 2024, Bitfarms had joined, and LÅD was operating across 100+ sites. The growth was not driven by marketing. It was driven by operators telling other operators."}),a.jsx("p",{children:"That is still how LÅD grows today. Through trust, results, and a reputation for giving operators data they can actually rely on."})]})]})}),a.jsx("section",{className:"py-24 grid-lines-overlay relative",style:{background:"#0D0D0D"},children:a.jsxs("div",{className:"max-w-[1400px] mx-auto px-6",children:[a.jsx("div",{className:"section-label mb-4",children:"Timeline"}),a.jsx("h2",{className:"font-display text-3xl text-lod-white mb-16 leading-tight",children:"How we got here."}),a.jsxs("div",{className:"relative",children:[a.jsx("div",{className:"absolute left-[7px] top-2 bottom-2 w-px",style:{background:"rgba(191,245,137,0.15)"}}),a.jsx("div",{className:"space-y-10 pl-10",children:g0e.map(e=>a.jsxs("div",{className:"relative",children:[a.jsx("div",{className:"absolute -left-10 top-1.5 w-3.5 h-3.5 rounded-full border-2 flex-shrink-0",style:{background:"#1A1A1A",borderColor:"#BFF589"}}),a.jsx("div",{className:"font-mono text-xs mb-1",style:{color:"#BFF589"},children:e.year}),a.jsx("h3",{className:"font-display text-lg text-lod-white mb-2",children:e.title}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed max-w-2xl",children:e.desc})]},e.year))})]})]})}),a.jsx("section",{className:"py-24",style:{background:"#1A1A1A"},children:a.jsx("div",{className:"max-w-[1400px] mx-auto px-6",children:a.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-20 items-start",children:[a.jsxs("div",{children:[a.jsx("div",{className:"section-label mb-4",children:"What LÅD Actually Is"}),a.jsxs("h2",{className:"font-display text-3xl md:text-4xl text-lod-white mb-6 leading-tight",children:["Not software with energy features.",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"A trusted source of grid intelligence."})]}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-6",children:"Most platforms in this space were built for something else first. LÅD was built from the ground up around one problem: giving operators data they cannot get anywhere else, in a form they can actually use."}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-6",children:"The grid signals we interpret, real-time pricing, curtailment events, demand response windows, coincidental peak detection, are not aggregated from public feeds and repackaged. They are processed, validated, and contextualized for the way high-consumption data centers actually operate."}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed",children:"That matters whether you are running AI inference workloads that need to route compute around grid stress, or a Bitcoin mining fleet responding to ERCOT pricing signals. The data layer is the same. The trust in it is what makes everything else work."})]}),a.jsx("div",{className:"space-y-4 pt-8",children:[{label:"Markets Covered",value:"ERCOT, PJM & More"},{label:"MW Under Management",value:"500+"},{label:"Grid Nodes Monitored",value:"30,000+"},{label:"QSE / CSP Integrations",value:"All Major"},{label:"Compliance",value:"SOC 1 & SOC 2 Type II"},{label:"Customers",value:"100+ Sites"}].map(e=>a.jsxs("div",{className:"flex items-center justify-between px-6 py-4 rounded-sm",style:{background:"#111",border:"1px solid rgba(255,255,255,0.06)"},children:[a.jsx("span",{className:"font-mono text-xs text-lod-gray uppercase tracking-wider",children:e.label}),a.jsx("span",{className:"font-display text-lg text-lod-white",children:e.value})]},e.label))})]})})}),a.jsx("section",{className:"py-24",style:{background:"#2C2C2C"},children:a.jsxs("div",{className:"max-w-[1400px] mx-auto px-6",children:[a.jsx("div",{className:"section-label mb-4",children:"Who We Serve"}),a.jsxs("h2",{className:"font-display text-3xl text-lod-white mb-12 leading-tight",children:["Built for high-consumption operations",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"where energy is the variable that matters."})]}),a.jsx("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-6",children:[{title:"AI Data Centers",desc:"Facilities running GPU inference and training workloads need to route compute around energy volatility without adding latency. LÅD provides the real-time grid signals and control layer to make that possible."},{title:"Bitcoin Mining Operations",desc:"Large-scale miners need to curtail intelligently, participate in demand response programs, and avoid cost spikes. LÅD automates those decisions based on live market conditions."},{title:"Flexible Compute & Colocation",desc:"Any data center that treats energy as a
932strategic variable, not just a fixed cost, benefits from a platform built around grid intelligence, compliance, and automated response."}].map(e=>a.jsxs("div",{className:"card-obsidian p-8",children:[a.jsx("h3",{className:"font-display text-lg text-lod-white mb-4",children:e.title}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed",children:e.desc})]},e.title))})]})}),a.jsxs("section",{className:"py-24 text-center relative overflow-hidden",style:{background:"#0D0D0D"},children:[a.jsx("div",{"aria-hidden":"true",style:{position:"absolute",inset:0,pointerEvents:"none",backgroundImage:"radial-gradient(circle, rgba(191,245,137,0.2) 1px, transparent 1px)",backgroundSize:"28px 28px"}}),a.jsxs("div",{className:"max-w-[900px] mx-auto px-6 relative z-10",children:[a.jsx("div",{className:"section-label mb-4",children:"The Platform"}),a.jsxs("h2",{className:"font-display text-4xl md:text-5xl text-lod-white mb-8 leading-tight",children:["THREE LAYERS.",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"EACH ONE STANDALONE. ALL THREE CONNECTED."})]}),a.jsx("p",{className:"text-lod-gray text-lg leading-relaxed mb-12",children:"The Data Layer gives you grid intelligence you can trust. The Strategy Layer helps you build an energy plan on top of it. The Control Layer automates execution, so decisions happen at machine speed, not human speed."}),a.jsx("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4 text-left",children:[{name:"Data Layer",desc:"Real-time and historical grid signals, interpreted and contextualized for operators. The foundation everything else runs on."},{name:"Strategy Layer",desc:"Energy planning, cost modeling, and compliance strategy built on top of data you can actually rely on."},{name:"Control Layer",desc:"Automated curtailment, demand response, and device control. Triggered by the same signals your strategy is built around."}].map(e=>a.jsxs("div",{className:"rounded-sm p-6",style:{background:"rgba(191,245,137,0.05)",border:"1px solid rgba(191,245,137,0.15)"},children:[a.jsx("div",{className:"font-mono text-xs mb-3",style:{color:"#BFF589"},children:e.name}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed",children:e.desc})]},e.name))})]})]}),a.jsx("section",{className:"py-24",style:{background:"#1A1A1A"},children:a.jsxs("div",{className:"max-w-[900px] mx-auto px-6",children:[a.jsx("div",{className:"section-label mb-4",children:"What We Stand For"}),a.jsxs("h2",{className:"font-display text-3xl text-lod-white mb-10 leading-tight",children:["Operators deserve data they can trust.",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"Not dashboards. Not promises."})]}),a.jsx("div",{className:"space-y-6",children:[{title:"Transparency over features",desc:"We do not oversell. We are clear about what the platform does, where it works, and what it cannot do yet."},{title:"Data quality over data volume",desc:"The value of our platform is the reliability of the signals, not the number of charts. Operators make better decisions when data is accurate and interpretable."},{title:"Relationships over growth hacks",desc:"LÅD has grown almost entirely through operator referrals. That is not accidental. It is a product decision."},{title:"Grid strength as a shared goal",desc:"We believe that well-managed, grid-aware data centers make the grid more stable for everyone. That is not a marketing line. It is core to how we build the product."}].map(e=>a.jsxs("div",{className:"flex gap-5 items-start",children:[a.jsx("div",{className:"w-1.5 h-1.5 rounded-full mt-2 flex-shrink-0",style:{background:"#BFF589"}}),a.jsxs("div",{children:[a.jsx("p",{className:"text-lod-white text-sm font-semibold mb-1",children:e.title}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed",children:e.desc})]})]},e.title))})]})}),a.jsx(qs,{}),a.jsx(Po,{title:"Company News",links:m0e}),a.jsx(un,{ctaLabel:"Book an Energy Assessment",ctaHref:"/contact",subline:"BOOK AN ENERGY ASSESSMENT"})]})}const x0e=[{name:"Medi Naseri, Ph.D.",role:"CEO & Co-Founder",bio:"Medi holds a Ph.D. in Electrical Engineering and founded LÅD to bridge energy markets and intelligent compute. He leads the company's mission to make data centers grid-aware, sustainable, and operationally autonomous. LÅD was selected for Google's AI for Energy Accelerator under his leadership.",photo:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/f2b0f942f_MediProfilePicture.png"},{name:"Nima Amirzadeh",role:"COO",bio:"Nima drives customer acquisition and success at LÅD, working closely with operators to understand their needs and translate them into product features. He shapes how energy operators experience the platform and builds relationships that last.",photo:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/52bbd22a6_NimaCompanyPicture.png"},{name:"José Cabal",role:"Head of Marketing & Growth",bio:"José leads LÅD's marketing strategy and growth across AI and energy markets. With 20+ years of B2B expertise and HubSpot
932Certified Trainer background, he builds marketing systems and automation that position LÅD as the intelligence layer for grid-aware infrastructure.",photo:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/263a81db9_JoseLinkedinProfile.jpg"},{name:"Mostafa Shariat",role:"Co-Founder & Lead Engineer",bio:"Mostafa leads the core platform engineering stack. He builds the scalable, reliable systems that sit at the heart of LÅD's energy intelligence infrastructure.",photo:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/103e42688_MostafaCompanyPicture.png"}];function v0e({name:e,role:t,photo:n}){return a.jsx("div",{className:"relative w-full aspect-square overflow-hidden rounded-xl group",children:a.jsx("img",{src:n,alt:`${e}, ${t} at LÅD`,className:"w-full h-full object-cover object-top grayscale group-hover:grayscale-0 transition-all duration-500"})})}function b0e(){return a.jsxs(Je,{children:[a.jsx(He,{title:"The LÅD Team â Energy, AI & Infrastructure Experts | LÅD",description:"Energy operators, software engineers, and domain experts building the intelligence layer for grid-aware data center automation. Meet the team behind LÅD.",canonical:"https://lod.io/team"}),a.jsxs("section",{className:"relative overflow-hidden grid-lines-overlay",style:{background:"#232323",minHeight:"380px"},children:[a.jsx("div",{className:"max-w-[1400px] mx-auto px-6 py-24 md:py-28 relative z-10",children:a.jsxs("div",{className:"text-center max-w-2xl mx-auto",children:[a.jsx("div",{className:"section-label mb-4",children:"Company"}),a.jsxs("h1",{className:"font-display text-5xl md:text-6xl text-lod-white mb-6 leading-tight",children:["The Team Behind",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"LÅD"})]}),a.jsx("p",{className:"text-lod-gray text-lg leading-relaxed",children:"Energy operators, software engineers, and domain experts building the intelligence layer for grid-aware data center automation."})]})}),a.jsx("div",{className:"absolute bottom-0 left-0 right-0 h-px",style:{background:"linear-gradient(90deg, transparent, rgba(191,245,137,0.2), transparent)"}})]}),a.jsx("section",{className:"py-24",style:{background:"#0D0D0D"},children:a.jsxs("div",{className:"max-w-[1200px] mx-auto px-6",children:[a.jsx("div",{className:"grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-4 gap-6 md:gap-8",children:x0e.map(e=>a.jsxs("div",{className:"group flex flex-col",children:[a.jsx(v0e,{name:e.name,role:e.role,photo:e.photo}),a.jsxs("div",{className:"mt-4",children:[a.jsx("h3",{className:"font-display text-base text-lod-white leading-tight",children:e.name}),a.jsx("p",{className:"font-mono text-xs mt-1 mb-3",style:{color:"#BFF589"},children:e.role}),a.jsx("p",{className:"text-xs leading-relaxed",style:{color:"#808080"},children:e.bio})]})]},e.name))}),a.jsx("div",{className:"mt-20 text-center",children:a.jsxs("p",{className:"text-sm",style:{color:"#606060"},children:["Want to join the team?"," ",a.jsx("a",{href:"/careers",className:"text-lod-green hover:underline transition-colors",children:"See open positions â"})]})})]})}),a.jsx(un,{})]})}const w0e=[{title:"Overview",content:`Please read the LÅD Technologies Inc. Privacy Notice carefully to understand what information is collected through LÅD Technologies Inc., how this information is used, and when it may be disclosed. 933 934In this Privacy Notice, "LÅD Technologies Inc." refers to our website, our application, and the products and services offered through our website and application. References to "we", "us" or "our" means LÅD Technologies Inc. 935 936LOD Technologies Inc. categorizes all data into the following types:`,bullets:['"Personally Identifiable Information" (PII) â any information that can be used to uniquely identify an individual, e.g. name, age, phone number, credit card information, email address, payout addresses.','"Personal Data" (PD) â includes IP address used to access the web app and mobile apps, real-time and historical performance metrics, and history of earnings and payouts.','"Technical Data" (TD) â performance metrics and settings set by the user, such as computing performance, energy use, rails and thresholds for alerts.','"Public Data" â any information publicly available through internet or offline means, such as energy prices, grid information, and cryptocurrency prices.'],footer:"By visiting our website and using LÅD Technologies Inc. services, you provide your consent and agree to the collection of Personal Data in a lawful and fair manner."},{title:"Data Controller and Data Processor",content:`LÅD Technologies Inc. serves as the data processor for most information entered into the LÅD Technologies Inc. application, website, and supporting systems, acting on behalf of its business customers who serve as the data controllers. 937 938However, LÅD Technologies Inc. also collects certain information directly from users for security, logging, and application performance purposes, where it acts as the data controller and processor. 939 940LÅD Technologies Inc. may engage third-party sub-processors to support its operations. If you have any inquiries about the processing of your personal data, please contact us using the contact information provided in this privacy notice.`},{title:"Types of Data Collected",content:`LÅD Technologies Inc. strictly limits the collection of PII and PD to only the information necessary to perform and provide services or fulfill a direct business need. We adhere to the principle of data minimization, ensuring that only the minimum amount of personal data required is collected and processed. 941 942Certain data may be mandatory for the use of the LÅD Technologies Inc. application, while other data may be optional. Users are free to choose not to provide optional data without any impact on the availability or functionality of the service. 943 944LÅD Technologies Inc. applications may collect personal data that users provide voluntarily or collect usage data while using the website, web application, and supporting applications. The website and its supporting applications may also use cookies and other tracking technologies to enhance the user experience.`},{title:"Safeguards",content:"At LÅD Technologies Inc., we take the security of your collected data seriously. We implement robust technical and organizational measures to protect your data from unauthorized access, disclosure, alteration, or destruction. Our security measures include:",bullets:["Encryption: We employ encryption techniques to safeguard your data during transmission and storage.","Access Control: We restrict access to personal data to authorized personnel only, on a need-to-know basis.","Regular Audits: We conduct regular security audits and assessments to identify and address vulnerabilities.","Employee Training: Our employees undergo comprehensive data protection training."]},{title:"Legal Basis of Processing",content:"LÅD Technologies Inc. may process personal data when one of the following legal bases applies:",bullets:["Consent: Processing is based on the user's consent for one or more specific purposes.","Performance of a Contract: Processing is necessary for the performance of a contract between LÅD Technologies Inc. and the user.","Legal Obligation: Processing is necessary to comply with a legal obligation.","Legitimate Interests: Processing is necessary for the legitimate interests pursued by LÅD Technologies Inc. or a third party."]},{title:"Place of Processing",content:`Data is primarily processed at LÅD Technologies Inc.'s operating office
944s and third-party hosting providers, located in Canada, USA, and European Union countries. However, some data may be stored and processed in the United States or the European Union through third-party sub-processors. 945 946Data transfers may involve transmitting user data to a country outside its own jurisdiction. In such cases, LÅD Technologies Inc. ensures appropriate safeguards are in place to protect the transferred data.`},{title:"Retention Time",content:`PII and PD are retained for as long as necessary to fulfill the purposes for which they were collected, unless a longer retention period is required or permitted by law. 947 948 PII and PD collected for the performance of a contract is retained until the contract is fully executed, or until the business customer requests deletion. All data processed based on user consent may be retained until such consent is withdrawn, provided it is not otherwise required by law. 949 950 Once the retention period expires, all data will be securely deleted or anonymized. 951 952 Where permitted by applicable law, LÅD Technologies Inc. may de-identify Technical Data collected through the Platform, aggregate such data, and use, retain, disclose, license, and commercialize resulting aggregated statistical information. Any such aggregated statistical information will be used and disclosed only in a manner that does not identify any individual, customer, or account. LÅD Technologies Inc. will not attempt to re-identify any individual, customer, or account from de-identified data or aggregated statistical information.`},{title:"The Purposes of Processing",content:"LÅD Technologies Inc. collects and processes all data for the following purposes:",bullets:["Providing Services: Personal data is collected to enable LÅD Technologies Inc. to provide its services.","Analytics: Personal data is used for monitoring and analyzing web traffic and user behavior.","User Database Management: Personal data is managed to create user profiles, track user activities, and improve the application.","Managing Contacts and Sending Messages: Data is used to manage contact lists and send communications.","Handling Payments: Data is processed to facilitate payment transactions.","Hosting and Back-End Infrastructure: Data is processed and stored to support the delivery of services."]},{title:"Cookie Policy",content:`LÅD Technologies Inc. uses cookies and similar tracking technologies on its website and application. Cookies are small data files stored on your device that help us improve your experience. 953 954We use both session cookies (which expire when you close your browser) and persistent cookies (which remain on your device). You can control cookie settings through your browser preferences. Note that disabling certain cookies may affect the functionality of our services.`},{title:"How We Collect Your Consent",content:"On our forms (contact, meeting requests, and webinar registrations), we separate two distinct choices so that consent is freely given and specific to its purpose:",bullets:["Privacy Policy Acknowledgement (required): confirms you understand how your data will be processed to respond to your inquiry, request, or registration. This is the legal basis for us handling the submission itself and is necessary for us to act on it.","Marketing Opt-In (optional): a separate, unchecked checkbox that lets you choose whether you also want to receive marketing emails and updates from us. Declining this does not affect your ability to submit the form.","Our ebook download form uses a single combined consent, since downloading that resource is inherently a marketing exchange."],footer:"Every consent choice is timestamped and stored alongside your submission, so we can demonstrate what you agreed to and when."},{title:"Withdrawing Consent",content:`You can withdraw marketing consent at any time. To do so, email us at [email protected] with the email address you used and a request to stop marketing communications, and we will update your record accordingly. 955 956Withdrawing consent does not affect the lawfulness of any processing carried out before the withdrawal, and it does not affect our ability to respond to a specific inquiry, meeting request, or webinar registration you submitted (which is processed on the basis of the request itself, not marketing consent).`},{title:"Your Rights",content:"Depending on applicable law, including the EU/UK General Data Protection Regulation (GDPR), you may have the following rights regarding your personal data:",bullets:["Right of Access: You can request access to the personal data we hold about you.","Right to Rectification: You can request correction of inaccurate or incomplete data.","Right to Erasure: You can request deleti
956on of your personal data under certain circumstances.","Right to Restrict Processing: You can request that we limit how we use your data.","Right to Data Portability: You can request a copy of your data in a structured, machine-readable format.","Right to Object: You can object to the processing of your personal data for certain purposes, including direct marketing.","Right to Withdraw Consent: Where processing is based on consent, you can withdraw it at any time, as described above."],footer:"To exercise any of these rights, please contact us at [email protected]. We will respond within the timeframe required by applicable law."},{title:"Contact",content:`If you have any questions or concerns about this Privacy Policy or how we handle your data, please contact us at: 957 958LÅD Technologies Inc. 959Email: [email protected] 960 961Last updated: August 18th, 2026`}];function j0e(){return a.jsxs(Je,{children:[a.jsx(He,{title:"Privacy Policy â LÅD Technologies Data Protection | LÅD",description:"LÅD Technologies Inc. Privacy Notice. Learn how we collect, use, and protect your personal data with encryption, access controls, and data minimization principles.",canonical:"https://lod.io/privacy"}),a.jsx("section",{className:"py-20",style:{background:"#1A1A1A",borderBottom:"1px solid rgba(255,255,255,0.06)"},children:a.jsxs("div",{className:"max-w-[900px] mx-auto px-6",children:[a.jsx("div",{className:"section-label mb-4",children:"Legal"}),a.jsxs("h1",{className:"font-display text-5xl md:text-6xl text-lod-white mb-4 leading-none",children:["PRIVACY ",a.jsx("span",{style:{color:"#BFF589"},children:"POLICY"})]}),a.jsx("p",{className:"text-lod-gray text-sm font-mono",children:"Last updated: August 18th, 2026"})]})}),a.jsx("section",{className:"py-16",style:{background:"#1A1A1A"},children:a.jsx("div",{className:"max-w-[900px] mx-auto px-6 space-y-12",children:w0e.map((e,t)=>a.jsxs("div",{children:[a.jsx("h2",{className:"font-display text-2xl text-lod-white mb-4",children:e.title}),e.content&&a.jsx("div",{className:"text-lod-gray text-sm leading-relaxed space-y-3 mb-4",children:e.content.split(` 962 963`).map((n,r)=>a.jsx("p",{children:n},r))}),e.bullets&&a.jsx("ul",{className:"space-y-2 mb-4",children:e.bullets.map((n,r)=>a.jsxs("li",{className:"flex items-start gap-3 text-lod-gray text-sm leading-relaxed",children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full mt-2 flex-shrink-0",style:{background:"#BFF589"}}),n]},r))}),e.footer&&a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed",children:e.footer})]},t))})})]})}const k0e=[{title:"Introduction",content:`This document establishes a legally binding agreement between LOD Technologies Inc. (referred to as "LOD") and its users. 964 965LÅD, a private corporation incorporated in British Columbia, Canada, provides a suite of products and services collectively referred to as the "Platform" in this document. 966 967Throughout this agreement, terms like "we," "us," and "our" pertain to LÅD.`},{title:"Acceptance of Terms",content:`By using LÅD Platform, users acknowledge and agree to abide by the outlined terms and conditions. 968 969Non-agreement requires immediate cessation of services. 970 971Users, including entities represented by individuals, are bound by these terms.`},{title:"Purpose of the Terms",content:`These terms aim to define the relationship between LÅD and its users, outlining rights, responsibilities, and expectations. 972 973They safeguard intellectual property, privacy, compliance, and security for both parties.`},{title:"User Accounts",content:"To access LÅD services, users must create an account, providing accurate information. Users are responsible for maintaining confidentiality, promptly updating information, and ensuring security measures:",bullets:["Maintain confidentiality of account credentials.","Promptly update account information.","Use strong passwords and consider regular updates.","Notify support promptly in case of lost or stolen credentials.","Avoid sharing passwords, even with trusted individuals.","Use secure networks and enable Two-Factor Authentication (2FA) for added security."],footer:`LÅD reserves the right to suspend or terminate accounts for violations, with reasonable notice in most cases. Users can a
973ppeal suspensions or terminations through the support team, following procedures in the dispute resolution section. 974 975In case of account suspension or termination, LÅD may retain user data as outlined in the privacy policy or to comply with relevant laws. Users acknowledge these terms and LÅD's authority to enforce them upon creating and maintaining an account. Non-agreement implies refraining from account creation or discontinuing use. 976 977Individuals registering on behalf of entities must possess the necessary authority to represent the entity and enter into a legally binding agreement, which includes adherence to the terms outlined in this agreement.`},{title:"Service Description",content:`**Bitcoin Mining Pool** 978 979Users can contribute computing power (hashrate) to our mining pool via the Platform. LÅD is not responsible for server addresses communicated through unauthorized channels. 980 981Users set LÅD mining pool addresses on their SHA256 mining devices. Payments are allocated based on device performance during the day and are finalized daily around 1:00 am UTC. 982 983Refer to our Transparency Policy for reward calculation details. We will send the payouts according to the wallet address set by the user. 984 985LÅD's liability for the mining pool product to users is determined by the currency mined, specifically Bitcoin. We assume no liability beyond the calculated payments in instances of delayed payments, changes in exchange rates, or fluctuations in financial markets. 986 987**IMPORTANT:** Users are required to fully withdraw their mined assets at least every 60 calendar days. After 60 Days, users will be charged a custody fee of 2% per month of your overall balance. 988 989**ASIC Management and IoT Platform** 990 991This module allows remote management of ASIC devices and other supported devices. Users need to install LÅD Agent on a compatible device connected to their local network. Compatibility check is the user's responsibility, and regular checks are advised. 992 993**Energy Strategy Solution** 994 995Processes data collected from Independent System Operators' (ISO) websites, enabling users to set rules and actions. Users can also send commands to the ASIC Management and IoT Platform based on the processed data. While efforts are made to provide accurate data, discrepancies may occur due to data unavailability, changes, or software errors. 996 997**General Disclaimer** 998 999We reserve the right to suspend, terminate, or modify our products and services temporarily or permanently without prior notice.`},{title:"TAX COMPLIANCE",content:`As a user of LÅD's Platform, it is imperative to acknowledge and adhere to the following tax compliance responsibilities: 1000 1001Users are individually responsible for understanding and fulfilling their tax obligations in accordance with the laws and regulations of their respective jurisdictions. 1002 1003LÅD does not assume any responsibility for users' tax obligations, and the Platform should not be considered a source of tax advice. 1004 1005Any specific tax concerns or inquiries, including those related to Value Added Tax (VAT), Export and Import taxes, and Government Services Tax (GST), must be communicated with LÅD in advance, prior to the commencement of account usage. In the absence of such communication, it is understood that all payments made by LÅD to users encompass all relevant taxes, and LÅD holds no tax responsibility in any jurisdiction. 1006 1007By using LÅD's Platform, users acknowledge that it is essential to stay informed and seek professional advice.`},{title:"AML Compliance",content:`LÅD Technologies Inc. is committed to strict adherence to Anti-Money Laundering (AML) regulations and expects its users to comply with the following guidelines: 1008 1009Users shall use their account solely for their benefit or the benefit of their entities and shall not, in any way, transfer the ownership of the account to third parties. 1010 1011Engaging in any form of money laundering, terrorist financing, or other illicit activities using LÅD's services is strictly prohibited. Users are required to promptly report any suspicious or potentially illegal activities conducted through LÅD's Platform. 1012 1013LÅD Technologies Inc. places restrictions on the provision of services to individuals or entities located in or related to sanctioned countries or entities listed under the Specially Designated Nationals And Blocked Persons List. Sanctioned countries are those subject to Canadian, US, and international sanctions including but not limited to North Korea, Syria, Iran, Crimea, and Cuba. 1014 1015Violation of these restrictions may result in the suspension or termination of the user's account. 1016 1017LÅD holds no liability for any loss or damage incurred by users due to the restriction or termination of services to sanctioned countries. LÅD reserves the right to request and verify user identification and residence information at any time in the future.`},{title:"Intellectual Property",content:`All intellectual property associated with LÅD's services, including but not limited to software, content, trademarks, and any proprietary technologies, are the sole property of LÅD Technologies Inc. 1018 1019LÅD grants users a limited, non-exclusive, non-transferable license to use the intellectual property associated with the services solely for the purpose of utilizing the services in accordance with these terms. 1020 1021Users are strictly prohibited from reproducing, modifying, distributing, or creating derivative works based on LÅD's intellectual property without explicit written consent. 1022 1023Any unauthorized use of LÅD's intellectual property is strictly prohibited and may result in legal action. 1024 1025Users acknowledge and agree to respect LÅD's ownership of the intellectual property and not to claim any rights or ownership over the provided services. 1026 1027Users shall not engage in reverse engineering, decompiling, or disassembling any part of the softw
1027are or other proprietary technologies associated with LÅD's services. 1028 1029Users shall not modify, adapt, translate, or create derivative works from LÅD's intellectual property. Additionally, users shall not remove or alter any copyright, trademark, or other proprietary notices. 1030 1031Violation of the terms related to intellectual property may result in the suspension or termination of the user's account. 1032 1033LÅD reserves the right to take legal action to protect its intellectual property rights in the case of unauthorized use or infringement.`},{title:"Security of Digital Assets",content:"Users acknowledge and accept the risk associated with holding their assets with a third party while utilizing the platform. Despite the security measures implemented for managing assets under our control, we strongly advise users to regularly withdraw their assets, avoid holding assets on the Platform, and set the lowest payout thresholds. It is important to note that the LÅD platform is not intended to serve as a secure storage for digital assets. In the event of a security breach or a hack, LÅD assumes no liability."},{title:"Privacy",content:`For detailed information on how user data is handled, collected, used, and protected, please refer to our Privacy Policy. 1034 1035LÅD Technologies Inc. may collect various types of user data, including but not limited to personal information provided during account creation, transaction details, record of earning and payouts, and technical information such as IP addresses. 1036 1037User data is collected for the primary purpose of providing and improving our services, ensuring account security, and complying with legal requirements. 1038 1039Collected data may be used to analyze and enhance the functionality, security, and performance of our services. 1040 1041User data including email addresses may be used to communicate important service-related updates, and announcements, or to respond to inquiries. 1042 1043LÅD employs industry-standard security measures to safeguard user data from unauthorized access, disclosure, alteration, or destruction. 1044 1045User data is not shared with third parties unless required for service provision, legal compliance, or user consent. 1046 1047Users have the right to access, correct, or delete their personal information. Users can manage their preferences through their account settings. 1048 1049Users may opt-out of certain data processing activities, such as promotional communications. 1050 1051LÅD Technologies Inc. adheres to applicable privacy laws and regulations to ensure the lawful and transparent processing of user data. 1052 1053By using our Platform and service you give us the consent to collect and process personal and technical data related to you, your company, and your operations. 1054 1055Where permitted by applicable law, LÅD Technologies Inc. may de-identify Technical Data collected through the Platform, aggregate such data, and use, retain, disclose, license, and commercialize resulting aggregated statistical information. Any such aggregated statistical information will be used and disclosed only in a manner that does not identify any individual, customer, or account. LÅD Technologies Inc. will not attempt to re-identify any individual, customer, or account from de-identified data or aggregated statistical information.`},{title:"Payment and Billing",content:`For detailed information on subscription plans, pricing, and payment terms, please refer to our dedicated pricing page or section on the platform. 1056 1057For the Bitcoin mining pool service, LÅD will calculate and deduct fees from user's payments on a daily basis and users have the right independently audit and ensure accuracy of their earnings according to our Transparency Policy. 1058 1059For our SaaS and subscription based services we accepts various payment methods for the convenience of users. Accepted payment methods are Bitcoin, major credits cards and wire transfers. 1060 1061If applicable, subscriptions are billed on a recurring basis, in accordance with the selected subscription plan. Billing cycles, including frequency and dates, will be clearly communicated during the subscription signup process. 1062 1063Failure to make timely payments may result in the temporary suspension of your account and access to LÅD's services. Continued non-payment may lead to the termination of your subscription and access to the platform. 1064 1065In the event of payment disputes or discrepancies, users are encouraged to contact LÅD's support for prompt resolution. While a payment dispute is under investigation, account status and access to services may be affected. 1066 1067If applicable, certain subscription plans may automatically renew unless canceled by the user before the renewal date. Users can cancel automatic renew
1067als through their account settings or by contacting LÅD's support.`},{title:"Termination",content:`Users may terminate this agreement at any time by following the termination procedures outlined in the platform or by contacting LÅD's support. This does not apply to cases where there is a long-term commitment stated in the user's agreement. 1068 1069LÅD Technologies Inc. reserves the right to terminate this agreement under the following conditions:`,bullets:["Violation of the terms of use, including but not limited to prohibited activities or breaches of security.","Use of the platform to reverse-engineer our solutions or share data with our competitors.","Non-compliance with payment obligations, if applicable.","Any other conduct deemed harmful to LÅD's services, other users, or in violation of legal requirements."],footer:`Upon termination initiated by the user, access to LÅD's services will cease, and any outstanding payment obligations must be fulfilled. 1070 1071In the event of termination initiated by LÅD, access to the platform will be immediately suspended, and users may lose access to their accounts and associated data. Users are advised to retrieve any important data before initiating termination. 1072 1073LÅD may retain user data for a reasonable period as outlined in the privacy policy or as required by local or international laws and regulations. 1074 1075Users have the right to appeal a termination decision by contacting LÅD's support. The appeals process will be conducted in accordance with the procedures outlined in the dispute resolution section.`},{title:"Limitation of Liability",content:`While LÅD Technologies Inc. diligently strives to offer reliable products, services, and software, we cannot assure their absolute safety, error-free functionality, or uninterrupted operation. Therefore, our liability is subject to limitations to the fullest extent permitted by applicable law. Under no circumstances will we be held liable to you for any lost profits, revenues, information, or data, or for consequential, special, indirect, exemplary, punitive, or incidental damages arising out of or related to these Terms. 1076 1077LÅD's liability, regardless of the form of the action, shall be restricted to the amount paid, if any, by you to LÅD within the six (6) months preceding the occurrence of any cause of action. It is important to acknowledge that certain state laws and international regulations may not allow limitations on implied warranties or the exclusion or limitation of specific damages. If such laws apply to you, some or all of the above disclaimers or limitations might not be applicable, and you may retain additional rights. 1078 1079The Platform is provided 'as is,' without any warranties or guarantees of any kind, either expressed or implied, including but not limited to, the implied warranties of merchantability, fitness for a particular purpose, or non-infringement.`},{title:"Indemnification",content:"You agree to defend, indemnify, and hold LÅD Technologies Inc., including its subsidiaries, affiliates, officers, agents, partners, and employees, harmless from any loss, damage, liability, claim, or demand, including reasonable attorneys' fees and expenses, made by any third party due to or arising out of:",bullets:["Your Contributions.","Your use of the Platform.","Breach of these Terms of Use.","Any breach of your representations and warranties as stated in these Terms of Use.","Your violation of the rights of a third party, including intellectual property rights.","Any overt harmful act toward any other user of the Platform with whom you connected via the Platform."],footer:"Despite the above, LÅD Technologies Inc. reserves the right, at your expense, to assume the exclusive defense and control of any matter for which you are required to indemnify us. You agree to cooperate, at your expense, with our defense of such claims. We will make reasonable efforts to notify you of any such claim, action, or proceeding subject to this indemnification upon becoming aware of it."},{title:"Dispute Resolution",content:`In the event of any dispute, claim, or controversy arising out of or relating to these Terms of Use, the parties agree to first attempt to resolve the matter informally and in good faith. The party raising the dispute shall provide written notice to the other party, outlining the nature of the dispute and seeking resolution through negotiations. 1080 1081If the dispute is not resolved through informal negotiations, both parties agree to submit the dispute to non-binding mediation. The mediation shall be conducted by a neutral third-party mediator agreed upon by both parties or appointed by a mutually agreed-upon mediation provider. 1082 1083If mediation does not lead to resolution, any unresolved dispute shall be submitted to binding arbitration in accordance with the rules of a recognized arbitration provider agreed upon by both parties. 1084 1085The arbitration shall be conducted by a single arbitrator, unless both parties agree to a panel of arbitrators. The decision of the arbitrator(s) shall be final and binding. 1086 1087Any legal proceedings arising from or related to these Terms of Use shall be subject to the jurisdiction of the courts in the British Columbia, Canada without regard to its conflict of law principles. The venue for any legal proceedings shall be Vancouver, BC, Canada unless agreed upon otherwise by both parties.`},{title:"Updates and Changes",content:`LÅD Technologies Inc. reserves the right to make updates, modifications, or changes to the Platform and its website, including the Terms of Use and Privacy Policy, without prior notice. 1088 1089Users are advised to check for updates regularly to stay informed about any changes in the services, features, or terms. 1090 1091The "Effective Date" at the top of these documents reflects the last date of modification and shows the date this Terms of Use and its related terms is legally binding. It is recommended to review this date regularly for awareness of any recent updates.`},{title:"Governing Law",content:"These Terms of Use and the Privacy Policy are governed by and construed in accordance with the laws of British Columbia, Canada, without regard to its conflict of law principles."},{title:"Miscellaneous",content:`Neither party shall be liable for any failure to perform its obligations where such failure is as a result of Acts of Nature (including fire, flood, earthquake, storm, hurricane, or other natural disasters), war, invasion, act of foreign enemies, hostilities (regardless of whether war is declared), civil war, rebellion, revolution, insurrection, military or usurped power, confiscation, terrorist activities, nationalization, government sanction, blockage, embargo, labor dispute, strike, lockout, or interruption or failure of electricity or internet or failure in third party data centers, failure or change in third party data providers such as ISOs, accidents such as air and road accidents limiting the ability of each party to fulfill its duties. 1092 1093The affected party shall promptly notify the other party, providing details of the circumstances and the expected duration of the force majeure event. 1094 1095Both parties shall use reasonable efforts to mitigate the impact of the force majeure event on the performance of their respective obligations. 1096 1097No failure or delay by either party in exercising any right, power, or remedy under these Terms of Use or the Privacy Policy shall constitute a waiver of that right, power, or remedy. 1098 1099The waiver of any such right, power, or remedy shall not be construed as a waiver of any other right, power, or remedy, and shall not prevent the subsequent exercise of that right, power, or remedy. 1100 1101If any provision of these Terms of Use or the Privacy Policy is found to be invalid, illegal, or unenforceable, the validity, legality, and enforceability of the remaining provisions shall not in any way be affected or impaired. 1102 1103The invalid, illegal, or unenforceable provision shall be modified or replaced with a valid, legal, and enforceable provision that most closely reflects the intent of the original provision.`},{title:"Contact Information",content:`You may contact us regarding this agreement at: 1104 1105[email protected]`}];function A0e(){return a.jsxs(Je,{children:[a.jsx(He,{title:"Terms of Use â LÅD Technologies Platform Agreement | LÅD",description:"LÅD Technologies Inc. Terms of Use. The legally binding agreement governing use of the LÅD platform, including accounts, services, compliance, and intellectual property.",canonical:"https://lod.io/terms-of-use"}),a.jsx("section",{className:"py-20",style:{background:"#1A1A1A",borderBottom:"1px solid rgba(255,255,255,0.06)"},children:a.jsxs("div",{className:"max-w-[900px] mx-auto px-6",children:[a.jsx("div",{className:"section-label mb-4",children:"Legal"}),a.jsxs("h1",{className:"font-display text-5xl md:text-6xl text-lod-white mb-4 leading-none",children:["TERMS OF ",a.jsx("span",{style:{color:"#BFF589"},children:"USE"})]}),a.jsx("p",{className:"text-lod-gray text-sm font-mono",children:"Last updated: May 5th, 2026"})]})}),a.jsx("section",{className:"py-16",style:{background:"#1A1A1A"},children:a.jsx("div",{className:"max-w-[900px] mx-auto px-6 space-y-12",children:k0e.map((e,t)=>a.jsxs("div",{children:[a.jsx("h2",{className:"font-display text-2xl text-lod-white mb-4",children:e.title}),e.content&&a.jsx("div",{className:"text-lod-gray text-sm leading-relaxed space-y-3 mb-4",children:e.content.split(` 1106 1107`).map((n,r)=>a.jsx("p",{children:n},r))}),e.bullets&&a.jsx("ul",{className:"space-y-2 mb-4",children:e.bullets.map((n,r)=>a.jsxs("li",{className:"flex items-start gap-3 text-lod-gray text-sm leading-relaxed",children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full mt-2 flex-shrink-0",style:{background:"#BFF589"}}),n]},r))}),e.footer&&a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed",children:e.footer})]},t))})})]})}function nC(e,t=[]){let n=[];function r(o,s){const l=O.createContext(s),u=n.length;n=[...n,s];const d=f=>{var j;const{scope:g,children:y,...b}=f,w=((j=g==null?void 0:g[e])==null?void 0:j[u])||l,v=O.useMemo(()=>b,Object.values(b));return a.jsx(w.Provider,{value:v,children:y})};d.displayName=o+"Provider";function p(f,g){var w;const y=((w=g==null?void 0:g[e])==null?void 0:w[u])||l,b=O.useContext(y);if(b)return b;if(s!==void 0)return s;throw new Error(`\`${f}\` must be used within \`${o}\``)}
1107return[d,p]}const i=()=>{const o=n.map(s=>O.createContext(s));return function(l){const u=(l==null?void 0:l[e])||o;return O.useMemo(()=>({[`__scope${e}`]:{...l,[e]:u}}),[l,u])}};return i.scopeName=e,[r,S0e(i,...t)]}function S0e(...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(o){const s=r.reduce((l,{useScope:u,scopeName:d})=>{const f=u(o)[`__scope${d}`];return{...l,...f}},{});return O.useMemo(()=>({[`__scope${t.scopeName}`]:s}),[s])}};return n.scopeName=t.scopeName,n}function eM(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function rC(...e){return t=>{let n=!1;const r=e.map(i=>{const o=eM(i,t);return!n&&typeof o=="function"&&(n=!0),o});if(n)return()=>{for(let i=0;i<r.length;i++){const o=r[i];typeof o=="function"?o():eM(e[i],null)}}}}function yh(...e){return O.useCallback(rC(...e),e)}function tM(e){const t=C0e(e),n=O.forwardRef((r,i)=>{const{children:o,...s}=r,l=O.Children.toArray(o),u=l.find(T0e);if(u){const d=u.props.children,p=l.map(f=>f===u?O.Children.count(d)>1?O.Children.only(null):O.isValidElement(d)?d.props.children:null:f);return a.jsx(t,{...s,ref:i,children:O.isValidElement(d)?O.cloneElement(d,void 0,p):null})}return a.jsx(t,{...s,ref:i,children:o})});return n.displayName=`${e}.Slot`,n}function C0e(e){const t=O.forwardRef((n,r)=>{const{children:i,...o}=n;if(O.isValidElement(i)){const s=P0e(i),l=E0e(o,i.props);return i.type!==O.Fragment&&(l.ref=r?rC(r,s):s),O.cloneElement(i,l)}return O.Children.count(i)>1?O.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var N0e=Symbol("radix.slottable");function T0e(e){return O.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===N0e}function E0e(e,t){const n={...t};for(const r in t){const i=e[r],o=t[r];/^on[A-Z]/.test(r)?i&&o?n[r]=(...l)=>{const u=o(...l);return i(...l),u}:i&&(n[r]=i):r==="style"?n[r]={...i,...o}:r==="className"&&(n[r]=[i,o].filter(Boolean).join(" "))}return{...e,...n}}function P0e(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 O0e(e){const t=e+"CollectionProvider",[n,r]=nC(t),[i,o]=n(t,{collectionRef:{current:null},itemMap:new Map}),s=w=>{const{scope:v,children:j}=w,k=W.useRef(null),S=W.useRef(new Map).current;return a.jsx(i,{scope:v,itemMap:S,collectionRef:k,children:j})};s.displayName=t;const l=e+"CollectionSlot",u=tM(l),d=W.forwardRef((w,v)=>{const{scope:j,children:k}=w,S=o(l,j),E=yh(v,S.collectionRef);return a.jsx(u,{ref:E,children:k})});d.displayName=l;const p=e+"CollectionItemSlot",f="data-radix-collection-item",g=tM(p),y=W.forwardRef((w,v)=>{const{scope:j,children:k,...S}=w,E=W.useRef(null),N=yh(v,E),C=o(p,j);return W.useEffect(()=>(C.itemMap.set(E,{ref:E,...S}),()=>void C.itemMap.delete(E))),a.jsx(g,{[f]:"",ref:N,children:k})});y.displayName=p;function b(w){const v=o(e+"CollectionConsumer",w);return W.useCallback(()=>{const k=v.collectionRef.current;if(!k)return[];const S=Array.from(k.querySelectorAll(`[${f}]`));return Array.from(v.itemMap.values()).sort((C,P)=>S.indexOf(C.ref.current)-S.indexOf(P.ref.current))},[v.collectionRef,v.itemMap])}return[{Provider:s,Slot:d,ItemSlot:y},b,r]}function Jz(e,t,{checkForDefaultPrevented:n=!0}={}){return function(i){if(e==null||e(i),n===!1||!i.defaultPrevented)return t==null?void 0:t(i)}}var xh=globalThis!=null&&globalThis.document?O.useLayoutEffect:()=>{},_0e=Wk[" useInsertionEffect ".trim().toString()]||xh;function iC({prop:e,defaultProp:t,onChange:n=()=>{},caller:r}){const[i,o,s]=I0e({defaultProp:t,onChange:n}),l=e!==void 0,u=l?e:i;{const p=O.useRef(e!==void 0);O.useEffect(()=>{const f=p.current;f!==l&&console.warn(`${r} is changing from ${f?"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.`),p.current=l},[l,r])}const d=O.useCallback(p=>{var f;if(l){const g=R0e(p)?p(e):p;g!==e&&((f=s.current)==null||f.call(s,g))}else o(p)},[l,e,o,s]);return[u,d]}function I0e({defaultProp:e,onChange:t}){const[n,r]=O.useState(e),i=O.useRef(n),o=O.useRef(t);return _0e(()=>{o.current=t},[t]),O.useEffect(()=>{var s;i.current!==n&&((s=o.current)==null||s.call(o,n),i.current=n)},[n,i]),[n,r,o]}function R0e(e){return typeof e=="function"}function D0e(e){const t=M0e(e),n=O.forwardRef((r,i)=>{const{children:o,...s}=r,l=O.Children.toArray(o),u=l.find(F0e);if(u){const d=u.props.children,p=l.map(f=>f===u?O.Children.count(d)>1?O.Children.only(null):O.isValidElement(d)?d.props.children:null:f);return a.jsx(t,{...s,ref:i,children:O.isValidElement(d)?O.cloneElement(d,void 0,p):null})}return a.jsx(t,{...s,ref:i,children:o})});return n.displayName=`${e}.Slot`,n}function M0e(e){const t=O.forwardRef((n,r)=>{const{children:i,...o}=n;if(O.isValidElement(i)){const s=z0e(i),l=B0e(o,i.props);return i.type!==O.Fragment&&(l.ref=r?rC(r,s):s),O.cloneElement(i,l)}return O.Children.count(i)>1?O.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var L0e=Symbol("radix.slottable");function F0e(e){return O.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===L0e}function B0e(e,t){const n={...t};for(const r in t){const i=e[r],o=t[r];/^on[A-Z]/.test(r)?i&&o?n[r]=(...l)=>{const u=o(...l);return i(...l),u}:i&&(n[r]=i):r==="style"?n[r]={...i,...o}
1107:r==="className"&&(n[r]=[i,o].filter(Boolean).join(" "))}return{...e,...n}}function z0e(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 $0e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Uh=$0e.reduce((e,t)=>{const n=D0e(`Primitive.${t}`),r=O.forwardRef((i,o)=>{const{asChild:s,...l}=i,u=s?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),a.jsx(u,{...l,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function q0e(e,t){return O.useReducer((n,r)=>t[n][r]??n,e)}var Zz=e=>{const{present:t,children:n}=e,r=W0e(t),i=typeof n=="function"?n({present:r.isPresent}):O.Children.only(n),o=yh(r.ref,U0e(i));return typeof n=="function"||r.isPresent?O.cloneElement(i,{ref:o}):null};Zz.displayName="Presence";function W0e(e){const[t,n]=O.useState(),r=O.useRef(null),i=O.useRef(e),o=O.useRef("none"),s=e?"mounted":"unmounted",[l,u]=q0e(s,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return O.useEffect(()=>{const d=_f(r.current);o.current=l==="mounted"?d:"none"},[l]),xh(()=>{const d=r.current,p=i.current;if(p!==e){const g=o.current,y=_f(d);e?u("MOUNT"):y==="none"||(d==null?void 0:d.display)==="none"?u("UNMOUNT"):u(p&&g!==y?"ANIMATION_OUT":"UNMOUNT"),i.current=e}},[e,u]),xh(()=>{if(t){let d;const p=t.ownerDocument.defaultView??window,f=y=>{const w=_f(r.current).includes(CSS.escape(y.animationName));if(y.target===t&&w&&(u("ANIMATION_END"),!i.current)){const v=t.style.animationFillMode;t.style.animationFillMode="forwards",d=p.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=v)})}},g=y=>{y.target===t&&(o.current=_f(r.current))};return t.addEventListener("animationstart",g),t.addEventListener("animationcancel",f),t.addEventListener("animationend",f),()=>{p.clearTimeout(d),t.removeEventListener("animationstart",g),t.removeEventListener("animationcancel",f),t.removeEventListener("animationend",f)}}else u("ANIMATION_END")},[t,u]),{isPresent:["mounted","unmountSuspended"].includes(l),ref:O.useCallback(d=>{r.current=d?getComputedStyle(d):null,n(d)},[])}}function _f(e){return(e==null?void 0:e.animationName)||"none"}function U0e(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 H0e=Wk[" useId ".trim().toString()]||(()=>{}),V0e=0;function e7(e){const[t,n]=O.useState(H0e());return xh(()=>{n(r=>r??String(V0e++))},[e]),t?`radix-${t}`:""}var jy="Collapsible",[G0e,t7]=nC(jy),[Y0e,aC]=G0e(jy),n7=O.forwardRef((e,t)=>{const{__scopeCollapsible:n,open:r,defaultOpen:i,disabled:o,onOpenChange:s,...l}=e,[u,d]=iC({prop:r,defaultProp:i??!1,onChange:s,caller:jy});return a.jsx(Y0e,{scope:n,disabled:o,contentId:e7(),open:u,onOpenToggle:O.useCallback(()=>d(p=>!p),[d]),children:a.jsx(Uh.div,{"data-state":sC(u),"data-disabled":o?"":void 0,...l,ref:t})})});n7.displayName=jy;var r7="CollapsibleTrigger",i7=O.forwardRef((e,t)=>{const{__scopeCollapsible:n,...r}=e,i=aC(r7,n);return a.jsx(Uh.button,{type:"button","aria-controls":i.contentId,"aria-expanded":i.open||!1,"data-state":sC(i.open),"data-disabled":i.disabled?"":void 0,disabled:i.disabled,...r,ref:t,onClick:Jz(e.onClick,i.onOpenToggle)})});i7.displayName=r7;var oC="CollapsibleContent",a7=O.forwardRef((e,t)=>{const{forceMount:n,...r}=e,i=aC(oC,e.__scopeCollapsible);return a.jsx(Zz,{present:n||i.open,children:({present:o})=>a.jsx(K0e,{...r,ref:t,present:o})})});a7.displayName=oC;var K0e=O.forwardRef((e,t)=>{const{__scopeCollapsible:n,present:r,children:i,...o}=e,s=aC(oC,n),[l,u]=O.useState(r),d=O.useRef(null),p=yh(t,d),f=O.useRef(0),g=f.current,y=O.useRef(0),b=y.current,w=s.open||l,v=O.useRef(w),j=O.useRef(void 0);return O.useEffect(()=>{const k=requestAnimationFrame(()=>v.current=!1);return()=>cancelAnimationFrame(k)},[]),xh(()=>{const k=d.current;if(k){j.current=j.current||{transitionDuration:k.style.transitionDuration,animationName:k.style.animationName},k.style.transitionDuration="0s",k.style.animationName="none";const S=k.getBoundingClientRect();f.current=S.height,y.current=S.width,v.current||(k.style.transitionDuration=j.current.transitionDuration,k.style.animationName=j.current.animationName),u(r)}},[s.open,r]),a.jsx(Uh.div,{"data-state":sC(s.open),"data-disabled":s.disabled?"":void 0,id:s.contentId,hidden:!w,...o,ref:p,style:{"--radix-collapsible-content-height":g?`${g}px`:void 0,"--radix-collapsible-content-width":b?`${b}px`:void 0,...e.style},children:w&&i})});function sC(e){return e?"open":"closed"}var X0e=n7,Q0e=i7,J0e=a7,Z0e=O.createContext(void 0);function ewe(e){const t=O.useContext(Z0e);return e||t||"ltr"}var gi="Accordion",twe=["Home","End","ArrowDown","ArrowUp","ArrowLeft","ArrowRight"],[lC,nwe,rwe]=O0e(gi),[ky]=nC(gi,[rwe,t7]),cC=t7(),o7=W.forwardRef((e,t)=>
1107{const{type:n,...r}=e,i=r,o=r;return a.jsx(lC.Provider,{scope:e.__scopeAccordion,children:n==="multiple"?a.jsx(swe,{...o,ref:t}):a.jsx(owe,{...i,ref:t})})});o7.displayName=gi;var[s7,iwe]=ky(gi),[l7,awe]=ky(gi,{collapsible:!1}),owe=W.forwardRef((e,t)=>{const{value:n,defaultValue:r,onValueChange:i=()=>{},collapsible:o=!1,...s}=e,[l,u]=iC({prop:n,defaultProp:r??"",onChange:i,caller:gi});return a.jsx(s7,{scope:e.__scopeAccordion,value:W.useMemo(()=>l?[l]:[],[l]),onItemOpen:u,onItemClose:W.useCallback(()=>o&&u(""),[o,u]),children:a.jsx(l7,{scope:e.__scopeAccordion,collapsible:o,children:a.jsx(c7,{...s,ref:t})})})}),swe=W.forwardRef((e,t)=>{const{value:n,defaultValue:r,onValueChange:i=()=>{},...o}=e,[s,l]=iC({prop:n,defaultProp:r??[],onChange:i,caller:gi}),u=W.useCallback(p=>l((f=[])=>[...f,p]),[l]),d=W.useCallback(p=>l((f=[])=>f.filter(g=>g!==p)),[l]);return a.jsx(s7,{scope:e.__scopeAccordion,value:s,onItemOpen:u,onItemClose:d,children:a.jsx(l7,{scope:e.__scopeAccordion,collapsible:!0,children:a.jsx(c7,{...o,ref:t})})})}),[lwe,Ay]=ky(gi),c7=W.forwardRef((e,t)=>{const{__scopeAccordion:n,disabled:r,dir:i,orientation:o="vertical",...s}=e,l=W.useRef(null),u=yh(l,t),d=nwe(n),f=ewe(i)==="ltr",g=Jz(e.onKeyDown,y=>{var _;if(!twe.includes(y.key))return;const b=y.target,w=d().filter(M=>{var D;return!((D=M.ref.current)!=null&&D.disabled)}),v=w.findIndex(M=>M.ref.current===b),j=w.length;if(v===-1)return;y.preventDefault();let k=v;const S=0,E=j-1,N=()=>{k=v+1,k>E&&(k=S)},C=()=>{k=v-1,k<S&&(k=E)};switch(y.key){case"Home":k=S;break;case"End":k=E;break;case"ArrowRight":o==="horizontal"&&(f?N():C());break;case"ArrowDown":o==="vertical"&&N();break;case"ArrowLeft":o==="horizontal"&&(f?C():N());break;case"ArrowUp":o==="vertical"&&C();break}const P=k%j;(_=w[P].ref.current)==null||_.focus()});return a.jsx(lwe,{scope:n,disabled:r,direction:i,orientation:o,children:a.jsx(lC.Slot,{scope:n,children:a.jsx(Uh.div,{...s,"data-orientation":o,ref:u,onKeyDown:r?void 0:g})})})}),yg="AccordionItem",[cwe,uC]=ky(yg),u7=W.forwardRef((e,t)=>{const{__scopeAccordion:n,value:r,...i}=e,o=Ay(yg,n),s=iwe(yg,n),l=cC(n),u=e7(),d=r&&s.value.includes(r)||!1,p=o.disabled||e.disabled;return a.jsx(cwe,{scope:n,open:d,disabled:p,triggerId:u,children:a.jsx(X0e,{"data-orientation":o.orientation,"data-state":g7(d),...l,...i,ref:t,disabled:p,open:d,onOpenChange:f=>{f?s.onItemOpen(r):s.onItemClose(r)}})})});u7.displayName=yg;var d7="AccordionHeader",h7=W.forwardRef((e,t)=>{const{__scopeAccordion:n,...r}=e,i=Ay(gi,n),o=uC(d7,n);return a.jsx(Uh.h3,{"data-orientation":i.orientation,"data-state":g7(o.open),"data-disabled":o.disabled?"":void 0,...r,ref:t})});h7.displayName=d7;var Nk="AccordionTrigger",p7=W.forwardRef((e,t)=>{const{__scopeAccordion:n,...r}=e,i=Ay(gi,n),o=uC(Nk,n),s=awe(Nk,n),l=cC(n);return a.jsx(lC.ItemSlot,{scope:n,children:a.jsx(Q0e,{"aria-disabled":o.open&&!s.collapsible||void 0,"data-orientation":i.orientation,id:o.triggerId,...l,...r,ref:t})})});p7.displayName=Nk;var f7="AccordionContent",m7=W.forwardRef((e,t)=>{const{__scopeAccordion:n,...r}=e,i=Ay(gi,n),o=uC(f7,n),s=cC(n);return a.jsx(J0e,{role:"region","aria-labelledby":o.triggerId,"data-orientation":i.orientation,...s,...r,ref:t,style:{"--radix-accordion-content-height":"var(--radix-collapsible-content-height)","--radix-accordion-content-width":"var(--radix-collapsible-content-width)",...e.style}})});m7.displayName=f7;function g7(e){return e?"open":"closed"}var uwe=o7,dwe=u7,hwe=h7,y7=p7,x7=m7;const Sy=uwe,Hh=O.forwardRef(({className:e,...t},n)=>a.jsx(dwe,{ref:n,className:wo("border-b",e),...t}));Hh.displayName="AccordionItem";const Vh=O.forwardRef(({className:e,children:t,...n},r)=>a.jsx(hwe,{className:"flex",children:a.jsxs(y7,{ref:r,className:wo("flex flex-1 items-center justify-between py-4 text-sm font-medium transition-all hover:underline text-left [&[data-state=open]>svg]:rotate-180",e),...n,children:[t,a.jsx(kg,{className:"h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200"})]})}));Vh.displayName=y7.displayName;const Gh=O.forwardRef(({className:e,children:t,...n},r)=>a.jsx(x7,{ref:r,className:"overflow-hidden text-sm data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",...n,children:a.jsx("div",{className:wo("pb-4 pt-0",e),children:t})}));Gh.displayName=x7.displayName;const pwe=[{label:"Bitcoin Mining Ops Managers Are Optimizing the Wrong Numbers",href:"/blog/bitcoin-mining-ops-wrong-numbers",tag:"Mining"},{label:"May 2025 Product Update: Improved Coincidental Peak Forecasts, Expanded Miner Support",href:"/blog/product-update-may-2025",tag:"Product"}],fwe=[{icon:xt,title:"Energy & Strategy Automation",desc:"Market-aware orchestration across real-time and forward conditions. Make curtailment decisions based on real economics, not fear."},{icon:Tg,title:"Device & Infra Control",desc:"Unified control of miners, PDUs, c
1107ooling, immersion, and containers. Prioritize efficient hardware automatically."},{icon:Uk,title:"Operations Management",desc:"Assets, inventory, maintenance, work orders, and reporting. Scale across sites without operational chaos."},{icon:zs,title:"Governance & Security",desc:"Role-based access, audit logs, and institutional-grade compliance. SOC 1 Type II and SOC 2 Type II certified."},{icon:Sg,title:"Revenue & Mining Pool",desc:"Transparent FPPS pool integration, automated splits, Lightning withdrawals, and demand response participation."},{icon:aH,title:"Real-Time Grid Intelligence",desc:"Respond instantly to grid and market events. See true energy cost and profitability per miner, in real time."}],mwe=["Make curtailment decisions based on real economics, not fear","Prioritize efficient hardware automatically","Scale across sites without operational chaos","Reduce unnecessary downtime during volatile pricing","Respond instantly to grid and market events","See true energy cost and profitability per miner"],nM=[{q:"What is a Bitcoin mining platform?",a:"A Bitcoin mining platform is software that unifies energy strategy, device control, and operations for mining data centers. Instead of monitoring miners and power markets separately, it connects grid signals, market prices, and infrastructure data so operators can automate curtailment, dispatch, and maintenance decisions from one system."},{q:"How is LÅD different from a Bitcoin mining monitoring tool?",a:"Most mining monitoring tools only show data. LÅD is a full Bitcoin mining platform: it interprets real-time grid and market signals and executes decisions automatically, such as curtailing during price spikes or ramping up when energy is cheap, without manual intervention."},{q:"Can a Bitcoin mining platform improve profitability?",a:"Yes. By treating miners as energy-aware assets, a platform like LÅD reduces unnecessary downtime, prioritizes efficient hardware, and captures demand response and grid program revenue, resulting in an average 20%+ reduction in energy costs across customers."}],gwe=[{num:"01",title:"Observe",desc:"Continuous monitoring of infrastructure, grid, and market conditions in real time."},{num:"02",title:"Decide",desc:"Automated intelligence evaluates every signal and determines the optimal action."},{num:"03",title:"Execute",desc:"Actions are executed at device-level â no human intervention required."}];function ywe(){return a.jsxs(a.Fragment,{children:[a.jsx(He,{title:"Bitcoin Mining Platform â Energy-Aware Operations at Scale | LÅD",description:"LÅD's Bitcoin mining platform integrates real-time grid signals, automated curtailment, device control, and demand response into one unified system. SOC 1 & SOC 2 Type II certified.",canonical:"https://lod.io/bitcoin-mining",ogImage:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/6cf86e0a9_Lod-Green-no-Background.png",schemaData:{"@context":"https://schema.org","@graph":[{"@type":"SoftwareApplication",name:"LÅD Bitcoin Mining Platform",url:"https://lod.io/bitcoin-mining",applicationCategory:"BusinessApplication",operatingSystem:"Web",provider:{"@type":"Organization",name:"LÅD Technologies",url:"https://lod.io"},description:"All-in-one platform for energy-aware Bitcoin mining: real-time grid signals, automated curtailment, device and infrastructure control, demand response, mining pool integration, and per-miner profitability. SOC 1 & SOC 2 Type II certified. 1,000+ MW under management, 47% reduction in unnecessary downtime, <30s grid response time.",featureList:["Energy & strategy automation","Device & infrastructure control (miners, PDUs, cooling, immersion, containers)","Operations management (assets, inventory, maintenance, work orders)","Governance & security (role-based access, audit logs, SOC 1 & SOC 2 Type II)","Revenue & mining pool (FPPS pool integration, Lightning withdrawals, demand response)","Real-time grid intelligence and per-miner profitability"]},{"@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://lod.io"},{"@type":"ListItem",position:2,name:"Bitcoin Mining",item:"https://lod.io/bitcoin-mining"}]},{"@type":"FAQPage",mainEntity:nM.map(e=>
1107({"@type":"Question",name:e.q,acceptedAnswer:{"@type":"Answer",text:e.a}}))}]}}),a.jsxs(Je,{children:[a.jsxs("section",{className:"relative overflow-hidden grid-lines-overlay",style:{background:"#232323",minHeight:"640px"},children:[a.jsx("div",{className:"max-w-[1400px] mx-auto px-6 py-20 md:py-24 relative z-10",children:a.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-16 items-center",children:[a.jsxs("div",{children:[a.jsx("div",{className:"section-label mb-5",children:"Solutions / Bitcoin Mining"}),a.jsxs("h1",{className:"font-display text-4xl md:text-5xl text-lod-white mb-6 leading-tight",children:["The Bitcoin Mining Platform",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"Built Around Energy"})]}),a.jsx("p",{className:"text-lod-gray text-base md:text-lg mb-10 max-w-lg leading-relaxed",children:"LÅD is a Bitcoin mining platform that manages energy, uptime, and revenue in one unified system for mining data centers. It treats miners as energy-aware assets, monitoring infrastructure, assessing market conditions, and automating decisions in real time."}),a.jsxs("div",{className:"flex flex-wrap gap-4 mb-8",children:[a.jsx(ye,{to:"/contact",className:"btn-primary text-base px-8 py-4",children:"Request a Demo"}),a.jsx(cm,{className:"btn-outline text-base px-8 py-4",children:"Start Free Trial"})]}),a.jsx("div",{className:"flex flex-wrap gap-4",children:["SOC 1 Type II","SOC 2 Type II","Hosting-Grade","Multi-Site Ready"].map(e=>a.jsx("span",{className:"tag-chip",children:e},e))})]}),a.jsx("div",{className:"hidden lg:block",children:a.jsx("div",{className:"rounded-xl overflow-hidden",style:{position:"relative",paddingBottom:"56.25%",height:0,border:"1px solid rgba(191,245,137,0.15)"},children:a.jsx("iframe",{src:"https://www.loom.com/embed/d37e59e85a24499487e68fca287f2a29?hide_owner=true&hide_share=true&hide_title=true&hideEmbedTopBar=true&hide_speed=true",frameBorder:"0",allowFullScreen:!0,style:{position:"absolute",top:0,left:0,width:"100%",height:"100%"},title:"Transforming Energy Costs into Profitability in Bitcoin Mining"})})})]})}),a.jsx("div",{className:"absolute bottom-0 left-0 right-0 h-px",style:{background:"linear-gradient(90deg, transparent, rgba(191,245,137,0.25), transparent)"}})]}),a.jsx("section",{className:"lg:hidden px-6 py-10",style:{background:"#0A0A0A"},children:a.jsx("div",{className:"rounded-xl overflow-hidden",style:{position:"relative",paddingBottom:"56.25%",height:0,border:"1px solid rgba(191,245,137,0.15)"},children:a.jsx("iframe",{src:"https://www.loom.com/embed/d37e59e85a24499487e68fca287f2a29?hide_owner=true&hide_share=true&hide_title=true&hideEmbedTopBar=true&hide_speed=true",frameBorder:"0",allowFullScreen:!0,style:{position:"absolute",top:0,left:0,width:"100%",height:"100%"},title:"Bitcoin Mining Platform Demo"})})}),a.jsx(qs,{headline:"TRUSTED BY SERIOUS MINING OPERATIONS"}),a.jsxs("section",{className:"relative overflow-hidden py-24",style:{background:"#0D0D0D"},children:[a.jsx("div",{"aria-hidden":"true",style:{position:"absolute",inset:0,pointerEvents:"none",backgroundImage:"radial-gradient(circle, rgba(191,245,137,0.2) 1px, transparent 1px)",backgroundSize:"28px 28px"}}),a.jsx("div",{className:"max-w-[1400px] mx-auto px-6 relative z-10",children:a.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-16 items-start",children:[a.jsxs("div",{children:[a.jsx("div",{className:"section-label mb-4",children:"The Problem"}),a.jsxs("h2",{className:"font-display text-4xl md:text-5xl text-lod-white mb-6 leading-tight",children:["Bitcoin Mining Is an",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"Energy Problem First"})]}),a.jsxs("div",{className:"space-y-6",children:[a.jsxs("div",{children:[a.jsx("h3",{className:"text-lod-white font-semibold mb-2",children:"Designed to Improve Your Revenue"}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed",children:"At scale, profitability is driven by power markets, grid conditions, and operational discipline."})]}),a.jsxs("div",{children:[a.jsx("h3",{className:"text-lod-white font-semibold mb-2",children:"Automated Optimization"}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed",children:"Manual decisions and fragmented tools lead to over-curtailment, unnecessary downtime, and missed revenue."})]}),a.jsxs("div",{children:[a.jsx("h3",{className:"text-lod-white font-semibold mb-2",children:"More Than Just Monitoring"}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed",children:"Most mining platforms show data. Very few help operators act correctly when conditions change. LÅD interprets signals and executes them automatically."})]})]})]}),a.jsxs("div",{children:[a.jsx("div",{className:"section-label mb-6",children:"A Platform That Thinks in Energy, Not Just Hashrate"}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed mb-8",children:"Volatility becomes a controllable variable, not a constant risk."}),a.jsx("div",{className:"grid grid-cols-1 gap-4",children:gwe.map(e=>a.jsxs("div",{className:"card-obsidian p-6 flex items-start gap-5",children:[a.jsx("div",{className:"section-label text-2xl flex-shrink-0",style:{color:"#BFF589"},children:e.num}),a.jsxs("div",{children:[a.jsx("h3",{className:"text-lod-white font-display text-xl mb-2",children:e.title}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed",children:e.desc})]})]},e.num))})]})]})})]}),a.jsx("section",{className:"py-24",style:{background:"#0A0A0A"},children:a.jsxs("div",{className:"max-w-[1400px] mx-auto px-6",children:[a.jsxs("div",{className:"text-center mb-16",children:[a.jsx("div",{className:"section-label mb-4",children:"One Platform, Full Operational Control"}),a.jsxs("h2",{className:"font-display text-4xl md:text-5xl text-lod-white mb-4",children:["Everything You Need to",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"Run a Smarter Mine"})]}),a.jsx("p",{className:"text-lod-gray text-base max-w-2xl mx-auto",children:"As a complete Bitcoin mining platform, LÅD brings energy strategy, device control, operations, and revenue into a single system, so nothing gets managed in isolation."})]}),a.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6",children:fwe.map(e=>a.jsxs("div",{className:"card-obsidian p-8",children:[a.jsx("div",{className:"w-12 h-12 rounded-sm flex items-center justify-center mb-5",style:{background:"rgba(191,245,137,0.08)",border:"1px solid rgba(191,245,137,0.15)"},children:a.jsx(e.icon,{size:20,style:{color:"#BFF589"}})}),a.jsx("h3",{className:"font-display text-lg text-lod-white mb-3",children:e.title}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed",children:e.desc})]},e.title))})]})}),a.jsx("section",{className:"relative overflow-hidden py-24 grid-lines-overlay",style:{background:"#1A1A1A"},children:a.jsx("div",{className:"max-w-[1400px] mx-auto px-6 relative z-10",children:a.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-16 items-center",children:[a.jsxs("div",{children:[a.jsx("div",{className:"section-label mb-4",children:"What Changes When You Run on
1107LÅD"}),a.jsxs("h2",{className:"font-display text-4xl md:text-5xl text-lod-white mb-8 leading-tight",children:["Real Results for",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"Bitcoin Miners"})]}),a.jsx("div",{className:"space-y-4",children:mwe.map(e=>a.jsxs("div",{className:"flex items-start gap-4",children:[a.jsx("div",{className:"w-1.5 h-1.5 rounded-full mt-2 flex-shrink-0",style:{background:"#BFF589"}}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed",children:e})]},e))})]}),a.jsx("div",{className:"card-obsidian p-8 text-center",children:a.jsx("div",{className:"grid grid-cols-2 gap-8",children:[{val:"1000+ MW",label:"Under Management"},{val:"47%",label:"Reduction in Unnecessary Downtime"},{val:"<30s",label:"Grid Response Time"},{val:"20%+",label:"Avg Energy Cost Reduction"}].map(e=>a.jsxs("div",{className:"text-center",children:[a.jsx("div",{className:"font-display text-3xl md:text-4xl mb-2",style:{color:"#BFF589"},children:e.val}),a.jsx("div",{className:"text-lod-gray text-xs font-mono uppercase tracking-wider",children:e.label})]},e.label))})})]})})}),a.jsx("section",{className:"py-24",style:{background:"#0D0D0D"},children:a.jsxs("div",{className:"max-w-[900px] mx-auto px-6",children:[a.jsxs("div",{className:"text-center mb-12",children:[a.jsx("div",{className:"section-label mb-4",children:"FAQ"}),a.jsxs("h2",{className:"font-display text-3xl md:text-4xl text-lod-white",children:["Bitcoin Mining Platform, ",a.jsx("span",{style:{color:"#BFF589"},children:"Answered"})]})]}),a.jsx(Sy,{type:"single",collapsible:!0,className:"space-y-4",children:nM.map((e,t)=>a.jsxs(Hh,{value:`item-${t}`,className:"card-obsidian px-6 border-0",children:[a.jsx(Vh,{className:"text-lod-white font-semibold text-left hover:no-underline",children:e.q}),a.jsx(Gh,{className:"text-lod-gray text-sm leading-relaxed",children:e.a})]},e.q))})]})}),a.jsx(Po,{links:pwe}),a.jsx(un,{headline:"READY TO OPTIMIZE?",subline:"Start Your Free Trial Today",ctaLabel:"Book an Energy Strategy Call",ctaHref:"/contact"})]})]})}function xwe(e,t){const n={};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const vwe=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,bwe=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,wwe={};function rM(e,t){return(wwe.jsx?bwe:vwe).test(e)}const jwe=/[ \t\n\f\r]/g;function kwe(e){return typeof e=="object"?e.type==="text"?iM(e.value):!1:iM(e)}function iM(e){return e.replace(jwe,"")===""}class Yh{constructor(t,n,r){this.normal=n,this.property=t,r&&(this.space=r)}}Yh.prototype.normal={};Yh.prototype.property={};Yh.prototype.space=void 0;function v7(e,t){const n={},r={};for(const i of e)Object.assign(n,i.property),Object.assign(r,i.normal);return new Yh(n,r,t)}function Tk(e){return e.toLowerCase()}class dr{constructor(t,n){this.attribute=n,this.property=t}}dr.prototype.attribute="";dr.prototype.booleanish=!1;dr.prototype.boolean=!1;dr.prototype.commaOrSpaceSeparated=!1;dr.prototype.commaSeparated=!1;dr.prototype.defined=!1;dr.prototype.mustUseProperty=!1;dr.prototype.number=!1;dr.prototype.overloadedBoolean=!1;dr.prototype.property="";dr.prototype.spaceSeparated=!1;dr.prototype.space=void 0;let Awe=0;const Ye=Ks(),Zt=Ks(),Ek=Ks(),he=Ks(),Nt=Ks(),Gl=Ks(),vr=Ks();function Ks(){return 2**++Awe}const Pk=Object.freeze(Object.defineProperty({__proto__:null,boolean:Ye,booleanish:Zt,commaOrSpaceSeparated:vr,commaSeparated:Gl,number:he,overloadedBoolean:Ek,spaceSeparated:Nt},Symbol.toStringTag,{value:"Module"})),Z1=Object.keys(Pk);class dC extends dr{constructor(t,n,r,i){let o=-1;if(super(t,n),aM(this,"space",i),typeof r=="number")for(;++o<Z1.length;){const s=Z1[o];aM(this,Z1[o],(r&Pk[s])===Pk[s])}}}dC.prototype.defined=!0;function aM(e,t,n){n&&(e[t]=n)}function Jc(e){const t={},n={};for(const[r,i]of Object.entries(e.properties)){const o=new dC(r,e.transform(e.attributes||{},r),i,e.space);e.mustUseProperty&&e.mustUseProperty.includes(r)&&(o.mustUseProperty=!0),t[r]=o,n[Tk(r)]=r,n[Tk(o.attribute)]=r}return new Yh(t,n,e.space)}const b7=Jc({properties:{ariaActiveDescendant:null,ariaAtomic:Zt,ariaAutoComplete:null,ariaBusy:Zt,ariaChecked:Zt,ariaColCount:he,ariaColIndex:he,ariaColSpan:he,ariaControl
vendor: 5,436 bytes, line 1107
1107s:Nt,ariaCurrent:null,ariaDescribedBy:Nt,ariaDetails:null,ariaDisabled:Zt,ariaDropEffect:Nt,ariaErrorMessage:null,ariaExpanded:Zt,ariaFlowTo:Nt,ariaGrabbed:Zt,ariaHasPopup:null,ariaHidden:Zt,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:Nt,ariaLevel:he,ariaLive:null,ariaModal:Zt,ariaMultiLine:Zt,ariaMultiSelectable:Zt,ariaOrientation:null,ariaOwns:Nt,ariaPlaceholder:null,ariaPosInSet:he,ariaPressed:Zt,ariaReadOnly:Zt,ariaRelevant:null,ariaRequired:Zt,ariaRoleDescription:Nt,ariaRowCount:he,ariaRowIndex:he,ariaRowSpan:he,ariaSelected:Zt,ariaSetSize:he,ariaSort:null,ariaValueMax:he,ariaValueMin:he,ariaValueNow:he,ariaValueText:null,role:null},transform(e,t){return t==="role"?t:"aria-"+t.slice(4).toLowerCase()}});function w7(e,t){return t in e?e[t]:t}function j7(e,t){return w7(e,t.toLowerCase())}const Swe=Jc({attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:Gl,acceptCharset:Nt,accessKey:Nt,action:null,allow:null,allowFullScreen:Ye,allowPaymentRequest:Ye,allowUserMedia:Ye,alt:null,as:null,async:Ye,autoCapitalize:null,autoComplete:Nt,autoFocus:Ye,autoPlay:Ye,blocking:Nt,capture:null,charSet:null,checked:Ye,cite:null,className:Nt,cols:he,colSpan:null,content:null,contentEditable:Zt,controls:Ye,controlsList:Nt,coords:he|Gl,crossOrigin:null,data:null,dateTime:null,decoding:null,default:Ye,defer:Ye,dir:null,dirName:null,disabled:Ye,download:Ek,draggable:Zt,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:Ye,formTarget:null,headers:Nt,height:he,hidden:Ek,high:he,href:null,hrefLang:null,htmlFor:Nt,httpEquiv:Nt,id:null,imageSizes:null,imageSrcSet:null,inert:Ye,inputMode:null,integrity:null,is:null,isMap:Ye,itemId:null,itemProp:Nt,itemRef:Nt,itemScope:Ye,itemType:Nt,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:Ye,low:he,manifest:null,max:null,maxLength:he,media:null,method:null,min:null,minLength:he,multiple:Ye,muted:Ye,name:null,nonce:null,noModule:Ye,noValidate:Ye,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:Ye,optimum:he,pattern:null,ping:Nt,placeholder:null,playsInline:Ye,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:Ye,referrerPolicy:null,rel:Nt,required:Ye,reversed:Ye,rows:he,rowSpan:he,sandbox:Nt,scope:null,scoped:Ye,seamless:Ye,selected:Ye,shadowRootClonable:Ye,shadowRootDelegatesFocus:Ye,shadowRootMode:null,shape:null,size:he,sizes:null,slot:null,span:he,spellCheck:Zt,src:null,srcDoc:null,srcLang:null,srcSet:null,start:he,step:null,style:null,tabIndex:he,target:null,title:null,translate:null,type:null,typeMustMatch:Ye,useMap:null,value:Zt,width:he,wrap:null,writingSuggestions:null,align:null,aLink:null,archive:Nt,axis:null,background:null,bgColor:null,border:he,borderColor:null,bottomMargin:he,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:Ye,declare:Ye,event:null,face:null,frame:null,frameBorder:null,hSpace:he,leftMargin:he,link:null,longDesc:null,lowSrc:null,marginHeight:he,marginWidth:he,noResize:Ye,noHref:Ye,noShade:Ye,noWrap:Ye,object:null,profile:null,prompt:null,rev:null,rightMargin:he,rules:null,scheme:null,scrolling:Zt,standby:null,summary:null,text:null,topMargin:he,valueType:null,version:null,vAlign:null,vLink:null,vSpace:he,allowTransparency:null,autoCorrect:null,autoSave:null,disablePictureInPicture:Ye,disableRemotePlayback:Ye,prefix:null,property:null,results:he,security:null,unselectable:null},space:"html",transform:j7}),Cwe=Jc({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",colorRen
1107dering:"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-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:vr,accentHeight:he,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:he,amplitude:he,arabicForm:null,ascent:he,attributeName:null,attributeType:null,azimuth:he,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:he,by:null,calcMode:null,capHeight:he,className:Nt,clip:null,clipPath:null,clipPathUnits:null,clipRule:null,color:null,colorInterpolation:null,colorInterpolationFilters:null,colorProfile:null,colorRen
1107dering:null,content:null,contentScriptType:null,contentStyleType:null,crossOrigin:null,cursor:null,cx:null,cy:null,d:null,dataType:null,defaultAction:null,descent:he,diffuseConstant:he,direction:null,display:null,dur:null,divisor:he,dominantBaseline:null,download:Ye,dx:null,dy:null,edgeMode:null,editable:null,elevation:he,enableBackground:null,end:null,event:null,exponent:he,externalResourcesRequired:null,fill:null,fillOpacity:he,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:Gl,g2:Gl,glyphName:Gl,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:he,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:he,horizOriginX:he,horizOriginY:he,id:null,ideographic:he,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:he,k:he,k1:he,k2:he,k3:he,k4:he,kernelMatrix:vr,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:he,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:he,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,onZoom:null,opacity:null,operator:null,order:null,orient:null,orientation:null,origin:null,overflow:null,overlay:null,overlinePosition:he,overlineThickness:he,paintOrder:null,panose1:null,path:null,pathLength:he,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:Nt,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:he,pointsAtY:he,pointsAtZ:he,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:vr,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:vr,rev:vr,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:vr,requiredFeatures:vr,requiredFonts:vr,requiredFormats:vr,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:he,specularExponent:he,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:he,strikethroughThickness:he,string:null,stroke:null,strokeDashArray:vr,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:he,strokeOpacity:he,strokeWidth:null,style:null,surfaceScale:he,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:vr,tabIndex:he,tableValues:null,target:null,targetX:he,targetY:he,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:vr,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:he,underlineThickness:he,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:he,values:null,vAlphabetic:he,vMathematical:he,vectorEffect:null,vHanging:he,vIdeographic:he,version:null,vertAdvY:he,vertOriginX:he,vertOriginY:he,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:he,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null},space:"svg",transform:w7}),k7=Jc({properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null}
1107,space:"xlink",transform(e,t){return"xlink:"+t.slice(5).toLowerCase()}}),A7=Jc({attributes:{xmlnsxlink:"xmlns:xlink"},properties:{xmlnsXLink:null,xmlns:null},space:"xmlns",transform:j7}),S7=Jc({properties:{xmlBase:null,xmlLang:null,xmlSpace:null},space:"xml",transform(e,t){return"xml:"+t.slice(3).toLowerCase()}}),Nwe={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"},Twe=/[A-Z]/g,oM=/-[a-z]/g,Ewe=/^data[-\w.:]+$/i;function Pwe(e,t){const n=Tk(t);let r=t,i=dr;if(n in e.normal)return e.property[e.normal[n]];if(n.length>4&&n.slice(0,4)==="data"&&Ewe.test(t)){if(t.charAt(4)==="-"){const o=t.slice(5).replace(oM,_we);r="data"+o.charAt(0).toUpperCase()+o.slice(1)}else{const o=t.slice(4);if(!oM.test(o)){let s=o.replace(Twe,Owe);s.charAt(0)!=="-"&&(s="-"+s),t="data"+s}}i=dC}return new i(r,t)}function Owe(e){return"-"+e.toLowerCase()}function _we(e){return e.charAt(1).toUpperCase()}const Iwe=v7([b7,Swe,k7,A7,S7],"html"),hC=v7([b7,Cwe,k7,A7,S7],"svg");function Rwe(e){return e.join(" ").trim()}var Cl={},e2,sM;function Dwe(){if(sM)return e2;sM=1;var e=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,t=/\n/g,n=/^\s*/,r=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,i=/^:\s*/,o=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,s=/^[;\s]*/,l=/^\s+|\s+$/g,u=` 1108`,d="/",p="*",f="",g="comment",y="declaration";function b(v,j){if(typeof v!="string")throw new TypeError("First argument must be a string");if(!v)return[];j=j||{};var k=1,S=1;function E(U){var q=U.match(t);q&&(k+=q.length);var Y=U.lastIndexOf(u);S=~Y?U.length-Y:S+U.length}function N(){var U={line:k,column:S};return function(q){return q.position=new C(U),M(),q}}function C(U){this.start=U,this.end={line:k,column:S},this.source=j.source}C.prototype.content=v;function P(U){var q=new Error(j.source+":"+k+":"+S+": "+U);if(q.reason=U,q.filename=j.source,q.line=k,q.column=S,q.source=v,!j.silent)throw q}function _(U){var q=U.exec(v);if(q){var Y=q[0];return E(Y),v=v.slice(Y.length),q}}function M(){_(n)}function D(U){var q;for(U=U||[];q=B();)q!==!1&&U.push(q);return U}function B(){var U=N();if(!(d!=v.charAt(0)||p!=v.charAt(1))){for(var q=2;f!=v.charAt(q)&&(p!=v.charAt(q)||d!=v.charAt(q+1));)++q;if(q+=2,f===v.charAt(q-1))return P("End of comment missing");var Y=v.slice(2,q-2);return S+=2,E(Y),v=v.slice(q),S+=2,U({type:g,comment:Y})}}function F(){var U=N(),q=_(r);if(q){if(B(),!_(i))return P("property missing ':'");var Y=_(o),Z=U({type:y,property:w(q[0].replace(e,f)),value:Y?w(Y[0].replace(e,f)):f});return _(s),Z}}function V(){var U=[];D(U);for(var q;q=F();)q!==!1&&(U.push(q),D(U));return U}return M(),V()}function w(v){return v?v.replace(l,f):f}return e2=b,e2}var lM;function Mwe(){if(lM)return Cl;lM=1;var e=Cl&&Cl.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(Cl,"__esModule",{value:!0}),Cl.default=n;const t=e(Dwe());function n(r,i){let o=null;if(!r||typeof r!="string")return o;const s=(0,t.default)(r),l=typeof i=="function";return s.forEach(u=>{if(u.type!=="declaration")return;const{property:d,value:p}=u;l?i(d,p,u):p&&(o=o||{},o[d]=p)}),o}return Cl}var Qu={},cM;function Lwe(){if(cM)return Qu;cM=1,Object.defineProperty(Qu,"__esModule",{value:!0}),Qu.camelCase=void 0;var e=/^--[a-zA-Z0-9_-]+$/,t=/-([a-z])/g,n=/^[^-]+$/,r=/^-(webkit|moz|ms|o|khtml)-/,i=/^-(ms)-/,o=function(d){return!d||n.test(d)||e.test(d)},s=function(d,p){return p.toUpperCase()},l=function(d,p){return"".concat(p,"-")},u=function(d,p){return p===void 0&&(p={}),o(d)?d:(d=d.toLowerCase(),p.reactCompat?d=d.replace(i,l):d=d.replace(r,l),d.replace(t,s))};return Qu.camelCase=u,Qu}var Ju,uM;function Fwe(){if(uM)return Ju;uM=1;var e=Ju&&Ju.__importDefault||function(i){return i&&i.__esModule?i:{default:i}},t=e(Mwe()),n=Lwe();function r(i,o){var s={};
vendor: 98,891 bytes, lines 1108-1120
1108return!i||typeof i!="string"||(0,t.default)(i,function(l,u){l&&u&&(s[(0,n.camelCase)(l,o)]=u)}),s}return r.default=r,Ju=r,Ju}var Bwe=Fwe();const zwe=bt(Bwe),C7=N7("end"),pC=N7("start");function N7(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 $we(e){const t=pC(e),n=C7(e);if(t&&n)return{start:t,end:n}}function jd(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?dM(e.position):"start"in e||"end"in e?dM(e):"line"in e||"column"in e?Ok(e):""}function Ok(e){return hM(e&&e.line)+":"+hM(e&&e.column)}function dM(e){return Ok(e&&e.start)+"-"+Ok(e&&e.end)}function hM(e){return e&&typeof e=="number"?e:1}class Hn extends Error{constructor(t,n,r){super(),typeof n=="string"&&(r=n,n=void 0);let i="",o={},s=!1;if(n&&("line"in n&&"column"in n?o={place:n}:"start"in n&&"end"in n?o={place:n}:"type"in n?o={ancestors:[n],place:n.position}:o={...n}),typeof t=="string"?i=t:!o.cause&&t&&(s=!0,i=t.message,o.cause=t),!o.ruleId&&!o.source&&typeof r=="string"){const u=r.indexOf(":");u===-1?o.ruleId=r:(o.source=r.slice(0,u),o.ruleId=r.slice(u+1))}if(!o.place&&o.ancestors&&o.ancestors){const u=o.ancestors[o.ancestors.length-1];u&&(o.place=u.position)}const l=o.place&&"start"in o.place?o.place.start:o.place;this.ancestors=o.ancestors||void 0,this.cause=o.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=jd(o.place)||"1:1",this.place=o.place||void 0,this.reason=this.message,this.ruleId=o.ruleId||void 0,this.source=o.source||void 0,this.stack=s&&o.cause&&typeof o.cause.stack=="string"?o.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}Hn.prototype.file="";Hn.prototype.name="";Hn.prototype.reason="";Hn.prototype.message="";Hn.prototype.stack="";Hn.prototype.column=void 0;Hn.prototype.line=void 0;Hn.prototype.ancestors=void 0;Hn.prototype.cause=void 0;Hn.prototype.fatal=void 0;Hn.prototype.place=void 0;Hn.prototype.ruleId=void 0;Hn.prototype.source=void 0;const fC={}.hasOwnProperty,qwe=new Map,Wwe=/[A-Z]/g,Uwe=new Set(["table","tbody","thead","tfoot","tr"]),Hwe=new Set(["td","th"]),T7="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function Vwe(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=e1e(n,t.jsxDEV)}else{if(typeof t.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof t.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");r=Zwe(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"?hC:Iwe,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},o=E7(i,e,void 0);return o&&typeof o!="string"?o:i.create(e,i.Fragment,{children:o||void 0},void 0)}function E7(e,t,n){if(t.type==="element")return Gwe(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return Ywe(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return Xwe(e,t,n);if(t.type==="mdxjsEsm")return Kwe(e,t);if(t.type==="root")return Qwe(e,t,n);if(t.type==="text")return Jwe(e,t)}function Gwe(e,t,n){const r=e.schema;let i=r;t.tagName.toLowerCase()==="svg"&&r.space==="html"&&(i=hC,e.schema=i),e.ancestors.push(t);const o=O7(e,t.tagName,!1),s=t1e(e,t);let l=gC(e,t);return Uwe.has(t.tagName)&&(l=l.filter(function(u){return typeof u=="string"?!kwe(u):!0})),P7(e,s,o,t),mC(s,l),e.ancestors.pop(),e.schema=r,e.create(t,o,s,n)}function Ywe(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)}vh(e,t.position)}function Kwe(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);vh(e,t.position)}function Xwe(e,t,n){const r=e.schema;let i=r;t.name==="svg"&&r.space==="html"&&(i=hC,e.schema=i),e.ancestors.push(t);const o=t.name===null?e.Fragment:O7(e,t.name,!0),s=n1e(e,t),l=gC(e,t);return P7(e,s,o,t),mC(s,l),e.ancestors.pop(),e.schema=r,e.create(t,o,s,n)}function Qwe(e,t,n){const r={};return mC(r,gC(e,t)),e.create(t,e.Fragment,r,n)}function Jwe(e,t){return t.value}function P7(e,t,n,r){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=r)}function mC(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function Zwe(e,t,n){return r;function r(i,o,s,l){const d=Array.isArray(s.children)?n:t;return l?d(o,s,l):d(o,s)}}function e1e(e,t){return n;function n(r,i,o,s){const l=Array.isArray(o.children),u=pC(r);return t(i,o,s,l,{columnNumber:u?u.column-1:void 0,fileName:e,lineNumber:u?u.line:void 0},void 0)}}function t1e(e,t){const n={};let r,i;for(i in t.properties)if(i!=="children"&&fC.call(t.properties,i)){const o=r1e(e,i,t.properties[i]);if(o){const[s,l]=o;e.tableCellAlignToStyle&&s==="align"&&typeof l=="string"&&Hwe.has(t.tagName)?r=l:n[s]=l}}if(r){const o=n.style||(n.style={});o[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=r}return n}function n1e(e,t){const n={};for(const r of t.attributes)if(r.type==="mdxJsxExpressionAttribute")if(r.data&&r.data.estree&&e.evaluater){const o=r.data.estree.body[0];o.type;const s=o.expression;s.type;const l=s.properties[0];l.type,Object.assign(n,e.evaluater.evaluateExpression(l.argument))}else vh(e,t.position);else{const i=r.name;let o;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,o=e.evaluater.evaluateExpression(l.expression)}else vh(e,t.position);else o=r.value===null?!0:r.value;n[i]=o}return n}function gC(e,t){const n=[];let r=-1;const i=e.passKeys?new Map:qwe;for(;++r<t.children.length;){const o=t.children[r];let s;if(e.passKeys){const u=o.type==="element"?o.tagName:o.type==="mdxJsxFlowElement"||o.type==="mdxJsxTextElement"?o.name:void 0;if(u){const d=i.get(u)||0;s=u+"-"+d,i.set(u,d+1)}}const l=E7(e,o,s);l!==void 0&&n.push(l)}return n}function r1e(e,t,n){const r=Pwe(e.schema,t);if(!(n==null||typeof n=="number"&&Number.isNaN(n))){if(Array.isArray(n)&&(n=r.commaSeparated?xwe(n):Rwe(n)),r.property==="style"){let i=typeof n=="object"?n:i1e(e,String(n));return e.stylePropertyNameCase==="css"&&(i=a1e(i)),["style",i]}return[e.elementAttributeNameCase==="react"&&r.space?Nwe[r.property]||r.property:r.attribute,n]}}function i1e(e,t){try{return zwe(t,{reactCompat:!0})}catch(n){if(e.ignoreInvalidStyle)return{};const r=n,i=new Hn("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=T7+"#cannot-parse-style-attribute",i}}function O7(e,t,n){let r;if(!n)r={type:"Literal",value:t};else if(t.includes(".")){const i=t.split(".");let o=-1,s;for(;++o<i.length;){const l=rM(i[o])?{type:"Identifier",name:i[o]}:{type:"Literal",value:i[o]};s=s?{type:"MemberExpression",object:s,property:l,computed:!!(o&&l.type==="Literal"),optional:!1}:l}r=s}else r=rM(t)&&!/^[a-z]/.test(t)?{type:"Identifier",name:t}:{type:"Literal",value:t};if(r.type==="Literal"){const i=r.value;return fC.call(e.components,i)?e.components[i]:i}if(e.evaluater)return e.evaluater.evaluateExpression(r);vh(e)}function vh(e,t){const n=new Hn("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=T7+"#cannot-handle-mdx-estrees-without-createevaluater",n}function a1e(e){const t={};let n;for(n in e)fC.call(e,n)&&(t[o1e(n)]=e[n]);return t}function o1e(e){let t=e.replace(Wwe,s1e);return t.slice(0,3)==="ms-"&&(t="-"+t),t}function s1e(e){return"-"+e.toLowerCase()}const t2={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"]},l1e={};function yC(e,t){const n=l1e,r=typeof n.includeImageAlt=="boolean"?n.includeImageAlt:!0,i=typeof n.includeHtml=="boolean"?n.includeHtml:!0;return _7(e,r,i)}function _7(e,t,n){if(c1e(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 pM(e.children,t,n)}return Array.isArray(e)?pM(e,t,n):""}function pM(e,t,n){const r=[];let i=-1;for(;++i<e.length;)r[i]=_7(e[i],t,n);return r.join("")}function c1e(e){return!!(e&&typeof e=="object")}const fM=document.createElement("i");function xC(e){const t="&"+e+";";fM.innerHTML=t;const n=fM.textContent;return n.charCodeAt(n.length-1)===59&&e!=="semi"||n===t?!1:n}function Ar(e,t,n,r){const i=e.length;let o=0,s;if(t<0?t=-t>i?0:i+t:t=t>i?i:t,n=n>0?n:0,r.length<1e4)s=Array.from(r),s.unshift(t,n),e.splice(...s);else for(n&&e.splice(t,n);o<r.length;)s=r.slice(o,o+1e4),s.unshift(t,0),e.splice(...s),o+=1e4,t+=1e4}function qr(e,t){return e.length>0?(Ar(e,e.length,0,t),e):t}const mM={}.hasOwnProperty;function I7(e){const t={};let n=-1;for(;++n<e.length;)u1e(t,e[n]);return t}function u1e(e,t){let n;for(n in t){const i=(mM.call(e,n)?e[n]:void 0)||(e[n]={}),o=t[n];let s;if(o)for(s in o){mM.call(i,s)||(i[s]=[]);const l=o[s];d1e(i[s],Array.isArray(l)?l:l?[l]:[])}}}function d1e(e,t){let n=-1;const r=[];for(;++n<t.length;)(t[n].add==="after"?e:r).push(t[n]);Ar(e,0,0,r)}function R7(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 pi(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const Xn=Oo(/[A-Za-z]/),Wn=Oo(/[\dA-Za-z]/),h1e=Oo(/[#-'*+\--9=?A-Z^-~]/);function xg(e){return e!==null&&(e<32||e===127)}const _k=Oo(/\d/),p1e=Oo(/[\dA-Fa-f]/),f1e=Oo(/[!-/:-@[-`{-~]/);function Le(e){return e!==null&&e<-2}function At(e){return e!==null&&(e<0||e===32)}function tt(e){return e===-2||e===-1||e===32}const Cy=Oo(new RegExp("\\p{P}|\\p{S}","u")),Bs=Oo(/\s/);function Oo(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function Zc(e){const t=[];let n=-1,r=0,i=0;for(;++n<e.length;){const o=e.charCodeAt(n);let s="";if(o===37&&Wn(e.charCodeAt(n+1))&&Wn(e.charCodeAt(n+2)))i=2;else if(o<128)/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(o))||(s=String.fromCharCode(o));else if(o>55295&&o<57344){const l=e.charCodeAt(n+1);o<56320&&l>56319&&l<57344?(s=String.fromCharCode(o,l),i=1):s="�"}else s=String.fromCharCode(o);s&&(t.push(e.slice(r,n),encodeURIComponent(s)),r=n+i+1,s=""),i&&(n+=i,i=0)}return t.join("")+e.slice(r)}function ct(e,t,n,r){const i=r?r-1:Number.POSITIVE_INFINITY;let o=0;return s;function s(u){return tt(u)?(e.enter(n),l(u)):t(u)}function l(u){return tt(u)&&o++<i?(e.consume(u),l):(e.exit(n),t(u))}}const m1e={tokenize:g1e};function g1e(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"),ct(e,t,"linePrefix")}function i(l){return e.enter("paragraph"),o(l)}function o(l){const u=e.enter("chunkText",{contentType:"text",previous:n});return n&&(n.next=u),n=u,s(l)}function s(l){if(l===null){e.exit("chunkText"),e.exit("paragraph"),e.consume(l);return}return Le(l)?(e.consume(l),e.exit("chunkText"),o):(e.consume(l),s)}}const y1e={tokenize:x1e},gM={tokenize:v1e};function x1e(e){const t=this,n=[];let r=0,i,o,s;return l;function l(S){if(r<n.length){const E=n[r];return t.containerState=E[1],e.attempt(E[0].continuation,u,d)(S)}return d(S)}function u(S){if(r++,t.containerState._closeFlow){t.containerState._closeFlow=void 0,i&&k();const E=t.events.length;let N=E,C;for(;N--;)if(t.events[N][0]==="exit"&&t.events[N][1].type==="chunkFlow"){C=t.events[N][1].end;break}j(r);let P=E;for(;P<t.events.length;)t.events[P][1].end={...C},P++;return Ar(t.events,N+1,0,t.events.slice(E)),t.events.length=P,d(S)}return l(S)}function d(S){if(r===n.length){if(!i)return g(S);if(i.currentConstruct&&i.currentConstruct.concrete)return b(S);t.interrupt=!!(i.currentConstruct&&!i._gfmTableDynamicInterruptHack)}return t.containerState={},e.check(gM,p,f)(S)}function p(S){return i&&k(),j(r),g(S)}function f(S){return t.parser.lazy[t.now().line]=r!==n.length,s=t.now().offset,b(S)}function g(S){return t.containerState={},e.attempt(gM,y,b)(S)}function y(S){return r++,n.push([t.currentConstruct,t.containerState]),g(S)}function b(S){if(S===null){i&&k(),j(0),e.consume(S);return}return i=i||t.parser.flow(t.now()),e.enter("chunkFlow",{_tokenizer:i,contentType:"flow",previous:o}),w(S)}function w(S){if(S===null){v(e.exit("chunkFlow"),!0),j(0),e.consume(S);return}return Le(S)?(e.consume(S),v(e.exit("chunkFlow")),r=0,t.interrupt=void 0,l):(e.consume(S),w)}function v(S,E){const N=t.sliceStream(S);if(E&&N.push(null),S.previous=o,o&&(o.next=S),o=S,i.defineSkip(S.start),i.write(N),t.parser.lazy[S.start.line]){let C=i.events.length;for(;C--;)if(i.events[C][1].start.offset<s&&(!i.events[C][1].end||i.events[C][1].end.offset>s))return;const P=t.events.length;let _=P,M,D;for(;_--;)if(t.events[_][0]==="exit"&&t.events[_][1].type==="chunkFlow"){if(M){D=t.events[_][1].end;break}M=!0}for(j(r),C=P;C<t.events.length;)t.events[C][1].end={...D},C++;Ar(t.events,_+1,0,t.events.slice(P)),t.events.length=C}}function j(S){let E=n.length;for(;E-- >S;){const N=n[E];t.containerState=N[1],N[0].exit.call(t,e)}n.length=S}function k(){i.write([null]),o=void 0,i=void 0,t.containerState._closeFlow=void 0}}function v1e(e,t,n){return ct(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function Dc(e){if(e===null||At(e)||Bs(e))return 1;if(Cy(e))return 2}function Ny(e,t,n){const r=[];let i=-1;for(;++i<e.length;){const o=e[i].resolveAll;o&&!r.includes(o)&&(t=o(t,n),r.push(o))}return t}const Ik={name:"attention",resolveAll:b1e,tokenize:w1e};function b1e(e,t){let n=-1,r,i,o,s,l,u,d,p;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;u=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 f={...e[r][1].end},g={...e[n][1].start};yM(f,-u),yM(g,u),s={type:u>1?"strongSequence":"emphasisSequence",start:f,end:{...e[r][1].end}},l={type:u>1?"strongSequence":"emphasisSequence",start:{...e[n][1].start},end:g},o={type:u>1?"strongText":"emphasisText",start:{...e[r][1].end},end:{...e[n][1].start}},i={type:u>1?"strong":"emphasis",start:{...s.start},end:{...l.end}},e[r][1].end={...s.start},e[n][1].start={...l.end},d=[],e[r][1].end.offset-e[r][1].start.offset&&(d=qr(d,[["enter",e[r][1],t],["exit",e[r][1],t]])),d=qr(d,[["enter",i,t],["enter",s,t],["exit",s,t],["enter",o,t]]),d=qr(d,Ny(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),d=qr(d,[["exit",o,t],["enter",l,t],["exit",l,t],["exit",i,t]]),e[n][1].end.offset-e[n][1].start.offset?(p=2,d=qr(d,[["enter",e[n][1],t],["exit",e[n][1],t]])):p=0,Ar(e,r-1,n-r+3,d),n=r+d.length-p-2;break}}for(n=-1;++n<e.length;)e[n][1].type==="attentionSequence"&&(e[n][1].type="data");return e}function w1e(e,t){const n=this.parser.constructs.attentionMarkers.null,r=this.previous,i=Dc(r);let o;return s;function s(u){return o=u,e.enter("attentionSequence"),l(u)}function l(u){if(u===o)return e.consume(u),l;const d=e.exit("attentionSequence"),p=Dc(u),f=!p||p===2&&i||n.includes(u),g=!i||i===2&&p||n.includes(r);return d._open=!!(o===42?f:f&&(i||!g)),d._close=!!(o===42?g:g&&(p||!f)),t(u)}}function yM(e,t){e.column+=t,e.offset+=t,e._bufferIndex+=t}const j1e={name:"autolink",tokenize:k1e};function k1e(e,t,n){let r=0;return i;function i(y){return e.enter("autolink"),e.enter("autolinkMarker"),e.consume(y),e.exit("autolinkMarker"),e.enter("autolinkProtocol"),o}function o(y){return Xn(y)?(e.consume(y),s):y===64?n(y):d(y)}function s(y){return y===43||y===45||y===46||Wn(y)?(r=1,l(y)):d(y)}function l(y){return y===58?(e.consume(y),r=0,u):(y===43||y===45||y===46||Wn(y))&&r++<32?(e.consume(y),l):(r=0,d(y))}function u(y){return y===62?(e.exit("autolinkProtocol"),e.enter("autolinkMarker"),e.consume(y),e.exit("autolinkMarker"),e.exit("autolink"),t):y===null||y===32||y===60||xg(y)?n(y):(e.consume(y),u)}function d(y){return y===64?(e.consume(y),p):h1e(y)?(e.consume(y),d):n(y)}function p(y){return Wn(y)?f(y):n(y)}function f(y){return y===46?(e.consume(y),r=0,p):y===62?(e.exit("autolinkProtocol").type="autolinkEmail",e.enter("autolinkMarker"),e.consume(y),e.exit("autolinkMarker"),e.exit("autolink"),t):g(y)}function g(y){if((y===45||Wn(y))&&r++<63){const b=y===45?g:f;return e.consume(y),b}return n(y)}}const Kh={partial:!0,tokenize:A1e};function A1e(e,t,n){return r;function r(o){return tt(o)?ct(e,i,"linePrefix")(o):i(o)}function i(o){return o===null||Le(o)?t(o):n(o)}}const D7={continuation:{tokenize:C1e},exit:N1e,name:"blockQuote",tokenize:S1e};function S1e(e,t,n){const r=this;return i;function i(s){if(s===62){const l=r.containerState;return l.open||(e.enter("blockQuote",{_container:!0}),l.open=!0),e.enter("blockQuotePrefix"),e.enter("blockQuoteMarker"),e.consume(s),e.exit("blockQuoteMarker"),o}return n(s)}function o(s){return tt(s)?(e.enter("blockQuotePrefixWhitespace"),e.consume(s),e.exit("blockQuotePrefixWhitespace"),e.exit("blockQuotePrefix"),t):(e.exit("blockQuotePrefix"),t(s))}}function C1e(e,t,n){const r=this;return i;function i(s){return tt(s)?ct(e,o,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(s):o(s)}function o(s){return e.attempt(D7,t,n)(s)}}function N1e(e){e.exit("blockQuote")}const M7={name:"characterEscape",tokenize:T1e};function T1e(e,t,n){return r;function r(o){return e.enter("characterEscape"),e.enter("escapeMarker"),e.consume(o),e.exit("escapeMarker"),i}function i(o){return f1e(o)?(e.enter("characterEscapeValue"),e.consume(o),e.exit("characterEscapeValue"),e.exit("characterEscape"),t):n(o)}}const L7={name:"characterReference",tokenize:E1e};function E1e(e,t,n){const r=this;let i=0,o,s;return l;function l(f){return e.enter("characterReference"),e.enter("characterReferenceMarker"),e.consume(f),e.exit("characterReferenceMarker"),u}function u(f){return f===35?(e.enter("characterReferenceMarkerNumeric"),e.consume(f),e.exit("characterReferenceMarkerNumeric"),d):(e.enter("characterReferenceValue"),o=31,s=Wn,p(f))}function d(f){return f===88||f===120?(e.enter("characterReferenceMarkerHexadecimal"),e.consume(f),e.exit("characterReferenceMarkerHexadecimal"),e.enter("characterReferenceValue"),o=6,s=p1e,p):(e.enter("characterReferenceValue"),o=7,s=_k,p(f))}function p(f){if(f===59&&i){const g=e.exit("characterReferenceValue");return s===Wn&&!xC(r.sliceSerialize(g))?n(f):(e.enter("characterReferenceMarker"),e.consume(f),e.exit("characterReferenceMarker"),e.exit("characterReference"),t)}return s(f)&&i++<o?(e.consume(f),p):n(f)}}const xM={partial:!0,tokenize:O1e},vM={concrete:!0,name:"codeFenced",tokenize:P1e};function P1e(e,t,n){const r=this,i={partial:!0,tokenize:N};let o=0,s=0,l;return u;function u(C){return d(C)}function d(C){const P=r.events[r.events.length-1];return o=P&&P[1].type==="linePrefix"?P[2].sliceSerialize(P[1],!0).length:0,l=C,e.enter("codeFenced"),e.enter("codeFencedFence"),e.enter("codeFencedFenceSequence"),p(C)}function p(C){return C===l?(s++,e.consume(C),p):s<3?n(C):(e.exit("codeFencedFenceSequence"),tt(C)?ct(e,f,"whitespace")(C):f(C))}function f(C){return C===null||Le(C)?(e.exit("codeFencedFence"),r.interrupt?t(C):e.check(xM,w,E)(C)):(e.enter("codeFencedFenceInfo"),e.enter("chunkString",{contentType:"string"}),g(C))}function g(C){return C===null||Le(C)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),f(C)):tt(C)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),ct(e,y,"whitespace")(C)):C===96&&C===l?n(C):(e.consume(C),g)}function y(C){return C===null||Le(C)?f(C):(e.enter("codeFencedFenceMeta"),e.enter("chunkString",{contentType:"string"}),b(C))}function b(C){return C===null||Le(C)?(e.exit("chunkString"),e.exit("codeFencedFenceMeta"),f(C)):C===96&&C===l?n(C):(e.consume(C),b)}function w(C){return e.attempt(i,E,v)(C)}function v(C){return e.enter("lineEnding"),e.consume(C),e.exit("lineEnding"),j}function j(C){return o>0&&tt(C)?ct(e,k,"linePrefix",o+1)(C):k(C)}function k(C){return C===null||Le(C)?e.check(xM,w,E)(C):(e.enter("codeFlowValue"),S(C))}function S(C){return C===null||Le(C)?(e.exit("codeFlowValue"),k(C)):(e.consume(C),S)}function E(C){return e.exit("codeFenced"),t(C)}function N(C,P,_){let M=0;return D;function D(q){return C.enter("lineEnding"),C.consume(q),C.exit("lineEnding"),B}function B(q){return C.enter("codeFencedFence"),tt(q)?ct(C,F,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(q):F(q)}function F(q){return q===l?(C.enter("codeFencedFenceSequence"),V(q)):_(q)}function V(q){return q===l?(M++,C.consume(q),V):M>=s?(C.exit("codeFencedFenceSequence"),tt(q)?ct(C,U,"whitespace")(q):U(q)):_(q)}function U(q){return q===null||Le(q)?(C.exit("codeFencedFence"),P(q)):_(q)}}}function O1e(e,t,n){const r=this;return i;function i(s){return s===null?n(s):(e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),o)}function o(s){return r.parser.lazy[r.now().line]?n(s):t(s)}}const n2={name:"codeIndented",tokenize:I1e},_1e={partial:!0,tokenize:R1e};function I1e(e,t,n){const r=this;return i;function i(d){return e.enter("codeIndented"),ct(e,o,"linePrefix",5)(d)}function o(d){const p=r.events[r.events.length-1];return p&&p[1].type==="linePrefix"&&p[2].sliceSerialize(p[1],!0).length>=4?s(d):n(d)}function s(d){return d===null?u(d):Le(d)?e.attempt(_1e,s,u)(d):(e.enter("codeFlowValue"),l(d))}function l(d){return d===null||Le(d)?(e.exit("codeFlowValue"),s(d)):(e.consume(d),l)}function u(d){return e.exit("codeIndented"),t(d)}}function R1e(e,t,n){const r=this;return i;function i(s){return r.parser.lazy[r.now().line]?n(s):Le(s)?(e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),i):ct(e,o,"linePrefix",5)(s)}function o(s){const l=r.events[r.events.length-1];return l&&l[1].type==="linePrefix"&&l[2].sliceSerialize(l[1],!0).length>=4?t(s):Le(s)?i(s):n(s)}}const D1e={name:"codeText",previous:L1e,resolve:M1e,tokenize:F1e};function M1e(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 L1e(e){return e!==96||this.events[this.events.length-1][1].type==="characterEscape"}function F1e(e,t,n){let r=0,i,o;return s;function s(f){return e.enter("codeText"),e.enter("codeTextSequence"),l(f)}function l(f){return f===96?(e.consume(f),r++,l):(e.exit("codeTextSequence"),u(f))}function u(f){return f===null?n(f):f===32?(e.enter("space"),e.consume(f),e.exit("space"),u):f===96?(o=e.enter("codeTextSequence"),i=0,p(f)):Le(f)?(e.enter("lineEnding"),e.consume(f),e.exit("lineEnding"),u):(e.enter("codeTextData"),d(f))}function d(f){return f===null||f===32||f===96||Le(f)?(e.exit("codeTextData"),u(f)):(e.consume(f),d)}function p(f){return f===96?(e.consume(f),i++,p):i===r?(e.exit("codeTextSequence"),e.exit("codeText"),t(f)):(o.type="codeTextData",d(f))}}class B1e{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 o=this.right.splice(this.right.length-i,Number.POSITIVE_INFINITY);return r&&Zu(this.left,r),o.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),Zu(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),Zu(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);Zu(this.right,n.reverse())}else{const n=this.right.splice(this.left.length+this.right.length-t,Number.POSITIVE_INFINITY);Zu(this.left,n.reverse())}}}function Zu(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 F7(e){const t={};let n=-1,r,i,o,s,l,u,d;const p=new B1e(e);for(;++n<p.length;){for(;n in t;)n=t[n];if(r=p.get(n),n&&r[1].type==="chunkFlow"&&p.get(n-1)[1].type==="listItemPrefix"&&(u=r[1]._tokenizer.events,o=0,o<u.length&&u[o][1].type==="lineEndingBlank"&&(o+=2),o<u.length&&u[o][1].type==="content"))for(;++o<u.length&&u[o][1].type!=="content";)u[o][1].type==="chunkText"&&(u[o][1]._isInFirstContentOfListItem=!0,o++);if(r[0]==="enter")r[1].contentType&&(Object.assign(t,z1e(p,n)),n=t[n],d=!0);else if(r[1]._container){for(o=n,i=void 0;o--;)if(s=p.get(o),s[1].type==="lineEnding"||s[1].type==="lineEndingBlank")s[0]==="enter"&&(i&&(p.get(i)[1].type="lineEndingBlank"),s[1].type="lineEnding",i=o);else if(!(s[1].type==="linePrefix"||s[1].type==="listItemIndent"))break;i&&(r[1].end={...p.get(i)[1].start},l=p.slice(i,n),l.unshift(r),p.splice(i,n-i+1,l))}}return Ar(e,0,Number.POSITIVE_INFINITY,p.slice(0)),!d}function z1e(e,t){const n=e.get(t)[1],r=e.get(t)[2];let i=t-1;const o=[];let s=n._tokenizer;s||(s=r.parser[n.contentType](n.start),n._contentTypeTextTrailing&&(s._contentTypeTextTrailing=!0));const l=s.events,u=[],d={};let p,f,g=-1,y=n,b=0,w=0;const v=[w];for(;y;){for(;e.get(++i)[1]!==y;);o.push(i),y._tokenizer||(p=r.sliceStream(y),y.next||p.push(null),f&&s.defineSkip(y.start),y._isInFirstContentOfListItem&&(s._gfmTasklistFirstContentOfListItem=!0),s.write(p),y._isInFirstContentOfListItem&&(s._gfmTasklistFirstContentOfListItem=void 0)),f=y,y=y.next}for(y=n;++g<l.length;)l[g][0]==="exit"&&l[g-1][0]==="enter"&&l[g][1].type===l[g-1][1].type&&l[g][1].start.line!==l[g][1].end.line&&(w=g+1,v.push(w),y._tokenizer=void 0,y.previous=void 0,y=y.next);for(s.events=[],y?(y._tokenizer=void 0,y.previous=void 0):v.pop(),g=v.length;g--;){const j=l.slice(v[g],v[g+1]),k=o.pop();u.push([k,k+j.length-1]),e.splice(k,2,j)}for(u.reverse(),g=-1;++g<u.length;)d[b+u[g][0]]=b+u[g][1],b+=u[g][1]-u[g][0]-1;return d}const $1e={resolve:W1e,tokenize:U1e},q1e={partial:!0,tokenize:H1e};function W1e(e){return F7(e),e}function U1e(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?o(l):Le(l)?e.check(q1e,s,o)(l):(e.consume(l),i)}function o(l){return e.exit("chunkContent"),e.exit("content"),t(l)}function s(l){return e.consume(l),e.exit("chunkContent"),n.next=e.enter("chunkContent",{contentType:"content",previous:n}),n=n.next,i}}function H1e(e,t,n){const r=this;return i;function i(s){return e.exit("chunkContent"),e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),ct(e,o,"linePrefix")}function o(s){if(s===null||Le(s))return n(s);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(s):e.interrupt(r.parser.constructs.flow,n,t)(s)}}function B7(e,t,n,r,i,o,s,l,u){const d=u||Number.POSITIVE_INFINITY;let p=0;return f;function f(j){return j===60?(e.enter(r),e.enter(i),e.enter(o),e.consume(j),e.exit(o),g):j===null||j===32||j===41||xg(j)?n(j):(e.enter(r),e.enter(s),e.enter(l),e.enter("chunkString",{contentType:"string"}),w(j))}function g(j){return j===62?(e.enter(o),e.consume(j),e.exit(o),e.exit(i),e.exit(r),t):(e.enter(l),e.enter("chunkString",{contentType:"string"}),y(j))}function y(j){return j===62?(e.exit("chunkString"),e.exit(l),g(j)):j===null||j===60||Le(j)?n(j):(e.consume(j),j===92?b:y)}function b(j){return j===60||j===62||j===92?(e.consume(j),y):y(j)}function w(j){return!p&&(j===null||j===41||At(j))?(e.exit("chunkString"),e.exit(l),e.exit(s),e.exit(r),t(j)):p<d&&j===40?(e.consume(j),p++,w):j===41?(e.consume(j),p--,w):j===null||j===32||j===40||xg(j)?n(j):(e.consume(j),j===92?v:w)}function v(j){return j===40||j===41||j===92?(e.consume(j),w):w(j)}}function z7(e,t,n,r,i,o){const s=this;let l=0,u;return d;function d(y){return e.enter(r),e.enter(i),e.consume(y),e.exit(i),e.enter(o),p}function p(y){return l>999||y===null||y===91||y===93&&!u||y===94&&!l&&"_hiddenFootnoteSupport"in s.parser.constructs?n(y):y===93?(e.exit(o),e.enter(i),e.consume(y),e.exit(i),e.exit(r),t):Le(y)?(e.enter("lineEnding"),e.consume(y),e.exit("lineEnding"),p):(e.enter("chunkString",{contentType:"string"}),f(y))}function f(y){return y===null||y===91||y===93||Le(y)||l++>999?(e.exit("chunkString"),p(y)):(e.consume(y),u||(u=!tt(y)),y===92?g:f)}function g(y){return y===91||y===92||y===93?(e.consume(y),l++,f):f(y)}}function $7(e,t,n,r,i,o){let s;return l;function l(g){return g===34||g===39||g===40?(e.enter(r),e.enter(i),e.consume(g),e.exit(i),s=g===40?41:g,u):n(g)}function u(g){return g===s?(e.enter(i),e.consume(g),e.exit(i),e.exit(r),t):(e.enter(o),d(g))}function d(g){return g===s?(e.exit(o),u(s)):g===null?n(g):Le(g)?(e.enter("lineEnding"),e.consume(g),e.exit("lineEnding"),ct(e,d,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),p(g))}function p(g){return g===s||g===null||Le(g)?(e.exit("chunkString"),d(g)):(e.consume(g),g===92?f:p)}function f(g){return g===s||g===92?(e.consume(g),p):p(g)}}function kd(e,t){let n;return r;function r(i){return Le(i)?(e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),n=!0,r):tt(i)?ct(e,r,n?"linePrefix":"lineSuffix")(i):t(i)}}const V1e={name:"definition",tokenize:Y1e},G1e={partial:!0,tokenize:K1e};function Y1e(e,t,n){const r=this;let i;return o;function o(y){return e.enter("definition"),s(y)}function s(y){return z7.call(r,e,l,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(y)}function l(y){return i=pi(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),y===58?(e.enter("definitionMarker"),e.consume(y),e.exit("definitionMarker"),u):n(y)}function u(y){return At(y)?kd(e,d)(y):d(y)}function d(y){return B7(e,p,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(y)}function p(y){return e.attempt(G1e,f,f)(y)}function f(y){return tt(y)?ct(e,g,"whitespace")(y):g(y)}function g(y){return y===null||Le(y)?(e.exit("definition"),r.parser.defined.push(i),t(y)):n(y)}}function K1e(e,t,n){return r;function r(l){return At(l)?kd(e,i)(l):n(l)}function i(l){return $7(e,o,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(l)}function o(l){return tt(l)?ct(e,s,"whitespace")(l):s(l)}function s(l){return l===null||Le(l)?t(l):n(l)}}const X1e={name:"hardBreakEscape",tokenize:Q1e};function Q1e(e,t,n){return r;function r(o){return e.enter("hardBreakEscape"),e.consume(o),i}function i(o){return Le(o)?(e.exit("hardBreakEscape"),t(o)):n(o)}}const J1e={name:"headingAtx",resolve:Z1e,tokenize:e2e};function Z1e(e,t){let n=e.length-2,r=3,i,o;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},o={type:"chunkText",start:e[r][1].start,end:e[n][1].end,contentType:"text"},Ar(e,r,n-r+1,[["enter",i,t],["enter",o,t],["exit",o,t],["exit",i,t]])),e}function e2e(e,t,n){let r=0;return i;function i(p){return e.enter("atxHeading"),o(p)}function o(p){return e.enter("atxHeadingSequence"),s(p)}function s(p){return p===35&&r++<6?(e.consume(p),s):p===null||At(p)?(e.exit("atxHeadingSequence"),l(p)):n(p)}function l(p){return p===35?(e.enter("atxHeadingSequence"),u(p)):p===null||Le(p)?(e.exit("atxHeading"),t(p)):tt(p)?ct(e,l,"whitespace")(p):(e.enter("atxHeadingText"),d(p))}function u(p){return p===35?(e.consume(p),u):(e.exit("atxHeadingSequence"),l(p))}function d(p){return p===null||p===35||At(p)?(e.exit("atxHeadingText"),l(p)):(e.consume(p),d)}}const t2e=["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"],bM=["pre","script","style","textarea"],n2e={concrete:!0,name:"htmlFlow",resolveTo:a2e,tokenize:o2e},r2e={partial:!0,tokenize:l2e},i2e={partial:!0,tokenize:s2e};function a2e(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 o2e(e,t,n){const r=this;let i,o,s,l,u;return d;function d(L){return p(L)}function p(L){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(L),f}function f(L){return L===33?(e.consume(L),g):L===47?(e.consume(L),o=!0,w):L===63?(e.consume(L),i=3,r.interrupt?t:I):Xn(L)?(e.consume(L),s=String.fromCharCode(L),v):n(L)}function g(L){return L===45?(e.consume(L),i=2,y):L===91?(e.consume(L),i=5,l=0,b):Xn(L)?(e.consume(L),i=4,r.interrupt?t:I):n(L)}function y(L){return L===45?(e.consume(L),r.interrupt?t:I):n(L)}function b(L){const me="CDATA[";return L===me.charCodeAt(l++)?(e.consume(L),l===me.length?r.interrupt?t:F:b):n(L)}function w(L){return Xn(L)?(e.consume(L),s=String.fromCharCode(L),v):n(L)}function v(L){if(L===null||L===47||L===62||At(L)){const me=L===47,xe=s.toLowerCase();return!me&&!o&&bM.includes(xe)?(i=1,r.interrupt?t(L):F(L)):t2e.includes(s.toLowerCase())?(i=6,me?(e.consume(L),j):r.interrupt?t(L):F(L)):(i=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(L):o?k(L):S(L))}return L===45||Wn(L)?(e.consume(L),s+=String.fromCharCode(L),v):n(L)}function j(L){return L===62?(e.consume(L),r.interrupt?t:F):n(L)}function k(L){return tt(L)?(e.consume(L),k):D(L)}function S(L){return L===47?(e.consume(L),D):L===58||L===95||Xn(L)?(e.consume(L),E):tt(L)?(e.consume(L),S):D(L)}function E(L){return L===45||L===46||L===58||L===95||Wn(L)?(e.consume(L),E):N(L)}function N(L){return L===61?(e.consume(L),C):tt(L)?(e.consume(L),N):S(L)}function C(L){return L===null||L===60||L===61||L===62||L===96?n(L):L===34||L===39?(e.consume(L),u=L,P):tt(L)?(e.consume(L),C):_(L)}function P(L){return L===u?(e.consume(L),u=null,M):L===null||Le(L)?n(L):(e.consume(L),P)}function _(L){return L===null||L===34||L===39||L===47||L===60||L===61||L===62||L===96||At(L)?N(L):(e.consume(L),_)}function M(L){return L===47||L===62||tt(L)?S(L):n(L)}function D(L){return L===62?(e.consume(L),B):n(L)}function B(L){return L===null||Le(L)?F(L):tt(L)?(e.consume(L),B):n(L)}function F(L){return L===45&&i===2?(e.consume(L),Y):L===60&&i===1?(e.consume(L),Z):L===62&&i===4?(e.consume(L),z):L===63&&i===3?(e.consume(L),I):L===93&&i===5?(e.consume(L),ne):Le(L)&&(i===6||i===7)?(e.exit("htmlFlowData"),e.check(r2e,X,V)(L)):L===null||Le(L)?(e.exit("htmlFlowData"),V(L)):(e.consume(L),F)}function V(L){return e.check(i2e,U,X)(L)}function U(L){return e.enter("lineEnding"),e.consume(L),e.exit("lineEnding"),q}function q(L){return L===null||Le(L)?V(L):(e.enter("htmlFlowData"),F(L))}function Y(L){return L===45?(e.consume(L),I):F(L)}function Z(L){return L===47?(e.consume(L),s="",J):F(L)}function J(L){if(L===62){const me=s.toLowerCase();return bM.includes(me)?(e.consume(L),z):F(L)}return Xn(L)&&s.length<8?(e.consume(L),s+=String.fromCharCode(L),J):F(L)}function ne(L){return L===93?(e.consume(L),I):F(L)}function I(L){return L===62?(e.consume(L),z):L===45&&i===2?(e.consume(L),I):F(L)}function z(L){return L===null||Le(L)?(e.exit("htmlFlowData"),X(L)):(e.consume(L),z)}function X(L){return e.exit("htmlFlow"),t(L)}}function s2e(e,t,n){const r=this;return i;function i(s){return Le(s)?(e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),o):n(s)}function o(s){return r.parser.lazy[r.now().line]?n(s):t(s)}}function l2e(e,t,n){return r;function r(i){return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),e.attempt(Kh,t,n)}}const c2e={name:"htmlText",tokenize:u2e};function u2e(e,t,n){const r=this;let i,o,s;return l;function l(I){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(I),u}function u(I){return I===33?(e.consume(I),d):I===47?(e.consume(I),N):I===63?(e.consume(I),S):Xn(I)?(e.consume(I),_):n(I)}function d(I){return I===45?(e.consume(I),p):I===91?(e.consume(I),o=0,b):Xn(I)?(e.consume(I),k):n(I)}function p(I){return I===45?(e.consume(I),y):n(I)}function f(I){return I===null?n(I):I===45?(e.consume(I),g):Le(I)?(s=f,Z(I)):(e.consume(I),f)}function g(I){return I===45?(e.consume(I),y):f(I)}function y(I){return I===62?Y(I):I===45?g(I):f(I)}function b(I){const z="CDATA[";return I===z.charCodeAt(o++)?(e.consume(I),o===z.length?w:b):n(I)}function w(I){return I===null?n(I):I===93?(e.consume(I),v):Le(I)?(s=w,Z(I)):(e.consume(I),w)}function v(I){return I===93?(e.consume(I),j):w(I)}function j(I){return I===62?Y(I):I===93?(e.consume(I),j):w(I)}function k(I){return I===null||I===62?Y(I):Le(I)?(s=k,Z(I)):(e.consume(I),k)}function S(I){return I===null?n(I):I===63?(e.consume(I),E):Le(I)?(s=S,Z(I)):(e.consume(I),S)}function E(I){return I===62?Y(I):S(I)}function N(I){return Xn(I)?(e.consume(I),C):n(I)}function C(I){return I===45||Wn(I)?(e.consume(I),C):P(I)}function P(I){return Le(I)?(s=P,Z(I)):tt(I)?(e.consume(I),P):Y(I)}function _(I){return I===45||Wn(I)?(e.consume(I),_):I===47||I===62||At(I)?M(I):n(I)}function M(I){return I===47?(e.consume(I),Y):I===58||I===95||Xn(I)?(e.consume(I),D):Le(I)?(s=M,Z(I)):tt(I)?(e.consume(I),M):Y(I)}function D(I){return I===45||I===46||I===58||I===95||Wn(I)?(e.consume(I),D):B(I)}function B(I){return I===61?(e.consume(I),F):Le(I)?(s=B,Z(I)):tt(I)?(e.consume(I),B):M(I)}function F(I){return I===null||I===60||I===61||I===62||I===96?n(I):I===34||I===39?(e.consume(I),i=I,V):Le(I)?(s=F,Z(I)):tt(I)?(e.consume(I),F):(e.consume(I),U)}function V(I){return I===i?(e.consume(I),i=void 0,q):I===null?n(I):Le(I)?(s=V,Z(I)):(e.consume(I),V)}function U(I){return I===null||I===34||I===39||I===60||I===61||I===96?n(I):I===47||I===62||At(I)?M(I):(e.consume(I),U)}function q(I){return I===47||I===62||At(I)?M(I):n(I)}function Y(I){return I===62?(e.consume(I),e.exit("htmlTextData"),e.exit("htmlText"),t):n(I)}function Z(I){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(I),e.exit("lineEnding"),J}function J(I){return tt(I)?ct(e,ne,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(I):ne(I)}function ne(I){return e.enter("htmlTextData"),s(I)}}const vC={name:"labelEnd",resolveAll:f2e,resolveTo:m2e,tokenize:g2e},d2e={tokenize:y2e},h2e={tokenize:x2e},p2e={tokenize:v2e};function f2e(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&&Ar(e,0,e.length,n),e}function m2e(e,t){let n=e.length,r=0,i,o,s,l;for(;n--;)if(i=e[n][1],o){if(i.type==="link"||i.type==="labelLink"&&i._inactive)break;e[n][0]==="enter"&&i.type==="labelLink"&&(i._inactive=!0)}else if(s){if(e[n][0]==="enter"&&(i.type==="labelImage"||i.type==="labelLink")&&!i._balanced&&(o=n,i.type!=="labelLink")){r=2;break}}else i.type==="labelEnd"&&(s=n);const u={type:e[o][1].type==="labelLink"?"link":"image",start:{...e[o][1].start},end:{...e[e.length-1][1].end}},d={type:"label",start:{...e[o][1].start},end:{...e[s][1].end}},p={type:"labelText",start:{...e[o+r+2][1].end},end:{...e[s-2][1].start}};return l=[["enter",u,t],["enter",d,t]],l=qr(l,e.slice(o+1,o+r+3)),l=qr(l,[["enter",p,t]]),l=qr(l,Ny(t.parser.constructs.insideSpan.null,e.slice(o+r+4,s-3),t)),l=qr(l,[["exit",p,t],e[s-2],e[s-1],["exit",d,t]]),l=qr(l,e.slice(s+1)),l=qr(l,[["exit",u,t]]),Ar(e,o,e.length,l),e}function g2e(e,t,n){const r=this;let i=r.events.length,o,s;for(;i--;)if((r.events[i][1].type==="labelImage"||r.events[i][1].type==="labelLink")&&!r.events[i][1]._balanced){o=r.events[i][1];break}return l;function l(g){return o?o._inactive?f(g):(s=r.parser.defined.includes(pi(r.sliceSerialize({start:o.end,end:r.now()}))),e.enter("labelEnd"),e.enter("labelMarker"),e.consume(g),e.exit("labelMarker"),e.exit("labelEnd"),u):n(g)}function u(g){return g===40?e.attempt(d2e,p,s?p:f)(g):g===91?e.attempt(h2e,p,s?d:f)(g):s?p(g):f(g)}function d(g){return e.attempt(p2e,p,f)(g)}function p(g){return t(g)}function f(g){return o._balanced=!0,n(g)}}function y2e(e,t,n){return r;function r(f){return e.enter("resource"),e.enter("resourceMarker"),e.consume(f),e.exit("resourceMarker"),i}function i(f){return At(f)?kd(e,o)(f):o(f)}function o(f){return f===41?p(f):B7(e,s,l,"resourceDestination","resourceDestinationLiteral","resourceDestinationLiteralMarker","resourceDestinationRaw","resourceDestinationString",32)(f)}function s(f){return At(f)?kd(e,u)(f):p(f)}function l(f){return n(f)}function u(f){return f===34||f===39||f===40?$7(e,d,n,"resourceTitle","resourceTitleMarker","resourceTitleString")(f):p(f)}function d(f){return At(f)?kd(e,p)(f):p(f)}function p(f){return f===41?(e.enter("resourceMarker"),e.consume(f),e.exit("resourceMarker"),e.exit("resource"),t):n(f)}}function x2e(e,t,n){const r=this;return i;function i(l){return z7.call(r,e,o,s,"reference","referenceMarker","referenceString")(l)}function o(l){return r.parser.defined.includes(pi(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)))?t(l):n(l)}function s(l){return n(l)}}function v2e(e,t,n){return r;function r(o){return e.enter("reference"),e.enter("referenceMarker"),e.consume(o),e.exit("referenceMarker"),i}function i(o){return o===93?(e.enter("referenceMarker"),e.consume(o),e.exit("referenceMarker"),e.exit("reference"),t):n(o)}}const b2e={name:"labelStartImage",resolveAll:vC.resolveAll,tokenize:w2e};function w2e(e,t,n){const r=this;return i;function i(l){return e.enter("labelImage"),e.enter("labelImageMarker"),e.consume(l),e.exit("labelImageMarker"),o}function o(l){return l===91?(e.enter("labelMarker"),e.consume(l),e.exit("labelMarker"),e.exit("labelImage"),s):n(l)}function s(l){return l===94&&"_hiddenFootnoteSupport"in r.parser.constructs?n(l):t(l)}}const j2e={name:"labelStartLink",resolveAll:vC.resolveAll,tokenize:k2e};function k2e(e,t,n){const r=this;return i;function i(s){return e.enter("labelLink"),e.enter("labelMarker"),e.consume(s),e.exit("labelMarker"),e.exit("labelLink"),o}function o(s){return s===94&&"_hiddenFootnoteSupport"in r.parser.constructs?n(s):t(s)}}const r2={name:"lineEnding",tokenize:A2e};function A2e(e,t){return n;function n(r){return e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),ct(e,t,"linePrefix")}}const tm={name:"thematicBreak",tokenize:S2e};function S2e(e,t,n){let r=0,i;return o;function o(d){return e.enter("thematicBreak"),s(d)}function s(d){return i=d,l(d)}function l(d){return d===i?(e.enter("thematicBreakSequence"),u(d)):r>=3&&(d===null||Le(d))?(e.exit("thematicBreak"),t(d)):n(d)}function u(d){return d===i?(e.consume(d),r++,u):(e.exit("thematicBreakSequence"),tt(d)?ct(e,l,"whitespace")(d):l(d))}}const ar={continuation:{tokenize:E2e},exit:O2e,name:"list",tokenize:T2e},C2e={partial:!0,tokenize:_2e},N2e={partial:!0,tokenize:P2e};function T2e(e,t,n){const r=this,i=r.events[r.events.length-1];let o=i&&i[1].type==="linePrefix"?i[2].sliceSerialize(i[1],!0).length:0,s=0;return l;function l(y){const b=r.containerState.type||(y===42||y===43||y===45?"listUnordered":"listOrdered");if(b==="listUnordered"?!r.containerState.marker||y===r.containerState.marker:_k(y)){if(r.containerState.type||(r.containerState.type=b,e.enter(b,{_container:!0})),b==="listUnordered")return e.enter("listItemPrefix"),y===42||y===45?e.check(tm,n,d)(y):d(y);if(!r.interrupt||y===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),u(y)}return n(y)}function u(y){return _k(y)&&++s<10?(e.consume(y),u):(!r.interrupt||s<2)&&(r.containerState.marker?y===r.containerState.marker:y===41||y===46)?(e.exit("listItemValue"),d(y)):n(y)}function d(y){return e.enter("listItemMarker"),e.consume(y),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||y,e.check(Kh,r.interrupt?n:p,e.attempt(C2e,g,f))}function p(y){return r.containerState.initialBlankLine=!0,o++,g(y)}function f(y){return tt(y)?(e.enter("listItemPrefixWhitespace"),e.consume(y),e.exit("listItemPrefixWhitespace"),g):n(y)}function g(y){return r.containerState.size=o+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(y)}}function E2e(e,t,n){const r=this;return r.containerState._closeFlow=void 0,e.check(Kh,i,o);function i(l){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,ct(e,t,"listItemIndent",r.containerState.size+1)(l)}function o(l){return r.containerState.furtherBlankLines||!tt(l)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,s(l)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(N2e,t,s)(l))}function s(l){return r.containerState._closeFlow=!0,r.interrupt=void 0,ct(e,e.attempt(ar,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(l)}}function P2e(e,t,n){const r=this;return ct(e,i,"listItemIndent",r.containerState.size+1);function i(o){const s=r.events[r.events.length-1];return s&&s[1].type==="listItemIndent"&&s[2].sliceSerialize(s[1],!0).length===r.containerState.size?t(o):n(o)}}function O2e(e){e.exit(this.containerState.type)}function _2e(e,t,n){const r=this;return ct(e,i,"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function i(o){const s=r.events[r.events.length-1];return!tt(o)&&s&&s[1].type==="listItemPrefixWhitespace"?t(o):n(o)}}const wM={name:"setextUnderline",resolveTo:I2e,tokenize:R2e};function I2e(e,t){let n=e.length,r,i,o;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),!o&&e[n][1].type==="definition"&&(o=n);const s={type:"setextHeading",start:{...e[r][1].start},end:{...e[e.length-1][1].end}};return e[i][1].type="setextHeadingText",o?(e.splice(i,0,["enter",s,t]),e.splice(o+1,0,["exit",e[r][1],t]),e[r][1].end={...e[o][1].end}):e[r][1]=s,e.push(["exit",s,t]),e}function R2e(e,t,n){const r=this;let i;return o;function o(d){let p=r.events.length,f;for(;p--;)if(r.events[p][1].type!=="lineEnding"&&r.events[p][1].type!=="linePrefix"&&r.events[p][1].type!=="content"){f=r.events[p][1].type==="paragraph";break}return!r.parser.lazy[r.now().line]&&(r.interrupt||f)?(e.enter("setextHeadingLine"),i=d,s(d)):n(d)}function s(d){return e.enter("setextHeadingLineSequence"),l(d)}function l(d){return d===i?(e.consume(d),l):(e.exit("setextHeadingLineSequence"),tt(d)?ct(e,u,"lineSuffix")(d):u(d))}function u(d){return d===null||Le(d)?(e.exit("setextHeadingLine"),t(d)):n(d)}}const D2e={tokenize:M2e};function M2e(e){const t=this,n=e.attempt(Kh,r,e.attempt(this.parser.constructs.flowInitial,i,ct(e,e.attempt(this.parser.constructs.flow,i,e.attempt($1e,i)),"linePrefix")));return n;function r(o){if(o===null){e.consume(o);return}return e.enter("lineEndingBlank"),e.consume(o),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function i(o){if(o===null){e.consume(o);return}return e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),t.currentConstruct=void 0,n}}const L2e={resolveAll:W7()},F2e=q7("string"),B2e=q7("text");function q7(e){return{resolveAll:W7(e==="text"?z2e:void 0),tokenize:t};function t(n){const r=this,i=this.parser.constructs[e],o=n.attempt(i,s,l);return s;function s(p){return d(p)?o(p):l(p)}function l(p){if(p===null){n.consume(p);return}return n.enter("data"),n.consume(p),u}function u(p){return d(p)?(n.exit("data"),o(p)):(n.consume(p),u)}function d(p){if(p===null)return!0;const f=i[p];let g=-1;if(f)for(;++g<f.length;){const y=f[g];if(!y.previous||y.previous.call(r,r.previous))return!0}return!1}}}function W7(e){return t;function t(n,r){let i=-1,o;for(;++i<=n.length;)o===void 0?n[i]&&n[i][1].type==="data"&&(o=i,i++):(!n[i]||n[i][1].type!=="data")&&(i!==o+2&&(n[o][1].end=n[i-1][1].end,n.splice(o+2,i-o-2),i=o+2),o=void 0);return e?e(n,r):n}}function z2e(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 o=i.length,s=-1,l=0,u;for(;o--;){const d=i[o];if(typeof d=="string"){for(s=d.length;d.charCodeAt(s-1)===32;)l++,s--;if(s)break;s=-1}else if(d===-2)u=!0,l++;else if(d!==-1){o++;break}}if(t._contentTypeTextTrailing&&n===e.length&&(l=0),l){const d={type:n===e.length||u||l<2?"lineSuffix":"hardBreakTrailing",start:{_bufferIndex:o?s:r.start._bufferIndex+s,_index:r.start._index+o,line:r.end.line,column:r.end.column-l,offset:r.end.offset-l},end:{...r.end}};r.end={...d.start},r.start.offset===r.end.offset?Object.assign(r,d):(e.splice(n,0,["enter",d,t],["exit",d,t]),n+=2)}n++}return e}const $2e={42:ar,43:ar,45:ar,48:ar,49:ar,50:ar,51:ar,52:ar,53:ar,54:ar,55:ar,56:ar,57:ar,62:D7},q2e={91:V1e},W2e={[-2]:n2,[-1]:n2,32:n2},U2e={35:J1e,42:tm,45:[wM,tm],60:n2e,61:wM,95:tm,96:vM,126:vM},H2e={38:L7,92:M7},V2e={[-5]:r2,[-4]:r2,[-3]:r2,33:b2e,38:L7,42:Ik,60:[j1e,c2e],91:j2e,92:[X1e,M7],93:vC,95:Ik,96:D1e},G2e={null:[Ik,L2e]},Y2e={null:[42,95]},K2e={null:[]},X2e=Object.freeze(Object.defineProperty({__proto__:null,attentionMarkers:Y2e,contentInitial:q2e,disable:K2e,document:$2e,flow:U2e,flowInitial:W2e,insideSpan:G2e,string:H2e,text:V2e},Symbol.toStringTag,{value:"Module"}));function Q2e(e,t,n){let r={_bufferIndex:-1,_index:0,line:n&&n.line||1,column:n&&n.column||1,offset:n&&n.offset||0};const i={},o=[];let s=[],l=[];const u={attempt:P(N),check:P(C),consume:k,enter:S,exit:E,interrupt:P(C,{interrupt:!0})},d={code:null,containerState:{},defineSkip:w,events:[],now:b,parser:e,previous:null,sliceSerialize:g,sliceStream:y,write:f};let p=t.tokenize.call(d,u);return t.resolveAll&&o.push(t),d;function f(B){return s=qr(s,B),v(),s[s.length-1]!==null?[]:(_(t,0),d.events=Ny(o,d.events,d),d.events)}function g(B,F){return Z2e(y(B),F)}function y(B){return J2e(s,B)}function b(){const{_bufferIndex:B,_index:F,line:V,column:U,offset:q}=r;return{_bufferIndex:B,_index:F,line:V,column:U,offset:q}}function w(B){i[B.line]=B.column,D()}function v(){let B;for(;r._index<s.length;){const F=s[r._index];if(typeof F=="string")for(B=r._index,r._bufferIndex<0&&(r._bufferIndex=0);r._index===B&&r._bufferIndex<F.length;)j(F.charCodeAt(r._bufferIndex));else j(F)}}function j(B){p=p(B)}function k(B){Le(B)?(r.line++,r.column=1,r.offset+=B===-3?2:1,D()):B!==-1&&(r.column++,r.offset++),r._bufferIndex<0?r._index++:(r._bufferIndex++,r._bufferIndex===s[r._index].length&&(r._bufferIndex=-1,r._index++)),d.previous=B}function S(B,F){const V=F||{};return V.type=B,V.start=b(),d.events.push(["enter",V,d]),l.push(V),V}function E(B){const F=l.pop();return F.end=b(),d.events.push(["exit",F,d]),F}function N(B,F){_(B,F.from)}function C(B,F){F.restore()}function P(B,F){return V;function V(U,q,Y){let Z,J,ne,I;return Array.isArray(U)?X(U):"tokenize"in U?X([U]):z(U);function z(le){return Ie;function Ie(Oe){const ae=Oe!==null&&le[Oe],ke=Oe!==null&&le.null,Re=[...Array.isArray(ae)?ae:ae?[ae]:[],...Array.isArray(ke)?ke:ke?[ke]:[]];return X(Re)(Oe)}}function X(le){return Z=le,J=0,le.length===0?Y:L(le[J])}function L(le){return Ie;function Ie(Oe){return I=M(),ne=le,le.partial||(d.currentConstruct=le),le.name&&d.parser.constructs.disable.null.includes(le.name)?xe():le.tokenize.call(F?Object.assign(Object.create(d),F):d,u,me,xe)(Oe)}}function me(le){return B(ne,I),q}function xe(le){return I.restore(),++J<Z.length?L(Z[J]):Y}}}function _(B,F){B.resolveAll&&!o.includes(B)&&o.push(B),B.resolve&&Ar(d.events,F,d.events.length-F,B.resolve(d.events.slice(F),d)),B.resolveTo&&(d.events=B.resolveTo(d.events,d))}function M(){const B=b(),F=d.previous,V=d.currentConstruct,U=d.events.length,q=Array.from(l);return{from:U,restore:Y};function Y(){r=B,d.previous=F,d.currentConstruct=V,d.events.length=U,l=q,D()}}function D(){r.line in i&&r.column<2&&(r.column=i[r.line],r.offset+=i[r.line]-1)}}function J2e(e,t){const n=t.start._index,r=t.start._bufferIndex,i=t.end._index,o=t.end._bufferIndex;let s;if(n===i)s=[e[n].slice(r,o)];else{if(s=e.slice(n,i),r>-1){const l=s[0];typeof l=="string"?s[0]=l.slice(r):s.shift()}o>0&&s.push(e[i].slice(0,o))}return s}function Z2e(e,t){let n=-1;const r=[];let i;for(;++n<e.length;){const o=e[n];let s;if(typeof o=="string")s=o;else switch(o){case-5:{s="\r";break}case-4:{s=` 1109`;break}case-3:{s=`\r 1110`;break}case-2:{s=t?" ":" ";break}case-1:{if(!t&&i)continue;s=" ";break}default:s=String.fromCharCode(o)}i=o===-2,r.push(s)}return r.join("")}function eje(e){const r={constructs:I7([X2e,...(e||{}).extensions||[]]),content:i(m1e),defined:[],document:i(y1e),flow:i(D2e),lazy:{},string:i(F2e),text:i(B2e)};return r;function i(o){return s;function s(l){return Q2e(r,o,l)}}}function tje(e){for(;!F7(e););return e}const jM=/[\0\t\n\r]/g;function nje(){let e=1,t="",n=!0,r;return i;function i(o,s,l){const u=[];let d,p,f,g,y;for(o=t+(typeof o=="string"?o.toString():new TextDecoder(s||void 0).decode(o)),f=0,t="",n&&(o.charCodeAt(0)===65279&&f++,n=void 0);f<o.length;){if(jM.lastIndex=f,d=jM.exec(o),g=d&&d.index!==void 0?d.index:o.length,y=o.charCodeAt(g),!d){t=o.slice(f);break}if(y===10&&f===g&&r)u.push(-3),r=void 0;else switch(r&&(u.push(-5),r=void 0),f<g&&(u.push(o.slice(f,g)),e+=g-f),y){case 0:{u.push(65533),e++;break}case 9:{for(p=Math.ceil(e/4)*4,u.push(-2);e++<p;)u.push(-1);break}case 10:{u.push(-4),e=1;break}default:r=!0,e=1}f=g+1}return l&&(r&&u.push(-5),t&&u.push(t),u.push(null)),u}}const rje=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function ije(e){return e.replace(rje,aje)}function aje(e,t,n){if(t)return t;if(n.charCodeAt(0)===35){const i=n.charCodeAt(1),o=i===120||i===88;return R7(n.slice(o?2:1),o?16:10)}return xC(n)||e}const U7={}.hasOwnProperty;function oje(e,t,n){return typeof t!="string"&&(n=t,t=void 0),sje(n)(tje(eje(n).document().write(nje()(e,t,!0))))}function sje(e){const t={transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:o(Ht),autolinkProtocol:M,autolinkEmail:M,atxHeading:o(it),blockQuote:o(ke),characterEscape:M,characterReference:M,codeFenced:o(Re),codeFencedFenceInfo:s,codeFencedFenceMeta:s,codeIndented:o(Re,s),codeText:o(se,s),codeTextData:M,data:M,codeFlowValue:M,definition:o(rt),definitionDestinationString:s,definitionLabelString:s,definitionTitleString:s,emphasis:o(qe),hardBreakEscape:o(Ae),hardBreakTrailing:o(Ae),htmlFlow:o(at,s),htmlFlowData:M,htmlText:o(at,s),htmlTextData:M,image:o(zt),label:s,link:o(Ht),listItem:o(hn),listItemValue:g,listOrdered:o(On,f),listUnordered:o(On),paragraph:o(nn),reference:L,referenceString:s,resourceDestinationString:s,resourceTitleString:s,setextHeading:o(it),strong:o(Sa),thematicBreak:o(Io)},exit:{atxHeading:u(),atxHeadingSequence:N,autolink:u(),autolinkEmail:ae,autolinkProtocol:Oe,blockQuote:u(),characterEscapeValue:D,characterReferenceMarkerHexadecimal:xe,characterReferenceMarkerNumeric:xe,characterReferenceValue:le,characterReference:Ie,codeFenced:u(v),codeFencedFence:w,codeFencedFenceInfo:y,codeFencedFenceMeta:b,codeFlowValue:D,codeIndented:u(j),codeText:u(q),codeTextData:D,data:D,definition:u(),definitionDestinationString:E,definitionLabelString:k,definitionTitleString:S,emphasis:u(),hardBreakEscape:u(F),hardBreakTrailing:u(F),htmlFlow:u(V),htmlFlowData:D,htmlText:u(U),htmlTextData:D,image:u(Z),label:ne,labelText:J,lineEnding:B,link:u(Y),listItem:u(),listOrdered:u(),listUnordered:u(),paragraph:u(),referenceString:me,resourceDestinationString:I,resourceTitleString:z,resource:X,setextHeading:u(_),setextHeadingLineSequence:P,setextHeadingText:C,strong:u(),thematicBreak:u()}};H7(t,(e||{}).mdastExtensions||[]);const n={};return r;function r(oe){let ge={type:"root",children:[]};const We={stack:[ge],tokenStack:[],config:t,enter:l,exit:d,buffer:s,resume:p,data:n},Ze=[];let ut=-1;for(;++ut<oe.length;)if(oe[ut][1].type==="listOrdered"||oe[ut][1].type==="listUnordered")if(oe[ut][0]==="enter")Ze.push(ut);else{const bn=Ze.pop();ut=i(oe,bn,ut)}for(ut=-1;++ut<oe.length;){const bn=t[oe[ut][0]];U7.call(bn,oe[ut][1].type)&&bn[oe[ut][1].type].call(Object.assign({sliceSerialize:oe[ut][2].sliceSerialize},We),oe[ut][1])}if(We.tokenStack.length>0){const bn=We.tokenStack[We.tokenStack.length-1];(bn[1]||kM).call(We,void 0,bn[0])}for(ge.position={start:Ya(oe.length>0?oe[0][1].start:{line:1,column:1,offset:0}),end:Ya(oe.length>0?oe[oe.length-2][1].end:{line:1,column:1,offset:0})},ut=-1;++ut<t.transforms.length;)ge=t.transforms[ut](ge)||ge;return ge}function i(oe,ge,We){let Ze=ge-1,ut=-1,bn=!1,Wi,Cr,Ca,Ro;for(;++Ze<=We;){const wn=oe[Ze];switch(wn[1].type){case"listUnordered":case"listOrdered":case"blockQuote":{wn[0]==="enter"?ut++:ut--,Ro=void 0;break}case"lineEndingBlank":{wn[0]==="enter"&&(Wi&&!Ro&&!ut&&!Ca&&(Ca=Ze),Ro=void 0);break}case"linePrefix":case"listItemValue":case"listItemMarker":case"listItemPrefix":case"listItemPrefixWhitespace":break;default:Ro=void 0}if(!ut&&wn[0]==="enter"&&wn[1].type==="listItemPrefix"||ut===-1&&wn[0]==="exit"&&(wn[1].type==="listUnordered"||wn[1].type==="listOrdered")){if(Wi){let yi=Ze;for(Cr=void 0;yi--;){const hr=oe[yi];if(hr[1].type==="lineEnding"||hr[1].type==="lineEndingBlank"){if(hr[0]==="exit")continue;Cr&&(oe[Cr][1].type="lineEndingBlank",bn=!0),hr[1].type="lineEnding",Cr=yi}else if(!(hr[1].type==="linePrefix"||hr[1].type==="blockQuotePrefix"||hr[1].type==="blockQuotePrefixWhitespace"||hr[1].type==="blockQuoteMarker"||hr[1].type==="listItemIndent"))break}Ca&&(!Cr||Ca<Cr)&&(Wi._spread=!0),Wi.end=Object.assign({},Cr?oe[Cr][1].start:wn[1].end),oe.splice(Cr||Ze,0,["exit",Wi,wn[2]]),Ze++,We++}if(wn[1].type==="listItemPrefix"){const yi={type:"listItem",_spread:!1,start:Object.assign({},wn[1].start),end:void 0};Wi=yi,oe.splice(Ze,0,["enter",yi,wn[2]]),Ze++,We++,Ca=void 0,Ro=!0}}}return oe[ge][1]._spread=bn,We}function o(oe,ge){return We;function We(Ze){l.call(this,oe(Ze),Ze),ge&&ge.call(this,Ze)}}function s(){this.stack.push({type:"fragment",children:[]})}function l(oe,ge,We){this.stack[this.stack.length-1].children.push(oe),this.stack.push(oe),this.tokenStack.push([ge,We||void 0]),oe.position={start:Ya(ge.start),end:void 0}}function u(oe){return ge;function ge(We){oe&&oe.call(this,We),d.call(this,We)}}function d(oe,ge){const We=this.stack.pop(),Ze=this.tokenStack.pop();if(Ze)Ze[0].type!==oe.type&&(ge?ge.call(this,oe,Ze[0]):(Ze[1]||kM).call(this,oe,Ze[0]));else throw new Error("Cannot close `"+oe.type+"` ("+jd({start:oe.start,end:oe.end})+"): itâs not open");We.position.end=Ya(oe.end)}function p(){return yC(this.stack.pop())}function f(){this.data.expectingFirstListItemValue=!0}function g(oe){if(this.data.expectingFirstListItemValue){const ge=this.stack[this.stack.length-2];ge.start=Number.parseInt(this.sliceSerialize(oe),10),this.data.expectingFirstListItemValue=void 0}}function y(){const oe=this.resume(),ge=this.stack[this.stack.length-1];ge.lang=oe}function b(){const oe=this.resume(),ge=this.stack[this.stack.length-1];ge.meta=oe}function w(){this.data.flowCodeInside||(this.buffer(),this.data.flowCodeInside=!0)}function v(){const oe=this.resume(),ge=this.stack[this.stack.length-1];ge.value=oe.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g,""),this.data.flowCodeInside=void 0}function j(){const oe=this.resume(),ge=this.stack[this.stack.length-1];ge.value=oe.replace(/(\r?\n|\r)$/g,"")}function k(oe){const ge=this.resume(),We=this.stack[this.stack.length-1];We.label=ge,We.identifier=pi(this.sliceSerialize(oe)).toLowerCase()}function S(){const oe=this.resume(),ge=this.stack[this.stack.length-1];ge.title=oe}function E(){const oe=this.resume(),ge=this.stack[this.stack.length-1];ge.url=oe}function N(oe){const ge=this.stack[this.stack.length-1];if(!ge.depth){const We=this.sliceSerialize(oe).length;ge.depth=We}}function C(){this.data.setextHeadingSlurpLineEnding=!0}function P(oe){const ge=this.stack[this.stack.length-1];ge.depth=this.sliceSerialize(oe).codePointAt(0)===61?1:2}function _(){this.data.setextHeadingSlurpLineEnding=void 0}function M(oe){const We=this.stack[this.stack.length-1].children;let Ze=We[We.length-1];(!Ze||Ze.type!=="text")&&(Ze=_o(),Ze.position={start:Ya(oe.start),end:void 0},We.push(Ze)),this.stack.push(Ze)}function D(oe){const ge=this.stack.pop();ge.value+=this.sliceSerialize(oe),ge.position.end=Ya(oe.end)}function B(oe){const ge=this.stack[this.stack.length-1];if(this.data.atHardBreak){const We=ge.children[ge.children.length-1];We.position.end=Ya(oe.end),this.data.atHardBreak=void 0;return}!this.data.setextHeadingSlurpLineEnding&&t.canContainEols.includes(ge.type)&&(M.call(this,oe),D.call(this,oe))}function F(){this.data.atHardBreak=!0}function V(){const oe=this.resume(),ge=this.stack[this.stack.length-1];ge.value=oe}function U(){const oe=this.resume(),ge=this.stack[this.stack.length-1];ge.value=oe}function q(){const oe=this.resume(),ge=this.stack[this.stack.length-1];ge.value=oe}function Y(){const oe=this.stack[this.stack.length-1];if(this.data.inReference){const ge=this.data.referenceType||"shortcut";oe.type+="Reference",oe.referenceType=ge,delete oe.url,delete oe.title}else delete oe.identifier,delete oe.label;this.data.referenceType=void 0}function Z(){const oe=this.stack[this.stack.length-1];if(this.data.inReference){const ge=this.data.referenceType||"shortcut";oe.type+="Reference",oe.referenceType=ge,delete oe.url,delete oe.title}else delete oe.identifier,delete oe.label;this.data.referenceType=void 0}function J(oe){const ge=this.sliceSerialize(oe),We=this.stack[this.stack.length-2];We.label=ije(ge),We.identifier=pi(ge).toLowerCase()}function ne(){const oe=this.stack[this.stack.length-1],ge=this.resume(),We=this.stack[this.stack.length-1];if(this.data.inReference=!0,We.type==="link"){const Ze=oe.children;We.children=Ze}else We.alt=ge}function I(){const oe=this.resume(),ge=this.stack[this.stack.length-1];ge.url=oe}function z(){const oe=this.resume(),ge=this.stack[this.stack.length-1];ge.title=oe}function X(){this.data.inReference=void 0}function L(){this.data.referenceType="collapsed"}function me(oe){const ge=this.resume(),We=this.stack[this.stack.length-1];We.label=ge,We.identifier=pi(this.sliceSerialize(oe)).toLowerCase(),this.data.referenceType="full"}function xe(oe){this.data.characterReferenceType=oe.type}function le(oe){const ge=this.sliceSerialize(oe),We=this.data.characterReferenceType;let Ze;We?(Ze=R7(ge,We==="characterReferenceMarkerNumeric"?10:16),this.data.characterReferenceType=void 0):Ze=xC(ge);const ut=this.stack[this.stack.length-1];ut.value+=Ze}function Ie(oe){const ge=this.stack.pop();ge.position.end=Ya(oe.end)}function Oe(oe){D.call(this,oe);const ge=this.stack[this.stack.length-1];ge.url=this.sliceSerialize(oe)}function ae(oe){D.call(this,oe);const ge=this.stack[this.stack.length-1];ge.url="mailto:"+this.sliceSerialize(oe)}function ke(){return{type:"blockquote",children:[]}}function Re(){return{type:"code",lang:null,meta:null,value:""}}function se(){return{type:"inlineCode",value:""}}function rt(){return{type:"definition",identifier:"",label:null,title:null,url:""}}function qe(){return{type:"emphasis",children:[]}}function it(){return{type:"heading",depth:0,children:[]}}function Ae(){return{type:"break"}}function at(){return{type:"html",value:""}}function zt(){return{type:"image",title:null,url:"",alt:null}}function Ht(){return{type:"link",title:null,url:"",children:[]}}function On(oe){return{type:"list",ordered:oe.type==="listOrdered",start:null,spread:oe._spread,children:[]}}function hn(oe){return{type:"listItem",spread:oe._spread,checked:null,children:[]}}function nn(){return{type:"paragraph",children:[]}}function Sa(){return{type:"strong",children:[]}}function _o(){return{type:"text",value:""}}function Io(){return{type:"thematicBreak"}}}function Ya(e){return{line:e.line,column:e.column,offset:e.offset}}function H7(e,t){let n=-1;for(;++n<t.length;){const r=t[n];Array.isArray(r)?H7(e,r):lje(e,r)}}function lje(e,t){let n;for(n in t)if(U7.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 kM(e,t){throw e?new Error("Cannot close `"+e.type+"` ("+jd({start:e.start,end:e.end})+"): a different token (`"+t.type+"`, "+jd({start:t.start,end:t.end})+") is open"):new Error("Cannot close document, a token (`"+t.type+"`, "+jd({start:t.start,end:t.end})+") is still open")}function cje(e){const t=this;t.parser=n;function n(r){return oje(r,{...t.data("settings"),...e,extensions:t.data("micromarkExtensions")||[],mdastExtensions:t.data("fromMarkdownExtensions")||[]})}}function uje(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 dje(e,t){const n={type:"element",tagName:"br",properties:{},children:[]};return e.patch(t,n),[e.applyData(t,n),{type:"text",value:` 1111`}]}function hje(e,t){const n=t.value?t.value+` 1112`:"",r={},i=t.lang?t.lang.split(/\s+/):[];i.length>0&&(r.className=["language-"+i[0]]);let o={type:"element",tagName:"code",properties:r,children:[{type:"text",value:n}]};return t.meta&&(o.data={meta:t.meta}),e.patch(t,o),o=e.applyData(t,o),o={type:"element",tagName:"pre",properties:{},children:[o]},e.patch(t,o),o}function pje(e,t){const n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function fje(e,t){const n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function mje(e,t){const n=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",r=String(t.identifier).toUpperCase(),i=Zc(r.toLowerCase()),o=e.footnoteOrder.indexOf(r);let s,l=e.footnoteCounts.get(r);l===void 0?(l=0,e.footnoteOrder.push(r),s=e.footnoteOrder.length):s=o+1,l+=1,e.footnoteCounts.set(r,l);const u={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(s)}]};e.patch(t,u);const d={type:"element",tagName:"sup",properties:{},children:[u]};return e.patch(t,d),e.applyData(t,d)}function gje(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 yje(e,t){if(e.options.allowDangerousHtml){const n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}}function V7(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),o=i[0];o&&o.type==="text"?o.value="["+o.value:i.unshift({type:"text",value:"["});const s=i[i.length-1];return s&&s.type==="text"?s.value+=r:i.push({type:"text",value:r}),i}function xje(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return V7(e,t);const i={src:Zc(r.url||""),alt:t.alt};r.title!==null&&r.title!==void 0&&(i.title=r.title);const o={type:"element",tagName:"img",properties:i,children:[]};return e.patch(t,o),e.applyData(t,o)}function vje(e,t){const n={src:Zc(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 bje(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 wje(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return V7(e,t);const i={href:Zc(r.url||"")};r.title!==null&&r.title!==void 0&&(i.title=r.title);const o={type:"element",tagName:"a",properties:i,children:e.all(t)};return e.patch(t,o),e.applyData(t,o)}function jje(e,t){const n={href:Zc(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 kje(e,t,n){const r=e.all(t),i=n?Aje(n):G7(t),o={},s=[];if(typeof t.checked=="boolean"){const p=r[0];let f;p&&p.type==="element"&&p.tagName==="p"?f=p:(f={type:"element",tagName:"p",properties:{},children:[]},r.unshift(f)),f.children.length>0&&f.children.unshift({type:"text",value:" "}),f.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:t.checked,disabled:!0},children:[]}),o.className=["task-list-item"]}let l=-1;for(;++l<r.length;){const p=r[l];(i||l!==0||p.type!=="element"||p.tagName!=="p")&&s.push({type:"text",value:` 1113`}),p.type==="element"&&p.tagName==="p"&&!i?s.push(...p.children):s.push(p)}const u=r[r.length-1];u&&(i||u.type!=="element"||u.tagName!=="p")&&s.push({type:"text",value:` 1114`});const d={type:"element",tagName:"li",properties:o,children:s};return e.patch(t,d),e.applyData(t,d)}function Aje(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=G7(n[r])}return t}function G7(e){const t=e.spread;return t??e.children.length>1}function Sje(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 s=r[i];if(s.type==="element"&&s.tagName==="li"&&s.properties&&Array.isArray(s.properties.className)&&s.properties.className.includes("task-list-item")){n.className=["contains-task-list"];break}}const o={type:"element",tagName:t.ordered?"ol":"ul",properties:n,children:e.wrap(r,!0)};return e.patch(t,o),e.applyData(t,o)}function Cje(e,t){const n={type:"element",tagName:"p",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function Nje(e,t){const n={type:"root",children:e.wrap(e.all(t))};return e.patch(t,n),e.applyData(t,n)}function Tje(e,t){const n={type:"element",tagName:"strong",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function Eje(e,t){const n=e.all(t),r=n.shift(),i=[];if(r){const s={type:"element",tagName:"thead",properties:{},children:e.wrap([r],!0)};e.patch(t.children[0],s),i.push(s)}if(n.length>0){const s={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},l=pC(t.children[1]),u=C7(t.children[t.children.length-1]);l&&u&&(s.position={start:l,end:u}),i.push(s)}const o={type:"element",tagName:"table",properties:{},children:e.wrap(i,!0)};return e.patch(t,o),e.applyData(t,o)}function Pje(e,t,n){const r=n?n.children:void 0,o=(r?r.indexOf(t):1)===0?"th":"td",s=n&&n.type==="table"?n.align:void 0,l=s?s.length:t.children.length;let u=-1;const d=[];for(;++u<l;){const f=t.children[u],g={},y=s?s[u]:void 0;y&&(g.align=y);let b={type:"element",tagName:o,properties:g,children:[]};f&&(b.children=e.all(f),e.patch(f,b),b=e.applyData(f,b)),d.push(b)}const p={type:"element",tagName:"tr",properties:{},children:e.wrap(d,!0)};return e.patch(t,p),e.applyData(t,p)}function Oje(e,t){const n={type:"element",tagName:"td",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}const AM=9,SM=32;function _je(e){const t=String(e),n=/\r?\n|\r/g;let r=n.exec(t),i=0;const o=[];for(;r;)o.push(CM(t.slice(i,r.index),i>0,!0),r[0]),i=r.index+r[0].length,r=n.exec(t);return o.push(CM(t.slice(i),i>0,!1)),o.join("")}function CM(e,t,n){let r=0,i=e.length;if(t){let o=e.codePointAt(r);for(;o===AM||o===SM;)r++,o=e.codePointAt(r)}if(n){let o=e.codePointAt(i-1);for(;o===AM||o===SM;)i--,o=e.codePointAt(i-1)}return i>r?e.slice(r,i):""}function Ije(e,t){const n={type:"text",value:_je(String(t.value))};return e.patch(t,n),e.applyData(t,n)}function Rje(e,t){const n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)}const Dje={blockquote:uje,break:dje,code:hje,delete:pje,emphasis:fje,footnoteReference:mje,heading:gje,html:yje,imageReference:xje,image:vje,inlineCode:bje,linkReference:wje,link:jje,listItem:kje,list:Sje,paragraph:Cje,root:Nje,strong:Tje,table:Eje,tableCell:Oje,tableRow:Pje,text:Ije,thematicBreak:Rje,toml:If,yaml:If,definition:If,footnoteDefinition:If};function If(){}const Y7=-1,Ty=0,Ad=1,vg=2,bC=3,wC=4,jC=5,kC=6,K7=7,X7=8,NM=typeof self=="object"?self:globalThis,Mje=(e,t)=>{const n=(i,o)=>(e.set(o,i),i),r=i=>{if(e.has(i))return e.get(i);const[o,s]=t[i];switch(o){case Ty:case Y7:return n(s,i);case Ad:{const l=n([],i);for(const u of s)l.push(r(u));return l}case vg:{const l=n({},i);for(const[u,d]of s)l[r(u)]=r(d);return l}case bC:return n(new Date(s),i);case wC:{const{source:l,flags:u}=s;return n(new RegExp(l,u),i)}case jC:{const l=n(new Map,i);for(const[u,d]of s)l.set(r(u),r(d));return l}case kC:{const l=n(new Set,i);for(const u of s)l.add(r(u));return l}case K7:{const{name:l,message:u}=s;return n(new NM[l](u),i)}case X7:return n(BigInt(s),i);case"BigInt":return n(Object(BigInt(s)),i);case"ArrayBuffer":return n(new Uint8Array(s).buffer,s);case"DataView":{const{buffer:l}=new Uint8Array(s);return n(new DataView(l),s)}}return n(new NM[o](s),i)};return r},TM=e=>Mje(new Map,e)(0),Nl="",{toString:Lje}={},{keys:Fje}=Object,ed=e=>{const t=typeof e;if(t!=="object"||!e)return[Ty,t];const n=Lje.call(e).slice(8,-1);switch(n){case"Array":return[Ad,Nl];case"Object":return[vg,Nl];case"Date":return[bC,Nl];case"RegExp":return[wC,Nl];case"Map":return[jC,Nl];case"Set":return[kC,Nl];case"DataView":return[Ad,n]}return n.includes("Array")?[Ad,n]:n.includes("Error")?[K7,n]:[vg,n]},Rf=([e,t])=>e===Ty&&(t==="function"||t==="symbol"),Bje=(e,t,n,r)=>{const i=(s,l)=>{const u=r.push(s)-1;return n.set(l,u),u},o=s=>{if(n.has(s))return n.get(s);let[l,u]=ed(s);switch(l){case Ty:{let p=s;switch(u){case"bigint":l=X7,p=s.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+u);p=null;break;case"undefined":return i([Y7],s)}return i([l,p],s)}case Ad:{if(u){let g=s;return u==="DataView"?g=new Uint8Array(s.buffer):u==="ArrayBuffer"&&(g=new Uint8Array(s)),i([u,[...g]],s)}const p=[],f=i([l,p],s);for(const g of s)p.push(o(g));return f}case vg:{if(u)switch(u){case"BigInt":return i([u,s.toString()],s);case"Boolean":case"Number":case"String":return i([u,s.valueOf()],s)}if(t&&"toJSON"in s)return o(s.toJSON());const p=[],f=i([l,p],s);for(const g of Fje(s))(e||!Rf(ed(s[g])))&&p.push([o(g),o(s[g])]);return f}case bC:return i([l,s.toISOString()],s);case wC:{const{source:p,flags:f}=s;return i([l,{source:p,flags:f}],s)}case jC:{const p=[],f=i([l,p],s);for(const[g,y]of s)(e||!(Rf(ed(g))||Rf(ed(y))))&&p.push([o(g),o(y)]);return f}case kC:{const p=[],f=i([l,p],s);for(const g of s)(e||!Rf(ed(g)))&&p.push(o(g));return f}}const{message:d}=s;return i([l,{name:u,message:d}],s)};return o},EM=(e,{json:t,lossy:n}={})=>{const r=[];return Bje(!(t||n),!!t,new Map,r)(e),r},bg=typeof structuredClone=="function"?(e,t)=>t&&("json"in t||"lossy"in t)?TM(EM(e,t)):structuredClone(e):(e,t)=>TM(EM(e,t));function zje(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 $je(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}function qje(e){const t=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",n=e.options.footnoteBackContent||zje,r=e.options.footnoteBackLabel||$je,i=e.options.footnoteLabel||"Footnotes",o=e.options.footnoteLabelTagName||"h2",s=e.options.footnoteLabelProperties||{className:["sr-only"]},l=[];let u=-1;for(;++u<e.footnoteOrder.length;){const d=e.footnoteById.get(e.footnoteOrder[u]);if(!d)continue;const p=e.all(d),f=String(d.identifier).toUpperCase(),g=Zc(f.toLowerCase());let y=0;const b=[],w=e.footnoteCounts.get(f);for(;w!==void 0&&++y<=w;){b.length>0&&b.push({type:"text",value:" "});let k=typeof n=="string"?n:n(u,y);typeof k=="string"&&(k={type:"text",value:k}),b.push({type:"element",tagName:"a",properties:{href:"#"+t+"fnref-"+g+(y>1?"-"+y:""),dataFootnoteBackref:"",ariaLabel:typeof r=="string"?r:r(u,y),className:["data-footnote-backref"]},children:Array.isArray(k)?k:[k]})}const v=p[p.length-1];if(v&&v.type==="element"&&v.tagName==="p"){const k=v.children[v.children.length-1];k&&k.type==="text"?k.value+=" ":v.children.push({type:"text",value:" "}),v.children.push(...b)}else p.push(...b);const j={type:"element",tagName:"li",properties:{id:t+"fn-"+g},children:e.wrap(p,!0)};e.patch(d,j),l.push(j)}if(l.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:o,properties:{...bg(s),id:"footnote-label"},children:[{type:"text",value:i}]},{type:"text",value:` 1115`},{type:"element",tagName:"ol",properties:{},children:e.wrap(l,!0)},{type:"text",value:` 1116`}]}}const Ey=(function(e){if(e==null)return Vje;if(typeof e=="function")return Py(e);if(typeof e=="object")return Array.isArray(e)?Wje(e):Uje(e);if(typeof e=="string")return Hje(e);throw new Error("Expected function, string, or object as test")});function Wje(e){const t=[];let n=-1;for(;++n<e.length;)t[n]=Ey(e[n]);return Py(r);function r(...i){let o=-1;for(;++o<t.length;)if(t[o].apply(this,i))return!0;return!1}}function Uje(e){const t=e;return Py(n);function n(r){const i=r;let o;for(o in e)if(i[o]!==t[o])return!1;return!0}}function Hje(e){return Py(t);function t(n){return n&&n.type===e}}function Py(e){return t;function t(n,r,i){return!!(Gje(n)&&e.call(this,n,typeof r=="number"?r:void 0,i||void 0))}}function Vje(){return!0}function Gje(e){return e!==null&&typeof e=="object"&&"type"in e}const Q7=[],Yje=!0,Rk=!1,Kje="skip";function J7(e,t,n,r){let i;typeof t=="function"&&typeof n!="function"?(r=n,n=t):i=t;const o=Ey(i),s=r?-1:1;l(e,void 0,[])();function l(u,d,p){const f=u&&typeof u=="object"?u:{};if(typeof f.type=="string"){const y=typeof f.tagName=="string"?f.tagName:typeof f.name=="string"?f.name:void 0;Object.defineProperty(g,"name",{value:"node ("+(u.type+(y?"<"+y+">":""))+")"})}return g;function g(){let y=Q7,b,w,v;if((!t||o(u,d,p[p.length-1]||void 0))&&(y=Xje(n(u,p)),y[0]===Rk))return y;if("children"in u&&u.children){const j=u;if(j.children&&y[0]!==Kje)for(w=(r?j.children.length:-1)+s,v=p.concat(j);w>-1&&w<j.children.length;){const k=j.children[w];if(b=l(k,w,v)(),b[0]===Rk)return b;w=typeof b[1]=="number"?b[1]:w+s}}return y}}}function Xje(e){return Array.isArray(e)?e:typeof e=="number"?[Yje,e]:e==null?Q7:[e]}function AC(e,t,n,r){let i,o,s;typeof t=="function"&&typeof n!="function"?(o=void 0,s=t,i=n):(o=t,s=n,i=r),J7(e,o,l,i);function l(u,d){const p=d[d.length-1],f=p?p.children.indexOf(u):void 0;return s(u,f,p)}}const Dk={}.hasOwnProperty,Qje={};function Jje(e,t){const n=t||Qje,r=new Map,i=new Map,o=new Map,s={...Dje,...n.handlers},l={all:d,applyData:eke,definitionById:r,footnoteById:i,footnoteCounts:o,footnoteOrder:[],handlers:s,one:u,options:n,patch:Zje,wrap:nke};return AC(e,function(p){if(p.type==="definition"||p.type==="footnoteDefinition"){const f=p.type==="definition"?r:i,g=String(p.identifier).toUpperCase();f.has(g)||f.set(g,p)}}),l;function u(p,f){const g=p.type,y=l.handlers[g];if(Dk.call(l.handlers,g)&&y)return y(l,p,f);if(l.options.passThrough&&l.options.passThrough.includes(g)){if("children"in p){const{children:w,...v}=p,j=bg(v);return j.children=l.all(p),j}return bg(p)}return(l.options.unknownHandler||tke)(l,p,f)}function d(p){const f=[];if("children"in p){const g=p.children;let y=-1;for(;++y<g.length;){const b=l.one(g[y],p);if(b){if(y&&g[y-1].type==="break"&&(!Array.isArray(b)&&b.type==="text"&&(b.value=PM(b.value)),!Array.isArray(b)&&b.type==="element")){const w=b.children[0];w&&w.type==="text"&&(w.value=PM(w.value))}Array.isArray(b)?f.push(...b):f.push(b)}}}return f}}function Zje(e,t){e.position&&(t.position=$we(e))}function eke(e,t){let n=t;if(e&&e.data){const r=e.data.hName,i=e.data.hChildren,o=e.data.hProperties;if(typeof r=="string")if(n.type==="element")n.tagName=r;else{const s="children"in n?n.children:[n];n={type:"element",tagName:r,properties:{},children:s}}n.type==="element"&&o&&Object.assign(n.properties,bg(o)),"children"in n&&n.children&&i!==null&&i!==void 0&&(n.children=i)}return n}function tke(e,t){const n=t.data||{},r="value"in t&&!(Dk.call(n,"hProperties")||Dk.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 nke(e,t){const n=[];let r=-1;for(t&&n.push({type:"text",value:` 1117`});++r<e.length;)r&&n.push({type:"text",value:` 1118`}),n.push(e[r]);return t&&e.length>0&&n.push({type:"text",value:` 1119`}),n}function PM(e){let t=0,n=e.charCodeAt(t);for(;n===9||n===32;)t++,n=e.charCodeAt(t);return e.slice(t)}function OM(e,t){const n=Jje(e,t),r=n.one(e,void 0),i=qje(n),o=Array.isArray(r)?{type:"root",children:r}:r||{type:"root",children:[]};return i&&o.children.push({type:"text",value:` 1120`},i),o}function rke(e,t){return e&&"run"in e?async function(n,r){const i=OM(n,{file:r,...t});await e.run(i,r)}:function(n,r){return OM(n,{file:r,...e||t})}}function _M(e){if(e)throw e}var i2,IM;function ike(){if(IM)return i2;IM=1;var e=Object.prototype.hasOwnProperty,t=Object.prototype.toString,n=Object.defineProperty,r=Object.getOwnPropertyDescriptor,i=function(d){return typeof Array.isArray=="function"?Array.isArray(d):t.call(d)==="[object Array]"},o=function(d){if(!d||t.call(d)!=="[object Object]")return!1;var p=e.call(d,"constructor"),f=d.constructor&&d.constructor.prototype&&e.call(d.constructor.prototype,"isPrototypeOf");if(d.constructor&&!p&&!f)return!1;var g;for(g in d);return typeof g>"u"||e.call(d,g)},s=function(d,p){n&&p.name==="__proto__"?n(d,p.name,{enumerable:!0,configurable:!0,value:p.newValue,writable:!0}):d[p.name]=p.newValue},l=function(d,p){if(p==="__proto__")if(e.call(d,p)){if(r)return r(d,p).value}else return;return d[p]};return i2=function u(){var d,p,f,g,y,b,w=arguments[0],v=1,j=arguments.length,k=!1;for(typeof w=="boolean"&&(k=w,w=arguments[1]||{},v=2),(w==null||typeof w!="object"&&typeof w!="function")&&(w={});v<j;++v)if(d=arguments[v],d!=null)for(p in d)f=l(w,p),g=l(d,p),w!==g&&(k&&g&&(o(g)||(y=i(g)))?(y?(y=!1,b=f&&i(f)?f:[]):b=f&&o(f)?f:{},s(w,{name:p,newValue:u(k,b,g)})):typeof g<"u"&&s(w,{name:p,newValue:g}));return w},i2}var ake=ike();const a2=bt(ake);function Mk(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 oke(){const e=[],t={run:n,use:r};return t;function n(...i){let o=-1;const s=i.pop();if(typeof s!="function")throw new TypeError("Expected function as last argument, not "+s);l(null,...i);function l(u,...d){const p=e[++o];let f=-1;if(u){s(u);return}for(;++f<i.length;)(d[f]===null||d[f]===void 0)&&(d[f]=i[f]);i=d,p?ske(p,l)(...d):s(null,...d)}}function r(i){if(typeof i!="function")throw new TypeError("Expected `middelware` to be a function, not "+i);return e.push(i),t}}function ske(e,t){let n;return r;function r(...s){const l=e.length>s.length;let u;l&&s.push(i);try{u=e.apply(this,s)}catch(d){const p=d;if(l&&n)throw p;return i(p)}l||(u&&u.then&&typeof u.then=="function"?u.then(o,i):u instanceof Error?i(u):o(u))}function i(s,...l){n||(n=!0,t(s,...l))}function o(s){i(null,s)}}const Ai={basename:lke,dirname:cke,extname:uke,join:dke,sep:"/"};function lke(e,t){if(t!==void 0&&typeof t!="string")throw new TypeError('"ext" argument must be a string');Xh(e);let n=0,r=-1,i=e.length,o;if(t===void 0||t.length===0||t.length>e.length){for(;i--;)if(e.codePointAt(i)===47){if(o){n=i+1;break}}else r<0&&(o=!0,r=i+1);return r<0?"":e.slice(n,r)}if(t===e)return"";let s=-1,l=t.length-1;for(;i--;)if(e.codePointAt(i)===47){if(o){n=i+1;break}}else s<0&&(o=!0,s=i+1),l>-1&&(e.codePointAt(i)===t.codePointAt(l--)?l<0&&(r=i):(l=-1,r=s));return n===r?r=s:r<0&&(r=e.length),e.slice(n,r)}function cke(e){if(Xh(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 uke(e){Xh(e);let t=e.length,n=-1,r=0,i=-1,o=0,s;for(;t--;){const l=e.codePointAt(t);if(l===47){if(s){r=t+1;break}continue}n<0&&(s=!0,n=t+1),l===46?i<0?i=t:o!==1&&(o=1):i>-1&&(o=-1)}return i<0||n<0||o===0||o===1&&i===n-1&&i===r+1?"":e.slice(i,n)}function dke(...e){let t=-1,n;for(;++t<e.length;)Xh(e[t]),e[t]&&(n=n===void 0?e[t]:n+"/"+e[t]);return n===void 0?".":hke(n)}function hke(e){Xh(e);const t=e.codePointAt(0)===47;let n=pke(e,!t);return n.length===0&&!t&&(n="."),n.length>0&&e.codePointAt(e.length-1)===47&&(n+="/"),t?"/"+n:n}function pke(e,t){let n="",r=0,i=-1,o=0,s=-1,l,u;for(;++s<=e.length;){if(s<e.length)l=e.codePointAt(s);else{if(l===47)break;l=47}if(l===47){if(!(i===s-1||o===1))if(i!==s-1&&o===2){if(n.length<2||r!==2||n.codePointAt(n.length-1)!==46||n.codePointAt(n.length-2)!==46){if(n.length>2){if(u=n.lastIndexOf("/"),u!==n.length-1){u<0?(n="",r=0):(n=n.slice(0,u),r=n.length-1-n.lastIndexOf("/")),i=s,o=0;continue}}else if(n.length>0){n="",r=0,i=s,o=0;continue}}t&&(n=n.length>0?n+"/..":"..",r=2)}else n.length>0?n+="/"+e.slice(i+1,s):n=e.slice(i+1,s),r=s-i-1;i=s,o=0}else l===46&&o>-1?o++:o=-1}return n}function Xh(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const fke={cwd:mke};function mke(){return"/"}function Lk(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function gke(e){if(typeof e=="string")e=new URL(e);else if(!Lk(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 yke(e)}function yke(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 o2=["history","path","basename","stem","extname","dirname"];class Z7{constructor(t){let n;t?Lk(t)?n={path:t}:typeof t=="string"||xke(t)?n={value:t}:n=t:n={},this.cwd="cwd"in n?"":fke.cwd(),this.data={},this.history=[],this.messages=[],this.value,this.map,this.result,this.stored;let r=-1;for(;++r<o2.length;){const o=o2[r];o in n&&n[o]!==void 0&&n[o]!==null&&(this[o]=o==="history"?[...n[o]]:n[o])}let i;for(i in n)o2.includes(i)||(this[i]=n[i])}get basename(){return typeof this.path=="string"?Ai.basename(this.path):void 0}set basename(t){l2(t,"basename"),s2(t,"basename"),this.path=Ai.join(this.dirname||"",t)}get dirname(){return typeof this.path=="string"?Ai.dirname(this.path):void 0}set dirname(t){RM(this.basename,"dirname"),this.path=Ai.join(t||"",this.basename)}get extname(){return typeof this.path=="string"?Ai.extname(this.path):void 0}set extname(t){if(s2(t,"extname"),RM(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=Ai.join(this.dirname,this.stem+(t||""))}get path(){return this.history[this.history.length-1]}set path(t){Lk(t)&&(t=gke(t)),l2(t,"path"),this.path!==t&&this.history.push(t)}get stem(){return typeof this.path=="string"?Ai.basename(this.path,this.extname):void 0}set stem(t){l2(t,"stem"),s2(t,"stem"),this.path=Ai.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 Hn(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 s2(e,t){if(e&&e.includes(Ai.sep))throw new Error("`"+t+"` cannot be a path: did not expect `"+Ai.sep+"`")}function l2(e,t){if(!e)throw new Error("`"+t+"` cannot be empty")}function RM(e,t){if(!e)throw new Error("Setting `"+t+"` requires `path` to be set too")}function xke(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const vke=(function(e){const r=this.constructor.prototype,i=r[e],o=function(){return i.apply(o,arguments)};return Object.setPrototypeOf(o,r),o}),bke={}.hasOwnProperty;class SC extends vke{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=oke()}copy(){const t=new SC;let n=-1;for(;++n<this.attachers.length;){const r=this.attachers[n];t.use(...r)}return t.data(a2(!0,{},this.namespace)),t}data(t,n){return typeof t=="string"?arguments.length===2?(d2("data",this.frozen),this.namespace[t]=n,this):bke.call(this.namespace,t)&&this.namespace[t]||void 0:t?(d2("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=Df(t),r=this.parser||this.Parser;return c2("parse",r),r(String(n),n)}process(t,n){const r=this;return this.freeze(),c2("process",this.parser||this.Parser),u2("process",this.compiler||this.Compiler),n?i(void 0,n):new Promise(i);function i(o,s){const l=Df(t),u=r.parse(l);r.run(u,l,function(p,f,g){if(p||!f||!g)return d(p);const y=f,b=r.stringify(y,g);kke(b)?g.value=b:g.result=b,d(p,g)});function d(p,f){p||!f?s(p):o?o(f):n(void 0,f)}}}processSync(t){let n=!1,r;return this.freeze(),c2("processSync",this.parser||this.Parser),u2("processSync",this.compiler||this.Compiler),this.process(t,i),MM("processSync","process",n),r;function i(o,s){n=!0,_M(o),r=s}}run(t,n,r){DM(t),this.freeze();const i=this.transformers;return!r&&typeof n=="function"&&(r=n,n=void 0),r?o(void 0,r):new Promise(o);function o(s,l){const u=Df(n);i.run(t,u,d);function d(p,f,g){const y=f||t;p?l(p):s?s(y):r(void 0,y,g)}}}runSync(t,n){let r=!1,i;return this.run(t,n,o),MM("runSync","run",r),i;function o(s,l){_M(s),i=l,r=!0}}stringify(t,n){this.freeze();const r=Df(n),i=this.compiler||this.Compiler;return u2("stringify",i),DM(t),i(t,r)}use(t,...n){const r=this.attachers,i=this.namespace;if(d2("use",this.frozen),t!=null)if(typeof t=="function")u(t,n);else if(typeof t=="object")Array.isArray(t)?l(t):s(t);else throw new TypeError("Expected usable value, not `"+t+"`");return this;function o(d){if(typeof d=="function")u(d,[]);else if(typeof d=="object")if(Array.isArray(d)){const[p,...f]=d;u(p,f)}else s(d);else throw new TypeError("Expected usable value, not `"+d+"`")}function s(d){if(!("plugins"in d)&&!("settings"in d))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(d.plugins),d.settings&&(i.settings=a2(!0,i.settings,d.settings))}function l(d){let p=-1;if(d!=null)if(Array.isArray(d))for(;++p<d.length;){const f=d[p];o(f)}else throw new TypeError("Expected a list of plugins, not `"+d+"`")}function u(d,p){let f=-1,g=-1;for(;++f<r.length;)if(r[f][0]===d){g=f;break}if(g===-1)r.push([d,...p]);else if(p.length>0){let[y,...b]=p;const w=r[g][1];Mk(w)&&Mk(y)&&(y=a2(!0,w,y)),r[g]=[d,y,...b]}}}}const wke=new SC().freeze();function c2(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function u2(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function d2(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 DM(e){if(!Mk(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function MM(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function Df(e){return jke(e)?e:new Z7(e)}function jke(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function kke(e){return typeof e=="string"||Ake(e)}function Ake(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const Ske="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",LM=[],FM={allowDangerousHtml:!0},Cke=/^(https?|ircs?|mailto|xmpp)$/i,Nke=[{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:"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 Fk(e){const t=Tke(e),n=Eke(e);return Pke(t.runSync(t.parse(n),n),e)}function Tke(e){const t=e.rehypePlugins||LM,n=e.remarkPlugins||LM,r=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...FM}:FM;return wke().use(cje).use(n).use(rke,r).use(t)}function Eke(e){const t=e.children||"",n=new Z7;return typeof t=="string"&&(n.value=t),n}function Pke(e,t){const n=t.allowedElements,r=t.allowElement,i=t.components,o=t.disallowedElements,s=t.skipHtml,l=t.unwrapDisallowed,u=t.urlTransform||Oke;for(const p of Nke)Object.hasOwn(t,p.from)&&(""+p.from+(p.to?"use `"+p.to+"` instead":"remove it")+Ske+p.id,void 0);return t.className&&(e={type:"element",tagName:"div",properties:{className:t.className},children:e.type==="root"?e.children:[e]}),AC(e,d),Vwe(e,{Fragment:a.Fragment,components:i,ignoreInvalidStyle:!0,jsx:a.jsx,jsxs:a.jsxs,passKeys:!0,passNode:!0});function d(p,f,g){if(p.type==="raw"&&g&&typeof f=="number")return s?g.children.splice(f,1):g.children[f]={type:"text",value:p.value},f;if(p.type==="element"){let y;for(y in t2)if(Object.hasOwn(t2,y)&&Object.hasOwn(p.properties,y)){const b=p.properties[y],w=t2[y];(w===null||w.includes(p.tagName))&&(p.properties[y]=u(String(b||""),y,p))}}if(p.type==="element"){let y=n?!n.includes(p.tagName):o?o.includes(p.tagName):!1;if(!y&&r&&typeof f=="number"&&(y=!r(p,f,g)),y&&g&&typeof f=="number")return l&&p.children?g.children.splice(f,1,...p.children):g.children.splice(f,1),f}}}function Oke(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||Cke.test(e.slice(0,t))?e:""}const bh="#BFF589",Qh="#FF3B30",zi="#A0A0A0",CC="rgba(255,255,255,0.06)",_ke="#2C2C2C",e$=[{d:"2025-06-01",gw:72.66},{d:"2025-06-02",gw:76.57},{d:"2025-06-03",gw:75.3},{d:"2025-06-04",gw:69.75},{d:"2025-06-05",gw:76.12},{d:"2025-06-06",gw:76.15},{d:"2025-06-07",gw:76},{d:"2025-06-08",gw:76.47},{d:"2025-06-09",gw:76.01},{d:"2025-06-10",gw:70.49},{d:"2025-06-11",gw:63.62},{d:"2025-06-12",gw:63.91},{d:"2025-06-13",gw:75.88},{d:"2025-06-14",gw:74.62},{d:"2025-06-15",gw:66.89},{d:"2025-06-16",gw:76.15},{d:"2025-06-17",gw:76.21},{d:"2025-06-18",gw:76.02},{d:"2025-06-19",gw:77.52},{d:"2025-06-20",gw:77.19},{d:"2025-06-21",gw:75.69},{d:"2025-06-22",gw:76.33},{d:"2025-06-23",gw:77.27},{d:"2025-06-24",gw:76.77},{d:"2025-06-25",gw:74.54},{d:"2025-06-26",gw:75.62},{d:"2025-06-27",gw:76.86},{d:"2025-06-28",gw:76.89},{d:"2025-06-29",gw:74.07},{d:"2025-06-30",gw:76.4},{d:"2025-07-01",gw:75.66},{d:"2025-07-02",gw:75.02},{d:"2025-07-03",gw:67.72},{d:"2025-07-04",gw:67.93},{d:"2025-07-05",gw:65.25},{d:"2025-07-06",gw:69.59},{d:"2025-07-07",gw:75.18},{d:"2025-07-08",gw:73.64},{d:"2025-07-09",gw:74.03},{d:"2025-07-10",gw:77.69},{d:"2025-07-11",gw:75.43},{d:"2025-07-12",gw:74.21},{d:"2025-07-13",gw:69.49},{d:"2025-07-14",gw:75.78},{d:"2025-07-15",gw:78.2},{d:"2025-07-16",gw:78.68},{d:"2025-07-17",gw:78.04},{d:"2025-07-18",gw:78.34},{d:"2025-07-19",gw:78.46},{d:"2025-07-20",gw:77.59},{d:"2025-07-21",gw:79.52},{d:"2025-07-22",gw:79.99},{d:"2025-07-23",gw:81},{d:"2025-07-24",gw:81.94},{d:"2025-07-25",gw:78.89},{d:"2025-07-26",gw:76.5},{d:"2025-07-27",gw:77.93},{d:"2025-07-28",gw:81.67},{d:"2025-07-29",gw:81.7},{d:"2025-07-30",gw:81.91},{d:"2025-07-31",gw:82.04},{d:"2025-08-01",gw:81.54},{d:"2025-08-02",gw:75.68},{d:"2025-08-03",gw:77.83},{d:"2025-08-04",gw:77},{d:"2025-08-05",gw:81.07},{d:"2025-08-06",gw:81.45}
1120,{d:"2025-08-07",gw:82.35},{d:"2025-08-08",gw:82.61},{d:"2025-08-09",gw:82.29},{d:"2025-08-10",gw:81.69},{d:"2025-08-11",gw:82.28},{d:"2025-08-12",gw:81.6},{d:"2025-08-13",gw:81.71},{d:"2025-08-14",gw:82.49},{d:"2025-08-15",gw:81.37},{d:"2025-08-16",gw:79.75},{d:"2025-08-17",gw:82.07},{d:"2025-08-18",gw:84.05},{d:"2025-08-19",gw:82.5},{d:"2025-08-20",gw:80.18},{d:"2025-08-21",gw:79.61},{d:"2025-08-22",gw:77.83},{d:"2025-08-23",gw:77.92},{d:"2025-08-24",gw:82.18},{d:"2025-08-25",gw:82.83},{d:"2025-08-26",gw:78.02},{d:"2025-08-27",gw:80.47},{d:"2025-08-28",gw:83.67},{d:"2025-08-29",gw:76.73},{d:"2025-08-30",gw:71.73},{d:"2025-08-31",gw:66.8},{d:"2025-09-01",gw:72.48},{d:"2025-09-02",gw:76.24},{d:"2025-09-03",gw:76.01},{d:"2025-09-04",gw:80.16},{d:"2025-09-05",gw:79.53},{d:"2025-09-06",gw:65.96},{d:"2025-09-07",gw:62.67},{d:"2025-09-08",gw:70.38},{d:"2025-09-09",gw:72.63},{d:"2025-09-10",gw:76.86},{d:"2025-09-11",gw:78.26},{d:"2025-09-12",gw:78.64},{d:"2025-09-13",gw:76.69},{d:"2025-09-14",gw:75.81},{d:"2025-09-15",gw:78.28},{d:"2025-09-16",gw:77.8},{d:"2025-09-17",gw:78.16},{d:"2025-09-18",gw:77.17},{d:"2025-09-19",gw:78},{d:"2025-09-20",gw:76.17},{d:"2025-09-21",gw:76.75},{d:"2025-09-22",gw:79.33},{d:"2025-09-23",gw:79.45},{d:"2025-09-24",gw:72.88},{d:"2025-09-25",gw:71.74},{d:"2025-09-26",gw:72.37},{d:"2025-09-27",gw:70.72},{d:"2025-09-28",gw:68.91},{d:"2025-09-29",gw:70.95},{d:"2025-09-30",gw:74.12}],Ike={"2025-06-19":77.49,"2025-07-30":81.91,"2025-08-18":83.97,"2025-09-04":80.08},Rke=[29.8,25,29.4,29.1,49.5,37.1,33.3,21.2,33.6,39.6,49.4,36.4,30.4,27.1,21.9,33.8,25.4,29.2,37.6,33.4,21.2,17.8,27.9,25.3,25.7,30.9,37.5,29.3,25.9,34.8,66.4,43.5,30.6,29.4,30.4,35.5,33.5,44.9,39.1,25.1,49.6,69.6,41.5,34.6,23.3,22.4,28,27.4,22.6,23.6,28.8,25.7,23.5,30.5,43.1,33.9,23.3,31.6,37,53.2,46.9,56.6,39.4,32.4,25.6,24.7,31,35.5,27.5,26.1,33.7,42.7,42.7,42.9,37.2,33.9,37.6,39.2,45.8,64.1,55.1,45,39.6,40.7,49.3,34,39,43.4,34.2,36,29.1,31.5,36.2,38.6,41.7,33,35.2,38.6,30.4,26.7,26.8,30.8,29.6,26.6,32.7,29.6,30.4,27.7,39.3,41.6,32.8,26.9,27.6,37.3,44.3,38.1,46.4,34.8,25.6,27.2,42.5,34.5],Dke=[73.2,46.1,114.1,57.8,334.8,100.9,111,45.1,152.3,81.9,114.9,64,78.4,56.2,51,164.4,49.7,71.7,104,166.9,42.6,39.5,53.3,51.2,41.5,80.7,163.1,71.5,43.9,81,336.8,81.9,42.2,48.6,49.7,82.5,93.4,146.8,95.5,77.6,1750.9,291.9,77,67.3,45.4,43.3,56.1,47.4,39.7,35.9,64.6,58.7,40.2,56.9,92.2,66.3,46.2,83.7,128,287,142,152.9,68.4,100.3,36.6,49.3,120.8,143,74.1,44.3,68.5,103.2,133.3,84.1,105.8,76.3,95.1,101.4,193.4,129.5,326.4,84.5,93,141.3,180.1,74.3,77.7,82.9,80,49.2,43.6,46.4,76.3,99.8,135.5,234.7,76.7,71.9,50.5,51.6,65.9,119.4,77.4,75.2,137.4,55.1,70.3,70.1,103.6,95.2,67.3,44.4,61.2,105.5,218.4,86.9,227.5,135,91.3,76.7,95.3,95.9],Mke={"2025-06-19":31.46,"2025-07-30":34.51,"2025-08-18":25.32,"2025-09-04":34.83},Lke=[32.7,30.8,29.7,29.1,29.7,31.6,34.2,29.4,20.8,18.6,19.3,22.4,27.6,29.7,31.5,34.5,35.4,36.7,48.7,62.9,63.4,58.4,42,34.4],Fke={"06":"Jun","07":"Jul","08":"Aug","09":"Sep"},Bke=e$.map((e,t)=>({label:e.d,gw:e.gw,peak:Ike[e.d]??null,record:85.5,idx:t})),zke=e$.map((e,t)=>({label:e.d,avg:Math.min(Rke[t]??null,200),max:Math.min(Dke[t]??null,200),peakPrice:Mke[e.d]??null,idx:t})),BM=Array.from({length:24},(e,t)=>({hour:t,price:Lke[t],is4cp:t===17})),$ke=[{name:"LÅD 4CP Signal",lo:20,hi:40},{name:"Typical QSE",lo:70,hi:80}],Oy=({title:e,caption:t,legend:n,children:r})=>a.jsxs("div",{className:"rounded-xl p-5 my-8",style:{background:_ke,border:"1px solid rgba(255,255,255,0.08)"},children:[a.jsx("p",{className:"font-display text-sm text-lod-white mb-1",children:e}),t&&a.jsx("p",{className:"font-mono text-xs mb-3 leading-relaxed",style:{color:zi},children:t}),n&&a.jsx("div",{className:"flex flex-wrap gap-4 mb-3",children:n.map(i=>a.jsxs("span",{className:"font-mono text-xs flex items-center gap-1.5",style:{color:zi},children:[a.jsx("span",{style:{color:i.color,fontSize:16,lineHeight:1},children:i.symbol}),i.label]},i.label))}),r]}),t$=e=>{if(!e)return"";const t=e.slice(5,7);return e.slice(8)==="01"?Fke[t]??"":""},qke=({cx:e,cy:t,payload:n})=>n.peak==null?null:a.jsx("circle",{cx:e,cy:t,r:7,fill:Qh,stroke:"none"}),Wke=({cx:e,cy:t,payload:n})=>n.peakPrice==null?null:a.jsx("circle",{cx:e,cy:t,r:8,fill:Qh,stroke:"none"});function zM(){return a.jsx(Oy,{title:"ERCOT's four coincident peaks, summer 2025",caption:"Daily peak demand across the season. The four red dots are the intervals that set transmission cost allocation for the year that follows.",legend:[{symbol:"â",color:bh,label:"Daily peak demand (GW)"},{symbol:"â",color:Qh,label:"4CP interval"},{symbol:"- -",color:"#888",label:"2023 record (85.5 GW)"}],children:a.jsx(ks,{width:"100%",height:320,children:a.jsxs(wS,{data:Bke,margin:{top:4,right:8,bottom:0,left:0},children:[a.jsx(Cs,{strokeDasharray:"3 3",stroke:CC}),a.jsx(Vr,{dataKey:"label",tickFormatter:t$,tick:{fill:zi,fontSize:11},interval:0}),a.jsx(Gr,{domain:[58,90],tickFormatter:e=>`${e} GW`,tick:{fill:zi,fontSize:10},width:52}),a.jsx(Kn,{contentStyle:{background:"#2C2C2C",border:"1px solid rgba(255,255,255,0.1)",borderRadius:8,fontSize:11},labelStyle:{color:"#F9F9F9",marginBottom:4},formatter:(e,t)=>t==="gw"?[`${e==null?void 0:e.toFixed(1)} GW`,"Daily peak"]:t==="record"?[`${e} GW`,"2023 record"]:[null,null]}),a.jsx(Ls,{y:85.5,stroke:"rgba(160,160,160,0.5)",strokeDasharray:"6 4",strokeWidth:1.5}),a.jsx(Ii,{type:"monotone",dataKey:"gw",stroke:bh,strokeWidth:2,dot:!1,fill:"rgba(191,245,137,0.12)"}),a.jsx(Ii,{type:"monotone",dataKey:"peak",stroke:"transparent",dot:a.jsx(qke,{}),isAnimationActive:!1})]})})})}function Uke(){return a.jsx(Oy,{title:"Settlement price across the summer, with each 4CP moment marked",caption:"Daily average price (line) and daily max (faint). The red bubbles are the price at each 4CP peak â they sit low all season, while the real spikes land on other days. July 11 reached $1,751 (capped at $200 for readability).",legend:[{symbol:"â",color:bh,label:"Daily avg price"},{symbol:"â",color:"#888",label:"Daily max price"},{symbol:"â",color:Qh,label:"Price at 4CP interval"}],children:a.jsx(ks,{width:"100%",height:320,children:a.jsxs(wS,{data:zke,margin:{top:4,right:8,bottom:0,left:0},children:[a.jsx(Cs,{strokeDasharray:"3 3",stroke:CC}),a.jsx(Vr,{dataKey:"label",tickFormatter:t$,tick:{fill:zi,fontSize:11},interval:0}
1120),a.jsx(Gr,{domain:[0,200],tickFormatter:e=>`$${e}`,tick:{fill:zi,fontSize:10},width:42}),a.jsx(Kn,{contentStyle:{background:"#2C2C2C",border:"1px solid rgba(255,255,255,0.1)",borderRadius:8,fontSize:11},labelStyle:{color:"#F9F9F9",marginBottom:4},formatter:(e,t)=>t==="avg"?[`$${e==null?void 0:e.toFixed(0)}`,"Daily avg"]:t==="max"?[`$${e==null?void 0:e.toFixed(0)}`,"Daily max"]:t==="peakPrice"&&e!=null?[`$${e==null?void 0:e.toFixed(2)}`,"4CP price"]:[null,null]}),a.jsx(Ii,{type:"monotone",dataKey:"max",stroke:"rgba(160,160,160,0.4)",strokeWidth:1,dot:!1}),a.jsx(Ii,{type:"monotone",dataKey:"avg",stroke:bh,strokeWidth:2,dot:!1,fill:"rgba(191,245,137,0.08)"}),a.jsx(Ii,{type:"monotone",dataKey:"peakPrice",stroke:"transparent",dot:a.jsx(Wke,{}),isAnimationActive:!1})]})})})}function Hke(){const e=t=>t===0?"12a":t===12?"12p":t<12?`${t}a`:`${t-12}p`;return a.jsx(Oy,{title:"The shape of a summer day",caption:"Average power price by hour. Prices stay soft through the solar-heavy afternoon, including the 5 p.m. 4CP window (in red), then climb after sundown.",children:a.jsx(ks,{width:"100%",height:220,children:a.jsxs(w9,{data:BM,margin:{top:4,right:8,bottom:0,left:0},children:[a.jsx(Cs,{strokeDasharray:"3 3",stroke:CC,vertical:!1}),a.jsx(Vr,{dataKey:"hour",tickFormatter:(t,n)=>n%3===0?e(t):"",tick:{fill:zi,fontSize:10}}),a.jsx(Gr,{tickFormatter:t=>`$${t}`,tick:{fill:zi,fontSize:10},width:36}),a.jsx(Kn,{contentStyle:{background:"#2C2C2C",border:"1px solid rgba(255,255,255,0.1)",borderRadius:8,fontSize:11},labelFormatter:t=>e(t),formatter:t=>[`$${t.toFixed(0)} avg`,"Avg price"]}),a.jsx(To,{dataKey:"price",radius:[3,3,0,0],maxBarSize:28,children:BM.map(t=>a.jsx(Xg,{fill:t.is4cp?Qh:"rgba(191,245,137,0.55)"},t.hour))})]})})})}function Vke(){return a.jsx(Oy,{title:"Curtailment hours per month: typical QSE signal vs the LÅD 4CP Signal",caption:"Fewer curtailed hours means more uptime, and more uptime means more revenue. Each bar shows the typical monthly range.",children:a.jsxs("div",{className:"space-y-4 py-2",children:[$ke.map(e=>{const t=e.name.includes("LÅD"),n=e.hi/90*100,r=e.lo/90*100;return a.jsxs("div",{children:[a.jsxs("div",{className:"flex items-center justify-between mb-1.5",children:[a.jsx("span",{className:"font-display text-sm font-bold",style:{color:t?bh:"#F9F9F9"},children:e.name}),a.jsxs("span",{className:"font-mono text-xs",style:{color:zi},children:[e.lo,"â",e.hi," hrs/month"]})]}),a.jsxs("div",{className:"relative w-full rounded-full h-7",style:{background:"rgba(255,255,255,0.05)"},children:[a.jsx("div",{className:"absolute left-0 top-0 h-full rounded-full flex items-center",style:{width:`${n}%`,background:t?"rgba(191,245,137,0.15)":"rgba(255,59,48,0.15)",border:`1px solid ${t?"rgba(191,245,137,0.3)":"rgba(255,59,48,0.3)"}`}}),a.jsx("div",{className:"absolute top-0 h-full rounded-full",style:{left:`${r}%`,width:`${n-r}%`,background:t?"rgba(191,245,137,0.7)":"rgba(255,59,48,0.7)"}})]})]},e.name)}),a.jsx("div",{className:"flex justify-between pt-1",children:[0,20,40,60,80].map(e=>a.jsxs("span",{className:"font-mono text-xs",style:{color:zi},children:[e,"h"]},e))})]})})}function $M(e,t){const n=String(e);if(typeof t!="string")throw new TypeError("Expected character");let r=0,i=n.indexOf(t);for(;i!==-1;)r++,i=n.indexOf(t,i+t.length);return r}function Gke(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}function Yke(e,t,n){const i=Ey((n||{}).ignore||[]),o=Kke(t);let s=-1;for(;++s<o.length;)J7(e,"text",l);function l(d,p){let f=-1,g;for(;++f<p.length;){const y=p[f],b=g?g.children:void 0;if(i(y,b?b.indexOf(y):void 0,g))return;g=y}if(g)return u(d,p)}function u(d,p){const f=p[p.length-1],g=o[s][0],y=o[s][1];let b=0;const v=f.children.indexOf(d);let j=!1,k=[];g.lastIndex=0;let S=g.exec(d.value);for(;S;){const E=S.index,N={index:S.index,input:S.input,stack:[...p,d]};let C=y(...S,N);if(typeof C=="string"&&(C=C.length>0?{type:"text",value:C}:void 0),C===!1?g.lastIndex=E+1:(b!==E&&k.push({type:"text",value:d.value.slice(b,E)}),Array.isArray(C)?k.push(...C):C&&k.push(C),b=E+S[0].length,j=!0),!g.global)break;S=g.exec(d.value)}
vendor: 39,722 bytes, lines 1120-1138
1120return j?(b<d.value.length&&k.push({type:"text",value:d.value.slice(b)}),f.children.splice(v,1,...k)):k=[d],v+k.length}}function Kke(e){const t=[];if(!Array.isArray(e))throw new TypeError("Expected find and replace tuple or list of tuples");const n=!e[0]||Array.isArray(e[0])?e:[e];let r=-1;for(;++r<n.length;){const i=n[r];t.push([Xke(i[0]),Qke(i[1])])}return t}function Xke(e){return typeof e=="string"?new RegExp(Gke(e),"g"):e}function Qke(e){return typeof e=="function"?e:function(){return e}}const h2="phrasing",p2=["autolink","link","image","label"];function Jke(){return{transforms:[aAe],enter:{literalAutolink:eAe,literalAutolinkEmail:f2,literalAutolinkHttp:f2,literalAutolinkWww:f2},exit:{literalAutolink:iAe,literalAutolinkEmail:rAe,literalAutolinkHttp:tAe,literalAutolinkWww:nAe}}}function Zke(){return{unsafe:[{character:"@",before:"[+\\-.\\w]",after:"[\\-.\\w]",inConstruct:h2,notInConstruct:p2},{character:".",before:"[Ww]",after:"[\\-.\\w]",inConstruct:h2,notInConstruct:p2},{character:":",before:"[ps]",after:"\\/",inConstruct:h2,notInConstruct:p2}]}}function eAe(e){this.enter({type:"link",title:null,url:"",children:[]},e)}function f2(e){this.config.enter.autolinkProtocol.call(this,e)}function tAe(e){this.config.exit.autolinkProtocol.call(this,e)}function nAe(e){this.config.exit.data.call(this,e);const t=this.stack[this.stack.length-1];t.type,t.url="http://"+this.sliceSerialize(e)}function rAe(e){this.config.exit.autolinkEmail.call(this,e)}function iAe(e){this.exit(e)}function aAe(e){Yke(e,[[/(https?:\/\/|www(?=\.))([-.\w]+)([^ \t\r\n]*)/gi,oAe],[new RegExp("(?<=^|\\s|\\p{P}|\\p{S})([-.\\w+]+)@([-\\w]+(?:\\.[-\\w]+)+)","gu"),sAe]],{ignore:["link","linkReference"]})}function oAe(e,t,n,r,i){let o="";if(!n$(i)||(/^w/i.test(t)&&(n=t+n,t="",o="http://"),!lAe(n)))return!1;const s=cAe(n+r);if(!s[0])return!1;const l={type:"link",title:null,url:o+t+s[0],children:[{type:"text",value:t+s[0]}]};return s[1]?[l,{type:"text",value:s[1]}]:l}function sAe(e,t,n,r){return!n$(r,!0)||/[-\d_]$/.test(n)?!1:{type:"link",title:null,url:"mailto:"+t+"@"+n,children:[{type:"text",value:t+"@"+n}]}}function lAe(e){const t=e.split(".");return!(t.length<2||t[t.length-1]&&(/_/.test(t[t.length-1])||!/[a-zA-Z\d]/.test(t[t.length-1]))||t[t.length-2]&&(/_/.test(t[t.length-2])||!/[a-zA-Z\d]/.test(t[t.length-2])))}function cAe(e){const t=/[!"&'),.:;<>?\]}]+$/.exec(e);if(!t)return[e,void 0];e=e.slice(0,t.index);let n=t[0],r=n.indexOf(")");const i=$M(e,"(");let o=$M(e,")");for(;r!==-1&&i>o;)e+=n.slice(0,r+1),n=n.slice(r+1),r=n.indexOf(")"),o++;return[e,n]}function n$(e,t){const n=e.input.charCodeAt(e.index-1);return(e.index===0||Bs(n)||Cy(n))&&(!t||n!==47)}r$.peek=xAe;function uAe(){this.buffer()}function dAe(e){this.enter({type:"footnoteReference",identifier:"",label:""},e)}function hAe(){this.buffer()}function pAe(e){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},e)}function fAe(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=pi(this.sliceSerialize(e)).toLowerCase(),n.label=t}function mAe(e){this.exit(e)}function gAe(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=pi(this.sliceSerialize(e)).toLowerCase(),n.label=t}function yAe(e){this.exit(e)}function xAe(){return"["}function r$(e,t,n,r){const i=n.createTracker(r);let o=i.move("[^");const s=n.enter("footnoteReference"),l=n.enter("reference");return o+=i.move(n.safe(n.associationId(e),{after:"]",before:o})),l(),s(),o+=i.move("]"),o}function vAe(){return{enter:{gfmFootnoteCallString:uAe,gfmFootnoteCall:dAe,gfmFootnoteDefinitionLabelString:hAe,gfmFootnoteDefinition:pAe},exit:{gfmFootnoteCallString:fAe,gfmFootnoteCall:mAe,gfmFootnoteDefinitionLabelString:gAe,gfmFootnoteDefinition:yAe}}}function bAe(e){let t=!1;return e&&e.firstLineBlank&&(t=!0),{handlers:{footnoteDefinition:n,footnoteReference:r$},unsafe:[{character:"[",inConstruct:["label","phrasing","reference"]}]};function n(r,i,o,s){const l=o.createTracker(s);let u=l.move("[^");const d=o.enter("footnoteDefinition"),p=o.enter("label");return u+=l.move(o.safe(o.associationId(r),{before:u,after:"]"})),p(),u+=l.move("]:"),r.children&&r.children.length>0&&(l.shift(4),u+=l.move((t?` 1121`:" ")+o.indentLines(o.containerFlow(r,l.current()),t?i$:wAe))),d(),u}}function wAe(e,t,n){return t===0?e:i$(e,t,n)}function i$(e,t,n){return(n?"":" ")+e}const jAe=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];a$.peek=NAe;function kAe(){return{canContainEols:["delete"],enter:{strikethrough:SAe},exit:{strikethrough:CAe}}}function AAe(){return{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:jAe}],handlers:{delete:a$}}}function SAe(e){this.enter({type:"delete",children:[]},e)}function CAe(e){this.exit(e)}function a$(e,t,n,r){const i=n.createTracker(r),o=n.enter("strikethrough");let s=i.move("~~");return s+=n.containerPhrasing(e,{...i.current(),before:s,after:"~"}),s+=i.move("~~"),o(),s}function NAe(){return"~"}function TAe(e){return e.length}function EAe(e,t){const n=t||{},r=(n.align||[]).concat(),i=n.stringLength||TAe,o=[],s=[],l=[],u=[];let d=0,p=-1;for(;++p<e.length;){const w=[],v=[];let j=-1;for(e[p].length>d&&(d=e[p].length);++j<e[p].length;){const k=PAe(e[p][j]);if(n.alignDelimiters!==!1){const S=i(k);v[j]=S,(u[j]===void 0||S>u[j])&&(u[j]=S)}w.push(k)}s[p]=w,l[p]=v}let f=-1;if(typeof r=="object"&&"length"in r)for(;++f<d;)o[f]=qM(r[f]);else{const w=qM(r);for(;++f<d;)o[f]=w}f=-1;const g=[],y=[];for(;++f<d;){const w=o[f];let v="",j="";w===99?(v=":",j=":"):w===108?v=":":w===114&&(j=":");let k=n.alignDelimiters===!1?1:Math.max(1,u[f]-v.length-j.length);const S=v+"-".repeat(k)+j;n.alignDelimiters!==!1&&(k=v.length+k+j.length,k>u[f]&&(u[f]=k),y[f]=k),g[f]=S}s.splice(1,0,g),l.splice(1,0,y),p=-1;const b=[];for(;++p<s.length;){const w=s[p],v=l[p];f=-1;const j=[];for(;++f<d;){const k=w[f]||"";let S="",E="";if(n.alignDelimiters!==!1){const N=u[f]-(v[f]||0),C=o[f];C===114?S=" ".repeat(N):C===99?N%2?(S=" ".repeat(N/2+.5),E=" ".repeat(N/2-.5)):(S=" ".repeat(N/2),E=S):E=" ".repeat(N)}n.delimiterStart!==!1&&!f&&j.push("|"),n.padding!==!1&&!(n.alignDelimiters===!1&&k==="")&&(n.delimiterStart!==!1||f)&&j.push(" "),n.alignDelimiters!==!1&&j.push(S),j.push(k),n.alignDelimiters!==!1&&j.push(E),n.padding!==!1&&j.push(" "),(n.delimiterEnd!==!1||f!==d-1)&&j.push("|")}b.push(n.delimiterEnd===!1?j.join("").replace(/ +$/,""):j.join(""))}return b.join(` 1122`)}function PAe(e){return e==null?"":String(e)}function qM(e){const t=typeof e=="string"?e.codePointAt(0):0;return t===67||t===99?99:t===76||t===108?108:t===82||t===114?114:0}function OAe(e,t,n,r){const i=n.enter("blockquote"),o=n.createTracker(r);o.move("> "),o.shift(2);const s=n.indentLines(n.containerFlow(e,o.current()),_Ae);return i(),s}function _Ae(e,t,n){return">"+(n?"":" ")+e}function IAe(e,t){return WM(e,t.inConstruct,!0)&&!WM(e,t.notInConstruct,!1)}function WM(e,t,n){if(typeof t=="string"&&(t=[t]),!t||t.length===0)return n;let r=-1;for(;++r<t.length;)if(e.includes(t[r]))return!0;return!1}function UM(e,t,n,r){let i=-1;for(;++i<n.unsafe.length;)if(n.unsafe[i].character===` 1123`&&IAe(n.stack,n.unsafe[i]))return/[ \t]/.test(r.before)?"":" ";return`\\ 1124`}function RAe(e,t){const n=String(e);let r=n.indexOf(t),i=r,o=0,s=0;if(typeof t!="string")throw new TypeError("Expected substring");for(;r!==-1;)r===i?++o>s&&(s=o):o=1,i=r+t.length,r=n.indexOf(t,i);return s}function DAe(e,t){return!!(t.options.fences===!1&&e.value&&!e.lang&&/[^ \r\n]/.test(e.value)&&!/^[\t ]*(?:[\r\n]|$)|(?:^|[\r\n])[\t ]*$/.test(e.value))}function MAe(e){const t=e.options.fence||"`";if(t!=="`"&&t!=="~")throw new Error("Cannot serialize code with `"+t+"` for `options.fence`, expected `` ` `` or `~`");return t}function LAe(e,t,n,r){const i=MAe(n),o=e.value||"",s=i==="`"?"GraveAccent":"Tilde";if(DAe(e,n)){const f=n.enter("codeIndented"),g=n.indentLines(o,FAe);return f(),g}const l=n.createTracker(r),u=i.repeat(Math.max(RAe(o,i)+1,3)),d=n.enter("codeFenced");let p=l.move(u);if(e.lang){const f=n.enter(`codeFencedLang${s}`);p+=l.move(n.safe(e.lang,{before:p,after:" ",encode:["`"],...l.current()})),f()}if(e.lang&&e.meta){const f=n.enter(`codeFencedMeta${s}`);p+=l.move(" "),p+=l.move(n.safe(e.meta,{before:p,after:` 1125`,encode:["`"],...l.current()})),f()}return p+=l.move(` 1126`),o&&(p+=l.move(o+` 1127`)),p+=l.move(u),d(),p}function FAe(e,t,n){return(n?"":" ")+e}function NC(e){const t=e.options.quote||'"';if(t!=='"'&&t!=="'")throw new Error("Cannot serialize title with `"+t+"` for `options.quote`, expected `\"`, or `'`");return t}function BAe(e,t,n,r){const i=NC(n),o=i==='"'?"Quote":"Apostrophe",s=n.enter("definition");let l=n.enter("label");const u=n.createTracker(r);let d=u.move("[");return d+=u.move(n.safe(n.associationId(e),{before:d,after:"]",...u.current()})),d+=u.move("]: "),l(),!e.url||/[\0- \u007F]/.test(e.url)?(l=n.enter("destinationLiteral"),d+=u.move("<"),d+=u.move(n.safe(e.url,{before:d,after:">",...u.current()})),d+=u.move(">")):(l=n.enter("destinationRaw"),d+=u.move(n.safe(e.url,{before:d,after:e.title?" ":` 1128`,...u.current()}))),l(),e.title&&(l=n.enter(`title${o}`),d+=u.move(" "+i),d+=u.move(n.safe(e.title,{before:d,after:i,...u.current()})),d+=u.move(i),l()),s(),d}function zAe(e){const t=e.options.emphasis||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize emphasis with `"+t+"` for `options.emphasis`, expected `*`, or `_`");return t}function wh(e){return"&#x"+e.toString(16).toUpperCase()+";"}function wg(e,t,n){const r=Dc(e),i=Dc(t);return r===void 0?i===void 0?n==="_"?{inside:!0,outside:!0}:{inside:!1,outside:!1}:i===1?{inside:!0,outside:!0}:{inside:!1,outside:!0}:r===1?i===void 0?{inside:!1,outside:!1}:i===1?{inside:!0,outside:!0}:{inside:!1,outside:!1}:i===void 0?{inside:!1,outside:!1}:i===1?{inside:!0,outside:!1}:{inside:!1,outside:!1}}o$.peek=$Ae;function o$(e,t,n,r){const i=zAe(n),o=n.enter("emphasis"),s=n.createTracker(r),l=s.move(i);let u=s.move(n.containerPhrasing(e,{after:i,before:l,...s.current()}));const d=u.charCodeAt(0),p=wg(r.before.charCodeAt(r.before.length-1),d,i);p.inside&&(u=wh(d)+u.slice(1));const f=u.charCodeAt(u.length-1),g=wg(r.after.charCodeAt(0),f,i);g.inside&&(u=u.slice(0,-1)+wh(f));const y=s.move(i);return o(),n.attentionEncodeSurroundingInfo={after:g.outside,before:p.outside},l+u+y}function $Ae(e,t,n){return n.options.emphasis||"*"}function qAe(e,t){let n=!1;return AC(e,function(r){if("value"in r&&/\r?\n|\r/.test(r.value)||r.type==="break")return n=!0,Rk}),!!((!e.depth||e.depth<3)&&yC(e)&&(t.options.setext||n))}function WAe(e,t,n,r){const i=Math.max(Math.min(6,e.depth||1),1),o=n.createTracker(r);if(qAe(e,n)){const p=n.enter("headingSetext"),f=n.enter("phrasing"),g=n.containerPhrasing(e,{...o.current(),before:` 1129`,after:` 1130`});return f(),p(),g+` 1131`+(i===1?"=":"-").repeat(g.length-(Math.max(g.lastIndexOf("\r"),g.lastIndexOf(` 1132`))+1))}const s="#".repeat(i),l=n.enter("headingAtx"),u=n.enter("phrasing");o.move(s+" ");let d=n.containerPhrasing(e,{before:"# ",after:` 1133`,...o.current()});return/^[\t ]/.test(d)&&(d=wh(d.charCodeAt(0))+d.slice(1)),d=d?s+" "+d:s,n.options.closeAtx&&(d+=" "+s),u(),l(),d}s$.peek=UAe;function s$(e){return e.value||""}function UAe(){return"<"}l$.peek=HAe;function l$(e,t,n,r){const i=NC(n),o=i==='"'?"Quote":"Apostrophe",s=n.enter("image");let l=n.enter("label");const u=n.createTracker(r);let d=u.move("![");return d+=u.move(n.safe(e.alt,{before:d,after:"]",...u.current()})),d+=u.move("]("),l(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(l=n.enter("destinationLiteral"),d+=u.move("<"),d+=u.move(n.safe(e.url,{before:d,after:">",...u.current()})),d+=u.move(">")):(l=n.enter("destinationRaw"),d+=u.move(n.safe(e.url,{before:d,after:e.title?" ":")",...u.current()}))),l(),e.title&&(l=n.enter(`title${o}`),d+=u.move(" "+i),d+=u.move(n.safe(e.title,{before:d,after:i,...u.current()})),d+=u.move(i),l()),d+=u.move(")"),s(),d}function HAe(){return"!"}c$.peek=VAe;function c$(e,t,n,r){const i=e.referenceType,o=n.enter("imageReference");let s=n.enter("label");const l=n.createTracker(r);let u=l.move("![");const d=n.safe(e.alt,{before:u,after:"]",...l.current()});u+=l.move(d+"]["),s();const p=n.stack;n.stack=[],s=n.enter("reference");const f=n.safe(n.associationId(e),{before:u,after:"]",...l.current()});return s(),n.stack=p,o(),i==="full"||!d||d!==f?u+=l.move(f+"]"):i==="shortcut"?u=u.slice(0,-1):u+=l.move("]"),u}function VAe(){return"!"}u$.peek=GAe;function u$(e,t,n){let r=e.value||"",i="`",o=-1;for(;new RegExp("(^|[^`])"+i+"([^`]|$)").test(r);)i+="`";for(/[^ \r\n]/.test(r)&&(/^[ \r\n]/.test(r)&&/[ \r\n]$/.test(r)||/^`|`$/.test(r))&&(r=" "+r+" ");++o<n.unsafe.length;){const s=n.unsafe[o],l=n.compilePattern(s);let u;if(s.atBreak)for(;u=l.exec(r);){let d=u.index;r.charCodeAt(d)===10&&r.charCodeAt(d-1)===13&&d--,r=r.slice(0,d)+" "+r.slice(u.index+1)}}return i+r+i}function GAe(){return"`"}function d$(e,t){const n=yC(e);return!!(!t.options.resourceLink&&e.url&&!e.title&&e.children&&e.children.length===1&&e.children[0].type==="text"&&(n===e.url||"mailto:"+n===e.url)&&/^[a-z][a-z+.-]+:/i.test(e.url)&&!/[\0- <>\u007F]/.test(e.url))}h$.peek=YAe;function h$(e,t,n,r){const i=NC(n),o=i==='"'?"Quote":"Apostrophe",s=n.createTracker(r);let l,u;if(d$(e,n)){const p=n.stack;n.stack=[],l=n.enter("autolink");let f=s.move("<");return f+=s.move(n.containerPhrasing(e,{before:f,after:">",...s.current()})),f+=s.move(">"),l(),n.stack=p,f}l=n.enter("link"),u=n.enter("label");let d=s.move("[");return d+=s.move(n.containerPhrasing(e,{before:d,after:"](",...s.current()})),d+=s.move("]("),u(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(u=n.enter("destinationLiteral"),d+=s.move("<"),d+=s.move(n.safe(e.url,{before:d,after:">",...s.current()})),d+=s.move(">")):(u=n.enter("destinationRaw"),d+=s.move(n.safe(e.url,{before:d,after:e.title?" ":")",...s.current()}))),u(),e.title&&(u=n.enter(`title${o}`),d+=s.move(" "+i),d+=s.move(n.safe(e.title,{before:d,after:i,...s.current()})),d+=s.move(i),u()),d+=s.move(")"),l(),d}function YAe(e,t,n){return d$(e,n)?"<":"["}p$.peek=KAe;function p$(e,t,n,r){const i=e.referenceType,o=n.enter("linkReference");let s=n.enter("label");const l=n.createTracker(r);let u=l.move("[");const d=n.containerPhrasing(e,{before:u,after:"]",...l.current()});u+=l.move(d+"]["),s();const p=n.stack;n.stack=[],s=n.enter("reference");const f=n.safe(n.associationId(e),{before:u,after:"]",...l.current()});return s(),n.stack=p,o(),i==="full"||!d||d!==f?u+=l.move(f+"]"):i==="shortcut"?u=u.slice(0,-1):u+=l.move("]"),u}function KAe(){return"["}function TC(e){const t=e.options.bullet||"*";if(t!=="*"&&t!=="+"&&t!=="-")throw new Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}function XAe(e){const t=TC(e),n=e.options.bulletOther;if(!n)return t==="*"?"-":"*";if(n!=="*"&&n!=="+"&&n!=="-")throw new Error("Cannot serialize items with `"+n+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(n===t)throw new Error("Expected `bullet` (`"+t+"`) and `bulletOther` (`"+n+"`) to be different");return n}function QAe(e){const t=e.options.bulletOrdered||".";if(t!=="."&&t!==")")throw new Error("Cannot serialize items with `"+t+"` for `options.bulletOrdered`, expected `.` or `)`");return t}function f$(e){const t=e.options.rule||"*";if(t!=="*"&&t!=="-"&&t!=="_")throw new Error("Cannot serialize rules with `"+t+"` for `options.rule`, expected `*`, `-`, or `_`");return t}function JAe(e,t,n,r){const i=n.enter("list"),o=n.bulletCurrent;let s=e.ordered?QAe(n):TC(n);const l=e.ordered?s==="."?")":".":XAe(n);let u=t&&n.bulletLastUsed?s===n.bulletLastUsed:!1;if(!e.ordered){const p=e.children?e.children[0]:void 0;if((s==="*"||s==="-")&&p&&(!p.children||!p.children[0])&&n.stack[n.stack.length-1]==="list"&&n.stack[n.stack.length-2]==="listItem"&&n.stack[n.stack.length-3]==="list"&&n.stack[n.stack.length-4]==="listItem"&&n.indexStack[n.indexStack.length-1]===0&&n.indexStack[n.indexStack.length-2]===0&&n.indexStack[n.indexStack.length-3]===0&&(u=!0),f$(n)===s&&p){let f=-1;for(;++f<e.children.length;){const g=e.children[f];if(g&&g.type==="listItem"&&g.children&&g.children[0]&&g.children[0].type==="thematicBreak"){u=!0;break}}}}u&&(s=l),n.bulletCurrent=s;const d=n.containerFlow(e,r);return n.bulletLastUsed=s,n.bulletCurrent=o,i(),d}function ZAe(e){const t=e.options.listItemIndent||"one";if(t!=="tab"&&t!=="one"&&t!=="mixed")throw new Error("Cannot serialize items with `"+t+"` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`");return t}function eSe(e,t,n,r){const i=ZAe(n);let o=n.bulletCurrent||TC(n);t&&t.type==="list"&&t.ordered&&(o=(typeof t.start=="number"&&t.start>-1?t.start:1)+(n.options.incrementListMarker===!1?0:t.children.indexOf(e))+o);let s=o.length+1;(i==="tab"||i==="mixed"&&(t&&t.type==="list"&&t.spread||e.spread))&&(s=Math.ceil(s/4)*4);const l=n.createTracker(r);l.move(o+" ".repeat(s-o.length)),l.shift(s);const u=n.enter("listItem"),d=n.indentLines(n.containerFlow(e,l.current()),p);return u(),d;function p(f,g,y){return g?(y?"":" ".repeat(s))+f:(y?o:o+" ".repeat(s-o.length))+f}}function tSe(e,t,n,r){const i=n.enter("paragraph"),o=n.enter("phrasing"),s=n.containerPhrasing(e,r);return o(),i(),s}const nSe=Ey(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function rSe(e,t,n,r){return(e.children.some(function(s){return nSe(s)})?n.containerPhrasing:n.containerFlow).call(n,e,r)}function iSe(e){const t=e.options.strong||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}m$.peek=aSe;function m$(e,t,n,r){const i=iSe(n),o=n.enter("strong"),s=n.createTracker(r),l=s.move(i+i);let u=s.move(n.containerPhrasing(e,{after:i,before:l,...s.current()}));const d=u.charCodeAt(0),p=wg(r.before.charCodeAt(r.before.length-1),d,i);p.inside&&(u=wh(d)+u.slice(1));const f=u.charCodeAt(u.length-1),g=wg(r.after.charCodeAt(0),f,i);g.inside&&(u=u.slice(0,-1)+wh(f));const y=s.move(i+i);return o(),n.attentionEncodeSurroundingInfo={after:g.outside,before:p.outside},l+u+y}function aSe(e,t,n){return n.options.strong||"*"}function oSe(e,t,n,r){return n.safe(e.value,r)}function sSe(e){const t=e.options.ruleRepetition||3;if(t<3)throw new Error("Cannot serialize rules with repetition `"+t+"` for `options.ruleRepetition`, expected `3` or more");return t}function lSe(e,t,n){const r=(f$(n)+(n.options.ruleSpaces?" ":"")).repeat(sSe(n));return n.options.ruleSpaces?r.slice(0,-1):r}const g$={blockquote:OAe,break:UM,code:LAe,definition:BAe,emphasis:o$,hardBreak:UM,heading:WAe,html:s$,image:l$,imageReference:c$,inlineCode:u$,link:h$,linkReference:p$,list:JAe,listItem:eSe,paragraph:tSe,root:rSe,strong:m$,text:oSe,thematicBreak:lSe};function cSe(){return{enter:{table:uSe,tableData:HM,tableHeader:HM,tableRow:hSe},exit:{codeText:pSe,table:dSe,tableData:m2,tableHeader:m2,tableRow:m2}}}function uSe(e){const t=e._align;this.enter({type:"table",align:t.map(function(n){return n==="none"?null:n}),children:[]},e),this.data.inTable=!0}function dSe(e){this.exit(e),this.data.inTable=void 0}function hSe(e){this.enter({type:"tableRow",children:[]},e)}function m2(e){this.exit(e)}function HM(e){this.enter({type:"tableCell",children:[]},e)}function pSe(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,fSe));const n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function fSe(e,t){return t==="|"?t:e}function mSe(e){const t=e||{},n=t.tableCellPadding,r=t.tablePipeAlign,i=t.stringLength,o=n?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:` 1134`,inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[ :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{inlineCode:g,table:s,tableCell:u,tableRow:l}};function s(y,b,w,v){return d(p(y,w,v),y.align)}function l(y,b,w,v){const j=f(y,w,v),k=d([j]);return k.slice(0,k.indexOf(` 1135`))}function u(y,b,w,v){const j=w.enter("tableCell"),k=w.enter("phrasing"),S=w.containerPhrasing(y,{...v,before:o,after:o});return k(),j(),S}function d(y,b){return EAe(y,{align:b,alignDelimiters:r,padding:n,stringLength:i})}function p(y,b,w){const v=y.children;let j=-1;const k=[],S=b.enter("table");for(;++j<v.length;)k[j]=f(v[j],b,w);return S(),k}function f(y,b,w){const v=y.children;let j=-1;const k=[],S=b.enter("tableRow");for(;++j<v.length;)k[j]=u(v[j],y,b,w);return S(),k}function g(y,b,w){let v=g$.inlineCode(y,b,w);return w.stack.includes("tableCell")&&(v=v.replace(/\|/g,"\\$&")),v}}function gSe(){return{exit:{taskListCheckValueChecked:VM,taskListCheckValueUnchecked:VM,paragraph:xSe}}}function ySe(){return{unsafe:[{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{listItem:vSe}}}function VM(e){const t=this.stack[this.stack.length-2];t.type,t.checked=e.type==="taskListCheckValueChecked"}function xSe(e){const t=this.stack[this.stack.length-2];if(t&&t.type==="listItem"&&typeof t.checked=="boolean"){const n=this.stack[this.stack.length-1];n.type;const r=n.children[0];if(r&&r.type==="text"){const i=t.children;let o=-1,s;for(;++o<i.length;){const l=i[o];if(l.type==="paragraph"){s=l;break}}s===n&&(r.value=r.value.slice(1),r.value.length===0?n.children.shift():n.position&&r.position&&typeof r.position.start.offset=="number"&&(r.position.start.column++,r.position.start.offset++,n.position.start=Object.assign({},r.position.start)))}}this.exit(e)}function vSe(e,t,n,r){const i=e.children[0],o=typeof e.checked=="boolean"&&i&&i.type==="paragraph",s="["+(e.checked?"x":" ")+"] ",l=n.createTracker(r);o&&l.move(s);let u=g$.listItem(e,t,n,{...r,...l.current()});return o&&(u=u.replace(/^(?:[*+-]|\d+\.)([\r\n]| {1,3})/,d)),u;function d(p){return p+s}}function bSe(){return[Jke(),vAe(),kAe(),cSe(),gSe()]}function wSe(e){return{extensions:[Zke(),bAe(e),AAe(),mSe(e),ySe()]}}const jSe={tokenize:TSe,partial:!0},y$={tokenize:ESe,partial:!0},x$={tokenize:PSe,partial:!0},v$={tokenize:OSe,partial:!0},kSe={tokenize:_Se,partial:!0},b$={name:"wwwAutolink",tokenize:CSe,previous:j$},w$={name:"protocolAutolink",tokenize:NSe,previous:k$},Aa={name:"emailAutolink",tokenize:SSe,previous:A$},qi={};function ASe(){return{text:qi}}let Jo=48;for(;Jo<123;)qi[Jo]=Aa,Jo++,Jo===58?Jo=65:Jo===91&&(Jo=97);qi[43]=Aa;qi[45]=Aa;qi[46]=Aa;qi[95]=Aa;qi[72]=[Aa,w$];qi[104]=[Aa,w$];qi[87]=[Aa,b$];qi[119]=[Aa,b$];function SSe(e,t,n){const r=this;let i,o;return s;function s(f){return!Bk(f)||!A$.call(r,r.previous)||EC(r.events)?n(f):(e.enter("literalAutolink"),e.enter("literalAutolinkEmail"),l(f))}function l(f){return Bk(f)?(e.consume(f),l):f===64?(e.consume(f),u):n(f)}function u(f){return f===46?e.check(kSe,p,d)(f):f===45||f===95||Wn(f)?(o=!0,e.consume(f),u):p(f)}function d(f){return e.consume(f),i=!0,u}function p(f){return o&&i&&Xn(r.previous)?(e.exit("literalAutolinkEmail"),e.exit("literalAutolink"),t(f)):n(f)}}function CSe(e,t,n){const r=this;return i;function i(s){return s!==87&&s!==119||!j$.call(r,r.previous)||EC(r.events)?n(s):(e.enter("literalAutolink"),e.enter("literalAutolinkWww"),e.check(jSe,e.attempt(y$,e.attempt(x$,o),n),n)(s))}function o(s){return e.exit("literalAutolinkWww"),e.exit("literalAutolink"),t(s)}}function NSe(e,t,n){const r=this;let i="",o=!1;return s;function s(f){return(f===72||f===104)&&k$.call(r,r.previous)&&!EC(r.events)?(e.enter("literalAutolink"),e.enter("literalAutolinkHttp"),i+=String.fromCodePoint(f),e.consume(f),l):n(f)}function l(f){if(Xn(f)&&i.length<5)return i+=String.fromCodePoint(f),e.consume(f),l;if(f===58){const g=i.toLowerCase();if(g==="http"||g==="https")return e.consume(f),u}return n(f)}function u(f){return f===47?(e.consume(f),o?d:(o=!0,u)):n(f)}function d(f){return f===null||xg(f)||At(f)||Bs(f)||Cy(f)?n(f):e.attempt(y$,e.attempt(x$,p),n)(f)}function p(f){return e.exit("literalAutolinkHttp"),e.exit("literalAutolink"),t(f)}}function TSe(e,t,n){let r=0;return i;function i(s){return(s===87||s===119)&&r<3?(r++,e.consume(s),i):s===46&&r===3?(e.consume(s),o):n(s)}function o(s){return s===null?n(s):t(s)}}function ESe(e,t,n){let r,i,o;return s;function s(d){return d===46||d===95?e.check(v$,u,l)(d):d===null||At(d)||Bs(d)||d!==45&&Cy(d)?u(d):(o=!0,e.consume(d),s)}function l(d){return d===95?r=!0:(i=r,r=void 0),e.consume(d),s}function u(d){return i||r||!o?n(d):t(d)}}function PSe(e,t){let n=0,r=0;return i;function i(s){return s===40?(n++,e.consume(s),i):s===41&&r<n?o(s):s===33||s===34||s===38||s===39||s===41||s===42||s===44||s===46||s===58||s===59||s===60||s===63||s===93||s===95||s===126?e.check(v$,t,o)(s):s===null||At(s)||Bs(s)?t(s):(e.consume(s),i)}function o(s){return s===41&&r++,e.consume(s),i}}function OSe(e,t,n){return r;function r(l){return l===33||l===34||l===39||l===41||l===42||l===44||l===46||l===58||l===59||l===63||l===95||l===126?(e.consume(l),r):l===38?(e.consume(l),o):l===93?(e.consume(l),i):l===60||l===null||At(l)||Bs(l)?t(l):n(l)}function i(l){return l===null||l===40||l===91||At(l)||Bs(l)?t(l):r(l)}function o(l){return Xn(l)?s(l):n(l)}function s(l){return l===59?(e.consume(l),r):Xn(l)?(e.consume(l),s):n(l)}}function _Se(e,t,n){return r;function r(o){return e.consume(o),i}function i(o){return Wn(o)?n(o):t(o)}}function j$(e){return e===null||e===40||e===42||e===95||e===91||e===93||e===126||At(e)}function k$(e){return!Xn(e)}function A$(e){return!(e===47||Bk(e))}function Bk(e){return e===43||e===45||e===46||e===95||Wn(e)}function EC(e){let t=e.length,n=!1;for(;t--;){const r=e[t][1];if((r.type==="labelLink"||r.type==="labelImage")&&!r._balanced){n=!0;break}if(r._gfmAutolinkLiteralWalkedInto){n=!1;break}}return e.length>0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}const ISe={tokenize:$Se,partial:!0};function RSe(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:FSe,continuation:{tokenize:BSe},exit:zSe}},text:{91:{name:"gfmFootnoteCall",tokenize:LSe},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:DSe,resolveTo:MSe}}}}function DSe(e,t,n){const r=this;let i=r.events.length;const o=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let s;for(;i--;){const u=r.events[i][1];if(u.type==="labelImage"){s=u;break}if(u.type==="gfmFootnoteCall"||u.type==="labelLink"||u.type==="label"||u.type==="image"||u.type==="link")break}return l;function l(u){if(!s||!s._balanced)return n(u);const d=pi(r.sliceSerialize({start:s.end,end:r.now()}));return d.codePointAt(0)!==94||!o.includes(d.slice(1))?n(u):(e.enter("gfmFootnoteCallLabelMarker"),e.consume(u),e.exit("gfmFootnoteCallLabelMarker"),t(u))}}function MSe(e,t){let n=e.length;for(;n--;)if(e[n][1].type==="labelImage"&&e[n][0]==="enter"){e[n][1];break}e[n+1][1].type="data",e[n+3][1].type="gfmFootnoteCallLabelMarker";const r={type:"gfmFootnoteCall",start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},i={type:"gfmFootnoteCallMarker",start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};i.end.column++,i.end.offset++,i.end._bufferIndex++;const o={type:"gfmFootnoteCallString",start:Object.assign({},i.end),end:Object.assign({},e[e.length-1][1].start)},s={type:"chunkString",contentType:"string",start:Object.assign({},o.start),end:Object.assign({},o.end)},l=[e[n+1],e[n+2],["enter",r,t],e[n+3],e[n+4],["enter",i,t],["exit",i,t],["enter",o,t],["enter",s,t],["exit",s,t],["exit",o,t],e[e.length-2],e[e.length-1],["exit",r,t]];return e.splice(n,e.length-n+1,...l),e}function LSe(e,t,n){const r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let o=0,s;return l;function l(f){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(f),e.exit("gfmFootnoteCallLabelMarker"),u}function u(f){return f!==94?n(f):(e.enter("gfmFootnoteCallMarker"),e.consume(f),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",d)}function d(f){if(o>999||f===93&&!s||f===null||f===91||At(f))return n(f);if(f===93){e.exit("chunkString");const g=e.exit("gfmFootnoteCallString");return i.includes(pi(r.sliceSerialize(g)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(f),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t):n(f)}return At(f)||(s=!0),o++,e.consume(f),f===92?p:d}function p(f){return f===91||f===92||f===93?(e.consume(f),o++,d):d(f)}}function FSe(e,t,n){const r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let o,s=0,l;return u;function u(b){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(b),e.exit("gfmFootnoteDefinitionLabelMarker"),d}function d(b){return b===94?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(b),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",p):n(b)}function p(b){if(s>999||b===93&&!l||b===null||b===91||At(b))return n(b);if(b===93){e.exit("chunkString");const w=e.exit("gfmFootnoteDefinitionLabelString");return o=pi(r.sliceSerialize(w)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(b),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),g}return At(b)||(l=!0),s++,e.consume(b),b===92?f:p}function f(b){return b===91||b===92||b===93?(e.consume(b),s++,p):p(b)}function g(b){return b===58?(e.enter("definitionMarker"),e.consume(b),e.exit("definitionMarker"),i.includes(o)||i.push(o),ct(e,y,"gfmFootnoteDefinitionWhitespace")):n(b)}function y(b){return t(b)}}function BSe(e,t,n){return e.check(Kh,t,e.attempt(ISe,t,n))}function zSe(e){e.exit("gfmFootnoteDefinition")}function $Se(e,t,n){const r=this;return ct(e,i,"gfmFootnoteDefinitionIndent",5);function i(o){const s=r.events[r.events.length-1];return s&&s[1].type==="gfmFootnoteDefinitionIndent"&&s[2].sliceSerialize(s[1],!0).length===4?t(o):n(o)}}function qSe(e){let n=(e||{}).singleTilde;const r={name:"strikethrough",tokenize:o,resolveAll:i};return n==null&&(n=!0),{text:{126:r},insideSpan:{null:[r]},attentionMarkers:{null:[126]}};function i(s,l){let u=-1;for(;++u<s.length;)if(s[u][0]==="enter"&&s[u][1].type==="strikethroughSequenceTemporary"&&s[u][1]._close){let d=u;for(;d--;)if(s[d][0]==="exit"&&s[d][1].type==="strikethroughSequenceTemporary"&&s[d][1]._open&&s[u][1].end.offset-s[u][1].start.offset===s[d][1].end.offset-s[d][1].start.offset){s[u][1].type="strikethroughSequence",s[d][1].type="strikethroughSequence";const p={type:"strikethrough",start:Object.assign({},s[d][1].start),end:Object.assign({},s[u][1].end)},f={type:"strikethroughText",start:Object.assign({},s[d][1].end),end:Object.assign({},s[u][1].start)},g=[["enter",p,l],["enter",s[d][1],l],["exit",s[d][1],l],["enter",f,l]],y=l.parser.constructs.insideSpan.null;y&&Ar(g,g.length,0,Ny(y,s.slice(d+1,u),l)),Ar(g,g.length,0,[["exit",f,l],["enter",s[u][1],l],["exit",s[u][1],l],["exit",p,l]]),Ar(s,d-1,u-d+3,g),u=d+g.length-2;break}}for(u=-1;++u<s.length;)s[u][1].type==="strikethroughSequenceTemporary"&&(s[u][1].type="data");return s}function o(s,l,u){const d=this.previous,p=this.events;let f=0;return g;function g(b){return d===126&&p[p.length-1][1].type!=="characterEscape"?u(b):(s.enter("strikethroughSequenceTemporary"),y(b))}function y(b){const w=Dc(d);if(b===126)return f>1?u(b):(s.consume(b),f++,y);if(f<2&&!n)return u(b);const v=s.exit("strikethroughSequenceTemporary"),j=Dc(b);return v._open=!j||j===2&&!!w,v._close=!w||w===2&&!!j,l(b)}}}class WSe{constructor(){this.map=[]}add(t,n,r){USe(this,t,n,r)}consume(t){if(this.map.sort(function(o,s){return o[0]-s[0]}),this.map.length===0)return;let n=this.map.length;const r=[];for(;n>0;)n-=1,r.push(t.slice(this.map[n][0]+this.map[n][1]),this.map[n][2]),t.length=this.map[n][0];r.push(t.slice()),t.length=0;let i=r.pop();for(;i;){for(const o of i)t.push(o);i=r.pop()}this.map.length=0}}function USe(e,t,n,r){let i=0;if(!(n===0&&r.length===0)){for(;i<e.map.length;){if(e.map[i][0]===t){e.map[i][1]+=n,e.map[i][2].push(...r);return}i+=1}e.map.push([t,n,r])}}function HSe(e,t){let n=!1;const r=[];for(;t<e.length;){const i=e[t];if(n){if(i[0]==="enter")i[1].type==="tableContent"&&r.push(e[t+1][1].type==="tableDelimiterMarker"?"left":"none");else if(i[1].type==="tableContent"){if(e[t-1][1].type==="tableDelimiterMarker"){const o=r.length-1;r[o]=r[o]==="left"?"center":"right"}}else if(i[1].type==="tableDelimiterRow")break}else i[0]==="enter"&&i[1].type==="tableDelimiterRow"&&(n=!0);t+=1}return r}function VSe(){return{flow:{null:{name:"table",tokenize:GSe,resolveAll:YSe}}}}function GSe(e,t,n){const r=this;let i=0,o=0,s;return l;function l(D){let B=r.events.length-1;for(;B>-1;){const U=r.events[B][1].type;if(U==="lineEnding"||U==="linePrefix")B--;else break}const F=B>-1?r.events[B][1].type:null,V=F==="tableHead"||F==="tableRow"?C:u;return V===C&&r.parser.lazy[r.now().line]?n(D):V(D)}function u(D){return e.enter("tableHead"),e.enter("tableRow"),d(D)}function d(D){return D===124||(s=!0,o+=1),p(D)}function p(D){return D===null?n(D):Le(D)?o>1?(o=0,r.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(D),e.exit("lineEnding"),y):n(D):tt(D)?ct(e,p,"whitespace")(D):(o+=1,s&&(s=!1,i+=1),D===124?(e.enter("tableCellDivider"),e.consume(D),e.exit("tableCellDivider"),s=!0,p):(e.enter("data"),f(D)))}function f(D){return D===null||D===124||At(D)?(e.exit("data"),p(D)):(e.consume(D),D===92?g:f)}function g(D){return D===92||D===124?(e.consume(D),f):f(D)}function y(D){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(D):(e.enter("tableDelimiterRow"),s=!1,tt(D)?ct(e,b,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(D):b(D))}function b(D){return D===45||D===58?v(D):D===124?(s=!0,e.enter("tableCellDivider"),e.consume(D),e.exit("tableCellDivider"),w):N(D)}function w(D){return tt(D)?ct(e,v,"whitespace")(D):v(D)}function v(D){return D===58?(o+=1,s=!0,e.enter("tableDelimiterMarker"),e.consume(D),e.exit("tableDelimiterMarker"),j):D===45?(o+=1,j(D)):D===null||Le(D)?E(D):N(D)}function j(D){return D===45?(e.enter("tableDelimiterFiller"),k(D)):N(D)}function k(D){return D===45?(e.consume(D),k):D===58?(s=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(D),e.exit("tableDelimiterMarker"),S):(e.exit("tableDelimiterFiller"),S(D))}function S(D){return tt(D)?ct(e,E,"whitespace")(D):E(D)}function E(D){return D===124?b(D):D===null||Le(D)?!s||i!==o?N(D):(e.exit("tableDelimiterRow"),e.exit("tableHead"),t(D)):N(D)}function N(D){return n(D)}function C(D){return e.enter("tableRow"),P(D)}function P(D){return D===124?(e.enter("tableCellDivider"),e.consume(D),e.exit("tableCellDivider"),P):D===null||Le(D)?(e.exit("tableRow"),t(D)):tt(D)?ct(e,P,"whitespace")(D):(e.enter("data"),_(D))}function _(D){return D===null||D===124||At(D)?(e.exit("data"),P(D)):(e.consume(D),D===92?M:_)}function M(D){return D===92||D===124?(e.consume(D),_):_(D)}}function YSe(e,t){let n=-1,r=!0,i=0,o=[0,0,0,0],s=[0,0,0,0],l=!1,u=0,d,p,f;const g=new WSe;for(;++n<e.length;){const y=e[n],b=y[1];y[0]==="enter"?b.type==="tableHead"?(l=!1,u!==0&&(GM(g,t,u,d,p),p=void 0,u=0),d={type:"table",start:Object.assign({},b.start),end:Object.assign({},b.end)},g.add(n,0,[["enter",d,t]])):b.type==="tableRow"||b.type==="tableDelimiterRow"?(r=!0,f=void 0,o=[0,0,0,0],s=[0,n+1,0,0],l&&(l=!1,p={type:"tableBody",start:Object.assign({},b.start),end:Object.assign({},b.end)},g.add(n,0,[["enter",p,t]])),i=b.type==="tableDelimiterRow"?2:p?3:1):i&&(b.type==="data"||b.type==="tableDelimiterMarker"||b.type==="tableDelimiterFiller")?(r=!1,s[2]===0&&(o[1]!==0&&(s[0]=s[1],f=Mf(g,t,o,i,void 0,f),o=[0,0,0,0]),s[2]=n)):b.type==="tableCellDivider"&&(r?r=!1:(o[1]!==0&&(s[0]=s[1],f=Mf(g,t,o,i,void 0,f)),o=s,s=[o[1],n,0,0])):b.type==="tableHead"?(l=!0,u=n):b.type==="tableRow"||b.type==="tableDelimiterRow"?(u=n,o[1]!==0?(s[0]=s[1],f=Mf(g,t,o,i,n,f)):s[1]!==0&&(f=Mf(g,t,s,i,n,f)),i=0):i&&(b.type==="data"||b.type==="tableDelimiterMarker"||b.type==="tableDelimiterFiller")&&(s[3]=n)}for(u!==0&&GM(g,t,u,d,p),g.consume(t.events),n=-1;++n<t.events.length;){const y=t.events[n];y[0]==="enter"&&y[1].type==="table"&&(y[1]._align=HSe(t.events,n))}return e}function Mf(e,t,n,r,i,o){const s=r===1?"tableHeader":r===2?"tableDelimiter":"tableData",l="tableContent";n[0]!==0&&(o.end=Object.assign({},Il(t.events,n[0])),e.add(n[0],0,[["exit",o,t]]));const u=Il(t.events,n[1]);if(o={type:s,start:Object.assign({},u),end:Object.assign({},u)},e.add(n[1],0,[["enter",o,t]]),n[2]!==0){const d=Il(t.events,n[2]),p=Il(t.events,n[3]),f={type:l,start:Object.assign({},d),end:Object.assign({},p)};if(e.add(n[2],0,[["enter",f,t]]),r!==2){const g=t.events[n[2]],y=t.events[n[3]];if(g[1].end=Object.assign({},y[1].end),g[1].type="chunkText",g[1].contentType="text",n[3]>n[2]+1){const b=n[2]+1,w=n[3]-n[2]-1;e.add(b,w,[])}}e.add(n[3]+1,0,[["exit",f,t]])}return i!==void 0&&(o.end=Object.assign({},Il(t.events,i)),e.add(i,0,[["exit",o,t]]),o=void 0),o}function GM(e,t,n,r,i){const o=[],s=Il(t.events,n);i&&(i.end=Object.assign({},s),o.push(["exit",i,t])),r.end=Object.assign({},s),o.push(["exit",r,t]),e.add(n+1,0,o)}function Il(e,t){const n=e[t],r=n[0]==="enter"?"start":"end";return n[1][r]}const KSe={name:"tasklistCheck",tokenize:QSe};function XSe(){return{text:{91:KSe}}}function QSe(e,t,n){const r=this;return i;function i(u){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(u):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(u),e.exit("taskListCheckMarker"),o)}function o(u){return At(u)?(e.enter("taskListCheckValueUnchecked"),e.consume(u),e.exit("taskListCheckValueUnchecked"),s):u===88||u===120?(e.enter("taskListCheckValueChecked"),e.consume(u),e.exit("taskListCheckValueChecked"),s):n(u)}function s(u){return u===93?(e.enter("taskListCheckMarker"),e.consume(u),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),l):n(u)}function l(u){return Le(u)?t(u):tt(u)?e.check({tokenize:JSe},t,n)(u):n(u)}}function JSe(e,t,n){return ct(e,r,"whitespace");function r(i){return i===null?n(i):t(i)}}function ZSe(e){return I7([ASe(),RSe(),qSe(e),VSe(),XSe()])}const eCe={};function tCe(e){const t=this,n=e||eCe,r=t.data(),i=r.micromarkExtensions||(r.micromarkExtensions=[]),o=r.fromMarkdownExtensions||(r.fromMarkdownExtensions=[]),s=r.toMarkdownExtensions||(r.toMarkdownExtensions=[]);i.push(ZSe(n)),o.push(bSe()),s.push(wSe(n))}function S$(){return a.jsxs("div",{className:"mt-12 rounded-lg relative overflow-hidden",style:{background:"linear-gradient(135deg, #0d1f0a 0%, #1a2e10 50%, #0d1f0a 100%)"},children:[a.jsx("div",{className:"absolute inset-0 pointer-events-none",style:{backgroundImage:` 1136 linear-gradient(rgba(191,245,137,0.06) 1px, transparent 1px), 1137 linear-gradient(90deg, rgba(191,245,137,0.06) 1px, transparent 1px) 1138 `,backgroundSize:"32px 32px"}}),a.jsx("div",{className:"absolute left-0 right-0 pointer-events-none",style:{top:"50%",height:"1px",background:"linear-gradient(90deg, transparent 0%, rgba(191,245,137,0.4) 50%, transparent 100%)",animation:"pulse-green 3s ease-in-out infinite"}}),a.jsx("div",{className:"absolute pointer-events-none",style:{top:"-40px",right:"-30px",width:"140px",height:"140px",borderRadius:"50%",background:"radial-gradient(circle, rgba(191,245,137,0.15) 0%, transparent 70%)",filter:"blur(30px)"}}),a.jsxs("div",{className:"relative z-10 px-6 py-6 md:px-10 md:py-8 flex flex-col md:flex-row items-center justify-between gap-4 text-center md:text-left",children:[a.jsxs("div",{className:"flex items-center gap-3",children:[a.jsx(xt,{size:16,style:{color:"#BFF589"},className:"animate-pulse-green flex-shrink-0"}),a.jsxs("div",{children:[a.jsx("h2",{className:"font-display text-lg md:text-xl mb-1",style:{color:"#F9F9F9"},children:"Book Your Energy Strategy Call"}),a.jsx("p",{className:"text-sm leading-relaxed",style:{color:"#A0A0A0"}
1138,children:"30-minute conversation about your operation â no sales pitch."})]})]}),a.jsxs(ye,{to:"/contact",className:"btn-primary inline-flex items-center gap-2 text-sm flex-shrink-0",style:{background:"#BFF589",color:"#1A1A1A"},children:["Book a Strategy Call ",a.jsx(Ve,{size:14})]})]})]})}const PC={"grid-intelligence":{name:"Grid Intelligence",description:"Understand the markets, mechanisms, and signals that determine your energy costs.",pillarPage:"/strategy-layer",pillarPageLabel:"Explore the Strategy Layer",posts:["dam-vs-rtm","ercot-vs-pjm","ercot-demand-response","ercot-west-load-zone","ercot-4cp-2025-report","q1-2026-energy-outlook","stay-ahead-ercot-pjm","pjm-capacity-prices","ercot-real-time-lmp-data-ai-agent-lod-mcp","ercot-4cp-being-rewritten-flexibility-strategy"]},"operational-automation":{name:"Operational Automation",description:"Automate curtailment, monitor fleets, and execute energy decisions in real time.",pillarPage:"/control-layer",pillarPageLabel:"Explore the Control Layer",posts:["bitcoin-mining-management-platform","bitcoin-miners-profits-peaks","real-time-curtailment","identify-underperforming-bitcoin-miners","bitcoin-mining-ops-wrong-numbers","product-update-may-2025","lod-vs-braiins-vs-luxor-vs-foreman","bitcoin-mining-management-software-cost","best-bitcoin-mining-management-platform","bitcoin-mining-management-software"]},"compute-strategy":{name:"Compute Strategy",description:"Navigate the pivot from mining to AI and flexible compute workloads.",pillarPage:"/flexible-compute",pillarPageLabel:"Explore Flexible Compute",posts:["mining-to-ai","lod-launches-clod","lod-pilot-flexible-ai-inference-dominion-energy"]},company:{name:"Company & Updates",description:"News, partnerships, and milestones from LÅD Technologies.",pillarPage:"/about",pillarPageLabel:"About LÅD",posts:["soc-1-certification","google-accelerator","crypto-power-alliance","bitfarms","nuenergen-data-center"]}},OC={};Object.entries(PC).forEach(([e,t])=>{t.posts.forEach(n=>{OC[n]=e})});const nCe={"dam-vs-rtm":{title:"GRID 101: Day-Ahead Market (DAM) vs Real-Time Market (RTM)",tag:"Education"},"ercot-vs-pjm":{title:"GRID 101: ERCOT vs PJM â Two Markets, Two Playbooks",tag:"Education"},"ercot-demand-response":{title:"ERCOT Demand Response Programs: An Operator's Guide",tag:"Grid"},"ercot-west-load-zone":{title:"What Bitcoin Miners Need to Know About the ERCOT West Load Zone",tag:"Mining"},"ercot-4cp-2025-report":{title:"Sixty Minutes That Set Your Entire Year: ERCOT 4CP and How to Be Ready for 2026",tag:"Grid"},"q1-2026-energy-outlook":{title:"Q1 2026 Energy Outlook: Rising Capacity Costs and Persistent Volatility",tag:"Grid"},"stay-ahead-ercot-pjm":{title:"10 Ways to Stay Ahead of Energy Rule Changes in ERCOT, PJM, and Beyond",tag:"Grid"},"pjm-capacity-prices":{title:"PJM's Record Capacity Prices: Turning a Market Shock into an Operator Advantage",tag:"Grid"},"ercot-real-time-lmp-data-ai-agent-lod-mcp":{title:"Real-Time ERCOT LMP Data for AI Agents via the LÅD MCP Server",tag:"Grid"},"ercot-4cp-being-rewritten-flexibility-strategy":{title:"ERCOT 4CP Is Being Rewritten: What If Your Best Flexibility Strategy Stops Paying Off?",tag:"Grid"},"bitcoin-mining-management-platform":{title:"What to Look for in a Bitcoin Mining Management Platform",tag:"Mining"},"bitcoin-miners-profits-peaks":{title:"How Bitcoin Miners Lose Profit During Grid Peaks â And What Better Curtailment Looks Like",tag:"Mining"},"real-time-curtailment":{title:"Real-Time Curtailment for Data Centers: What It Takes to Actually Do It",tag:"Mining"},"identify-underperforming-bitcoin-miners":{title:"Why Your Miners Are Probably Underperforming (And How to Know for Sure)",tag:"Mining"},"bitcoin-mining-ops-wrong-numbers":{title:"Bitcoin Mining Ops Managers Are Optimizing the Wrong Numbers",tag:"Mining"},"mining-to-ai":{title:"Should Your Data Center Pivot from Mining to AI?",tag:"Strategy"},"lod-launches-clod":{title:"LÅD Launches CLÅD, the World's First Compute Flexibility Platform for AI Inference",tag:"Product"},"lod-pilot-flexible-ai-inference-dominion-energy":{title:"LÅD Pilots Flexible AI Inference with Dominion Energy",tag:"Strategy"},"product-update-may-2025":{title:"May 2025 Product Update: Improved Coincidental Peak Forecasts, Expanded Miner Support, and Platform Enhancements",tag:"Product"},"lod-vs-braiins-vs-luxor-vs-foreman":{title:"LÅD vs Braiins vs Luxor vs Foreman: The Honest 2026 Comparison",tag:"Mining"},"bitcoin-mining-management-software-cost":{title:"What Bitcoin Mining Management Software Actually Costs in 2026",tag:"Mining"},"best-bitcoin-mining-management-platform":{title:"Which Bitcoin Mining Management Platform Actually Fits Your Site",tag:"Mining"},"bitcoin-mining-management-software":{title:"What Bitcoin Mining Management Software Actually Does (And Why the Feature List Won't Tell You)",tag:"Mining"},"soc-1-certification":{title:"LÅD Achieves SOC 1 Type II Certification Across Its Full Product Suite",tag:"Company"},"google-accelerator":{title:"LÅD Technologies Selected for Google for Startups Accelerator: AI for Energy",tag:"Company"},"crypto-power-alliance":{title:"LÅD and Crypto Power Launch Alliance Across ERCOT",tag:"Company"},bitfarms:{title:"LÅD Rolls Out Globally with Bitfarms, Optimizing Operations Management Across All Sites",tag:"Company"},"nuenergen-data-center":{title:"LÅD and NuEnergen Team Up at Data Center World 2025",tag:"Company"}};function rCe(e,t=3){const n=OC[e];return n?PC[n].posts.filter(i=>i!==e).slice(0,t).map(i=>({slug:i,...nCe[i]})):[]}function iCe(e){const t=OC[e];return t?{key:t,...PC[t]}:null}function C$({slug:e}){const t=iCe(e),n=rCe(e,3);return!t||n.length===0?null:a.jsxs("div",{className:"mt-16 pt-12",style:{borderTop:"1px solid rgba(255,255,255,0.06)"},children:[a.jsxs("div",{className:"mb-8",children:[a.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[a.jsx(EU,{size:14,style:{color:"#BFF589"}}),a.jsx("span",{className:"font-mono text-xs text-lod-green uppercase tracking-wider",children:t.name})]}),a.jsx("h2",{className:"font-display text-2xl text-lod-white",children:"Continue Your Journey"}),a.jsx("p",{className:"text-lod-gray text-sm mt-2",children:t.description})]}),a.jsx("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4 mb-8",children:n.map(r=>a.jsxs(ye,{to:`/blog/${r.slug}`,className:"card-obsidian p-5 group block",children:[a.jsx("span",{className:"tag-chip mb-3 inline-block",children:r.tag}),a.jsx("h3",{className:"text-lod-white text-sm font-semibold leading-snug group-hover:text-lod-green transition-colors mt-2",children:r.title}),a.jsxs("div",{className:"flex items-center gap-2 text-lod-green text-xs font-mono mt-4",children:["Read ",a.jsx(Ve,{size:12})]})]},r.slug))}),a.jsxs(ye,{to:t.pillarPage,className:"btn-outline inline-flex items-center gap-2 text-sm",children:[t.pillarPageLabel," ",a.jsx(Ve,{size:14})]})]})}const aCe=({className:e})=>a.jsxs("svg",{viewBox:"0 0 1000 212",className:e,fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[a.jsx("path",{d:"M352.726 207.054C327.355 207.054 311.898 195.097 311.898 166.226V0H326.011C342.376 0 355.642 13.2665 355.642 29.6316V153.46C355.642 162.792 360.
1138017 166.291 368.182 166.291H389.553C405.918 166.291 419.184 179.558 419.184 195.923V207.054H352.726Z",fill:"#F9F9F9"}),a.jsx("path",{d:"M477.966 207.053C445.596 207.053 427.337 188.972 427.337 151.353V50.742H441.449C457.814 50.742 471.081 64.0085 471.081 80.3735V141.146C471.081 165.351 478.372 175.849 494.119 175.849C511.908 175.849 522.407 163.892 522.407 139.104V50.742H536.519C552.884 50.742 566.151 64.0085 566.151 80.3735V207.053H538.349C531.638 207.053 526.198 201.613 526.198 194.902C519.483 205.028 500.713 207.053 477.966 207.053Z",fill:"#F9F9F9"}),a.jsx("path",{d:"M577.202 207.053L629.917 131.984C631.709 129.431 631.711 126.03 629.921 123.475L578.952 50.742H614.184C621.139 50.742 627.631 54.2276 631.473 60.0249L652.336 91.5025C655.28 95.9445 661.811 95.918 664.719 91.4522L685.092 60.1657C688.919 54.2874 695.459 50.742 702.473 50.742H738.471L687.495 123.762C685.71 126.319 685.717 129.721 687.514 132.27L740.221 207.053H704.885C697.827 207.053 691.254 203.464 687.437 197.527L665.619 163.589C662.717 159.073 656.125 159.048 653.188 163.54L630.878 197.662C627.046 203.521 620.518 207.053 613.517 207.053H577.202Z",fill:"#F9F9F9"}),a.jsx("path",{d:"M814.495 210.553C766.669 210.553 739.121 178.475 739.121 128.898C739.121 79.6138 766.669 47.2434 814.495 47.2434C862.322 47.2434 889.869 79.6138 889.869 128.898C889.869 178.475 862.322 210.553 814.495 210.553ZM814.495 177.017C836.367 177.017 848.615 159.227 848.615 128.898C848.615 98.5694 836.367 80.7803 814.495 80.7803C792.623 80.7803 780.083 98.5694 780.083 128.898C780.083 159.227 792.623 177.017 814.495 177.017Z",fill:"#F9F9F9"}),a.jsx("path",{d:"M906.1 207.053V50.742H947.511L948.386 82.2375C954.801 60.074 966.466 50.742 985.714 50.742H1000V72.6139C1000 80.5058 993.606 86.9035 985.714 86.9035C961.217 86.9035 949.844 95.9439 949.844 119.274V177.421C949.844 193.787 936.577 207.053 920.212 207.053H906.1Z",fill:"#F9F9F9"}),a.jsx("path",{d:"M95.5949 20.1346C107.989 0.258741 136.946 0.316512 149.26 20.2417L237.499 163.017C250.503 184.058 235.369 211.204 210.634 211.205H147.834C160.114 197.219 163.753 175.903 153.039 157.604L152.614 156.891L110.35 87.4495C100.551 71.35 83.3179 64.2227 66.9415 66.0852L95.5949 20.1346Z",fill:"#BFF589"}),a.jsx("path",{d:"M30.9802 211.315H101.707C125.908 211.315 140.734 184.473 128.046 163.631L92.84 105.796C80.789 85.9993 52.355 85.9421 40.2262 105.69L4.70563 163.525C-8.0932 184.364 6.72419 211.315 30.9802 211.315Z",fill:"#BFF589"})]}),YM=[{name:"LÅD",featured:!0,node:a.jsx("img",{src:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/6cf86e0a9_Lod-Green-no-Background.png",alt:"LÅD logo",className:"h-9 md:h-11 w-auto object-contain"})},{name:"Braiins",node:a.jsx("img",{src:"https://design.braiins.com/media/pages/braiins/logos/braiins-logo/9b5edfead6-1783617672/braiins-logo-white-rgb.svg",alt:"Braiins logo",className:"h-7 md:h-9 w-auto object-contain"})},{name:"Luxor",node:a.jsx(aCe,{className:"h-7 md:h-9 w-auto"})},{name:"Foreman (OBM)",node:a.jsx("img",{src:"https://mma.prnewswire.com/media/2774703/image2_Logo.jpg?w=500",alt:"OBM (Foreman) logo",className:"h-9 md:h-11 w-auto object-contain rounded-sm bg-white px-2 py-1"})}];function oCe(){return a.jsxs("div",{className:"w-full py-10 px-6 md:px-10 relative overflow-hidden",style:{background:"#111",border:"1px solid rgba(255,255,255,0.08)",borderRadius:"2px"},children:[a.jsx("div",{"aria-hidden":"true",className:"absolute inset-0 grid-blueprint opacity-40"}),a.jsx("p",{className:"relative z-10 font-mono text-[10px] uppercase tracking-widest text-center mb-6",style:{color:"#A0A0A0",letterSpacing:"0.2em"},children:"The 2026 Head-to-Head"}),a.jsx("div",{className:"relative z-10 grid grid-cols-2 md:grid-cols-4 gap-4",children:YM.map((e,t)=>a.jsxs("div",{className:"relative flex items-center justify-center",children:[a.jsx("div",{className:"w-full h-24 md:h-28 rounded-md flex items-center justify-center px-4",style:{background:e.featured?"rgba(191,245,137,0.06)":"rgba(255,255,255,0.02)",border:e.featured?"1px solid rgba(191,245,137,0.4)":"1px solid rgba(255,255,255,0.08)",boxShadow:e.featured?"0 0 30px rgba(191,245,137,0.12)":"none"},children:e.node}),t<YM.length-1&&a.jsx("span",{className:"hidden md:flex absolute -right-4 top-1/2 -translate-y-1/2 items-center justify-center w-8 h-8 rounded-full font-mono text-[10px] font-semibold z-20",style:{background:"#1A1A1A",border:"1px solid rgba(191,245,137,0.3)",color:"#BFF589"},children:"VS"})]},e.name))})]})}const sCe={h1:({children:e})=>a.jsx("h1",{className:"font-display text-3xl text-lod-white mt-10 mb-4",children:e}),h2:({children:e})=>a.jsxs("h2",{className:"font-display text-2xl text-lod-white mt-10 mb-4 flex items-center gap-3",children:[a.jsx(xt,{size:20,style:{color:"#BFF589"}}),e]}),h3:({children:e})=>a.jsx("h3",{className:"font-display text-xl text-lod-white mt-8 mb-3",children:e}),p:({children:e})=>a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-5",children:e}),strong:({children:e})=>a.jsx("strong",{className:"text-lod-green font-semibold",children:e}),ul:({children:e})=>a.jsx("ul",{className:"space-y-3 mb-5 ml-4",children:e}),ol:({children:e})=>a.jsx("ol",{className:"space-y-3 mb-5 ml-4 list-decimal",children:e}),li:({children:e})=>a.jsxs("li",{className:"flex items-start gap-3 text-lod-gray text-base",children:[a.jsx("span",{className:"mt-2 w-1.5 h-1.5 rounded-full flex-shrink-0",style:{background:"#BFF589"}}),a.jsx("span",{children:e})]}),blockquote:({children:e})=>a.jsx("blockquote",{className:"border-l-4 pl-6 py-4 my-6 rounded-r-lg",style:{borderColor:"#BFF589",background:"rgba(191,245,137,0.05)"},children:a.jsx("p",{className:"text-lod-white italic text-base",children:e})}),a:({href:e,children:t})=>a.jsx("a",{href:e,target:"_blank",rel:"noopener noreferrer",className:"text-lod-green hover:underline font-semibold",children:t}),table:({children:e})=>a.jsx("div",{className:"overflow-x-auto mb-6 -mx-6 px-6 md:mx-0 md:px-0",children:a.jsx("table",{className:"border-collapse text-sm",style:{minWidth:"600px",width:"100%"},children:e})}),thead:({children:e})=>a.jsx("thead",{children:e}),tbody:({children:e})=>a.jsx("tbody",{children:e}),tr:({children:e})=>a.jsx("tr",{style:{borderBottom:"1px solid rgba(255,255,255,0.08)"},children:e}),th:({children:e})=>a.jsx("th",{className:"text-left text-lod-white font-semibold py-3 px-4 whitespace-nowrap",style:{borderBottom:"2px s
1138olid rgba(191,245,137,0.3)"},children:e}),td:({children:e})=>a.jsx("td",{className:"text-lod-gray py-3 px-4 align-top",children:e}),img:({src:e,alt:t})=>{const n=t&&t.toLowerCase().includes("architecture");return a.jsxs("div",{style:{margin:n?"20px auto":"24px 0",textAlign:"center"},children:[a.jsxs("div",{style:{display:"inline-block",padding:n?"14px":"0",background:n?"rgba(191,245,137,0.03)":"transparent",border:n?"1px solid rgba(191,245,137,0.15)":"none",borderRadius:"10px",position:"relative",width:n?"100%":"auto",maxWidth:n?"420px":"100%",overflow:"hidden"},children:[n&&a.jsx("span",{style:{position:"absolute",top:"-1px",left:"20px",width:"32px",height:"2px",background:"#BFF589"}}),a.jsx("img",{src:e,alt:t,style:{width:"100%",height:n?"200px":"auto",borderRadius:"8px",display:"block",margin:"0 auto",objectFit:"cover",objectPosition:"center"}})]}),t&&n&&a.jsx("p",{className:"font-mono",style:{fontSize:"10px",letterSpacing:"0.1em",textTransform:"uppercase",color:"#A0A0A0",marginTop:"8px",opacity:.6},children:t})]})}};function lCe(e){return e.replace(/!\[([^\]]*)\]\([^)]+\)/g,"").replace(/#{1,6}\s+/g,"").replace(/\*\*(.*?)\*\*/g,"$1").replace(/\*(.*?)\*/g,"$1").replace(/`(.*?)`/g,"$1").replace(/\[([^\]]+)\]\([^)]+\)/g,"$1").replace(/^>\s+/gm,"").replace(/^---$/gm,"").replace(/\n{2,}/g," ").replace(/\n/g," ").trim()}function cCe({post:e}){const t=`https://lod.io/blog/${e.slug}`,n=lCe(e.content||""),r=n.split(/\s+/).filter(Boolean).length,i={"@context":"https://schema.org","@type":e.faq&&e.faq.length>0?["Article","FAQPage"]:"Article",headline:e.title,description:e.summary,image:e.image_url,datePublished:e.published_date,dateModified:e.updated_date||e.published_date,articleBody:n,wordCount:r,author:{"@type":"Organization",name:"LÅD Technologies"},publisher:{"@type":"Organization",name:"LÅD Technologies",logo:{"@type":"ImageObject",url:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/6cf86e0a9_Lod-Green-no-Background.png"}},mainEntityOfPage:{"@type":"WebPage","@id":t},...e.faq&&e.faq.length>0?{mainEntity:e.faq.map(o=>
1138({"@type":"Question",name:o.q,acceptedAnswer:{"@type":"Answer",text:o.a}}))}:{}};return a.jsxs(a.Fragment,{children:[a.jsx(He,{title:`${e.title} | LÅD`,description:e.summary,canonical:t,ogImage:e.image_url,schemaData:i}),a.jsxs(Je,{children:[a.jsx("section",{className:"py-16",style:{background:"#1A1A1A",borderBottom:"1px solid rgba(255,255,255,0.06)"},children:a.jsxs("div",{className:"max-w-[860px] mx-auto px-6",children:[a.jsx(ye,{to:"/blog",className:"flex items-center gap-2 text-lod-green text-sm font-mono mb-8 hover:text-lod-green transition-colors",children:"â Back to Blog"}),a.jsxs("div",{className:"flex items-center gap-3 mb-5",children:[e.tag&&a.jsx("span",{className:"tag-chip",children:e.tag}),a.jsx("span",{className:"font-mono text-xs text-lod-gray",children:e.published_date})]}),a.jsx("h1",{className:"font-display text-3xl md:text-4xl text-lod-white mb-6 leading-tight",children:e.title}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-8",children:e.summary})]})}),e.slug==="lod-vs-braiins-vs-luxor-vs-foreman"?a.jsx("div",{className:"max-w-[860px] mx-auto px-6 -mt-2 mb-0",children:a.jsx(oCe,{})}):e.image_url&&a.jsx("div",{className:"max-w-[860px] mx-auto px-6 -mt-2 mb-0",children:a.jsx("div",{className:"w-full overflow-hidden rounded-sm",style:{border:"1px solid rgba(255,255,255,0.08)",maxHeight:"360px"},children:a.jsx("img",{src:e.image_url,alt:tC(e.slug,e.title),className:"w-full h-full block",style:{maxHeight:"360px",objectFit:"cover"}})})}),a.jsx("section",{className:"py-16",style:{background:"#1A1A1A"},children:a.jsxs("div",{className:"max-w-[860px] mx-auto px-6",children:[a.jsx(Fk,{className:"prose prose-invert prose-sm md:prose-base max-w-none",remarkPlugins:[tCe],components:sCe,children:e.content}),a.jsx(S$,{}),a.jsx("div",{className:"mt-6",children:a.jsx(eC,{variant:"compact"})}),a.jsx(C$,{slug:e.slug}),e.faq&&e.faq.length>0&&a.jsxs("div",{className:"mt-16 pt-12",style:{borderTop:"1px solid rgba(255,255,255,0.06)"},children:[a.jsxs("div",{className:"mb-10",children:[a.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[a.jsx("span",{className:"w-1 h-6 rounded-full",style:{background:"#BFF589"}}),a.jsx("span",{className:"font-mono text-xs text-lod-green uppercase tracking-wider",children:"Common Questions"})]}),a.jsx("h2",{className:"font-display text-3xl text-lod-white",children:"Frequently Asked Questions"})]}),a.jsx(Sy,{type:"single",collapsible:!0,className:"space-y-3",children:e.faq.map((o,s)=>a.jsxs(Hh,{value:`faq-${s}`,style:{border:"1px solid rgba(191,245,137,0.15)",borderRadius:"8px",overflow:"hidden",background:"rgba(191,245,137,0.02)"},children:[a.jsx(Vh,{className:"text-lod-white hover:text-lod-green px-6 py-4 hover:bg-white/5 transition-colors",children:o.q}),a.jsx(Gh,{className:"text-lod-gray px-6 pb-4 pt-2 text-base leading-relaxed",children:o.a})]},s))})]})]})})]})]})}function uCe({schema:e}){const t=O.useRef(!1);return O.useEffect(()=>{if(t.current)return;const n=document.querySelector('script[data-howto-schema="true"]');n&&n.remove();const r=document.createElement("script");return r.type="application/ld+json",r.setAttribute("data-howto-schema","true"),r.textContent=JSON.stringify(e),document.head.appendChild(r),t.current=!0,()=>{const i=document.querySelector('script[data-howto-schema="true"]');i&&i.remove(),t.current=!1}},[]),null}function dCe(e){return(e.contentSections?e.contentSections.filter(n=>typeof n=="string"&&!n.startsWith("CHART:")):[e.content||""]).join(" ").replace(/#{1,6}\s+/g,"").replace(/\*\*(.*?)\*\*/g,"$1").replace(/\*(.*?)\*/g,"$1").replace(/`(.*?)`/g,"$1").replace(/\[([^\]]+)\]\([^)]+\)/g,"$1").replace(/^>\s+/gm,"").replace(/\n{2,}/g," ").replace(/\n/g," ").trim()}function hCe(e){return e.split(/\s+/).filter(Boolean).length}function pCe(e){const t=e&&e.match(/(\d+)/);return t?`PT${t[1]}M`:"PT5M"}const fCe={"bitcoin-mining-management-platform":{title:"What to Look for in a Bitcoin Mining Management Platform",author:"Nima Amir",date:"February 5, 2026",readTime:"8 mins read",tag:"Mining",img:"https://cdn.prod.website-files.com/68b19ac1ace2893b7432904a/6983d98f53c42dc1adde8b9c_6394de0c-9a0c-42e4-917a-dda152908415.jpg",content:`*Part of our complete [Bitcoin Mining Management Software Guide](/resources/bitcoin-mining-management-software-guide) â everything you need to know about this category in 2026.* 1139 1140A Bitcoin mining management platform must handle real-time fleet monitoring, automated curtailment, and energy market integration. Most platforms fail on the last two. They monitor machines well but do not automate responses to grid conditions or energy prices. The best platforms connect fleet behavior directly to wholesale market signals, enabling sub-30-second response times and transparent ROI tracking. 1141 1142## TL;DR 1143 1144**TL;DR:** A solid Bitcoin mining platform monitors your fleet in real-time, automates curtailment based on energy market signals, and integrates directly with ERCOT, PJM, and other wholesale markets. It should execute curtailment in under 30 seconds, track profitability per site and per pool, and provide clean audit trails for compliance. The platforms that only monitor are not managing. The platforms that automate but do not integrate with energy markets leave millions on the table. 1145 1146**Hint: It's Energy** 1147 1148Energy determines uptime, risk, and long-term scalability. Yet most Bitcoin mining management platforms were not designed with this reality in mind. They focu
1148s on machine-level monitoring and post-event reporting. 1149 1150Electricity markets do not wait for dashboards to update. Grid conditions change faster than most monitoring tools can react. If your platform only tells you what already happened, it is not managing risk. It is documenting it. 1151 1152## The Core Problem: Most Mining Tools React Too Literally 1153 1154Most platforms in this industry were built to optimize machines. LÅD was built to optimize energy behavior. That distinction matters more than people realize. 1155 1156A common assumption among miners is that the moment price hits a certain threshold, you shut everything down. Price crosses $X, you curtail. Simple. Clean. Wrong more often than people admit. 1157 1158Energy does not behave like a switch. Neither do miners. 1159 1160If your Whatsminers take 30 minutes to ramp back up, should you immediately curtail the second LMP touches $100 MWh? Probably not. In many cases, it is smarter to ride through 10 or 15 minutes of volatility and see where prices settle. Short-lived spikes are normal. They often correct. Curtailing too aggressively can actually be more inefficient than staying online briefly. 1161 1162This is where most tools fail. They treat energy decisions as binary. On or off. Curtail or run. Real operations live in the gray. 1163 1164## Why Timing Beats Price Alone 1165 1166Energy is the single largest operating expense in Bitcoin mining, but price alone is not the full story. Timing matters just as much, sometimes more. 1167 1168Many operators make decisions based purely on today's conditions. What often gets ignored is how today's decision affects costs months down the line. 1169 1170In ERCOT, transmission charges for the following year are heavily influenced by when you consume power during system peaks. Being online during a handful of critical intervals can lock in higher TDSP charges for the entire next year. Avoiding those moments can materially lower future costs, even if it means tolerating some short-term volatility elsewhere. 1171 1172This is the blind spot. Operators optimize for today's bill and forget that the grid remembers. 1173 1174## Over-Curtailing Is a Hidden Cost 1175 1176When miners first encounter grid volatility, the instinct is to shut everything down. Full-site curtailment feels safe. It feels disciplined. It is often neither. 1177 1178Curtailing too early or too often can create unnecessary downtime, missed revenue, and inefficient ramp cycles. If your infrastructure takes time to stabilize, repeatedly cycling on short-lived price spikes can hurt you more than staying online through brief turbulence. 1179 1180The goal is not to curtail as fast as possible. The goal is to curtail when it actually matters. 1181 1182## Energy Decisions Are Operational Decisions 1183 1184This is the gap LÅD was designed to close. 1185 1186Instead of treating energy as an external signal layered on top of mining operations, LÅD integrates energy behavior directly into how sites are run. It allows operators to account for ramp times, volatility tolerance, and longer-term cost exposure â not just instantaneous price. 1187 1188Curtailment becomes a strategic action, not a reflex. 1189 1190## Built for Operators, Not Energy Traders 1191 1192LÅD is not built for traders or theorists. It is built for technically strong miners who understand infrastructure, uptime, and operations, but do not want to become energy specialists just to stay profitable. 1193 1194Energy stops being something you react to and becomes something you control. 1195 1196## Conclusion 1197 1198Most Bitcoin mining problems today are not about hardware. They are execution problems. Curtailing too early. Reacting too late. Optimizing for the wrong window. 1199 1200Energy management is not about flipping switches. It is about understanding timing, context, and consequences. 1201 1202LÅD exists to give operators that control â by validating grid conditions in real time, automating curtailments with intent, and making energy decisions visible instead of reactive. 1203 1204See how LÅD's [Bitcoin mining platform](/bitcoin-mining) puts these criteria into practice, or see how LÅD stacks up against the field in our [honest comparison of LÅD, Braiins, Luxor, and Foreman](/blog/lod-vs-braiins-vs-luxor-vs-foreman).`,faq:[{q:"What does a Bitc
1204oin mining management platform do?",a:"A mining platform monitors your fleet of ASICs in real-time, tracks power consumption per device and per site, and records hash rate and profitability. A good platform also automates responses to grid events and energy price changes without manual intervention. It should integrate with energy markets and provide clear reporting for compliance and ROI tracking."},{q:"What features should I look for in a mining platform?",a:"Look for real-time device monitoring, automated curtailment logic based on price thresholds, integration with wholesale energy markets (ERCOT, PJM, etc.), and clean audit trails. The platform should execute curtailment in under 30 seconds, track profitability per site and per pool, and offer transparent cost attribution. Avoid platforms that only monitor without automating."},{q:"How does a mining platform handle curtailment?",a:"A good platform monitors live wholesale electricity prices and grid conditions. When prices spike or the grid enters stress conditions, the platform automatically reduces load on selected miners or sites based on predefined rules. Response time matters: sub-30-second execution allows you to react to short-lived price spikes and scarcity events that manual operators cannot catch."},{q:"Should a mining platform integrate with energy markets?",a:"Yes. Energy market integration is the difference between maximizing value and leaving it on the table. A platform that understands your site's location (which ERCOT zone, which PJM node), your contract terms, and upcoming grid events can automate decisions that would be impossible to execute manually. Without this, you are missing six figures per MW per year in captured value."},{q:"What is the difference between monitoring and automation in mining platforms?",a:"Monitoring tells you what is happening. Automation makes decisions and acts on them. A monitoring-only platform shows you real-time prices but requires a human to interpret and respond. An automation platform takes your rules, validates grid conditions in real-time, and executes curtailment or ramp-down without human intervention. Automation captures value monitoring cannot."},{q:"How do mining platforms track profitability per site?",a:"A good platform collects power consumption data, associates it with your mining pool shares, prices your electricity cost based on your actual contract terms and market prices, and calculates profit per site and per pool. Transparent cost attribution shows you which sites are profitable under current energy prices and which are at risk during high-price periods."},{q:"Can a mining management platform support multiple sites and pools?",a:"Yes. A scalable platform should support multiple sites across different regions, different pools, and different hardware generations. It should handle multi-region curtailment decisions (e.g., curtail in Texas but stay online in Wyoming), and provide consolidated reporting across all sites while respecting local compliance requirements."}]},"q1-2026-energy-outlook":{title:"Q1 2026 Energy Outlook: Rising Capacity Costs and Persistent Volatility",author:"Luisa Valdes",date:"January 7, 2026",readTime:"6 mins read",tag:"Grid",img:"https://cdn.prod.website-files.com/68b19ac1ace2893b7432904a/695e9ff25a2ba2d770ed900d_Copy%20of%20Copy%20of%20X%20Post%20(LinkedIn%20Post).png",content:`PJM capacity prices hit a record $329 per MW-day at the FERC cap during the 2025-2026 auction. ERCOT real-time volatility persists with frequent negative-price hours in West Texas and scarcity events in summer. AI data center demand continues to exceed generation additions across both markets. Operators with flexible load management capture upside. Inflexible loads face margin compression. 1205 1206 ## TL;DR 1207 1208 **TL;DR:** PJM capacity cleared at $329 per MW-day, the highest price on record. ERCOT real-time prices remain volatile with continued negative-price opportunities in West. AI load growth outpaces generation additions. Electricity demand from data centers is expected to grow 45 percent in 2026. Data centers with flexible load can hedge rising costs. Fixed-load facilities see costs rising 30 to 60 percent in constrained areas. 1209 1210 ## The Big Picture 1211 1212Key principles: 1213- Electricity demand continues to rise, driven by an increase in data centers, AI, and Bitcoin. 1214- Market design and settlement mechanics are increasing execution risk. 1215- Wholesale power costs are resetting higher, with forward prices trending upward. 1216- Natural gas supply constraints are pushing marginal generation costs upward. 1217 1218## ERCOT: Growing Capacity, Persistent Volatility 1219 1220The EIA projects a 45% increase in North Hub prices in 2026, mainly driven by extreme weather and continued load growth. Simultaneously, ERCOT's latest Capacity, Demand and Reserves assessment points to a stronger projected summer 2026 reserve margin. 1221 1222**ERCOT risk considerations heading into 2026:** 1223- How product structures respond to sudden market spikes, rather than relying on long-run averages. 1224- The downstream impact of changes to market designs and pricing methods on retail pricing. 1225- Where concentrated load growth could amplify congestion and nodal price volatility. 1226 1227**Main takeaway:** ERCOT may be adding capacity, but price volatility during stress events remains a huge risk for large loads. 1228 1229## PJM: Capacity Prices Are Resetting Higher 1230 1231PJM presents a different set of risk considerations. Flexible on-site load offers one of the few durable ways to reduce exposure to rising capacity costs. 1232 1233**Main takeaway:** PJM's market is signaling a tightening of the supply-demand balance, and these signals are already being reflected in the 2026-2027 budget. 1234 1235## MISO: Decrease in Reserves, Increase in Capacity Value 1236 1237In the 2025 Planning Resource Auction, summer capacity surged to $666.50/MW-day, driven by tighter reserve margins and elevated reliability risk. 1238 1239**Main takeaway:** MISO is entering a tighter market, where capacity prices increase, reserves decrease, and extreme weather conditions matter. 1240 1241## LÅD's Recommendations for C&I Energy Buyers 1242
1243As demand continues to outpace grid buildout, energy risk in 2026 will be driven less by average prices, and more by execution, timing, and strategy. Leaders must adopt three core disciplines: 1244 1245- **Operationalize capacity:** Treat congestion and capacity as dynamic risks, rather than static line items. 1246- **Validate in real-time:** Bridge the gap between forward planning and reality. 1247- **Build physical flexibility:** On-site control and automated response are the most durable tools for navigating volatility. 1248 1249With 2026 budgets already tightening, energy strategy can no longer stop at sourcing. Execution at the grid edge is now a fundamental requirement for protecting uptime, margins, and long-term scalability.`,faq:[{q:"What is the energy market outlook for 2026?",a:"Capacity prices in PJM are at record highs ($329 per MW-day). ERCOT real-time volatility continues with negative-price and scarcity events. AI load growth outpaces generation. Forward prices trend upward. Natural gas supply remains constrained. Operators should assume higher energy costs and greater volatility than 2025."},{q:"Why are PJM capacity prices so high in 2026?",a:"PJM demand is growing faster than generation additions. Load growth from data centers adds 5,400 MW year-over-year. The interconnection queue has 209 GW pending, with many projects stalled since 2022. Reserve margins are below PJM's 19.1 percent target, signaling scarcity."},{q:"Is ERCOT volatility expected to continue in 2026?",a:"Yes. ERCOT real-time volatility will persist. EIA projects a 45 percent increase in North Hub prices. Wind and solar output remain unpredictable. Transmission constraints in West Texas continue. Summer scarcity events are likely. Winter volatility may exceed 2024 levels."},{q:"How is AI data center growth affecting energy markets?",a:"AI data center power demand is growing faster than any other load segment. Global electricity demand from AI is expected to quadruple by 2030. This acceleration is concentrating load growth in regions with grid constraints, driving both capacity costs and real-time volatility."},{q:"What should data center operators do to prepare for 2026 prices?",a:"Model 2026 capacity and energy exposure under multiple scenarios. Pursue flexible load strategies to reduce peak demand charges. Negotiate demand response programs to monetize flexibility. Consider on-site generation or battery storage. Budget for 30 to 60 percent cost increases in high-cost areas."},{q:"Will capacity prices come down later in 2026?",a:"Unlikely. Capacity prices remain high as long as demand growth exceeds generation additions. Relief requires new generation coming online or significant demand destruction. Current interconnection queue suggests no relief until 2027 or later."},{q:"Which markets are most affected by load growth?",a:"PJM is most affected due to its concentrated data center buildout in the Northeast. ERCOT is also tight due to West Texas wind variability and transmission constraints. MISO is entering a tighter market with capacity surging to $666.50 per MW-day in summer auctions."}]},"dam-vs-rtm":{title:"GRID 101: Day-Ahead Market (DAM) vs Real-Time Market (RTM)",author:"Nima Amir",date:"December 3, 2025",readTime:"6 mins read",tag:"Education",img:"https://cdn.prod.website-files.com/68b19ac1ace2893b7432904a/692f8b4d534a65a1346fe0ca_Untitled%20design%20(10).png",content:`ERCOT operates two distinct wholesale markets that determine energy costs and flexibility value for data centers. The Day-Ahead Market (DAM) publishes hourly prices 24 hours in advance based on forecasted conditions. The Real-Time Market (RTM) settles every five minutes, reflecting actual grid supply and demand. Most price volatility and profitable opportunities for flexible loads occur in the real-time market, not day-ahead. 1250 1251 ## TL;DR 1252 1253 **TL;DR:** DAM clears hourly on day-ahead forecasts. RTM clears every five minutes on actual conditions. DAM is for predictability and hedging. RTM is where volatility, negative prices, and scarcity events live. Flexible loads with real-time automation capture RTM upside. Inflexible loads typically rely on DAM price certainty. 1254 1255 ## What Is the Day-Ahead Market 1256 1257The **Day-Ahead Market** is a forward market where participants buy and sell electricity for delivery on the following day. 1258 1259Operators submit bids and offers for each hour of the next operating day. The market clears based on expected demand, generator availability, and forecasted system conditions. 1260 1261Key principles: 1262- DAM prices are published in hourly intervals. 1263- DAM reflects **planned** system conditions rather than real system behavior. 1264- DAM helps participants secure predictable energy costs without waiting for real-time volatility. 1265 1266For large loads, DAM is your **planning signal**. It allows you to anticipate high or low price periods up to 24 hours in advance and schedule your operational strategy around those forecasts. 1267 1268## What Is the Real-Time Market 1269 1270The **Real-Time Market** balances the grid as conditions actually occur. It publishes prices in five-minute intervals reflecting the real, moment-to-moment balance of supply and demand. 1271 1272Key drivers of RTM price movement: 1273- Sudden changes in load 1274- Sudden changes in wind or solar output 1275- Transmission congestion 1276- Plant trips or unexpected outages 1277 1278For flexible loads, RTM is where **operational advantage** appears. Sites that can respond to five-minute price signals through automated curtailment can reduce cost and support the grid during stress events. 1279 1280## Why Both Markets Matter Together 1281 1282Neither market is useful on its own. DAM gives you the **forecast**. RTM gives you the **truth**. 1283 1284Successful flexible loads combine both: 1285- Use DAM to plan for expected price patterns. 1286- Use RTM to react to real conditions when the system diverges from the forecast. 1287 1288## What Drives DAM vs RTM Differences 1289 1290- **Forecast error**: Expected solar or wind output may differ from actual output. 1291- **Unexpected outages**: When a generator trips, RTM responds immediately. DAM does not. 1292- **Congestion shifts**: Grid constraints can appear suddenly. 1293- **Weather changes**: Rapid temperature swings impact load faster than the DAM forecast c
1293an adjust. 1294 1295## What It Means for Bitcoin Miners and HPC Loads 1296 1297The pattern looks like this: 1298- **DAM sets expectations** for the next day. 1299- **RTM tells you exactly when to curtail** and when to return to high-performance power. 1300- **Automation executes your strategy** without human intervention. 1301 1302At LÅD, we build the telemetry, signals, and automation logic that allow flexible loads to operate intelligently across both markets. DAM gives you the forecast. RTM gives you the opportunity. LÅD connects your site to both.`,faq:[{q:"What is ERCOT's Day-Ahead Market?",a:"The ERCOT Day-Ahead Market (DAM) is a wholesale electricity market where generators and buyers submit bids for delivery the next operating day. Prices clear hourly for each of the 24 hours, reflecting forecasted demand, renewable output, and available generation. DAM prices serve as the primary pricing signal for most retail customers and contracts."},{q:"What is ERCOT's Real-Time Market?",a:"ERCOT's Real-Time Market (RTM) clears continuously every five minutes, with prices reflecting actual grid conditions in real time. RTM balances supply and demand moment-by-moment, incorporating unexpected outages, weather changes, and load swings. RTM prices are higher volatility and serve as the settlement vehicle for imbalances."},{q:"What is the difference between DAM and RTM in ERCOT?",a:"DAM publishes 24 hours ahead and reflects forecasts. RTM clears every five minutes and reflects reality. DAM is more predictable but often misses price spikes, negative-price events, and scarcity conditions. RTM captures the actual cost of balancing the grid in real time."},{q:"Should a data center use DAM or RTM pricing?",a:"The choice depends on operational flexibility. Inflexible loads typically use DAM contracts for price certainty. Flexible loads with automated curtailment benefit from RTM pricing, which exposes them to both downside (negative prices to capture) and upside (scarcity spikes to avoid)."},{q:"How often do prices spike in ERCOT real-time market?",a:"ERCOT RTM prices spike during summer heat waves, winter cold snaps, and transmission constraints. In 2024, West Zone real-time prices exceeded $500/MWh multiple times. Negative-price events occur hundreds of times per year in low-demand zones like West."},{q:"What is LMP and how does it work in ERCOT?",a:"Locational Marginal Price (LMP) is ERCOT's real-time energy price at specific grid nodes, reflecting supply, demand, and transmission congestion. Each location has its own LMP that may differ from neighboring zones. Data centers buy or sell at their location's LMP in the real-time market."},{q:"Can a data center switch between DAM and RTM?",a:"Yes. A data center can use both markets simultaneously. Purchasing base load under a DAM contract provides price certainty. Using flexible capacity in RTM allows exposure to real-time prices, negative-price upside, and demand response revenue. Many operators use a hybrid approach."}]},"ercot-vs-pjm":{title:"GRID 101: ERCOT vs PJM â Two Markets, Two Playbooks",author:"Nima Amir",date:"October 31, 2025",readTime:"7 mins read",tag:"Education",img:"https://cdn.prod.website-files.com/68b19ac1ace2893b7432904a/6903e70f21ed1b94c181ad78_Blog%2010%20Ways%20to%20Stay%20Ahead%20of%20Energy%20Rule%20Changes%20in%20ERCOT%2C%20PJM%2C%20and%20Beyond%20(1).png",content:`ERCOT operates an energy-only market where generators receive payment solely for electricity delivered. PJM operates an energy market plus a centralized capacity auction that recently cleared at $329 per MW-day. This structural difference means identical flexible loads capture value through different mechanisms in each market, with ERCOT rewarding speed and PJM rewarding predictability. 1303 1304 ## TL;DR 1305 1306 **TL;DR:** ERCOT and PJM are the two largest ISO markets serving data centers in North America. ERCOT runs energy-only with scarcity pricing caps at $5,000 per MWh. PJM runs a separate capacity market with recent auctions clearing at $329 per MW-day. Both pay flexible loads but through distinct mechanisms. Your operational playbook depends on which market you operate in. 1307 1308 ## What Is ERCOT 1309 1310The Electric Reliability Council of Texas (ERCOT) operates an energy-only market. In this system, generators are paid only for the energy they produce and deliver to the grid at the Locational Marginal Price (LMP). There are no separate payments for simply being ready to generate power. 1311 1312This creates a market driven purely by supply and demand. When generation is scarce, prices rise to signal the need for more power or for large consumers to curtail. When supply exceeds demand, prices fall â sometimes turning negative when renewable generation is high. 1313 1314During mid-day hours in Texas, solar output often peaks while demand remains moderate. The combination of strong solar generation and lower load can push the system into oversupply, forcing prices down sharply. 1315 1316For large flexible loads, this pattern creates a window of opportunity: when solar generation floods the grid and prices dip toward zero or negative, systems can shift to high-performance operation, consuming low-cost power while supporting grid stability. 1317 1318## What It Means for Flexible Loads in ERCOT 1319 1320This volatility creates opportunity. Flexible loads with strong telemetry and automated control systems can curtail when prices spike and adjust power when prices drop. 1321 1322During a 2024 heat wave in Texas, real-time prices for a short interval approached $1,600/MWh, demonstrating how exposed large loads can be during peak demand periods. 1323 1324## What Is PJM 1325 1326PJM Interconnection, which covers parts of the Midwest and Eastern United States, operates both an Energy Market and a Capacity Market. 1327 1328- The **Energy Market** functions like ERCOT's, paying generators for each MWh of electricity they produce. 1329- The **Capacity Market** adds another layer. It pays resources for committing to be available during future periods (typically one to three years ahead). 1330 1331This capacity structure creates greater price stability â meaning fewer extreme price events but also fewer near-term opportunities for loads to capture value from rapid flexibility. 1332 1333## What It Means for Flexible Loads in PJM 1334 1335In PJM, flexible loads can participate in Demand Response and Capacity programs. These require longer-term commitments and verification but can generate steady, contract-based revenue for reducing demand during system peaks. 1336 1337Where ERCOT rewards fast, dynamic behaviour, PJM rewards predictable, dependable availability. 1338 1339## Why It Matters 1340
1341Knowing which market you operate in shapes how you design your strategy: 1342 1343- In **ERCOT**, flexible loads benefit most from real-time automation, energy analytics, and intelligent curtailment logic. 1344- In **PJM**, success comes from planning, reliability commitments, and consistent performance. 1345 1346At LÅD, we allow flexible loads to thrive in both environments by integrating real-time market signals, on-site controls, and automation logic.`,faq:[{q:"What is the main difference between ERCOT and PJM?",a:"ERCOT operates an energy-only market where generators are paid per MWh. PJM operates both an energy market and a centralized capacity market where resources commit to be available months ahead. ERCOT reward fast responses. PJM rewards predictable availability."},{q:"Which is better for Bitcoin mining: ERCOT or PJM?",a:"ERCOT is traditionally better for flexible mining due to energy-only pricing and frequent negative-price opportunities. PJM offers demand response revenue but requires more predictable commitments. The choice depends on operational capability and risk tolerance."},{q:"Does PJM have a capacity market? Does ERCOT?",a:"PJM operates a centralized capacity market clearing one to three years ahead. ERCOT does not have a capacity market. ERCOT generators rely solely on energy revenue. This is the single largest structural difference between the two markets."},{q:"What is 4CP in ERCOT and how is it different from PJM's 5CP?",a:"ERCOT 4CP (four coincident peaks) identifies the four highest demand intervals of the year and assigns transmission charges based on load during those periods. PJM 5CP uses five peaks. Both incentivize loads to reduce consumption during the highest-stress hours."},{q:"What are the demand response programs in ERCOT vs PJM?",a:"ERCOT offers emergency response service (ERS) and ancillary services with payment per MW curtailed. PJM offers demand response auctions clearing months ahead at contracted rates. ERCOT programs are more dynamic. PJM programs provide revenue certainty."},{q:"Can a data center operate in both ERCOT and PJM?",a:"Yes. Large operators with facilities across regions can participate in both markets. However, the operational logic and optimization strategies differ significantly, requiring distinct automation and planning for each region."},{q:"Which market has higher real-time price volatility?",a:"ERCOT real-time prices are more volatile overall due to no capacity market buffer. ERCOT prices have exceeded $1,600 per MWh during scarcity events and gone negative hundreds of times per year. PJM volatility is lower due to capacity market design and larger reserve margins."}]},"mining-to-ai":{title:"Should Your Data Center Pivot from Mining to AI?",author:"Medi Naseri",date:"October 29, 2025",readTime:"8 mins read",tag:"Strategy",img:"https://cdn.prod.website-files.com/68b19ac1ace2893b7432904a/690275951f78de4d3531bf22_Blog%2C%20Should%20Your%20Data%20Center%20Pivot%20from%20Mining%20to%20AI.png",content:`A Bitcoin mining facility can pivot to AI, but the answer depends on hardware compatibility, power density, cooling capacity, customer pipeline, and contract stability. Some mining sites will succeed in AI. Others will not. The decision requires modeling retrofit costs (often $10-50 million per 100 MW site), assessing existing cooling infrastructure, evaluating customer demand in your region, and comparing multi-year revenue from AI contracts against mining volatility and difficulty curve trends. 1347 1348## TL;DR 1349 1350**TL;DR:** Pivoting from mining to AI is not a simple hardware swap. Mining sites with strong cooling, stable long-term power contracts, and access to customer networks can succeed. Sites with limited cooling capacity or high grid curtailment requirements may stay focused on mining. Retrofit costs range from $10-50 million per 100 MW site. Profitability depends on utilization, contract terms, and location. The right choice is site-specific, not universal. 1351 1352From ASIC Fungibility to GPU Agility: Should Bitcoin Mining Facilities Pivot into AI Data Centers? The economics of turning Bitcoin mining infrastru
1352cture into AI data centers â pros, cons, and trade-offs. 1353 1354For many large-scale Bitcoin mining operations, the real assets aren't just ASICs â they're **power, land, and interconnection**. As profit margins tighten due to rising difficulty, the 2024 halving, volatile energy costs, and increased grid scrutiny, an industry question has emerged: 1355 1356**Should mining facilities evolve into AI or high-performance computing (HPC) data centers?** 1357 1358## Market & Infrastructure Context 1359 1360**What's driving the shift?** 1361 1362- Miners with access to large tracts of land, stable interconnections, and cooling infrastructure are in a prime position to capitalize on AI/HPC growth. 1363- Some analysts estimate AI-focused data centers could generate **up to 25x more revenue per kilowatt-hour** than Bitcoin mining, given enterprise clients' long-term contracts and service fees. 1364- **Global electricity demand from AI data centers is expected to quadruple by 2030**, intensifying competition for low-cost power and grid interconnection capacity. 1365- Companies like CleanSpark, Bitfarms, and TeraWulf have already announced AI-related expansions or feasibility studies. 1366 1367## Pros and Cons: Mining â AI Hosting 1368 1369**Revenue model:** Bitcoin mining has high upside but high volatility. AI hosting offers longer-term contracts with less commodity risk. Transitioning can reduce volatility but requires a change in sales/customer model. 1370 1371**Power consumption:** ASICs have predictable constant load â easier to forecast curtailment. GPU clusters have irregular spikes, higher rack densities, and greater cooling demands. 1372 1373**Capital investment:** AI hosting requires higher upfront costs â GPUs, network, data-center buildout, higher tier (T3/T4) infrastructure. 1374 1375**Asset re-use:** Existing power agreements, land, and transmission interconnect may be reused. However, higher cooling density, HVAC, redundant power, and network fiber may require retrofitting. 1376 1377**Grid flexibility:** Mining operations are often structured to benefit from flexibility â curtailment, real-time signals, and favorable tariffs. AI workloads may demand higher uptime and less flexibility due to SLAs. 1378 1379## Financial Modelling & Risk Factors 1380 13811. **Power Tariff and Market Exposure** â ERCOT and PJM operators must assess if their interconnection and tariff structures support steady, non-interruptible loads. 13822. **Capacity Factor & Utilization** â AI workloads fluctuate depending on client projects. Underutilization can erode margins. 13833. **Retrofit Capital Costs** â Upgrading cooling, redundancy, and fiber connectivity can cost tens of millions per 100 MW site. 13844. **Contract Duration & Stability** â AI hosting success depends on multi-year agreements. 13855. **Technology Refresh Cycles** â GPUs depreciate quickly. 13866. **Grid Participation Value** â Transitioning to always-on AI workloads may restrict curtailment advantages. 1387 1388**Illustrative scenario:** A 100 MW site in Texas earning $30/MWh net margin from mining could see 50â70% higher gross margin under AI hosting â but only if utilization exceeds 90% and long-term clients are secured. 1389 1390## Key Takeaways 1391 1392**For Small & Mid-Size Operators:** The opportunity lies in hybridization â partial conversion dedicating a portion of capacity to AI hosting while maintaining flexible mining operations. This allows revenue diversification without sacrificing grid-response value. 1393 1394**For Large-Scale Operators:** Full conversion may be viable where interconnection capacity, cooling density, and client pipeline support it. The financial upside is real â but so is the execution risk. 1395 1396The answer isn't binary. It's strategic.`,faq:[{q:"Should a Bitcoin mining operation pivot to AI?",a:"Not automatically. The decision depends on five factors: (1) existing infrastructure fit (cooling, power density), (2) retrofit costs ($10-50M per 100 MW), (3) local customer pipeline (nearby enterprises or cloud operators), (4) contract stability (3+ year commitments matter), and (5) risk tolerance. Some mining sites will succeed in AI. Others should stay focused on mining optimization."},{q:"What is the difference between mining hardware and AI hardware?",a:"Mining hardware (ASICs) runs a single algorithm continuously and has low cooling requirements. AI hardware (GPUs, TPUs) runs diverse workloads with variable intensity and generates significantly more heat. A mining site built for 5 kW per rack may need to support
139615-20 kW per rack for AI. Cooling infrastructure is the biggest retrofit bottleneck."},{q:"How much does it cost to convert a mining site to AI?",a:"Retrofit costs typically range from $10-50 million per 100 MW site, depending on existing cooling capacity, power density requirements, and networking upgrades. Sites with excess cooling capacity and modern electrical infrastructure cost less to convert. Sites with tight cooling and limited fiber access cost more. Full feasibility studies usually run $100-500K."},{q:"Can the same data center host both mining and AI?",a:"Yes. Some operators run hybrid models with portions of the site dedicated to mining and portions to AI. This approach hedges risk and allows gradual transition. However, it requires separate infrastructure, distinct power contracts, and careful management of cooling and space. Hybrid models are more complex to operate than single-focus sites."},{q:"What customers do AI data centers serve?",a:"AI data centers serve AI model builders, enterprise LLM deployments, AI training operations, HPC research institutions, and cloud providers. Customer acquisition typically happens through direct sales or cloud marketplace partnerships. A strong customer pipeline before pivoting is critical. Without committed contracts, a new AI site will have low utilization and negative margins."},{q:"Is AI more profitable than Bitcoin mining?",a:"Not always. AI hosting can generate 2-5x higher gross margins than mining if utilization exceeds 80 percent. However, this requires long-term contracts (2-3 years minimum) with stable customers. Mining has lower upfront infrastructure costs but higher commodity price volatility. AI has higher retrofit costs but lower operational volatility once contracts are locked."},{q:"How does power density compare between mining and AI?",a:"Bitcoin mining typically operates at 5-8 kW per rack. AI data centers operate at 15-25 kW per rack, depending on GPU density. This 2-3x difference directly impacts cooling, electrical infrastructure, and real estate costs. Mining sites with excess space and power capacity can support higher AI density. Sites that are tight on cooling will struggle."}]},"stay-ahead-ercot-pjm":{title:"10 Ways to Stay Ahead of Energy Rule Changes in ERCOT, PJM, and Beyond",author:"Nima Amir",date:"August 2025",readTime:"3 mins read",tag:"Grid",img:"https://cdn.prod.website-files.com/68b19ac1ace2893b7432904a/68ec3a81e5cffecf3ef54f48_Blog%20Image%20-%2010%20Ways%20to%20Stay%20Ahead%20of%20Energy%20Rule%20Changes%20in%20ERCOT%2C%20PJM%2C%20and%20Beyond.png",content:`Rule changes in ERCOT and PJM shift millions of dollars in costs and revenue between operators in days. ECRS launched in 2023 with short notice. PJM market design adjustments changed peak definitions mid-year. ORDC parameters fluctuate. Operators who respond fast gain competitive advantage. Those who delay face margin compression and compliance failures. 1397 1398 ## TL;DR 1399 1400 **TL;DR:** ERCOT and PJM rules change frequently, reshuffling costs and revenue opportunities. Rule changes like ECRS launch (2023), 5CP adjustments, and ORDC updates can cost or save millions per facility per year. The 10 strategies cover monitoring sources, internal review cadence, QSE partnerships, real-time infrastru
1400cture, and how to translate rule changes into operational automation. Operators who systematize compliance gain a 6 to 12 month advantage. 1401 1402 The smartest operators prepare for compliance *before* it's enforced â turning regulatory risk into operational advantage. 1403 1404## 1. Track Proposed Changes, Not Just Final Rules 1405 1406Don't wait until the rule is officially published. Follow ISO/RTO notices, PUC agendas, and stakeholder calls to catch changes early. Resources: ERCOT Trending Topics, PJM Newsroom, CAISO Daily Briefing, SPP Newsroom. 1407 1408## 2. Assign a Regulatory "Point Person" 1409 1410Designate someone to track and summarize updates on a weekly basis â connecting both technical operations and compliance efforts. 1411 1412## 3. Map Your Exposure 1413 1414Not all rules affect operations equally. Rank potential changes by financial impact, operational disruption, and implementation complexity. 1415 1416## 4. Build a "Watchlist" Dashboard 1417 1418Maintain a live internal tracker including rule name, proposed effective date, affected sites by ISO/RTO, and assigned responsible team member. 1419 1420## 5. Run Dry-Runs Before They're Mandatory 1421 1422Simulate compliance scenarios now â shorter notice windows in ERCOT, more frequent 5CP peaks in PJM â so you can identify operational gaps before they result in significant losses. 1423 1424## 6. Embed Rule Logic Into Automation 1425 1426Integrate compliance triggers directly into your site's control systems. In ERCOT, this could mean curtailing within minutes of ancillary services calls. In PJM, implementing 5CP avoidance logic during peak summer times. 1427 1428## 7. Document "Why" for Every Change 1429 1430Your teams perform better when they understand the reasons behind process changes. Include the rule, the operational change, and the financial or compliance impact. 1431 1432## 8. Train for Both Strategy and Execution 1433 1434Conduct drills where your team must respond to a new signal or rule change within a specified timeframe. Incorporate unexpected variables to build resilience. 1435 1436## 9. Network with Industry Peers 1437 1438Join ISO working groups, energy forums, or mining industry roundtables. Peers often identify regulatory trends before they are officially announced. 1439 1440## 10. Subscribe to Trusted Energy Intelligence Feeds 1441 1442Stay informed with reliable updates: RTO Insider, Utility Dive, Energy Central, PJM Newsroom, ERCOT Market Participant Public Notices. 1443 1444## Final Thought 1445 1446Energy markets are not static. In ERCOT, 4CP transmission charges can swing your annual cost structure based on just four 15-minute intervals. In PJM, 5CP peaks can add or remove six figures per MW from your capacity bill. 1447 1448The real advantage comes from creating a regulatory radar within your organization: continuously monitoring the earliest signs of change, testing readiness before you're forced to comply, and embedding compliance into your everyday automation. 1449 1450The operators who win will be the ones who treat compliance not as a checkbox, but as an integrated part of their energy strategy.`,faq:[{q:"How often do ERCOT and PJM rules change?",a:"ERCOT and PJM rules change continuously. Major rule changes typically occur quarterly through stakeholder processes. Market design changes happen 1 to 3 times per year. Parameter adjustments (ORDC, scarcity pricing) happen monthly. Operators must monitor actively."},{q:"What was ECRS and why did it matter?",a:"ECRS (Energy Emergency Response Service) launched in ERCOT in 2023 as a new ancillary service with tight response requirements. Participants had weeks to qualify. Missed qualification meant inability to participate. Prepared operators captured revenue. Unprepared operators missed opportunity."},{q:"How do data centers track ERCOT rule changes?",a:"Monitor ERCOT Trending Topics, Market Participant Public Notices, and Protocol Change Requests. Attend stakeholder meetings monthly. Subscribe to RTO Insider and Energy Central. Assign someone to summarize rule changes weekly. Build a wat
1450chlist dashboard with rule name, effective date, and impact."},{q:"What is the role of a QSE in adapting to rule changes?",a:"A Qualified Scheduler Entity (QSE) submits day-ahead and real-time bids on behalf of loads. QSEs translate rule changes into operational instructions for sites. A good QSE monitors rules, alerts you to changes, and automates compliance. Poor QSEs miss changes or implement them late."},{q:"How long does it take to adapt to a new ERCOT rule?",a:"Implementation time varies. Some rules require weeks of lead time (5CP definitions). Others require days (emergency services). Complex rules affecting automation can take months. The window to prepare is usually 30 to 60 days. Operators who monitor early have 90 days. Those who wait until announcement have 30."},{q:"Can software help with rule change adaptation?",a:"Yes. Real-time data platforms that support custom rule engines allow operators to implement new logic without full system redesign. Platforms with API integration can auto-update based on ERCOT announcements. Manual processes introduce delays and errors. Software reduces adaptation time by 50 percent."},{q:"What rule changes are coming in 2026?",a:"PJM is updating capacity market rules and demand response mechanisms. ERCOT is exploring fast frequency response services. MISO may introduce new reserve requirements. The specifics change quarterly. The constant is change itself. Operators should assume three to five material rule changes per year."}]},"bitcoin-miners-profits-peaks":{title:"How Bitcoin Miners Lose Profit During Grid Peaks â And What Better Curtailment Looks Like",author:"Medi Naseri",date:"September 2025",readTime:"4 mins read",tag:"Mining",img:"https://cdn.prod.website-files.com/68b19ac1ace2893b7432904a/68ec3a49596b34c27f94a12e_Blog%20Image%20-%20How%20Bitcoin%20Miners%20Lose%20Profits%20During%20Peaks%20and%20How%20to%20Fix%20It%20.png",content:`Bitcoin miners lose between $100,000 and $500,000 per MW per year during grid peak events through two mechanisms: scarcity pricing (where electricity costs spike to $1,600 per MWh) and missed demand response revenue. Manual curtailment catches roughly 20 percent of the opportunity. Real-time automation with sub-30-second response times captures 70-80 percent, depending on your location and contract terms. A Bitcoin mining platform built for real-time execution is what closes that gap. 1451 1452## TL;DR 1453 1454**TL;DR:** Grid peaks expose miners to scarcity pricing ($1,600+ per MWh) and penalty fees if they fail to curtail on time. A 100 MW site running without automated real-time curtailment loses $200,000 to $400,000 per year. Manual operators react too late and too conservatively. Real-time curtailment systems watch live grid signals, execute in under 30 seconds, and recover most of that value. The difference between manual and automated curtailment is six figures per year. 1455 1456When grid demand rises, miners prepare. Most teams have automated curtailment workflows tied to ERCOT's day-ahead forecasts. But here's the pattern we keep seeing across sites: curtailment kicks in, load drops, and after doing it, the operator realizes the peak wasn't as long or didn't even happen. 1457 1458This is not a reaction issue. It is a precision issue. 1459 1460## 1. Forecast-Based Curtailment Lacks Validation 1461 1462Forecasts are a great starting point, but they're probability models â not confirmations. When there's no mechanism to check whether the event is actually occurring, curtailment continues regardless, leading to unnecessary downtime and reduced BTC production. 1463 1464**A better way:** Pair forecasts with real-time grid and site data. Use that live input to confirm whether conditions match the forecast. Only then should full curtailment run its course â and the system should release early if the signal doesn't hold. 1465 1466## 2. Fixed Curtailment Windows Miss the Mark 1467 1468Many curtailment rules follow a fixed time block: 2:00 p.m. to 6:00 p.m., based on historical grid behavior. That's simple to schedule, but risky for margins. Grid peaks don't always follow predictable patterns. 1469 1470**Recommendation:** Replace time-based rules with logic-based triggers. For example: "Reduce load only if system-wide demand exceeds X GW and forecast probability > Y%." 1471 1472## 3. Site Fragmentation Creates Inconsistent Execution 1473 1474At scale, no two sites are exactly the same. When each site follows a
1474separate logic or uses different tools, inconsistencies emerge: one site curtailing properly, another staying online; mismatched recovery times; teams operating blind. 1475 1476**Best practice:** Coordinate curtailment under a unified system that respects site-specific parameters but acts in sync. 1477 1478## 4. Curtailment Systems Don't Know Exactly When to End 1479 1480Starting a curtailment event is only half the job. Knowing when to stop matters just as much. Without real-time checks, some systems maintain load reductions long after grid stress has passed. 1481 1482**What to implement:** Set live exit conditions based on grid demand, system frequency, or market prices. Monitor in near real-time, not at the next 15-minute interval. 1483 1484## 5. Curtailment Isn't Tied to Revenue Strategy 1485 1486Too often, curtailment is seen as a defensive move. But with the right data and execution, curtailment can also generate revenue â especially through demand response programs. 1487 1488**Tip:** Build a curtailment approach that's both compliance-aligned and market-participation ready. 1489 1490## Final Thought: Accuracy Over Protection 1491 1492Energy strategy at scale isn't just about cutting load â it's about knowing when and why you do it. 1493 1494Unnecessary curtailment might not show up on your compliance report, but it hits your uptime, your margins, and your operational clarity. The more precisely you can tie curtailment to verified grid conditions, the more control you keep over costs, performance, and strategic decisions.`,faq:[{q:"How much do Bitcoin miners lose during grid peaks?",a:"A 100 MW site can lose $200,000 to $400,000 per year during grid peak events. Losses come from two sources: scarcity pricing (where electricity costs spike to $1,600 per MWh) and missed demand response revenue. Manual operators capture roughly 20 percent of available value. Real-time automated systems capture 70-80 percent."},{q:"What is grid peak shaving for Bitcoin miners?",a:"Peak shaving means reducing your power consumption during the grid's highest-demand hours to avoid scarcity pricing and to participate in demand response programs. ERCOT pays miners for curtailment through Emergency Response Service (ERS) and ancillary service programs. Peak shaving is both a cost-avoidance strategy and a revenue generator if executed well."},{q:"How fast does curtailment need to be for ERCOT?",a:"ERCOT requires different response times for different programs. Emergency Response Service (ERS) requires response within 30 minutes. Real-time market opportunities appear and disappear in 5 minutes. Sub-30-second response times allow miners to capture short-lived negative-price opportunities and react to sudden scarcity events that manual operators cannot reach."},{q:"Can manual operators handle peak shaving?",a:"Manual operators can handle planned, predictable curtailment (e.g., known daily peaks). They struggle with unexpected spikes and rapid price changes. A 10-minute delay in responding to a scarcity event costs thousands. Real-time automated systems respond in under 30 seconds, capturing value manual operators cannot reach."},{q:"What is 4CP and how does it affect Bitcoin miners?",a:"Four Coincident Peaks (4CP) is ERCOT's way of assigning transmission charges. Operators are charged for the four highest-demand hours of the year. Being online during even one of those hours can cost you $50,000 to $150,000 in transmission fees for the entire next year. Strategic curtailment during those moments pays for itself dozens of times over."},{q:"What is the difference between curtailment and demand response?",a:"Curtailment is reducing your load on short notice (often in minutes). Demand response is committing ahead of time to reduce load during specific periods in exchange for upfront payments. Both have value. Real-time miners use curtailment to avoid costs. Committed miners use demand response for stable, predictable revenue."},{q:"How much can a 100 MW miner save with automated curtailment?",a:"A 100 MW site with real-time automated curtailment can recover $200,000 to $400,000 per year in value compared to manual operations. Savings come from avoiding scarcity pricing (roughly $100,000 to $200,000 per year), capturing demand response revenue (roughly $50,000 to $100,000), and improving uptime during marginal hours (roughly $50,000 to $100,000)."}]},"real-time-curtailment":{title:"Real-Time Curtailment for Data Centers: What It Takes to A
1494ctually Do It",author:"LÅD Team",date:"October 19, 2025",readTime:"7 mins read",tag:"Mining",img:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/d54eca4a5_generated_image.png",content:`Real-time curtailment is the practice of reducing electricity consumption in seconds in response to live grid signals. For Bitcoin miners and AI data centers, it is the difference between capturing [negative-price](/blog/ercot-west-load-zone) hours and scarcity savings or paying full price. Doing it reliably requires live grid data, sub-30-second execution, and automation that does not wait for human approval. This is exactly the kind of decision a Bitcoin mining platform needs to make automatically. 1495 1496## TL;DR 1497 1498**TL;DR:** Real-time curtailment means reducing or shutting down load within seconds of a grid price or demand signal. The economic upside is substantial: in ERCOT, captured value can exceed $5,000 per MW per year just from [negative-price events](/blog/ercot-west-load-zone), plus tens of thousands more from scarcity avoidance and DR programs. [Day-ahead forecasts](/blog/dam-vs-rtm) catch only a fraction of these events. Real-time data plus automated execution catches most of them. 1499 1500## What is real-time curtailment? 1501 1502Curtailment is when a load reduces or stops consumption. Real-time curtailment means doing it in response to live conditions, not based on a schedule or a forecast. [Day-ahead](/blog/dam-vs-rtm) curtailment plans for tomorrow based on yesterday's data. Real-time curtailment responds to what is happening now. For grid operators, real-time curtailment is a flexibility resource. For data center operators, it is a margin lever. 1503 1504## Why is real-time better than day-ahead? 1505 1506[Day-ahead markets](/blog/dam-vs-rtm) clear once per day on forecasts. Real-time markets clear every five minutes on actual conditions. Most price volatility, both upside and downside, lives in real-time. 1507 1508- **[Negative-price events](/blog/ercot-west-load-zone):** most negative prices in ERCOT happen in real-time, not day-ahead. Loads on day-ahead pricing miss the negative-price upside almost entirely. 1509- **Scarcity events:** when ERCOT hits scarcity, real-time prices can spike 100x within an interval. A load on a day-ahead schedule pays the full scarcity price. 1510- **[4CP](/blog/ercot-demand-response) intervals:** ERCOT 4CP intervals are determined retroactively from real-time settlement data. You can only respond to live system load and weather signals. 1511 1512## What does real-time curtailment require? 1513 1514Three things. Live data: real-time LMP feeds, demand forecasts, weather, renewable output, program signals, all flowing continuously. Decision logic: rules that translate live data into curtailment decisions, configurable by operator and auditable. Execution: a control system that can actually turn down load within the required response window. 1515 1516## How fast does the response need to be? 1517 1518Depends on the program. 1519 1520- ERCOT scarcity pricing: under 5 minutes is good. 1521- [ECRS](/blog/ercot-demand-response) contingency events: under 10 minutes (program requirement). 1522- [ERS](/blog/ercot-demand-response) 10-minute product: under 10 minutes. 1523- [ERS](/blog/ercot-demand-response) 30-minute product: under 30 minutes. 1524- [4CP](/blog/ercot-demand-response): detection within 5 minutes and curtailment within the 15-minute interval. 1525- [Negative-price events](/blog/ercot-west-load-zone): under 5 minutes to capture most of the value. 1526 1527Practical baseline for a serious operation: sub-30-second execution from signal to load reduction. 1528 1529## Why can't humans do this manually? 1530 1531Speed is one reason. The bigger reason is consistency. Humans cannot watch grid signals 24 hours a day. Most real-time events happen at inconvenient times: 2am winter cold snaps, July 4 weekend heat waves, weather shifts in the middle of the night. Manual operations also miss the cumulative value. Catching one out of every three [negative-price events](/blog/ercot-west-load-zone) is not 33% as valuable as catching all of them. The math compounds against the manual operator. 1532 1533## What signals matter most? 1534 1535Five categories matter for ERCOT real-time curtailment. Real-time LMP at your specific load zone or settlement point. System lambda and load forecasts. ORDC adders, which trigger during low reserves and can add hundreds of dollars per MWh in seconds. Renewable output, which drives most ERCOT price volatility. Program signals: [ERCOT DR signals](/blog/ercot-demand-response), QSE alerts, ancillary service deployment instructions. A system that integrates all five captures most of the available value. A system missing any of them will miss events. 1536 1537## What about reliability and uptime? 1538 1539Real-time curtailment systems have to be more reliable than the workloads they curtail. If the curtailment system goes down during scarcity, you pay full scarcity prices. Three reliability practices matter: redundant data feeds (multiple sources for the same signal), failsafe defaults (if signals are missing or stale, default to a safe state), and audit trails (every decision logged with the signals that drove it). 1540 1541## How does LÅD do real-time curtailment? 1542 1543Live ERCOT data at the load zone level, integrated decision logic that combines price, demand, ORDC, weather, renewables, and program signals, and execution that responds in under 30 seconds. The platform tracks every signal continuously and triggers curtailment based on rules each operator defines. We started in Bitcoin mining. The execution requirements for Bitcoin curtailment are the same requirements an AI data center needs to participate in [ERCOT programs](/blog/ercot-demand-response). Same platform, different workload. 1544 1545Wondering what your operation could have captured last month if curtailment was real-time instead of day-ahead? [Request a demo](/contact). We will model your last 30 days of grid exposure against a real-time strategy and show you the gap.`,faq:[{q:"What is real-time curtailment?",a:"Real-time curtailment is the practice of reducing or shutting down electricity consumption in response to live grid signals, typically within seconds or minutes. For data centers and Bitcoin miners, it is the operational tool for capturing value from negative prices, avoiding scarcity costs, and participating in ancillary services and demand response programs."},{q:"Why is real-time curtailment better than day-ahead?",a:"Day-ahead markets clear once per day based on forecasts. Real-time markets clear every five minutes based on actual conditions. Most price volatility, both negative and scarcity, lives in real-time. Loads operating on day-ahead schedules miss most of this volatility."},{q:"How fast does real-time curtailment need to respond?",a:"Depends on the program. ERCOT scarcity events:
1545ideally under 5 minutes. ECRS contingency events: under 10 minutes. Negative-price events: under 5 minutes to capture most of the value. Practical baseline for a serious operation is sub-30-second response."},{q:"Can a human operator do real-time curtailment manually?",a:"Not reliably. Real-time events happen 24 hours a day. Manual operators cannot watch signals continuously and respond fast enough. They also miss cumulative value. Reliable real-time curtailment requires automation."},{q:"What signals matter most for real-time curtailment?",a:"Five main categories. Real-time LMP at your load zone, system lambda and load forecasts, ORDC adders, renewable output telemetry, and program-specific signals. A system that integrates all of these captures most of the available value."},{q:"Is real-time curtailment hard to set up?",a:"The data and decision-logic side is the hard part. The execution side is straightforward for most data centers. Most operators that try to build it in-house take 12 to 24 months and still miss events. A platform that handles the data and logic shortens that to weeks."},{q:"Does real-time curtailment work for AI workloads?",a:"Yes, with constraints. Bitcoin mining is the easiest case. AI inference and training have varying tolerance. Batch training and queued inference can curtail gracefully. Latency-sensitive serving cannot. Match the curtailment strategy to the workload."}]},"ercot-demand-response":{title:"ERCOT Demand Response Programs: An Operator's Guide",author:"LÅD Team",date:"October 12, 2025",readTime:"7 mins read",tag:"Grid",img:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/d37990b43_generated_image.png",content:`ERCOT pays flexible loads to reduce consumption when the grid is stressed. Through 4CP avoidance, ECRS, ERS, and other programs, a data center with automated curtailment can capture six figures per MW per year in combined savings and revenue. Inflexible loads pay full price during scarcity events and miss every dollar of program revenue. 1546 1547## TL;DR 1548 1549**TL;DR:** ERCOT runs multiple programs that pay or reward flexible loads. 4CP avoidance reduces transmission charges for the next year. ECRS pays for capacity that responds within 10 minutes to contingency events. ERS pays for emergency reductions. A flexible 100 MW data center participating in 4CP plus one or two DR programs can capture seven figures in annual savings and revenue. The catch: every program requires real-time response and verifiable performance. Manual operations cannot reliably participate. 1550 1551## What is demand response in ERCOT? 1552 1553Demand response is when a load reduces or shifts consumption in response to a grid signal. ERCOT uses DR for two reasons. First, to manage scarcity events when generation is short. Second, to incentivize flexible loads to shape demand around grid conditions, lowering overall system costs. Loads that participate are paid or earn savings. Loads that do not participate cover the cost in their bills. 1554 1555## What are the main ERCOT programs for data centers? 1556 1557Four programs matter most for data center operators. 1558 1559**4CP (Four Coincident Peak).** Not technically a DR program, but the highest-value capacity reduction lever in ERCOT. Your transmission charges for the next year are set by your demand during the four 15-minute peak intervals across June, July, August, and September. Reduce demand during those four intervals and your transmission charges drop materially. Read more on the [ERCOT West load zone](/blog/ercot-west-load-zone) to understand peak patterns. 1560 1561**ECRS (ERCOT Contingency Reserve Service).** Loads or generators that can respond within 10 minutes to a contingency event. Pays continuously for being available, plus performance during called events. Active since 2023, growing in scale. 1562 1563**ERS (Emergency Response Service).** Loads paid to be available for emergency curtailment during grid stress. Two-product structure (10-minute and 30-minute response). Bid in seasonal procurements. 1564 1565**Real-time scarcity avoidance.** Not a program per se, but functionally similar. ERCOT prices spike during scarcity (up to the $5,000 per MWh cap plus ORDC adders). A load that curtails during scarcity intervals avoids those costs. 1566 1567## How much can a data center make from these programs? 1568 1569Combined revenue depends on size, location, and how flexibly the load can operate. Approximate ranges for a 100 MW data center in ERCOT: 1570 1571- **4CP avoidance:** $50,000 to $150,000 per MW per year, depending on the year's transmission charge rates. 1572- **ECRS participation:** $30,000 to $80,000 per MW per year, depending on cleared prices. 1573- **ERS participation:** $5,000 to $20,000 per MW per year, depending on hours bid and called. 1574- **Scarcity avoidance:** $5,000 to $50,000 per MW per year in event-driven savings. 1575
1576A flexible operation can stack 4CP plus one or two of the other programs. Total combined value can exceed $100,000 per MW per year in good years, less in mild years. 1577 1578## What does it take to participate? 1579 1580Three things. First, the right contract structure with a REP and QSE that allow you to nominate into ERCOT programs. Second, automation that can curtail in seconds. Manual operators miss most of the windows. Third, verifiable performance. ERCOT validates that you actually curtailed when called. Underperformance means lost revenue and potential penalties. 1581 1582## What is 4CP and why does it matter most? 1583 15844CP is the four 15-minute intervals across June, July, August, and September with the highest ERCOT system-wide demand. Your demand during those four intervals sets your transmission charges for the entire next year. ERCOT does not announce 4CP intervals in advance. They are determined retroactively from settlement data. You have to predict when peak intervals are likely to occur and curtail through them, every time, all summer. Most operators that try 4CP manually miss at least one of the four intervals. Operators with automated systems based on live load forecasts and weather data catch all four reliably. 1585 1586## What about ECRS? 1587 1588ECRS launched in mid-2023 as a new ancillary service product. It pays for fast-responding capacity available within 10 minutes. ECRS quickly became one of the highest-revenue programs in ERCOT for flexible loads. You bid available curtailment capacity into ERCOT through your QSE. If cleared, you receive a continuous capacity payment. If ERCOT calls a contingency event, you have 10 minutes to curtail to your committed level. Performance is monitored and validated through [real-time](/blog/dam-vs-rtm) telemetry. 1589 1590## What are the risks? 1591 1592Three to manage. Performance risk: if you commit to a DR program and fail to perform, you lose revenue and may face penalties. Workload disruption: curtailing for DR means stopping or slowing your primary workload. Match the program to the workload. Market risk: program prices change year to year. Plan around current market conditions, not last year's. 1593 1594## How does LÅD help with ERCOT DR participation? 1595 1596We give operators automated 4CP forecasting and curtailment, ECRS bid management, [real-time](/blog/dam-vs-rtm) scarcity response, and execution that responds in under 30 seconds. The platform tracks ERCOT load forecasts, real-time prices, weather, and program signals continuously. We also coordinate with the QSEs and REPs that handle program enrollment. 1597 1598Wondering what your operation could have made from ERCOT DR programs last year if curtailment was automated? [Request a demo](/contact). We will model your last 12 months of operations against an automated 4CP plus DR strategy and show you the gap.`,faq:[{q:"What is ERCOT demand response?",a:"ERCOT demand response refers to programs that pay or reward flexible loads to reduce consumption when the grid is stressed. The main programs include 4CP avoidance, ECRS, and ERS. Combined, a flexible data center can capture significant annual revenue and savings."},{q:"What is 4CP?",a:"4CP stands for Four Coincident Peak. It refers to the four 15-minute intervals (one each in June, July, August, and September) with the highest ERCOT system-wide demand. Your demand during those four intervals sets your transmission charges for the next year."},{q:"How much can a 100 MW data center make from ERCOT DR?",a:"Roughly $5 million to $30 million per year in combined 4CP avoidance, ECRS revenue, ERS revenue, and scarcity avoidance, depending on market conditions and operational flexibility. Actual capture depends on automation reliability and contract structure."},{q:"What is ECRS in ERCOT?",a:"ECRS stands for ERCOT Contingency Reserve Service. It is an ancillary service that pays for capacity that can respond within 10 minutes to a contingency event. ECRS launched in mid-2023 and became one of the highest-revenue programs for flexible loads in ERCOT."},{q:"Can Bitcoin miners participate in ERCOT DR?",a:"Yes. Bitcoin miners are well-suited to ERCOT DR programs because their workloads can be paused without breaking commitments. Many of the largest DR participants in ERCOT are mining operations."},{q:"Can AI data centers participate in ERCOT DR?",a:"Yes, with constraints. Some AI workloads pause gracefully (batch training, queued inference). Latency-sensitive serving cannot. Match the program to the workload. ERS and 4CP are easier for AI loads than ECRS, which requires faster response."},{q:"What happens if you fail to perform in a DR program?",a:"ERCOT validates performance through telemetry. Underperformance means lost revenue for the called event and can result in penalties or loss of program eligibility. Reliable automation is essential."}]},"ercot-west-load-zone":{title:"What Bitcoin Miners Need to Know About the ERCOT West Load Zone",author:"LÅD Team",date:"October 5, 2025",readTime:"8 mins read",tag:"Mining",img:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/cfc00d30f_generated_image.png",content:`The ERCOT West load zone covers West Texas, the cheapest place to consume electricity in the state. In 2023, prices dropped as low as -$244.40 per MWh, and West saw more negative-price hours than any other zone. For Bitcoin miners with automated curtailment, that adds up to roughly $5,000 per MW per year in captured value, which is exactly the kind of upside a Bitcoin mining platform is built to capture. 1599 1600 ## TL;DR 1601 1602 The ERCOT West load zone is the lowest-cost power in Texas, with frequent negative real-time prices when wind output exceeds local demand and transmission capacity. In 2023, West Zone prices hit -$244.40 per MWh and saw negative-price events on up to 19 days per month. The capturable value for flexible loads is approximately $5,000 per MW of consumption annually. The catch: only data centers with real-time, automated curtailment actually capture it. 1603 1604 ## What is an ERCOT load zone? 1605 1606 ERCOT divides Texas into eight load zones and seven major hubs. A hub is where generators inject power. A load zone is where that power gets priced and delivered to demand. Most operations price their electricity by zone, not by hub. 1607 1608 The four zones operators reference most are West, North, South, and Houston. West covers a large part of West Texas, anchored by Midland, Odessa, San Angelo, and Abilene. It is small in demand but oversized in generation, especially wind and s
1608olar. 1609 1610 ## Why is West Texas power so cheap? 1611 1612 Three structural reasons. 1613 1614 First, generation mix. West Texas was historically oil and gas country. It is now home to most of Texas's wind capacity and a growing share of solar. When the wind blows or the sun is high, supply spikes. 1615 1616 Second, transmission constraints. The Competitive Renewable Energy Zones (CREZ) initiative built transmission loops to move West Texas wind east toward Dallas, Austin, and beyond. Those lines are not big enough. Today, only about 40 percent of generated energy in the West can move to major consumption hubs. The other 60 percent has to be consumed locally. 1617 1618 Third, low local demand. The West Zone has a small residential and industrial load relative to its generation. When wind output is high, there is not enough local demand to absorb it. 1619 1620 When all three line up, real-time prices crash. In 2023, the West Zone hit -$244.40 per MWh, just barely above the ERCOT price floor of -$251 per MWh. Negative prices mean generators are paying loads to consume power, mostly because wind operators with production tax credits would rather pay than curtail. 1621 1622 ## How often does ERCOT West have negative prices? 1623 1624 In 2023, the West Zone saw negative-price events on up to 19 days per month, with over 1,000 individual negative-price intervals in the busiest months. No other zone in ERCOT comes close. 1625 1626 The pattern is seasonal. Negative prices cluster in the shoulder months when wind output is highest relative to demand: late winter, spring, and early fall. Summer has fewer negative-price hours because air conditioning load absorbs more of the supply. Winter cold snaps shift everything: prices can spike from negative to scarcity-pricing levels in hours. 1627 1628  1629 1630 *Chart 1. Hours with negative prices in each Hub and Load Zone across ERCOT in 2023* 1631 1632 ## What is that worth to a flexible data center? 1633 1634 Approximately $5,000 per MW of load per year, in captured value from negative-price events alone. 1635 1636 That number assumes you are running an automated, real-time strategy. It is the difference between consumption during negative-price hours (where you are being paid to mine) and curtailment during peak-price hours (where you would lose money). Manual operators capture a fraction of this. Real-time operators capture most of it. 1637 1638  1639 1640 *Chart 2. Negative price opportunity per MW in each Hub and Load Zone across ERCOT in 2023.* 1641 1642 ## Can Bitcoin miners realistically capture that $5,000 per MW? 1643 1644 Yes, but only with the right setup. Three things need to be true. 1645 1646 First, your operation has to be in the West Zone, ideally on a retail contract priced to the West Zone real-time index, not the Houston Hub or a fixed price. 1647 1648 Second, you need automation that can ramp up and down in seconds, not minutes. ERCOT's negative-price events can swing fast. By the time a human checks a screen and emails a site manager, the window has closed. 1649 1650 Third, you need real-time grid data. Day-ahead forecasts will not catch most of the negative-price intervals. You need live LMP signals, demand curves, and renewable output telemetry feeding directly into your curtailment logic. 1651 1652 Most miners we see in the West Zone are doing one or two of these. Few are doing all three. That is where the gap between potential and captured value sits. 1653 1654 ## What are the risks of mining in the ERCOT West Zone? 1655 1656 Three to manage. 1657 1658 Congestion volatility. The same transmission constraints that lower prices in surplus push them up in scarcity. A Texas heat wave or cold snap with constrained CREZ lines can spike West Zone prices fast. Miners without automated curtailment get hit. 1659 1660 Scarcity pricing events. ERCOT has a high price cap (currently $5,000 per MWh) and an ORDC adder that activates during reserve shortages. One unexpected scarcity event without curtailment can wipe out a month of negative-price savings. 1661 1662 Compliance with grid programs. West Zone miners often participate in 4CP, demand response, and ancillary services. Those programs have performance requirements. If your automation cannot reliably curtail when ERCOT signals it, you lose program revenue and potentially get penalized. 1663 1664 The mitigation for all three is the same: live data plus automated execution. 1665 1666 ## How does LÅD help West Zone miners? 1667 1668 We give operators real-time ERCOT West signals, automated curtailment based on price thresholds, and execution that responds in under 30 seconds. The platform tracks LMP, demand, and renewable output continuously, then triggers curtailment, ramp-up, or compute workload routing based on the rules each operator defines. 1669 1670 We started in Bitcoin mining. Our team has been in West Texas operations as operators, not as software vendors who discovered energy recently. That depth shows up in how we model the West Zone specifically: CREZ congestion patterns, ERCOT West real-time vs. day-ahead spreads, and the specific cadence of negative-price intervals. 1671 1672 ## Curious what your operation could have captured last month? 1673 1674 Request a demo. We will model your last 30 days of West Zone price exposure against an automated strategy and show you the gap.`,faq:[{q:"What is the ERCOT West load zone?",a:"The ERCOT West load zone is one of eight ERCOT load zones in Texas. It covers a large part of West Texas, anchored by Midland, Odessa, San Angelo, and Abilene. Compared to other zones, West has lower demand and a higher concentration of wind and s
1674olar generation, which is why prices are usually lower."},{q:"How cheap does power get in the ERCOT West Zone?",a:"In 2023, West Zone real-time prices dropped as low as -$244.40 per MWh, close to the ERCOT price floor of -$251 per MWh. Negative-price events occurred on up to 19 days per month, with over 1,000 individual negative-price intervals in the busiest months."},{q:"Why does the ERCOT West Zone have so many negative prices?",a:"Three reasons. Wind generators with production tax credits will accept negative prices to keep running. The CREZ transmission lines can only move about 40 percent of West Texas generation east to major consumption hubs. Local demand is small relative to local supply. When all three line up, prices go negative."},{q:"What is the financial value of negative prices for a flexible data center?",a:"Roughly $5,000 per MW of load per year, captured value from negative-price events in the West Zone in 2023. Realizing that value requires real-time, automated curtailment. Manual operators capture only a fraction of it."},{q:"Is the ERCOT West Zone good for Bitcoin mining?",a:"Yes, if your operation can curtail in real time. The West Zone has the cheapest average power in ERCOT and the most negative-price hours. Miners with automated curtailment capture the upside. Miners running on day-ahead forecasts and manual decisions miss most of it and expose themselves to scarcity-pricing risk."},{q:"What is CREZ?",a:"CREZ stands for Competitive Renewable Energy Zones. It is a Texas initiative that built transmission loops to move West Texas wind power east toward Dallas, Austin, and other major consumption areas. CREZ expanded the state's wind capacity dramatically, but the transmission build-out has not kept pace. As of 2023, only about 40 percent of West Zone generation can move east. The remaining 60 percent must be consumed locally, which is why West Zone prices crash when wind output is high."},{q:"How do I know when negative-price events will happen in ERCOT West?",a:"Day-ahead market signals, wind output forecasts, and weather patterns give you a directional view. Real-time LMP is the only reliable indicator hour-to-hour. Operators using live ERCOT data can see negative-price intervals coming and stay online to consume them. Day-ahead-only operators miss most of the volatility."}]},"ercot-4cp-2025-report":{title:"Sixty Minutes That Set Your Entire Year: ERCOT 4CP and How to Be Ready for 2026",author:"LÅD Team",date:"June 2, 2026",readTime:"9 mins read",tag:"Grid",img:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/1f2c6d820_generated_image.png",contentSections:[`Across an entire year, sixty minutes decide what you pay to move power in ERCOT. Four 15-minute windows, one in each summer month, set your transmission charges for the next twelve months. Sit them out and you save. Run through them and
1674you pay, every month, until next summer arrives. 1675 1676## TL;DR 1677 1678The Four Coincident Peaks (4CP) are the four 15-minute intervals with the highest ERCOT system-wide demand, one per summer month. Your facility's average load during those exact moments sets your transmission cost for the following year. At full exposure, that charge can reach **$50,000 per MW per year**, roughly $1.25 million for a 25 MW site. Reduce your load to near zero in those same windows and you pay a fraction of it. The 2026 season opened this month. The first of this year's four peaks is somewhere in the weeks just ahead. 1679 1680## How the Mechanism Works 1681 1682Each summer month, ERCOT records its single highest 15-minute demand interval. Those four intervals are the Four Coincident Peaks. Your facility's average demand across exactly those four moments becomes your share of the grid's transmission cost allocation for the following year. 1683 1684The whole game comes down to where your load sits during four quarter-hours you have to spot in advance. 1685 1686The charge scales directly with how much load you pull during those windows. At full load, the cost is substantial. Pull your load down to near zero and you pay a fraction. It is one of the only major costs on your energy bill that you control purely through how you operate. 1687 1688## What Last Summer Taught Us 1689 1690### It keeps the same appointment, but never the same date 1691 1692In 2025, all four peaks landed in the same late-afternoon window, between 5:00 and 5:30 p.m. on a weekday. The time of day barely moves. The date is the hard part. 1693 1694The peak chases the hottest day of each month. In a mild summer, a dozen days are close enough that any of them could win. Guess wrong and you have either curtailed for nothing or sat through the one interval that counted. 1695 1696### The peak does not come to a point 1697 1698Picture a hot afternoon. Demand climbs, then flattens into a wide plateau from roughly 4 to 6 p.m. When the top of the curve is that flat, many 15-minute intervals sit within a whisker of one another. Something small decides the winner: a passing cloud, a swing in how batteries are charging, a shift in the wind. 1699 1700Knowing the peak lands "around five" is not the same as knowing the exact quarter-hour that sets your bill.`,"CHART:DEMAND",`In 2025 the four peaks landed on **June 19, July 30, August 18, and September 4**. Every one fell on a weekday, between 5:00 and 5:30 in the afternoon. 1701 1702### The biggest hour of the year is one of the cheapest 1703 1704This is the part that surprises almost everyone. 1705 1706Solar is still pouring into the grid at 5 p.m., so even as demand tops out, power prices stay low. The expensive hours arrive later, after the sun drops and the evening peak takes over. 1707 1708On August 18, ERCOT hit its highest demand of the year, around 84 GW. Power at that exact moment settled near **$25 per MWh**. That same evening, prices ran past $100. The single most important window of the month was one of the cheapest hours of the day.`,"CHART:PRICE","CHART:HOURLY",`> **The lesson underneath this matters more than it first appears.** Curtailing for 4CP is not about dodging expensive power. The power at the demand peak is cheap, often profitable to run straight through. You are giving up good runtime purely to avoid a transmission charge that will not even be confirmed until after the season ends. That is exactly why precision is everything. Curtail too aggressively and you have burned profitable hours chasing a charge a lighter touch would have avoided. 1709 1710### A mild summer still came within a whisker of the record 1711 1712There was no major heat dome in 2025, yet August still touched nearly 84 GW, just under the all-time record of 85.5 GW from 2023. Load is climbing fast as data centers and electrification come online. Last year the weather was forgiving. With more load on the grid this year, the peaks will likely run higher, and the cost of being on the wrong side of them runs right along with it. 1713 1714## Whether You Mine Bitcoin or Train AI, You Are the Same Kind of Load 1715 1716To the grid, a Bitcoin mine and an AI data center look alike: large, power-hungry, and increasingly able to dial down on command. That shared trait is exactly what 4CP rewards. For both, this is one of the largest costs you can actually move, and the math is identical. 1717 1718Every hour you curtail just to be safe is an hour of lost production. The goal is never to curtail more. It is to curtail only when it counts. 1719 1720The one real difference is tolerance. A mine can drop in seconds and feel nothing. A data center carries uptime commitments and can only shed or shift the load that is safe to move. But both need the same thing: an accurate read of where the peak actually sits, and the ability to act on it the moment it forms. 1721 1722## How to Be Ready, Starting Now 1723 1724**Know your exposure.** Understand how many megawatts you run and what a full-exposure 4CP season actually costs you in dollars. You cannot manage a number you have never sized. 1725 1726**Track the right signal.** The settled 4CP is not the demand figure on a public dashboard. It accounts for imports and exports across DC ties and the load batteries pull while charging, which can move the winning interval to a time the dashboard never flagged. 1727
1728**Be able to act in real time.** A forecast cannot curtail anything on its own. You need curtailment driven by live telemetry that fires when the peak is actually forming and recovers the moment it passes. 1729 1730**Set your risk tolerance on purpose.** How much exposure you protect versus how much uptime you keep is a business decision. Make it deliberately, not in a panic at 5 p.m. in August. 1731 1732**Watch the rules.** Texas Senate Bill 6 directs the Public Utility Commission to amend the 4CP methodology by the end of 2026. The target itself is moving, so build for change. 1733 1734## How LÅD Manages It 1735 1736A forecast tells you a peak is likely. On its own it does not curtail anything. In a mild, plateaued year it is wrong often enough to wear your attention down by August. LÅD is built to close that gap. 1737 1738We track the peak in real time. As demand shifts through the afternoon, we follow where the coincident peak actually sits, not where a forecast guessed it would be. When the live data says a peak is forming, we issue the curtailment command to your machines immediately, and we bring them back online only when it is safe to do so. 1739 1740You stay in the driver's seat. LÅD provides the recommendation; the decision is yours. You set the risk tolerance, the platform executes the policy you choose, and it shows you the reasoning behind every call. Nothing is curtailed that you did not configure. 1741 1742**The payoff lands in the hours you keep.** A typical QSE signal calls for 70 to 80 hours of curtailment per month across the season to stay safe. The LÅD 4CP Signal, built on real-time telemetry, cuts that to 20 to 40 hours while still avoiding the intervals that matter.`,"CHART:CURTAILMENT",`For an operator, those recovered hours are worth more than **$3,000 per MW per month** in additional revenue, purely from less downtime. The discipline is not in curtailing more. It is in curtailing only when it counts. 1743 1744## The 2025 Windows Are Settled. The 2026 Season Just Opened. 1745 1746The four intervals from last summer are already in the books. They set the transmission rate you are paying right now. This year's four are still ahead of you, the season opened just days ago, and there is more demand on the grid than ever heading into them. 1747 1748The operators who treat 4CP as something to manage in real time, rather than guess at, are the ones who keep both their uptime and their margin. 1749 1750LÅD is the independent layer between the grid signal and your load. See where your peak really sits, and act on it on your terms.`],content:"",faq:[{q:"What is ERCOT 4CP?",a:"4CP stands for Four Coincident Peak. It refers to the four 15-minute intervals, one in each of June, July, August, and September, with the highest ERCOT system-wide demand. Your facility's average load during those exact four moments sets your transmission cost allocation for the entire following year."},{q:"How much can 4CP cost a data center or Bitcoin mine?",a:"At full exposure, meaning your load runs at its highest during all four peaks, transmission charges can reach roughly $50,000 per MW per year. For a 25 MW site, that is around $1.25 million annually. Reducing your load to near zero during those four 15-minute windows significantly lowers that charge."},{q:"When do ERCOT coincident peaks typically occur?",a:"Historically, ERCOT peaks land on weekdays between 4:30 and 6:00 p.m. during the hottest days of each summer month. In 2025, all four peaks fell between 5:00 and 5:30 p.m. The time window is consistent; the exact date within each month is not. A mild summer can produce a dozen candidate days that are close enough to make manual guessing unreliable."},{q:"Why are power prices low during the 4CP peak?",a:"Solar generation is still strong at 5 p.m., which keeps supply elevated even as demand tops out. The highest-demand interval of the month is frequently one of the cheapest power hours of the day. The real price spikes arrive later in the evening after solar drops off. This means curtailing for 4CP means giving up low-cost runtime to avoid a transmission charge, not avoiding expensive power."},{q:"Is 4CP the same for Bitcoin miners and AI data centers?",a:"The mechanism and economics are identical. Both are large, flexible loads whose transmission charges are set by their demand during the four peak intervals. The difference is operational: miners can drop to zero in seconds, while AI data centers may need to selectively shed workloads to protect uptime commitments. The goal is the same: curtail only when it counts."},{q:"How does LÅD help operators manage 4CP?",a:"LÅD tracks ERCOT demand in real time, not just from day-ahead forecasts. As the afternoon develops, the platform follows where the coincident peak is actually forming and issues curtailment commands when the signal confirms a peak is occurring. Machines come back online as soon as the risk passes. This reduces curtailment hours from 70 to 80 hours per month to 20 to 40 hours, recovering more than $3,000 per MW per month in uptime value."},{q:"What is changing with ERCOT 4CP rules in 2026?",a:"Texas Senate Bill 6 directs the Public Utility Commission to amend the 4CP methodology by the end of 2026. The exact changes are still being defined. Operators should build their 4CP strategy to accommodate rule changes rather than assuming the current structure remains fixed for the 2027 billing year."}]},"identify-underperforming-bitcoin-miners":{title:"Why Your Miners Are Probably Underperforming (And How to Know for Sure)",author:"LÅD Team",date:"May 29, 2026",readTime:"10 mins read",tag:"Mining",img:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/17778b1b7_generated_image.png",content:`Most Bitcoin mining operators know something is off with their fleet. They just don't know how to prove it. 1751 1752They run checks. They tweak settings. They compare notes with other operators. But when it comes to the most basic question â "is this miner actually underperforming, or is this just normal for my conditions?" â most operators have no reliable answer. 1753 1754That gap costs real money. And for a long time, the industry had no good way to close it. A Bitcoin mining platform is only as good as the benchmark it optimizes against. 1755 1756## TL;DR 1757 1758Manufacturer nameplates are set in a lab. They have no relationship to real-world site performance. Mining operators spend significant time and resources optimizing their fleets without ever knowing if their baseline benchmark is accurate. The missing piece is a real-world benchmark built from actual fleet data, filtered to your exact miner model, region, and current conditions. **That benchmark now exists.** 1759 1760## What Does It Actually Mean to Optimize a Mining Site? 1761 1762When operators talk about optimizing performance, they are usually doing a combination of these things: 1763 1764**Temperature management.** Heat is the most common cause of hashrate loss. Miners throttle under thermal stress. Ideal inlet temperatures sit between 15 and 27 degrees Celsius. Above that, chips slow down to protect themselves. Operators invest in cooling infrastru
1764cture, airflow management, and in larger operations, immersion cooling systems that eliminate fans entirely and allow much more aggressive tuning. 1765 1766**Firmware tuning.** Stock firmware from manufacturers is conservative by design. It is calibrated to work across a wide range of conditions and silicon quality variations. Third-party firmware gives operators control over voltage curves, chip frequencies, and power profiles. Undervolting alone can reduce power draw by 10 to 20 percent while maintaining stable hashrate. Overclocking can push output higher when conditions support it. 1767 1768**Hardware maintenance.** Dust, fan degradation, and loose connections accumulate over time. A miner that ran at 100 percent realization six months ago may now sit at 92 percent due to a single failing hashboard. Regular maintenance cycles catch these issues before they compound. 1769 1770**Pool connectivity.** Rejected shares and latency add up. Operators monitor rejection rates and pool response times as part of routine performance management. 1771 1772**Power quality.** Voltage fluctuations and unstable supply directly affect hashrate stability. Operators run proper PSUs, monitor power delivery, and manage curtailment events to protect hardware during grid stress periods. 1773 1774These are all legitimate optimization levers. But there is a problem that sits upstream of all of them. 1775 1776## The Real Problem: You Do Not Have a Reliable Benchmark 1777 1778Here is what we heard from dozens of mining operators before we built a solution for this. 1779 1780They would look at their fleet running at 96 TH/s on an S19j Pro with a nameplate of 110 TH/s and ask: is this a problem, or is this normal? 1781 1782Most of the time, the answer was "probably normal." Because they had nothing to compare it against except the manufacturer spec, which is measured in a lab under ideal conditions with perfect temperature, stable voltage, and no real-world environmental variance whatsoever. 1783 1784> **The nameplate is not a benchmark. It is a theoretical ceiling measured in a controlled environment that your site will never replicate.** 1785 1786So operators were running all of those optimization routines listed above, investing real time and real budget, against a number that had no relationship to their actual operating conditions. 1787 1788One operator told us: *"We kept seeing hashrate below nameplate and assumed we had a cooling problem. Spent weeks on the airflow setup. Turns out we were actually performing above where most similar sites run. We just had no way to know that."* 1789 1790That is the missing data problem. And it has a direct dollar cost. 1791 1792## Why Every Percentage Point Matters in Bitcoin Mining 1793 1794Mining profitability is a margin game. Revenue is fixed by the network: difficulty, block reward, and BTC price. The only variable you control is operational efficiency. 1795 1796At scale, a one percent difference in hashrate realization across a fleet translates directly into revenue. On a 100 MW site, the difference between running at 94 percent realization versus 97 percent is not a rounding error. It is a meaningful revenue gap that compounds daily. 1797 1798The operators who win over time are not necessarily the ones with the best hardware. They are the ones who extract the most performance from the hardware they have, consistently, over time. 1799 1800**That requires knowing where you actually stand. Not where the manufacturer says you should stand.** 1801 1802## What the Industry Has Been Missing: Real-World Fleet Data 1803 1804The reason this benchmark did not exist before is a data problem. To build a reliable real-world benchmark, you need: 1805 1806- Millions of data points from actual operating fleets 1807- Filtering by exact hardware model (an S19j Pro is not an S21) 1808- Cross-referencing against real environmental conditions: region, season, ambient temperature 1809- Continuous updating as new data flows in 1810- Full anonymization so no individual operator's data is ever exposed 1811 1812That data does not exist in a lab. It exists only if you have instrumented enough fleets across enough sites to build a statistically meaningful picture of what real-world performance looks like for each model under real conditions. 1813 1814That is what LoD has built over years of monitoring operations across **1,000+ MW under management**, **50+ hardware models**, and **10 billion indexed data points**. 1815 1816## Introducing HRI: The Hashrate Realization Index 1817 1818The Hashrate Realization Index is a real-world benchmark for your exact miner model and conditions. 1819 1820It is built from millions of historical performance data points filtered to your specific hardware model, then cross-referenced against live data from your region, season, and current weather. Not a lab spec. Not a competitor's fleet. A benchmark built specifically for your gear, your conditions, right now. 1821 1822The difference is significant. An S19j Pro running in Texas in August operates under different thermal and power conditions than the same model running in Alberta in January. A benchmark that does not account for that is not a real benchmark. **HRI accounts for it.** 1823 1824> **Sites we work with have used HRI to identify underperforming miners they had no visibility into before. In some cases, fixing those miners translated into $3,000 to $20,000
1824in recovered revenue** â not because the fix was complicated, but because they finally had the data to see where the problem was. 1825 1826## How HRI Works 1827 1828HRI is built into the LoD IoT dashboard. No setup. No integration work. If you are on LoD, it is already running. 1829 1830**Step 1: Open the widget.** Click the gear icon above the dashboard stat cards and select Hashrate Realization from the widget list. 1831 1832**Step 2: Choose your miner model.** Select the model you want to benchmark. The distribution chart loads immediately, showing your fleet against the HRI index for that exact model. 1833 1834**Step 3: Read the distribution.** A tight cluster near the index means your fleet is consistent and hitting expected performance. A wide spread with a long left tail means miners are quietly dragging your average down. 1835 1836**Step 4: Click any bar to identify the machines.** Select a realization range on the chart and see exactly which miners fall in it â including model, realization percentage, and worker count. One more click opens them directly in your ASIC view. 1837 1838No spreadsheets. No manual cross-referencing. The data tells you where the problem is. You decide what to do about it. 1839 1840## Who HRI Is For 1841 1842**Operations managers** running day-to-day fleet performance will use HRI as a routine diagnostic tool. It answers the question "are we performing normally?" in seconds rather than hours. 1843 1844**CFOs and site owners** gain a data-backed view of whether the fleet is extracting expected value from the hardware. It translates operational performance into a financial frame: your realization rate is a revenue efficiency metric. 1845 1846**Technical teams** performing tuning and maintenance work now have a real benchmark to optimize against. Instead of tuning toward the nameplate and guessing whether the result is good, they tune toward the HRI index and know exactly where they stand relative to real-world peers running the same hardware. 1847 1848## The Bigger Picture: Data Is the Foundation 1849 1850HRI is one feature in a broader data layer. The principle behind it applies across everything LoD builds. 1851 1852Optimization decisions in mining are only as good as the data they are based on. Operators have historically made decisions based on incomplete signals: manufacturer specs that do not reflect reality, manual spot checks that miss intermittent issues, gut feel built from years of experience but limited by the scope of what one person can monitor. 1853 1854The industry is getting more competitive, not less. Network difficulty keeps climbing. Hardware efficiency gains are narrowing. The operators who will stay profitable are the ones who can extract maximum performance from existing infrastructure. 1855 1856**That requires reliable data. Not approximations. Not lab specs.** Real-world fleet data, filtered to your conditions, continuously updated. That is what LoD provides. And it is the kind of data that no manufacturer, no pool, and no other platform in this space has the instrumented fleet data to build.`,faq:[{q:"What is the Hashrate Realization Index (HRI)?",a:"HRI is a real-world performance benchmark for Bitcoin mining hardware. It is built from millions of historical data points filtered to your exact miner model, region, season, and current weather conditions. Unlike manufacturer nameplates, HRI reflects what your machines should actually be producing in your specific operating environment."},{q:"Why is my miner's hashrate lower than the nameplate?",a:"Manufacturer nameplates are measured in a lab under ideal conditions: perfect temperature, stable voltage, no environmental variance. Real-world operating conditions always differ from that. The gap between nameplate and actual performance is normal. What matters is whether your performance is normal for your model and conditions â which requires a real-world benchmark, not a lab spec."},{q:"How do I know if my miners are underperforming?",a:"Without a real-world benchmark, you cannot know with confidence. Common signs of underperformance include hashrate consistently below peers running the same model, a wide realization distribution across your fleet, and machines that trend lower over time without an obvious cause. HR
1856I gives you a distribution view that makes underperformers visible immediately."},{q:"What are the most common causes of miner underperformance?",a:"Temperature and cooling issues are the most frequent cause. Others include firmware running at suboptimal settings, degraded hashboards, power quality problems, fan failures, and in some cases, silicon variance in older hardware. HRI identifies which machines are underperforming. The ASIC view in LoD helps you diagnose why."},{q:"How accurate is HRI compared to manufacturer specs?",a:"HRI is more accurate than manufacturer specs for real-world performance benchmarking because it is derived from actual fleet data rather than controlled lab conditions. It accounts for regional climate, seasonal temperature variation, and current weather in a way that static nameplates cannot."},{q:"Is HRI available for all miner models?",a:"HRI currently covers 50+ hardware models including major SHA-256 ASIC lines. The index is model-specific: S19j Pro data is never aggregated with S21 data. Each model has its own distribution built from fleets running that exact hardware."},{q:"How do I access HRI in LoD?",a:"Open your IoT dashboard, click the gear icon above the stat cards, and select Hashrate Realization from the widget list. If you are on LoD, HRI is already live. No setup or additional integration is required."}],hriCta:!0},"bitcoin-mining-ops-wrong-numbers":{title:"Bitcoin Mining Ops Managers Are Optimizing the Wrong Numbers",author:"LÅD Team",date:"June 25, 2026",readTime:"10 mins read",tag:"Mining",img:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/819ef7140_generated_image.png",content:`Most sites are more optimized than their owners think. The problem isn't effort. It's where the effort is pointed. Knowing where matters most is exactly what a good Bitcoin mining platform should surface. 1857 1858## TL;DR 1859 1860**TL;DR:** Energy contract negotiations, pool fee reviews, and software audits feel productive because they produce visible results. But overcurtailment, underperforming ASICs, and unmonitored auxiliary loads are often larger leaks. The fix isn't to stop negotiating contracts. It's to know your actual numbers before deciding which conversation deserves your time. 1861 1862## The Real Math on Energy Contracts 1863 1864Let's get this out of the way first, because anyone who runs the numbers will call it out. 1865 1866Saving $0.004 per kWh on a 50 MW site is worth roughly $1.75 million per year. That's not a rounding error. That's a meaningful improvement to your margin structure that protects you when hashprice drops, regardless of uptime. A great PPA negotiation is a genuine win. 1867 1868The problem isn't that operators negotiate contracts. The problem is that some operators stop there, treating the contract as the primary lever and treating everything else as secondary overhead. 1869 1870A site losing 5% of potential hashtime to avoidable overcurtailment, running several hundred ASICs with undiagnosed performance issues, and spending 30 to 40% of its total power budget on cooling it can't measure accurately, that site has a larger optimization gap than most contract negotiations will close. And if you don't know those numbers, you can't make that comparison honestly. 1871 1872The argument here isn't that contracts don't matter. It's that operational visibility is what tells you whether the contract is your biggest lever or your second biggest one. 1873 1874## What Overcurtailment Actually Is (and Isn't) 1875 1876Curtailment on ERCOT is part of the deal. If you're on a CLR or ADER program, you have obligations to your QSE, and you curtail when the grid needs you to. That's expected, it's compensated, and experienced operators manage it well. 1877 1878Overcurtailment is different. It's the hashtime you lose beyond what the program requires. 1879 1880It shows up in a few ways. Trigger thresholds set too conservatively, so the site goes down earlier or more often than necessary. Ramp-ups that take 30 to 45 minutes when the grid condition cleared in 10. Curtailment logic that doesn't distinguish between a 5-minute spike and a sustained 2-hour event. 1881 1882Operators who have audited this typically find it accounts for 2 to 5% of potential hashtime. On a 50 MW site at current economics, that's a real number. 1883 1884One important caveat: fast doesn't always mean better. ASICs don't like being power-cycled aggressively. Slamming a fleet from 0 to full draw in seconds, especially in high-ambient environments like Texas summers, can accelerate PSU failures, hash board delamination, and thermal paste degradation. An $8 million fleet has its own math. 1885 1886The goal isn't the fastest possible ramp-up. It's the right ramp-up, executed consistently based on real conditions rather than manual judgment at 2am. Staged recovery profiles are a legitimate engineering choice. The problem is when ramp-up is slow because of manual process gaps, not because of a deliberate decision. 1887 1888## Fleet Averages Are Hiding Your Worst Machines 1889 1890If your dashboard says your site is running at 96% of rated performance, you might feel reasonably confident. 1891 1892You shouldn't. 1893 1894That 96% is an average. It can easily include 40 machines running at 78%, 80 machines running at 91%, and a handful at 99% pulling the number up. The 78% machines are your actual problem, and fleet averages won't surface them. 1895 1896The causes are usually recoverable: firmware drift, dynamic power scaling bugs, clogged intake filters, degraded thermal paste, dead hash boards. None of these require replacing the machine. All of them require knowing the machine has the problem. 1897 1898Here's where the data conversation gets real, though. A 50 MW site runs 14,000 to 16,000 ASICs. Unit-level telemetry on a fleet that size doesn't give you a cleaner picture, it gives you an overwhelming one, unless the system is built to prioritize and act, not just report. 1899 1900The difference between useful telemetry and alert fatigue is whether the platform surfaces the 40 machines that actually need attention today ver
1900sus generating 400 low-priority notifications about minor efficiency variance across the fleet. Granular data is only an asset when it's organized around what your team can actually do something about. 1901 1902Most operators find underperforming machines by accident, during a maintenance cycle or when a rack gets swapped. The goal of good telemetry isn't to replace that process with more screens. It's to make the problem findable before it has compounded for three months. 1903 1904## The Energy Budget You're Probably Not Tracking 1905 1906Most mining operations have reasonable visibility into their compute hardware. Hashrate, power draw, uptime. These numbers are tracked. 1907 1908What often isn't tracked is everything else. 1909 1910Cooling systems, variable frequency drives, ventilation, PDUs, and auxiliary electrical loads can represent 20 to 40% of total site power. When those systems aren't instrumented, they run as fixed overhead. Fans at constant speed regardless of ambient temperature. Cooling units cycling on schedules set at commissioning. PDUs drawing more than they should without anyone noticing. 1911 1912One thing worth being direct about: instrumenting these systems in an industrial mining environment is not a simple retrofit. Bitcoin mines are high-EMI environments. Wireless sensors fail or drop packets regularly in these conditions. Doing this properly typically requires hardened industrial infrastructure, wired integrations, and real engineering work. It's not plug-and-play, and any vendor who tells you it is isn't being straight with you. 1913 1914What it is, is worth doing. The operators who have built out this visibility run their auxiliary loads as a managed cost instead of a fixed one. That's a structural advantage that compounds over time, especially as energy prices become more volatile. 1915 1916## How to Figure Out Where Your Leaks Actually Are 1917 1918Before the next vendor negotiation, run a quick audit of your real numbers. 1919 1920**Start with curtailment recovery time.** Pull your ERCOT event logs from the last 90 days and measure the average time between a trigger condition clearing and your site reaching full output. If that number is consistently above 20 to 25 minutes, you have an overcurtailment gap worth quantifying in hashtime. 1921 1922**Then pull your fleet performance distribution.** Not the average. The distribution. How many machines are running below 90% of rated performance? Below 95%? If you don't have that breakdown available without digging, that's your first data gap. 1923 1924**Then look at your auxiliary energy consumption.** What percentage of your total site power goes to non-compute loads? If you don't know, you can't optimize against it. 1925 1926Run those three estimates. Compare the result against what you'd recover from renegotiating your pool fee or squeezing a software contract. That comparison tells you where to spend your time. 1927 1928## What Changes When You Have the Data 1929 1930Operators who have instrumented their sites at this level describe a consistent shift. They stop reacting and start operating. 1931 1932Curtailment events get handled by defined logic instead of whoever picks up the phone first. Fleet degradation gets caught when a machine drifts, not during the next maintenance window. Cooling costs adjust to real conditions instead of assumptions made at commissioning. 1933 1934None of that replaces the operator. Telemetry doesn't fix a machine. Automation doesn't negotiate your PPA. An experienced ops manager with a real relationship with their QSE is still the most valuable thing on a well-run site. 1935 1936What changes is the quality of information that manager is working with, and how much of their time goes to decisions that actually require their judgment versus issues that should be handled automatically before they even hear about it. 1937 1938The best-run operations don't treat contract negotiation and operational telemetry as competing priorities. They use their data to know which one matters more right now, and they execute on both. 1939 1940LÅD gives data center operators real-time energy intelligence, fleet-level telemetry, and automated curtailment response built on ERCOT data. If you want to see what your operation is actually leaking, request a site assessment.`,faq:[{q:"How do I know if I have an overcurtailment problem?",a:"Pull your ERCOT event logs and compare actual downtime against the minimum required by your grid program. If your ramp-up consistently takes longer than 20 minutes after a trigger condition clears, or if your downtime regularly exceeds your program's minimum obligation, you have an overcurtailment gap. The size depends on event frequency and your current ramp-up process, but 2 to 4% of potential hashtime is a common finding for sites that haven't audited this."},{q:"Isn't faster ramp-up always better after a curtailment event?",a:"Not necessarily. Aggressive power cycling in high-ambient environments accelerates hardware failures, PSU degradation, and hash board issues. The right ramp-up speed depends on your ambient conditions, fleet age, and your QSE program requirements. The goal is a defined, c
1940onsistent ramp-up based on real conditions. Staged recovery profiles are a legitimate engineering choice. The problem is when ramp-up is slow because of manual process gaps, not because of a deliberate decision."},{q:"How do you avoid alert fatigue with unit-level fleet telemetry?",a:"This is the right question to ask any telemetry vendor. A system that surfaces every minor efficiency variance across 15,000 machines creates more work than it eliminates. Good fleet telemetry prioritizes by actionability: which machines need attention today, which can wait for the next scheduled maintenance window, and which are performing within acceptable range. If a vendor can't tell you clearly how their system handles prioritization at scale, that's a gap worth probing before you buy."},{q:"What's involved in instrumenting auxiliary systems like cooling and ventilation?",a:"More than most vendors will tell you upfront. Industrial mining environments have significant electromagnetic interference that causes wireless sensors to fail or drop packets regularly. Doing this properly typically means hardened, wired integrations with existing industrial control systems, which requires engineering work, planned downtime, and real capital expenditure. It's worth doing. It's not a weekend project."},{q:"How much does a PPA or energy contract negotiation actually matter?",a:"It matters a lot. Saving $0.004 per kWh on a 50 MW site is worth approximately $1.75 million annually, and that savings is fixed regardless of hashprice conditions. The question is whether it's the highest-priority lever given what else might be leaking. That's a site-specific answer, and it requires knowing your actual operational numbers first."},{q:"What's the first thing to fix if I want better operational visibility?",a:"Unit-level ASIC telemetry, organized around what your team can actually act on. Not a raw data feed, but a prioritized view of which machines need attention and why. Everything else, curtailment automation, auxiliary load management, energy program optimization, depends on having reliable, granular performance data as the foundation."}]}};function mCe(){const{slug:e}=mF(),t=fCe[e],[n,r]=O.useState(null),[i,o]=O.useState(!t);if(O.useEffect(()=>{t||xn.entities.BlogPost.filter({slug:e,is_published:!0},"-published_date",1).then(k=>{k&&k.length>0&&r(k[0])}).catch(()=>{}).finally(()=>o(!1))},[e,t]),!t&&i)return a.jsx(Je,{children:a.jsx("section",{className:"py-40 text-center",style:{background:"#1A1A1A"},children:a.jsx("div",{className:"w-8 h-8 border-2 rounded-full animate-spin mx-auto",style:{borderColor:"#BFF589",borderTopColor:"transparent"}})})});if(!t&&n)return a.jsx(cCe,{post:n});const s=t;if(!s)return a.jsx(Je,{children:a.jsxs("section",{className:"py-40 text-center",style:{background:"#1A1A1A"},children:[a.jsx("h1",{className:"font-display text-4xl text-lod-white mb-4",children:"Post Not Found"}),a.jsx(ye,{to:"/blog",className:"btn-primary mt-6 inline-block",children:"Back to Blog"})]})});const l={"real-time-curtailment":"Real-Time Curtailment for Data Centers: How It Works | LÅD","ercot-demand-response":"ERCOT Demand Response Programs: Operator Guide | LÅD","ercot-west-load-zone":"ERCOT West Load Zone: A Bitcoin Miner's Playbook | LÅD","dam-vs-rtm":"DAM vs RTM: ERCOT Electricity Market Mechanics for Data Centers","ercot-vs-pjm":"ERCOT vs PJM: Market Structures and Data Center Strategies","q1-2026-energy-outlook":"Q1 2026 Energy Outlook: Capacity Costs and Volatility","stay-ahead-ercot-pjm":"Tracking Energy Rule Changes in ERCOT and PJM","bitcoin-mining-management-platform":"What to Look for in a Bitcoin Mining Management Platform: Buyer's Checklist | LÅD","bitcoin-miners-profits-peaks":"Bitcoin Miners: How to Avoid Profit Loss During Grid Peaks","mining-to-ai":"Bitcoin Mining to AI Pivot: Decision Framework and Economics","lod-launches-clod":"CLÅD: Energy-Aware AI Inference Platform for Cheaper Compute","identify-underperforming-bitcoin-miners":"Why Your Miners Are Probably Underperforming, And How to Know for Sure | LÅD","ercot-4cp-2025-report":"ERCOT 4CP 2025: Sixty Minutes That Set Your Transmission Cost for the Year | LÅD","bitcoin-mining-ops-wrong-numbers":"Bitcoin Mining Ops: Are You Optimizing the Wrong Numbers? | LÅD"},u={"real-time-curtailment":"Real-time curtailment is the difference between catching a $200/MWh price spike and missing it. Here is what it takes to actually do it at scale.","ercot-demand-response":"ERCOT pays flexible loads up to six figures per MW per year through demand response and 4CP. Here is how data centers actually capture it.","ercot-west-load-zone":"ERCOT West has the cheapest power in Texas and over 1,000 negative-price hours per year. Here is how flexible data centers turn that into $5K/MW.","dam-vs-rtm":"DAM publishes hourly prices 24 hours ahead. RTM clears every five minutes reflecting actual grid conditions. Most volatility and opportunities for data centers occur in real-time markets.","ercot-vs-pjm":"ERCOT operates energy-only. PJM runs energy plus capacity markets. Different structures reward different operational strategies for data centers and miners.","q1-2026-energy-outlook":"PJM capacity prices hit $329/MW-day record. ERCOT volatility persists. AI load growth outpaces generation. Prepare for 30-60% cost increases.","stay-ahead-ercot-pjm":"ERCOT and PJM rules change quarterly. Track changes using 10 strategies that turn regulatory risk into competitive advantage for data center operators.","bitcoin-mining-management-platform":"A buyer's checklist for evaluating Bitcoin mining management platforms: fleet monitoring, automated curtailment, energy market integration, and sub-30-second execution.","bitcoin-miners-profits-peaks":"A 100 MW Bitcoin mining site loses $200-400K per year to grid peaks. Real-time automated curtailment recovers most of it.","mining-to-ai":"Pivoting from Bitcoin mining to AI is not a simple swap. Decision depends on infrastru
1940cture, retrofit costs, customer pipeline, and risk tolerance.","lod-launches-clod":"CLÅD routes AI inference to cheapest data centers in real-time based on energy prices. Up to 60% cheaper. Built on LÅD energy platform.","identify-underperforming-bitcoin-miners":"Most Bitcoin mining operators know something is off with their fleet. Now there's a real-world benchmark to prove it: the Hashrate Realization Index (HRI) from LÅD.","ercot-4cp-2025-report":"Four 15-minute windows set your ERCOT transmission cost for the entire year. Here is what 2025 revealed, and how to be on the right side of the 2026 season.","bitcoin-mining-ops-wrong-numbers":"Energy contract negotiations feel productive, but overcurtailment, underperforming ASICs, and unmonitored auxiliary loads are often larger leaks. Know your actual numbers before deciding where to spend your time."},d=l[e]||s.title,p=u[e]||s.title,f=`https://lod.io/blog/${e}`,g=e==="identify-underperforming-bitcoin-miners"?{"@context":"https://schema.org","@type":"HowTo",name:"How to Identify Underperforming Bitcoin Miners Using HRI",description:"A step-by-step guide to using the Hashrate Realization Index (HRI) in the LÅD IoT dashboard to benchmark your mining fleet against real-world data and find underperforming machines.",totalTime:"PT5M",tool:[{"@type":"HowToTool",name:"LÅD IoT Dashboard"}],step:[{"@type":"HowToStep",position:1,name:"Open the HRI widget",text:"Click the gear icon above the dashboard stat c
1940ards and select Hashrate Realization from the widget list.",url:"https://lod.io/blog/miners-underperforming-hri#how-hri-works"},{"@type":"HowToStep",position:2,name:"Choose your miner model",text:"Select the exact hardware model you want to benchmark. The distribution chart loads immediately, showing your fleet against the HRI index for that model.",url:"https://lod.io/blog/miners-underperforming-hri#how-hri-works"},{"@type":"HowToStep",position:3,name:"Read the distribution",text:"A tight cluster near the index means your fleet is consistent. A wide spread with a long left tail means miners are quietly dragging your average down.",url:"https://lod.io/blog/miners-underperforming-hri#how-hri-works"},{"@type":"HowToStep",position:4,name:"Click any bar to identify the machines",text:"Select a realization range on the chart and see exactly which miners fall in it â including model, realization percentage, and worker count. One more click opens them in your ASIC view.",url:"https://lod.io/blog/miners-underperforming-hri#how-hri-works"}]}:null,y=dCe(s),b=hCe(y),w=pCe(s.readTime),v={"@context":"https://schema.org","@type":s.faq?["Article","FAQPage"]:"Article",headline:s.title,description:p,image:s.img,datePublished:s.date,dateModified:"2026-05-05T00:00:00Z",articleBody:y,wordCount:b,timeRequired:w,author:{"@type":"Organization",name:s.author},publisher:{"@type":"Organization",name:"LÅD Technologies",logo:{"@type":"ImageObject",url:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/6cf86e0a9_Lod-Green-no-Background.png"}},...s.faq?{mainEntity:{"@type":"FAQPage",mainEntity:s.faq.map(k=>
1940({"@type":"Question",name:k.q,acceptedAnswer:{"@type":"Answer",text:k.a}}))}}:{}},j={h1:({children:k})=>a.jsx("h1",{className:"font-display text-3xl text-lod-white mt-10 mb-4",children:k}),h2:({children:k})=>a.jsxs("h2",{className:"font-display text-2xl text-lod-white mt-10 mb-4 flex items-center gap-3",children:[a.jsx(xt,{size:20,style:{color:"#BFF589"}}),k]}),h3:({children:k})=>a.jsx("h3",{className:"font-display text-xl text-lod-white mt-8 mb-3",children:k}),p:({children:k})=>a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-5",children:k}),strong:({children:k})=>a.jsx("strong",{className:"text-lod-green font-semibold",children:k}),ul:({children:k})=>a.jsx("ul",{className:"space-y-3 mb-5 ml-4",children:k}),ol:({children:k})=>a.jsx("ol",{className:"space-y-3 mb-5 ml-4 list-decimal",children:k}),li:({children:k})=>a.jsxs("li",{className:"flex items-start gap-3 text-lod-gray text-base",children:[a.jsx("span",{className:"mt-2 w-1.5 h-1.5 rounded-full flex-shrink-0",style:{background:"#BFF589"}}),a.jsx("span",{children:k})]}),blockquote:({children:k})=>a.jsx("blockquote",{className:"border-l-4 pl-6 py-4 my-6 rounded-r-lg",style:{borderColor:"#BFF589",background:"rgba(191,245,137,0.05)"},children:a.jsx("p",{className:"text-lod-white italic text-base",children:k})}),a:({href:k,children:S})=>a.jsx("a",{href:k,target:"_blank",rel:"noopener noreferrer",className:"text-lod-green hover:underline font-semibold",children:S}),img:({src:k,alt:S})=>k&&k.includes("L%C5%8DD%20Technologies%20(1280%20x%20960)")?a.jsx("div",{style:{margin:"48px 0",display:"flex",justifyContent:"center"},children:a.jsxs("a",{href:"https://clod.io",target:"_blank",rel:"noopener noreferrer",style:{display:"block",width:"90%",maxWidth:"780px",textDecoration:"none"},children:[a.jsxs("div",{style:{background:"linear-gradient(160deg,#3a3a3c 0%,#1c1c1e 100%)",borderRadius:"14px 14px 4px 4px",padding:"14px 14px 10px",border:"1px solid rgba(255,255,255,0.12)",position:"relative"},children:[a.jsx("div",{style:{position:"absolute",top:6,left:"50%",transform:"translateX(-50%)",width:6,height:6,borderRadius:"50%",background:"#2a2a2a",border:"1px solid rgba(255,255,255,0.1)"}}),a.jsxs("div",{style:{background:"#0a0a0a",borderRadius:"8px",overflow:"hidden"},children:[a.jsxs("div",{style:{background:"linear-gradient(180deg,#2d2d2f 0%,#262628 100%)",padding:"8px 12px",display:"flex",alignItems:"center",gap:"8px",borderBottom:"1px solid rgba(0,0,0,0.5)"},children:[a.jsx("div",{style:{display:"flex",gap:5},children:["#ff6058","#ffbd2e","#29c940"].map(N=>a.jsx("span",{style:{width:11,height:11,borderRadius:"50%",background:N,display:"inline-block"}},N))}),a.jsx("div",{style:{flex:1,background:"rgba(0,0,0,0.35)",borderRadius:6,height:22,display:"flex",alignItems:"center",justifyContent:"center",fontSize:11,color:"rgba(255,255,255,0.45)",fontFamily:"JetBrains Mono,monospace"},children:"ð clod.io"})]}),a.jsx("img",{src:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/55a51f4e8_image.png",alt:S,style:{width:"100%",height:"auto",display:"block"}})]})]}),a.jsx("div",{style:{height:5,background:"linear-gradient(180deg,#1a1a1c 0%,#252527 50%,#1a1a1c 100%)"}}),a.jsx("div",{style:{background:"linear-gradient(180deg,#2e2e30 0%,#1e1e20 100%)",borderRadius:"0 0 12px 12px",height:28,border:"1px solid rgba(255,255,255,0.08)",borderTop:"none"}})]})}):a.jsx("div",{style:{margin:"24px 0",textAlign:"center"},children:a.jsx("img",{src:k,alt:S,style:{maxWidth:"100%",borderRadius:"8px"}})})};return a.jsxs(a.Fragment,{children:[a.jsx(He,{title:d,description:p,canonical:f,ogImage:s.img,schemaData:v}),g&&a.jsx(uCe,{schema:g}),a.jsxs(Je,{children:[a.jsx("section",{className:"py-16",style:{background:"#1A1A1A",borderBottom:"1px solid rgba(255,255,255,0.06)"},children:a.jsxs("div",{className:"max-w-[860px] mx-auto px-6",children:[a.jsx(ye,{to:"/blog",className:"flex items-center gap-2 text-lod-green text-sm font-mono mb-8 hover:text-lod-green transition-colors",children:"â Back to Blog"}),a.jsxs("div",{className:"flex items-center gap-3 mb-5",children:[a.jsx("span",{className:"tag-chip",children:s.tag}),a.jsx("span",{className:"font-mono text-xs text-lod-gray",children:s.date}),a.jsx("span",{className:"font-mono text-xs text-lod-gray",children:s.readTime})]}),a.jsx("h1",{className:"font-display text-3xl md:text-4xl text-lod-white mb-6 leading-tight",children:s.title}),a.jsxs("div",{className:"flex items-center gap-3 mb-8",children:[a.jsx("div",{className:"w-8 h-8 rounded-full flex items-center justify-center text-xs font-bold flex-shrink-0",style:{background:"rgba(191,245,137,0.15)",color:"#BFF589"},children:s.author.charAt(0)}),a.jsx("span",{className:"text-lod-gray text-sm font-mono",children:s.author})]})]})}),e==="ercot-4cp-2025-report"?a.jsx("div",{className:"max-w-[860px] mx-auto px-6 -mt-2 mb-0",children:a.jsx(zM,{})}):s.img&&a.jsx("div",{className:"max-w-[860px] mx-auto px-6 -mt-2 mb-0",children:a.jsx("div",{className:"w-full h-64 md:h-80 overflow-hidden rounded-sm",style:{border:"1px solid rgba(255,255,255,0.08)"},children:a.jsx("img",{src:s.img,alt:tC(e,s.title),className:"w-full h-full object-cover"})})}),a.jsx("section",{className:"py-16",style:{background:"#1A1A1A"},children:a.jsxs("div",{className:"max-w-[860px] mx-auto px-6",children:[s.contentSections&&s.contentSections.map((k,S)=>k==="CHART:DEMAND"?a.jsx(zM,{},S):k==="CHART:PRICE"?a.jsx(Uke,{},S):k==="CHART:HOURLY"?a.jsx(Hke,{},S):k==="CHART:CURTAILMENT"?a.jsx(Vke,{},S):a.jsx(Fk,{className:"prose prose-invert prose-sm md:prose-base max-w-none",components:j,children:k},S)),!s.contentSections&&a.jsx(Fk,{className:"prose prose-invert prose-sm md:prose-base max-w-none",components:j,children:s.content}),s.hriCta?a.jsxs("div",{className:"mt-16 space-y-4",children:[a.jsx("div",{className:"grid grid-cols-3 gap-4 mb-8",children:[{value:"1,000+ MW",label:"Under Management"},{value:"50+ Models",label:"Hardware Indexed"},{value:"10B+",label:"Data Points"}].map(k=>a.jsxs("div",{className:"text-center p-5 rounded-lg",style:{background:"rgba(191,245,137,0.04)",border:"1px solid rgba(191,245,137,0.12)"},children:[a.jsx("div",{className:"font-display text-2xl text-lod-green mb-1",children:k.value}),a.jsx("div",{className:"font-mono text-xs text-lod-gray uppercase tracking-wider",children:k.label})]},k.value))}),a.jsxs("div",{className:"grid md:grid-cols-2 gap-4",children:[a.jsxs("div",{className:"p-8 rounded-lg relative overflow-hidden",style:{background:"linear-gradient(135deg, rgba(191,245,137,0.1) 0%, rgba(191,245,137,0.03) 100%)",border:"2px s
1940olid rgba(191,245,137,0.25)"},children:[a.jsx("div",{className:"absolute top-0 right-0 w-32 h-32 rounded-full",style:{background:"radial-gradient(circle, rgba(191,245,137,0.12) 0%, transparent 70%)",filter:"blur(30px)"}}),a.jsxs("div",{className:"relative z-10",children:[a.jsx("span",{className:"font-mono text-xs text-lod-green uppercase tracking-widest mb-3 block",children:"Already on LÅD"}),a.jsx("h3",{className:"font-display text-xl text-lod-white mb-3",children:"HRI is already in your dashboard."}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed mb-6",children:"Open it and see where your fleet actually stands. Click the gear icon above the stat cards and select Hashrate Realization."}),a.jsxs("a",{href:"https://app.lod.io",target:"_blank",rel:"noopener noreferrer",className:"btn-primary inline-flex items-center gap-2 text-sm",children:["Open Dashboard ",a.jsx(Ve,{size:14})]})]})]}),a.jsx("div",{className:"p-8 rounded-lg relative overflow-hidden",style:{background:"rgba(255,255,255,0.02)",border:"1px solid rgba(255,255,255,0.1)"},children:a.jsxs("div",{className:"relative z-10",children:[a.jsx("span",{className:"font-mono text-xs text-lod-gray uppercase tracking-widest mb-3 block",children:"New to LÅD"}),a.jsx("h3",{className:"font-display text-xl text-lod-white mb-3",children:"Learn how HRI works and what it measures."}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed mb-6",children:"Find out more about the Hashrate Realization Index and how it benchmarks your specific hardware model against real-world fleet data."}),a.jsxs("div",{className:"flex flex-wrap gap-3",children:[a.jsxs(ye,{to:"/hri",className:"btn-outline inline-flex items-center gap-2 text-sm",children:["Explore HRI ",a.jsx(Ve,{size:14})]}),a.jsxs(ye,{to:"/contact",className:"btn-primary inline-flex items-center gap-2 text-sm",children:["Talk to Us ",a.jsx(Ve,{size:14})]})]})]})})]})]}):a.jsx(S$,{}),a.jsx(C$,{slug:e}),s.faq&&s.faq.length>0&&a.jsxs("div",{className:"mt-16 pt-12",style:{borderTop:"1px solid rgba(255,255,255,0.06)"},children:[a.jsxs("div",{className:"mb-10",children:[a.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[a.jsx("span",{className:"w-1 h-6 rounded-full",style:{background:"#BFF589"}}),a.jsx("span",{className:"font-mono text-xs text-lod-green uppercase tracking-wider",children:"Common Questions"})]}),a.jsx("h2",{className:"font-display text-3xl text-lod-white",children:"Frequently Asked Questions"})]}),a.jsx(Sy,{type:"single",collapsible:!0,className:"space-y-3",children:s.faq.map((k,S)=>a.jsxs(Hh,{value:`faq-${S}`,style:{border:"1px solid rgba(191,245,137,0.15)",borderRadius:"8px",overflow:"hidden",background:"rgba(191,245,137,0.02)"},children:[a.jsx(Vh,{className:"text-lod-white hover:text-lod-green px-6 py-4 hover:bg-white/5 transition-colors",children:k.q}),a.jsx(Gh,{className:"text-lod-gray px-6 pb-4 pt-2 text-base leading-relaxed",children:k.a})]},S))})]})]})})]})]})}const KM={"bitfarms-multi-site-energy-strategy":{company:"Bitfarms",title:"Scaling Precision: How Bitfarms Optimized Multi-Site Operations and Energy Strategy with LÅD",challenge:"Managing energy strategy, compliance, and operational efficiency across multiple Bitcoin mining facilities across continents required a unified platform that could adapt to regional market dynamics.",tag:"#Energy Intelligence, #Bitcoin",img:"https://cdn.prod.website-files.com/68b19ac1ace2893b7432904a/69050bc01dcb7a3bbc84e888_Btfarsm.jpg",challenges:["Multi-site energy cost visibility and coordination","Inconsistent operational procedures across locations","Limited ability to respond to real-time energy pricing across regions","Complex compliance across different jurisdictions","Difficulty scaling operations without proportional increases in management overhead"],solution:"LÅD's unified control layer provided Bitfarms with centralized visibility across all global sites, automated energy pricing response, and location-specific operational control. The platform integrated real-time market signals with site-specific parameters, enabling coordinated yet flexible operations.",solutionDetail
1940s:["Centralized monitoring dashboard for all global facilities","Automated response to regional energy pricing signals","Location-specific configuration templates to respect regional differences","Real-time coordination of curtailment and peak management across sites","Unified compliance reporting and audit trails"],results:[{metric:"23%",label:"Energy Cost Reduction",description:"Through intelligent curtailment and real-time pricing response"},{metric:"98.4%",label:"Average Uptime",description:"Across all global facilities"},{metric:"47%",label:"Improvement in Peak Management",description:"Better coordination and faster response times"},{metric:"156h",label:"Annual Curtailment Revenue",description:"From demand response participation"}],implementation:"Bitfarms deployed LÅD across all facilities with a phased rollout, starting with pilot sites in ERCOT before expanding globally. The team trained operators on the unified platform and established regional energy strategy guidelines.",impact:"By deploying LÅD, Bitfarms transformed energy management from a reactive, site-by-site approach into a strategic, coordinated operation. The company now uses real-time market signals to make decisions that balance uptime, cost, and grid participation across its global footprint.",testimonial:`"LÅD's platform is incredibly powerful. The control automations and data collection capabilities allow us to maintain higher uptime while reducing our all-in cost of power and maximizing our demand response revenue potential. It has enhanced the full spectrum of our operational excellence program." â Alex Brammer, SVP of Global Mining Operations`},"clod-ai-workload-routing":{company:"CLÅD",title:"How CLÅD Scaled AI Workload Routing with Real-Time Energy Intelligence",challenge:"CLÅD needed to prove that AI inference compute could flex dynamically with grid conditions â routing workloads across multiple data centers based on live energy signals â without adding latency or complexity for developers.",tag:"#Energy Intelligence, #Compliance",img:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/9dd3dc53f_CLoD-NewColorffb974.jpg",challenges:["Routing AI inference requests across multiple data centers in real time","Avoiding cost spikes during grid stress events without manual intervention","Maintaining low latency for end users while optimizing for energy cost","Integrating live grid signals (price, curtailment, demand response) into routing logic","Validating the thesis that flexible compute is practical at production scale"],solution:"CLÅD built its AI inference routing layer directly on top of LÅD's energy intelligence infrastructure. Every connected data center feeds live grid data into the platform â pricing, curtailment status, demand response signals, and available compute capacity. CLÅD's router scores each facility in real time and sends each request to the optimal location.",solutionDetails:["Single API endpoint for developers â routing complexity is invisible","Real-time scoring of 6+ connected data centers on every request","Live ERCOT and multi-market grid signal integration","Automated curtailment and demand response coordination across facilities","No day-ahead decisions â fully reactive to live conditions"],results:[{metric:"6+",label:"Data Centers Connected",description:"Across multiple power markets including ERCOT"},{metric:"240+",label:"Active Compute Nodes",description:"Routing AI inference requests in production"},{metric:"500+ MW",label:"Under Management",description:"Across the LÅD-connected infrastructure"},{metric:"4",label:"Power Markets",description:"With live grid signal integration for routing decisions"}],implementation:"CLÅD deployed on LÅD infrastructure using the same data layer that feeds signals to data center operators. The routing layer was built to read live grid signals and score facilities continuously. Developers interact through a single API endpoint â the energy-aware routing happens entirely under the hood.",impact:"CLÅD proved that energy-aware AI workload routing is not a concept â it is a production system handling real inference requests across multiple facilities. The same infrastru
1940cture is available to any operator in the LÅD network. Data center operators building their own flexible compute stack can use the LÅD Data MCP, Control Layer, and Automation MCP to replicate the same foundation.",testimonial:'"We did not build CLÅD to sell it. We built it to prove the thesis. Flexible compute has been a talking point for years â we needed a working example before we could ask anyone to believe it. CLÅD is that example." â LÅD Technologies'},"cholla-cuts-costs-ercot":{company:"Cholla Energy",title:"How Cholla Energy Used LÅD to Cut Costs and Redefine Mining Resilience in ERCOT",challenge:"Operating in the ERCOT market where real-time pricing volatility creates both risk and opportunity, Cholla needed a platform that could react instantly to market signals while maintaining stable operations and avoiding over-curtailment.",tag:"#Energy Intelligence, #Bitcoin, #ERCOT",img:"https://cdn.prod.website-files.com/68b19ac1ace2893b7432904a/69050c4ccf9abd50528c0c4d_cholla_petroleum_inc__logo.jpeg",challenges:["Real-time ERCOT pricing volatility management","Manual decision-making creating unnecessary curtailment downtime","Difficulty differentiating between short-lived price spikes and sustained market stress","Limited participation in demand response programs due to operational constraints","Missed revenue opportunities during demand response windows"],solution:"LÅD's automation layer enabled real-time response to ERCOT pricing signals with built-in validation logic. The platform distinguishes between temporary volatility and sustained peaks, preventing over-curtailment while maintaining grid compliance. Intelligent curtailment logic maximizes revenue from demand response participation.",solutionDetails:["Real-time ERCOT pricing signal validation before curtailment","Intelligent algorithms to differentiate temporary spikes from sustained peaks","Automated demand response program enrollment and execution","Dynamic curtailment scheduling based on market conditions","Revenue optimization across multiple grid programs simultaneously"],results:[{metric:"$2.1M",label:"Annual Savings",description:"Through optimized curtailment and reduced over-cycling"},{metric:"156h",label:"Curtailment Revenue",description:"From demand response program participation"},{metric:"31%",label:"Reduction in Unnecessary Downtime",description:"Smarter curtailment decisions"},{metric:"18%",label:"Average Cost Per MWh",description:"Down from regional baseline"}],implementation:"Cholla deployed LÅD platform over a 6-week implementation period. The team focused on integrating real-time ERCOT market data feeds and configuring site-specific curtailment policies that aligned with their operational and financial goals.",impact:"With LÅD, Cholla transformed from reactive energy management to predictive, profit-driven operations. The company now automatically responds to ERCOT signals while avoiding the cost of over-curtailment. Revenue from demand response programs provides additional margin protection during volatile periods.",testimonial:'"Partnering with LÅD gave us the tools to understand energy market dynamics in real time and act on them without guessing. The result: we cut costs significantly while actually increasing our participation in grid support programs." â Cholla Energy Operations Team'}};function gCe(){const{slug:e}=mF(),t=KM[e],n={"bitfarms-multi-site-energy-strategy":"How Bitfarms Optimized Multi-Site Energy Operations with LÅD","clod-ai-workload-routing":"How CLÅD Scaled AI Workload Routing with Real-Time Energy Intelligence | LÅD","cholla-cuts-costs-ercot":"How Cholla Energy Cut Costs and Reduced Downtime in ERCOT with LÅD"},r={"bitfarms-multi-site-energy-strategy":"Bitfarms deployed LÅD across all global facilities to optimize energy strategy, reduce costs by 23%, and achieve 98.4% uptime across multi-site operations.","clod-ai-workload-routing":"CLÅD uses LÅD energy intelligence to route AI inference workloads across 6+ data centers in real time based on live grid signals â no added latency for developers.","cholla-cuts-costs-ercot":"Cholla Energy used LÅD to automate ERCOT curtailment, saving $2.1M annually and reducing unnecessary downtime by 31% through smarter grid signal response."},i=t?n[e]||t.title:"Case Study Not Found | LÅD",o=t?r[e]||t.challenge:"",s=`https://lod.io/case-studies/${e}`;return t?a.jsxs(a.Fragment,{children:[a.jsx(He,{title:i,description:o,canonical:s,ogImage:t.img}),a.jsxs(Je,{children:[a.jsx("section",{className:"py-16",style:{background:"#1A1A1A",borderBottom:"1px solid rgba(255,255,255,0.06)"},children:a.jsxs("div",{className:"max-w-[860px] mx-auto px-6",children:[a.jsxs(ye,{to:"/case-studies",className:"flex items-center gap-2 text-lod-green text-sm font-mono mb-8 hover:opacity-70 transition-opacity",children:[a.jsx(Ve,{size:12,style:{transform:"rotate(180deg)"}})," Back to Case Studies"]}),a.jsx("div",{className:"flex items-center gap-3 mb-5",children:a.jsx("span",{className:"tag-chip",children:t.tag})}),a.jsx("h1",{className:"font-display text-3xl md:text-4xl text-lod-white mb-6 leading-tight",children:t.title}),a.jsxs("div",{className:"flex items-center gap-3 mb-2",children:[t.img&&a.jsx("div",{className:"w-10 h-10 overflow-hidden rounded-lg flex-shrink-0 flex items-center justify-center",children:a.jsx("img",{src:t.img,alt:`${t.company} logo`,className:"w-full h-full object-cover"})}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-0",children:t.company})]})]})}),a.jsx("section",{className:"py-8",style:{background:"#1A1A1A"},children:a.jsxs("div",{className:"max-w-[860px] mx-auto px-6 space-y-8",children:[a.jsxs("div",{children:[a.jsx("h2",{className:"font-display text-2xl text-lod-white mb-4",style:{color:"#BFF589"},children:"Challenge"}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed",children:t.challenge})]}),a.jsxs("div",{children:[a.jsx("h3",{className:"font-display text-xl text-lod-white mb-4",style:{color:"#BFF589"},children:"The Problem"}),a.jsx("ul",{className:"space-y-2",children:t.challenges.map((l,u)=>a.jsxs("li",{className:"flex items-start gap-3 text-lod-gray text-base",children:[a.jsx("span",{className:"mt-1.5 w-1.5 h-1.5 rounded-full flex-shrink-0",style:{background:"#BFF589"}}),a.jsx("span",{children:l})]},u))})]}),a.jsxs("div",{children:[a.jsx("h2",{className:"font-display text-2xl text-lod-white mb-4",style:{color:"#BFF589"},children:"Solution"}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-4",children:t.solution}),a.jsxs("div",{className:"rounded-sm p-4",style:{background:"rgba(191,245,137,0.06)",border:"1px solid rgba(191,245,137,0.15)"},children:[a.jsx("h4",{className:"font-mono text-xs text-lod-green uppercase tracking-wider mb-3",children:"Implementation Details"}
1940),a.jsx("ul",{className:"space-y-2",children:t.solutionDetails.map((l,u)=>a.jsxs("li",{className:"flex items-start gap-3 text-lod-gray text-sm",children:[a.jsx("span",{className:"mt-1 w-1.5 h-1.5 rounded-full flex-shrink-0",style:{background:"#BFF589"}}),a.jsx("span",{children:l})]},u))})]})]}),a.jsxs("div",{children:[a.jsx("h2",{className:"font-display text-2xl text-lod-white mb-6",style:{color:"#BFF589"},children:"Results"}),a.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:t.results.map((l,u)=>a.jsxs("div",{className:"card-obsidian p-6",children:[a.jsx("div",{className:"text-2xl text-lod-green font-display mb-2",children:l.metric}),a.jsx("div",{className:"text-sm text-lod-white font-semibold mb-1",children:l.label}),a.jsx("div",{className:"text-xs text-lod-gray",children:l.description})]},u))})]}),a.jsxs("div",{children:[a.jsx("h3",{className:"font-display text-xl text-lod-white mb-4",style:{color:"#BFF589"},children:"Implementation"}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed",children:t.implementation})]}),a.jsxs("div",{children:[a.jsx("h3",{className:"font-display text-xl text-lod-white mb-4",style:{color:"#BFF589"},children:"Impact"}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed",children:t.impact})]}),a.jsxs("div",{className:"rounded-sm p-6",style:{background:"#2C2C2C",border:"1px solid rgba(191,245,137,0.1)"},children:[a.jsx("h4",{className:"font-mono text-xs text-lod-green uppercase tracking-wider mb-3",children:"Client Testimonial"}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed italic",children:t.testimonial})]}),a.jsxs("div",{className:"mt-16",children:[a.jsx("h3",{className:"font-mono text-xs text-lod-gray uppercase tracking-wider mb-4",children:"More Case Studies"}),a.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:Object.entries(KM).filter(([l])=>l!==e).slice(0,2).map(([l,u])=>a.jsxs(ye,{to:`/case-studies/${l}`,className:"card-obsidian p-5 block group",children:[a.jsx("span",{className:"tag-chip mb-3 inline-block",children:u.tag}),a.jsx("h4",{className:"text-lod-white text-sm font-semibold leading-snug group-hover:text-lod-green transition-colors mt-2",children:u.title})]},l))})]}),a.jsxs("div",{className:"mt-16 p-8 rounded-sm text-center",style:{background:"#2C2C2C",border:"1px solid rgba(191,245,137,0.1)"},children:[a.jsx("p",{className:"font-mono text-xs text-lod-gray uppercase tracking-wider mb-3",children:"Interested in Similar Results?"}),a.jsx("h3",{className:"font-display text-2xl text-lod-white mb-5",children:"Let's explore how LÅD can optimize your operations."}),a.jsx(ye,{to:"/contact",className:"btn-primary",children:"Book an Energy Strategy Call"})]})]})})]})]}):a.jsx(Je,{children:a.jsxs("section",{className:"py-40 text-center",style:{background:"#1A1A1A"},children:[a.jsx("h1",{className:"font-display text-4xl text-lod-white mb-4",children:"Case Study Not Found"}),a.jsx(ye,{to:"/case-studies",className:"btn-primary mt-6 inline-block",children:"Back to Case Studies"})]})})}const Lf="https://mcp.lod.io/mcp",XM=[{id:"claude",label:"Claude",steps:[{text:"Open Claude and go to Settings â Connectors."},{text:'Click "Add custom connector" and paste the following URL:',code:Lf},{text:"Click Save. A browser window will open â log in with your LÅD credentials and authorize the connection to complete the OAuth flow. LÅD MCP Server will then be available in your conversations."}]},{id:"openclaw",label:"OpenClaw",steps:[{text:"Open OpenClaw and go to Settings â Connectors in the left sidebar."},{text:'Click "Create" at the top to open the New Connector dialog.'},{text:"Enter the LÅD MCP Server URL:",code:Lf},{text:"A browser window will open for the OAuth flow â complete the login and consent to obtain your Firebase JWT. Once authorized, click Save. The LÅD tools will now be available in your OpenClaw agent sessions."}]},{id:"hermes",label:"Hermes",steps:[{text:"Install MCP support if not already included:",code:`cd ~/.hermes/hermes-agent 1941uv pip install -e ".[mcp]"`},{text:"First, complete the browser OAuth flow at the URL above to obtain a Firebase JWT. Then add the LÅD MCP Server to your Hermes config file at ~/.hermes/config.yaml, using that JWT as the Bearer token:",code:`mcp_servers: 1942 lod: 1943 url: "${Lf}" 1944 headers: 1945 Authorization: "Bearer YOUR_FIREBASE_JWT"`},{text:"Start Hermes and the LÅD tools will be automatically discovered:",code:"hermes chat"}]},{id:"other",label:"Other",steps:[{text:"Any MCP-compatible client can connect using the URL:",code:Lf},{text:"Authentication requires a browser-based OAuth flow. Open the endpoint URL in a browser, log in with your LÅD credentials, and complete the consent screen to obtain a Firebase JWT. Use that JWT as the Bearer token for your MCP session."}]}];function yCe({code:e}){const[t,n]=O.useState(!1),r=()=>{navigator.clipboard.writeText(e),n(!0),setTimeout(()=>n(!1),2e3)};return a.jsxs("div",{className:"relative rounded-lg mt-3 mb-1",style:{background:"#0A0A0A",border:"1px solid rgba(255,255,255,0.1)"},children:[a.jsxs("button",{onClick:r,className:"absolute top-3 right-3 flex items-center gap-1.5 text-xs px-2.5 py-1.5 rounded transition-all",style:{background:t?"rgba(191,245,137,0.2)":"rgba(255,255,255,0.08)",color:t?"#BFF589":"#A0A0A0",border:"1px solid rgba(255,255,255,0.1)"},children:[t?a.jsx(Nh,{size:11}):a.jsx(Ag,{size:11}),t?"Copied":"Copy"]}),a.jsx("pre",{className:"font-mono text-sm px-5 py-4 pr-20 overflow-x-auto",style:{color:"#BFF589",whiteSpace:"pre-wrap",wordBreak:"break-all"},children:e})]})}function xCe(){const[e,t]=O.useState("claude"),n=XM.find(r=>r.id===e);return a.jsx("section",{id:"getting-started",className:"py-20",style:{background:"#232323",borderBottom:"1px solid rgba(255,255,255,0.06)"},children:a.jsxs("div",{className:"max-w-[860px] mx-auto px-6",children:[a.jsxs("div",{className:"text-center mb-10",children:[a.jsx("div",{className:"section-label mb-3",children:"Setup"}),a.jsx("h2",{className:"font-display text-4xl text-lod-white mb-3",children:"Getting Started"}),a.jsx("p",{className:"text-lod-gray text-base",children:"Choose your AI client and follow the instructions to connect to LÅD MCP Server."})]}),a.jsxs("div",{className:"rounded-xl overflow-hidden",style:{border:"1px solid rgba(0,0,0,0.12)",background:"#1A1A1A"},children:[a.jsx("div",{className:"flex overflow-x-auto",style:{borderBottom:"1px solid rgba(255,255,255,0.08)"},children:XM.map(r=>a.jsxs("button",{onClick:()=>t(r.id),className:"flex-shrink-0 px-5 py-4 text-sm font-secondary font-semibold transition-all relative",style:{color:e===r.id?"#BFF589":"#A0A0A0",background:"transparent"},children:[r.label,e===r.id&&a.jsx("span",{className:"absolute bottom-0 left-0 right-0 h-0.5 rounded-full",style:{background:"#BFF589"}})]},r.id))}),a.jsx("div",{className:"p-6 md:p-8 space-y-5",children:n.steps.map((r,i)=>a.jsxs("div",{children:[a.jsxs("div",{className:"flex items-start gap-4",children:[a.jsx("span",{className:"flex-shrink-0 w-6 h-6 rounded-full flex items-center justify-center text-xs font-bold font-mono mt-0.5",style:{background:"rgba(191,245,137,0.15)",color:"#BFF589",border:"1px solid rgba(191,245,137,0.3)"},children:i+1}),a.jsx("p",{className:"text-sm leading-relaxed",style:{color:"#A0A0A0"},children:r.text})]}),r.code&&a.jsx("div",{className:"ml-10",children:a.jsx(yCe,{code:r.code})})]},i))})]})]})})}const vCe=[{num:"01",icon:jg,title:"Real-Time LMP + Ancillary Pricing",body:"Live locational marginal prices at every node across all 9 ISOs, plus ECRS and NSPIN ancillary service data. Your agent knows the true cost of every watt, right now, at your specific location."},{num:"02",icon:Ts,title:"Full Fleet Health Visibility",body:"Fan speed, chip temperatures, hashboard faults, and device errors across 100,000+ connected miners. Every health flag across your entire fleet, queryable in seconds."},{num:"03",icon:xt,title:"Curtailment Signal Visibility",body:"Live view of which devices are curtailed and why. Rail assignments, trigger conditions, and device state, all readable in a single query. Know exactly what your automation layer is doing and when."},{num:"04",icon:Sg,title:"Daily P&L",body:"Revenue, energy cost, pool fees, and margin broken down daily, weekly, or monthly. Query with live LMP pricing or a fixed rate. Model any scenario without leaving the conversation."},{num:"05",icon:nH,title:"Facility Sitemap",body:"Group, rack, and slot-level visibility across your entire physical footprint. Filter health and performance data to a single rack row. Physical location and digital state, in sync."},{num:"06",icon:yL,title:"Live BTC Price + Hash Price Feed",body:"Real-time Bitcoin price and FPPS hash price (USD per TH per day) streamed directly into agent context. Revenue per terahash, before any operational decision gets made."},{num:"07",icon:SL,title:"Multi-Site Management",body:"Query any number of sites from a single session. OAuth-scoped access keeps each site's data secure and separately permissioned across any deployment size."},{num:"08",icon:OL,title:"Pool Worker Performance + Wallet Revenue",body:"Search, filter, and rank pool workers by hashrate and status. Pull wallet balance, payment history, and FPPS revenue without switching contexts."}
1945,{num:"09",icon:jL,title:"Infrastructure Telemetry",body:"ASICs, GPUs, PDUs, PLCs, meters, and sensors â all readable through a single session. Full-stack visibility from the grid connection to the hashboard."},{num:"10",icon:wL,title:"Weather, Renewables, and Grid Demand",body:"Current weather conditions, solar generation, grid demand peaks, and outage data, all queryable by your agent. Read the grid before it reads you."}],QM=`Provider: LÅD Technologies 1946Platform: Energy Intelligence for Bitcoin Miners & Data Centers 1947Base URL: lod.io 1948Documentation: lod.io/docs 1949Machine-Readable: lod.io/llms.txt 1950For AI Agents: lod.io/for-agents 1951 1952API & MCP SERVER 1953ââââââââââââââââââââââââââââââââââââââââââ 1954 1955⢠REST API 1956 Base URL: mcp.lod.io/api/v1/ 1957 Auth: X-Api-Key header 1958 OpenAPI Spec: mcp.lod.io/openapi.json 1959 Best for: Automated systems, scripts, 1960 backends (no human in the loop) 1961 1962⢠MCP Server 1963 Endpoint: mcp.lod.io/mcp 1964 Auth: Browser OAuth â Firebase JWT 1965 (requires human to complete login 1966 and consent â not fully automated) 1967 Protocol: Standard MCP (HTTP transport) 1968 Best for: AI agent clients with 1969 interactive OAuth support 1970 1971 Real-time and historical energy data across 1972 all 9 ISOs. Data includes: live LMP prices 1973 by node, ancillary service data (ECRS/NSPIN), 1974 fleet health (100,000+ miners), curtailment 1975 state, daily P&L, BTC + hash price feeds, 1976 pool worker revenue, infrastructure telemetry, 1977 weather & renewables, multi-site management. 1978 1979 All signals validated and structured for 1980 agent consumption. No data cleaning required. 1981 1982 Connect: lod.io/for-agents#getting-started 1983 1984PLATFORM CAPABILITIES 1985ââââââââââââââââââââââââââââââââââââââââââ 1986 1987â Real-time LMP prices, all 9 ISOs 1988â Ancillary services: ECRS, NSPIN, REGUP, REGDOWN 1989â Fleet health â 100,000+ connected miners 1990â Curtailment state + trigger conditions 1991â Daily P&L (live LMP or fixed rate) 1992â Facility sitemap â group / rack / slot 1993â Live BTC + FPPS hash price feed 1994â Multi-site, OAuth-scoped access 1995â Pool worker performance + wallet revenue 1996â Full infrastructure telemetry (ASICs, GPUs, PDUs, PLCs) 1997â Weather, renewables, grid demand data 1998â Hashrate Realization Index (HRI) â real-world benchmarks 1999â SOC 1 Type II + SOC 2 Type II certified 2000 2001COVERAGE & SCALE 2002ââââââââââââââââââââââââââââââââââââââââââ 2003 2004ISOs Covered: All 9 (ERCOT, PJM, MISO, CAISO, 2005 SPP, NYISO, ISONE, SWPP, SERC) 2006Scale: 1 GW+ under management 2007Grid Nodes: 20,000+ globally 2008Hardware Models: 50+ indexed 2009Data Points: 10 billion+ indexed`;function bCe(){const[e,t]=O.useState(!1);O.useEffect(()=>{document.title="LÅD MCP Server â Energy Intelligence for AI Agents"},[]);const n=()=>{navigator.clipboard.writeText(QM),t(!0),setTimeout(()=>t(!1),2e3)};return a.jsxs(Je,{children:[a.jsx(He,{title:"LÅD MCP Server â Energy Intelligence for AI Agents | LÅD",description:"LÅD MCP Server gives AI agents real-time and historical energy data across all 9 ISOs. Interpreted signals, clean schemas, fleet health, curtailment state, P&L, and infrastructure telemetry.",canonical:"https://lod.io/for-agents",schemaData:{"@context":"https://schema.org","@graph":[{"@type":"SoftwareApplication",name:"LÅD MCP Server",url:"https://lod.io/for-agents",applicationCategory:"DeveloperApplication",operatingSystem:"Web",provider:{"@type":"Organization",name:"LÅD Technologies",url:"https://lod.io"},description:"MCP server and REST API giving AI agents real-time and historical energy data across all 9 ISOs: live LMP prices, ancillary services (ECRS/NSPIN), fleet health for 100,000+ miners, curtailment state, daily P&L, BTC and hash price feeds, pool worker revenue, infrastructure telemetry, and weather/renewables data. 1 GW+ under management, 20,000+ grid nodes, 10B+ data points indexed.",featureList:["Real-time LMP + ancillary pricing across all 9 ISOs","Full fleet health visibility (100,000+ connected miners)","Curtailment signal visibility","Daily P&L with live LMP or fixed rate","Facility sitemap (group/rack/slot)","Live BTC price + FPPS hash price feed","Multi-site OAuth-scoped access","Pool worker performance + wallet revenue","Infrastru
2009cture telemetry (ASICs, GPUs, PDUs, PLCs, meters, sensors)","Weather, renewables, and grid demand data"]},{"@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://lod.io"},{"@type":"ListItem",position:2,name:"For AI Agents",item:"https://lod.io/for-agents"}]}]}}),a.jsx(wy,{tag:"AI Agents & Developers",headline:a.jsxs(a.Fragment,{children:["LÅD MCP Server",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"Real-time intelligence,"}),a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"structured for agents."})]}),subheadline:"Most data APIs hand you numbers. LÅD MCP Server gives your agent something it can actually use: interpreted signals, clean schemas, and the full operational context needed to make a decision without a human in the loop.",ctas:[{label:"Get Started",href:"#getting-started"},{label:"Connect Your Agent â",href:"#getting-started"}]}),a.jsx("section",{className:"py-10",style:{background:"#0A0A0A",borderBottom:"1px solid rgba(255,255,255,0.06)"},children:a.jsx("div",{className:"max-w-[1200px] mx-auto px-6",children:a.jsx("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-4",children:[{label:"1 GW+",sub:"Under Management"},{label:"20,000+",sub:"Grid Nodes Globally"},{label:"All 9 ISOs",sub:"Covered"},{label:"10B+",sub:"Data Points Indexed"}].map(r=>a.jsxs("div",{className:"text-center p-6 rounded-lg",style:{background:"rgba(191,245,137,0.04)",border:"1px solid rgba(191,245,137,0.12)"},children:[a.jsx("div",{className:"font-display text-3xl text-lod-green mb-1",children:r.label}),a.jsx("div",{className:"font-mono text-xs text-lod-gray uppercase tracking-wider",children:r.sub})]},r.label))})})}),a.jsx("section",{className:"py-24",style:{background:"#0A0A0A"},children:a.jsx("div",{className:"max-w-[1400px] mx-auto px-6",children:a.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-16 items-center",children:[a.jsxs("div",{children:[a.jsx("div",{className:"section-label mb-4",children:"What LÅD MCP Server Is"}),a.jsxs("h2",{className:"font-display text-4xl md:text-5xl text-lod-white mb-6 leading-none",children:["NOT A DASHBOARD.",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"A DATA LAYER FOR AGENTS."})]}),a.jsxs("p",{className:"text-lod-gray text-base leading-relaxed mb-5",children:["LÅD currently manages ",a.jsx("strong",{className:"text-lod-white",children:"1 GW+"})," across ",a.jsx("strong",{className:"text-lod-white",children:"20,000+ grid nodes"})," globally. This is how that operational depth becomes available to your stack."]}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-5",children:"Point your agent at the MCP endpoint, authenticate, and start querying. Live market data, historical settlement data, fleet health, and facility telemetry are all accessible through a single session. No dashboard. No manual export. No data cleaning required."}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed",children:"Standard JSON responses, clean schemas, and documentation written for builders. All 9 ISOs covered."})]}),a.jsxs("div",{className:"rounded-sm overflow-hidden",style:{background:"#0D0D0D",border:"1px solid rgba(184,255,0,0.15)"},children:[a.jsxs("div",{className:"px-4 py-3 flex items-center gap-2",style:{borderBottom:"1px solid rgba(255,255,255,0.06)"},children:[a.jsx("div",{className:"w-3 h-3 rounded-full",style:{background:"#FF3B30"}}),a.jsx("div",{className:"w-3 h-3 rounded-full",style:{background:"#FFD60A"}}),a.jsx("div",{className:"w-3 h-3 rounded-full",style:{background:"#BFF589"}}),a.jsx("span",{className:"ml-3 font-mono text-xs text-lod-gray",children:"agent_query.py"})]}),a.jsxs("div",{className:"p-6 font-mono text-xs space-y-2",children:[a.jsxs("div",{children:[a.jsx("span",{className:"text-blue-400",children:"from"})," ",a.jsx("span",{className:"text-lod-white",children:"lod_mcp"})," ",a.jsx("span",{className:"text-blue-400",children:"import"})," ",a.jsx("span",{style:{color:"#BFF589"},children:"LoDMCPClient"})]}),a.jsx("div",{className:"mt-4",children:a.jsx("span",{className:"text-lod-gray",children:"# Connect to LÅD MCP Server"})}),a.jsxs("div",{children:[a.jsx("span",{className:"text-lod-white",children:"client"})," ",a.jsx("span",{className:"text-lod-gray",children:"="})," ",a.jsx("span",{style:{color:"#BFF589"},children:"LoDMCPClient"}),a.jsx("span",{className:"text-lod-white",children:"(endpoint="}),a.jsx("span",{className:"text-orange-400",children:'"mcp.lod.io"'}),a.jsx("span",{className:"text-lod-white",children:")"})]}),a.jsx("div",{className:"mt-4",children:a.jsx("span",{className:"text-lod-gray",children:"# Query fleet + market in one call"})}),a.jsxs("div",{children:[a.jsx("span",{className:"text-lod-white",children:"data"})," ",a.jsx("span",{className:"text-lod-gray",children:"="})," ",a.jsx("span",{className:"text-lod-white",children:"client"}),a.jsx("span",{className:"text-lod-gray",children:"."}),a.jsx("span",{style:{color:"#BFF589"},children:"query"}),a.jsx("span",{className:"text-lod-white",children:"("})]}),a.jsxs("div",{className:"ml-4",children:[a.jsx("span",{className:"text-lod-white",children:"site="}),a.jsx("span",{className:"text-orange-400",children:'"west-texas-01"'}),a.jsx("span",{className:"text-lod-white",children:","})]}),a.jsxs("div",{className:"ml-4",children:[a.jsx("span",{className:"text-lod-white",children:"include=["}),a.jsx("span",{className:"text-orange-400",children:'"lmp"'}),a.jsx("span",{className:"text-lod-white",children:","})," ",a.jsx("span",{className:"text-orange-400",children:'"fleet_health"'}),a.jsx("span",{className:"text-lod-white",children:","})," ",a.jsx("span",{className:"text-orange-400",children:'"pnl"'}),a.jsx("span",{className:"text-lod-white",children:"]"})]}),a.jsx("div",{children:a.jsx("span",{className:"text-lod-white",children:")"})}),a.jsxs("div",{className:"mt-4 pt-4",style:{borderTop:"1px solid rgba(255,255,255,0.06)"},children:[a.jsx("div",{className:"text-lod-gray",children:"# Response, ready to act on"}),a.jsx("div",{children:a.jsx("span",{className:"text-lod-white",children:"{"})}),a.jsxs("div",{className:"ml-4",children:[a.jsx("span",{className:"text-orange-400",children:'"action"'}),a.jsx("span",{className:"text-lod-white",children:":"})," ",a.jsx("span",{style:{color:"#BFF589"},children:'"curtail_now"'}),a.jsx("span",{className:"text-lod-white",children:","})]}),a.jsxs("div",{className:"ml-4",children:[a.jsx("span",{className:"text-orange-400",children:'"lmp_mwh"'}),a.jsx("span",{className:"text-lod-white",children:":"})," ",a.jsx("span",{className:"text-blue-400",children:"487.50"}),a.jsx("span",{className:"text-lod-white",children:","})]}),a.jsxs("div",{className:"ml-4",children:[a.jsx("span",{className:"text-orange-400",children:'"fleet_health"'}),a.jsx("span",{className:"text-lod-white",children:":"})," ",a.jsx("span",{className:"text-blue-400",children:"0.97"}),a.jsx("span",{className:"text-lod-white",children:","})]}),a.jsxs("div",{className:"ml-4",children:[a.jsx("span",{className:"text-orange-400",children:'"daily_margin"'}),a.jsx("span",{className:"text-lod-white",children:":"})," ",a.jsx("span",{style:{color:"#BFF589"},children:'"$142,300"'})]}),a.jsx("div",{children:a.jsx("span",{className:"text-lod-white",children:"}"})})]})]})]})]})})}),a.jsxs("section",{className:"py-24 relative overflow-hidden",style:{background:"#0D0D0D",borderBottom:"1px solid rgba(255,255,255,0.06)"},children:[a.jsx("div",{"aria-hidden":"true",style:{position:"absolute",inset:0,pointerEvents:"none",backgroundImage:"radial-gradient(circle, rgba(191,245,137,0.2) 1px, transparent 1px)",backgroundSize:"28px 28px"}}),a.jsxs("div",{className:"max-w-[1200px] mx-auto px-6 relative z-10",children:[a.jsxs("div",{className:"mb-12",children:[a.jsx("div",{className:"section-label mb-3",children:"What's Inside"}),a.jsxs("h2",{className:"font-display text-4xl md:text-5xl text-lod-white mb-3 leading-none",children:["MULTIPLE CAPABILITIES.",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"ONE MCP SESSION."})]}),a.jsx("p",{className:"text-lod-gray text-base max-w-2xl",children:"Every signal your agent needs to monitor, act, and decide, without leaving the conversation."})]}),a.jsx("div",{className:"grid md:grid-cols-2 gap-4",children:vCe.map(r=>{const i=r.icon;return a.jsxs("div",{className:"card-obsidian flex gap-5 p-6 group",children:[a.jsxs("div",{className:"flex-shrink-0",children:[a.jsx("span",{className:"font-mono text-xs font-bold block mb-2",style:{color:"#BFF589"},children:r.num}),a.jsx("div",{className:"w-9 h-9 rounded-md flex items-center justify-center",style:{background:"rgba(191,245,137,0.08)"},children:a.jsx(i,{size:18,style:{color:"#BFF589"}})})]}),a.jsxs("div",{children:[a.jsx("h3",{className:"font-display text-base text-lod-white mb-2 group-hover:text-lod-green transition-colors",children:r.title}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed",children:r.body})]})]},r.num)})})]})]}),a.jsx(xCe,{}),a.jsx("section",{className:"py-24",style:{background:"#0A0A0A",borderBottom:"1px solid rgba(255,255,255,0.06)"},children:a.jsxs("div",{className:"max-w-[1200px] mx-auto px-6",children:[a.jsx("div",{className:"section-label mb-3",children:"Use Cases"}),a.jsxs("h2",{className:"font-display text-4xl md:text-5xl text-lod-white mb-4 leading-none",children:["WHAT OPERATORS AND",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"DEVELOPERS ARE BUILDING."})]}),a.jsx("p",{className:"text-lod-gray text-base mb-10 max-w-2xl",children:"Real production use cases, not demos."}),a.jsx("div",{className:"grid md:grid-cols-2 gap-4",children:[{n:"01",text:"Dashboards that show real operator data, live pricing, and P&L instead of delayed public feeds."},{n:"02",text:"Trading systems that need LMP prices and ancillary signals they can rely on."},{n:"03",text:"IoT integrations that pull ASICs, GPUs, PDUs, PLCs, meters, and sensors into a single context window for full-stack visibility."},{n:"04",text:"Operations teams replacing manual reporting cycles with AI sessions that pull P&L, pool performance, and wallet revenue on demand."},{n:"05",text:"Agents that read curtailment state, fleet health, and live market prices together â and surface the right decision at the right time."}].map(r=>a.jsxs("div",{className:"card-obsidian flex gap-5 p-6",children:[a.jsx("span",{className:"font-mono text-xs font-bold flex-shrink-0 pt-0.5",style:{color:"rgba(191,245,137,0.4)"},children:r.n}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed",children:r.text})]},r.n))})]})}),a.jsxs("section",{className:"py-24 relative overflow-hidden",style:{background:"#0D0D0D",borderBottom:"1px solid rgba(255,255,255,0.06)"},children:[a.jsx("div",{"aria-hidden":"true",style:{position:"absolute",inset:0,pointerEvents:"none",backgroundImage:"radial-gradient(circle, rgba(191,245,137,0.2) 1px, transparent 1px)",backgroundSize:"28px 28px"}}),a.jsx("div",{className:"max-w-[1200px] mx-auto px-6 relative z-10",children:a.jsxs("div",{className:"grid md:grid-cols-2 gap-16 items-center",children:[a.jsxs("div",{children:[a.jsx("div",{className:"section-label mb-3",children:"Trust"}),a.jsxs("h2",{className:"font-display text-4xl md:text-5xl text-lod-white mb-6 leading-none",children:["DATA THAT'S READY",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"TO ACT ON."})]}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-6",children:"LÅD has been in energy operations for years. The signals LÅD MCP Server delivers have already been validated, structured, and formatted for agent consumption. You are not getting a raw feed your agent needs to clean and interpret."}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed",children:"That distinction matters when the decision has a cost attached to it."}),a.jsx("div",{className:"mt-8 flex gap-6",children:[{label:"SOC 1 Type II",sub:"Certified"},{label:"SOC 2 Type II",sub:"Certified"},{label:"50+ Models",sub:"Hardware Indexed"}].map(r=>a.jsxs("div",{className:"text-center",children:[a.jsx("div",{className:"font-display text-lg text-lod-green",children:r.label}),a.jsx("div",{className:"font-mono text-xs text-lod-gray uppercase tracking-wider",children:r.sub})]},r.label))})]}),a.jsxs("div",{className:"p-8 rounded-lg",style:{background:"rgba(191,245,137,0.05)",border:"2px s
2009olid rgba(191,245,137,0.2)"},children:[a.jsx("blockquote",{className:"font-display text-xl text-lod-white leading-relaxed mb-6",children:'"You are not getting a raw feed your agent needs to clean and interpret. You are getting data that is ready to act on."'}),a.jsxs("div",{className:"flex items-center gap-3",children:[a.jsx("span",{className:"w-1 h-8 rounded-full",style:{background:"#BFF589"}}),a.jsxs("div",{children:[a.jsx("p",{className:"font-mono text-xs text-lod-green uppercase tracking-wider",children:"LÅD MCP Server"}),a.jsx("p",{className:"font-mono text-xs text-lod-gray",children:"From signal to action."})]})]})]})]})})]}),a.jsx("section",{className:"py-20",style:{background:"#0A0A0A",borderBottom:"1px solid rgba(255,255,255,0.06)"},children:a.jsxs("div",{className:"max-w-[1200px] mx-auto px-6",children:[a.jsx("div",{className:"rounded-lg p-4 mb-8",style:{background:"rgba(255,59,48,0.08)",border:"1px solid rgba(255,59,48,0.25)"},children:a.jsxs("p",{className:"text-sm",style:{color:"#FF7A70"},children:[a.jsx("strong",{children:"If you are human:"})," This section is machine-readable context for AI agents. Start with the documentation above."]})}),a.jsx("h3",{className:"font-mono text-xs text-lod-green uppercase tracking-widest mb-4",children:"LÅD Technologies â Capability Summary"}),a.jsx("div",{className:"rounded-sm p-6 relative",style:{background:"rgba(255,255,255,0.02)",border:"1px solid rgba(255,255,255,0.06)",fontFamily:"JetBrains Mono, monospace",fontSize:"13px",lineHeight:"1.6",color:"#A0A0A0"},children:a.jsx("pre",{style:{margin:0,whiteSpace:"pre-wrap"},children:QM})}),a.jsxs("button",{onClick:n,className:"mt-3 text-xs px-3 py-1.5 rounded-sm flex items-center gap-2 transition-all",style:{background:e?"rgba(191,245,137,0.2)":"rgba(191,245,137,0.1)",color:"#BFF589",border:"1px solid rgba(191,245,137,0.3)"},children:[e?a.jsx(Nh,{size:12}):a.jsx(Ag,{size:12}),e?"Copied":"Copy for AI context"]})]})}),a.jsx("section",{className:"py-20 text-center grid-lines-overlay relative",style:{background:"#1A1A1A"},children:a.jsxs("div",{className:"max-w-2xl mx-auto px-6",children:[a.jsxs("h2",{className:"font-display text-4xl md:text-5xl text-lod-white mb-4 leading-none",children:["LÅD MCP SERVER.",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"FROM SIGNAL TO ACTION."})]}),a.jsx("p",{className:"text-lod-gray mb-10 text-lg",children:"One MCP server. 1 GW+ of operational data. All 9 ISOs. Ready for your agent."}),a.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-center gap-4",children:[a.jsx("a",{href:"#getting-started",className:"btn-primary px-8 py-3 text-base",children:"Start Using MCP Server"}),a.jsxs("a",{href:"/contact",className:"btn-outline px-8 py-3 text-base flex items-center gap-2",children:["Become a LÅD Customer ",a.jsx(Ve,{size:16})]})]}),a.jsxs("p",{className:"text-lod-gray text-sm mt-8",children:["Building an autonomous agent? See the ",a.jsx("a",{href:"/agent-docs",className:"text-lod-green hover:underline",children:"machine-readable agent documentation"}),"."]})]})})]})}function Lr({children:e,delay:t=0,className:n=""}){const r=O.useRef(null),i=by(r,{once:!0,margin:"-60px"});return a.jsx(pt.div,{ref:r,className:n,initial:{opacity:0,y:32},animate:i?{opacity:1,y:0}:{},transition:{duration:.55,delay:t,ease:"easeOut"},children:e})}function wCe({target:e,suffix:t="",prefix:n="",duration:r=1800}){const[i,o]=O.useState(0),s=O.useRef(null),l=by(s,{once:!0});return O.useEffect(()=>{if(!l)return;const u=String(e).includes("."),d=Date.now(),p=()=>{const f=Date.now()-d,g=Math.min(f/r,1),y=1-Math.pow(1-g,3),b=u?(y*e).toFixed(2):Math.round(y*e);o(b),g<1&&requestAnimationFrame(p)};requestAnimationFrame(p)},[l,e]),a.jsxs("span",{ref:s,children:[n,i,t]})}const jCe=[{hour:"00:00",before:42,after:28},{hour:"02:00",before:38,after:24},{hour:"04:00",before:35,after:22},{hour:"06:00",before:55,after:31},{hour:"08:00",before:88,after:42},{hour:"10:00",before:112,after:51},{hour:"12:00",before:98,after:47},{hour:"14:00",before:125,after:55},{hour:"16:00",before:140,after:58},{hour:"18:00",before:118,after:49},{hour:"20:00",before:72,after:38},{hour:"22:00",before:50,after:29}],kCe=[{month:"Jan",savings:18e4},{month:"Feb",savings:21e4},{month:"Mar",savings:195e3},{month:"Apr",savings:24e4},{month:"May",savings:265e3},{month:"Jun",savings:31e4},{month:"Jul",savings:29e4},{month:"Aug",savings:335e3},{month:"Sep",savings:32e4},{month:"Oct",savings:36e4},{month:"Nov",savings:39e4},{month:"Dec",savings:42e4}],ACe=[{day:"Mon",uptime:99.97},{day:"Tue",uptime:99.99},{day:"Wed",uptime:99.95},{day:"Thu",uptime:100},{day:"Fri",uptime:99.98},{day:"Sat",uptime:99.99},{day:"Sun",uptime:100}],SCe=[{name:"ERCOT W",cost:22,renewable:71,peakIdx:34,status:"ROUTED",color:"#BFF589"},{name:"ERCOT N",cost:34,renewable:58,peakIdx:52,status:"STANDBY",color:"#60a5fa"},{name:"ERCOT S",cost:67,renewable:44,peakIdx:78,status:"AVOID",color:"#f97316"},{name:"ERCOT H",cost:88,renewable:23,peakIdx:95,status:"AVOID",color:"#FF3B30"}],CCe=[{from:"ERCOT H",to:"ERCOT W",mw:47,type:"GPU Inference",action:"Rerout
2009ing"},{from:"ERCOT S",to:"ERCOT N",mw:18,type:"AI Training",action:"Deferred"},{from:"ERCOT H",to:"ERCOT W",mw:12,type:"Batch Jobs",action:"Rerouting"}],g2=({active:e,payload:t,label:n})=>!e||!(t!=null&&t.length)?null:a.jsxs("div",{className:"rounded-lg px-3 py-2 text-xs font-mono",style:{background:"#1A1A1A",border:"1px solid rgba(191,245,137,0.2)"},children:[a.jsx("div",{style:{color:"#A0A0A0"},children:n}),t.map((r,i)=>a.jsxs("div",{style:{color:r.color},children:[r.name,": ",r.value,r.name==="uptime"?"%":r.name==="savings"?"":" $/MWh"]},i))]});function NCe({value:e,max:t=100,color:n,size:r=56,stroke:i=5,animate:o=!1}){const s=(r-i*2)/2,l=2*Math.PI*s,[u,d]=O.useState(o?0:e);O.useEffect(()=>{if(!o)return;const f=1200,g=Date.now(),y=()=>{const b=Date.now()-g,w=Math.min(b/f,1),v=1-Math.pow(1-w,3);d(Math.round(v*e)),w<1&&requestAnimationFrame(y)};requestAnimationFrame(y)},[o,e]);const p=l*(u/t);return a.jsxs("svg",{width:r,height:r,style:{transform:"rotate(-90deg)"},children:[a.jsx("circle",{cx:r/2,cy:r/2,r:s,fill:"none",stroke:"rgba(255,255,255,0.06)",strokeWidth:i}),a.jsx("circle",{cx:r/2,cy:r/2,r:s,fill:"none",stroke:n,strokeWidth:i,strokeDasharray:`${p} ${l-p}`,strokeLinecap:"round",style:{transition:"stroke-dasharray 0.05s linear"}})]})}function TCe({r:e,index:t}){const n=O.useRef(null),r=by(n,{once:!0,margin:"-40px"}),[i,o]=O.useState(0),[s,l]=O.useState(0),[u,d]=O.useState(0);return O.useEffect(()=>{if(!r)return;const p=900+t*150,f=Date.now(),g=()=>{const y=Date.now()-f,b=Math.min(y/p,1),w=1-Math.pow(1-b,3);o(Math.round(w*e.cost)),l(Math.round(w*e.renewable)),d(Math.round(w*e.peakIdx)),b<1&&requestAnimationFrame(g)};requestAnimationFrame(g)},[r]),a.jsxs(pt.div,{ref:n,initial:{opacity:0,x:-20},animate:r?{opacity:1,x:0}:{},transition:{duration:.45,delay:t*.1,ease:"easeOut"},className:"flex items-center justify-between px-4 py-3 rounded-lg",style:{background:e.status==="ROUTED"?"rgba(191,245,137,0.06)":"rgba(255,255,255,0.02)",border:`1px solid ${e.status==="ROUTED"?"rgba(191,245,137,0.2)":"rgba(255,255,255,0.05)"}`},children:[a.jsxs("div",{className:"w-24",children:[a.jsx("div",{className:"font-display text-sm text-lod-white",children:e.name}),a.jsx(pt.div,{className:"font-mono text-xs mt-0.5",style:{color:e.color},initial:{opacity:0}
2009,animate:r?{opacity:1}:{},transition:{delay:t*.1+.3,duration:.4},children:e.status})]}),a.jsxs("div",{className:"text-center",children:[a.jsxs("div",{className:"font-display text-xl",style:{color:e.color},children:["$",i]}),a.jsx("div",{className:"font-mono text-xs",style:{color:"#A0A0A0"},children:"/MWh"})]}),a.jsxs("div",{className:"text-center hidden sm:block",children:[a.jsxs("div",{className:"font-mono text-sm text-lod-white",children:[s,"%"]}),a.jsx("div",{className:"font-mono text-xs",style:{color:"#A0A0A0"},children:"renew."})]}),a.jsxs("div",{className:"flex flex-col items-center gap-0.5",children:[a.jsxs("div",{style:{position:"relative",width:44,height:44},children:[a.jsx(NCe,{value:e.peakIdx,max:100,color:e.color,size:44,stroke:4,animate:r}),a.jsx("div",{style:{position:"absolute",inset:0,display:"flex",alignItems:"center",justifyContent:"center"},children:a.jsx("span",{className:"font-mono text-xs font-bold",style:{color:e.color},children:u})})]}),a.jsx("div",{className:"font-mono text-xs",style:{color:"#A0A0A0"},children:"peak"})]})]})}function ECe({regions:e}){const t=O.useRef(null),n=by(t,{once:!0});return a.jsxs("div",{className:"rounded-xl overflow-hidden",style:{background:"#111",border:"1px solid rgba(191,245,137,0.12)"},children:[a.jsxs("div",{ref:t,className:"flex items-center justify-between px-4 py-3",style:{borderBottom:"1px solid rgba(255,255,255,0.06)",background:"#0A0A0A"},children:[a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx(pt.span,{className:"w-1.5 h-1.5 rounded-full",style:{background:"#BFF589"},animate:{opacity:[1,.3,1],scale:[1,1.4,1]},transition:{duration:1.6,repeat:1/0,ease:"easeInOut"}}),a.jsx("span",{className:"font-mono text-xs",style:{color:"#BFF589"},children:"GRID REGION SNAPSHOT · LIVE"})]}),a.jsx("span",{className:"font-mono text-xs",style:{color:"#A0A0A0"},children:"14:32 CT"})]}),a.jsx("div",{className:"p-3 space-y-2",children:e.map((r,i)=>a.jsx(TCe,{r,index:i},r.name))}),a.jsxs(pt.div,{className:"px-4 py-3 flex items-center justify-between",style:{borderTop:"1px solid rgba(255,255,255,0.06)",background:"rgba(191,245,137,0.04)"},initial:{opacity:0}
2009,animate:n?{opacity:1}:{},transition:{delay:.6,duration:.5},children:[a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx(xt,{size:12,style:{color:"#BFF589"}}),a.jsx("span",{className:"font-mono text-xs",style:{color:"#BFF589"},children:"BEST DESTINATION: ERCOT W"})]}),a.jsx("span",{className:"font-mono text-xs",style:{color:"#A0A0A0"},children:"Est. save $0.011/GPU·hr"})]})]})}const PCe=[{q:"Does this require changes to my application?",a:"No. Workload routing happens at the infrastructure layer. Your application and SLAs are completely untouched."},{q:"Which grid markets do you support?",a:"LÅD operates across all major energy markets in North America, including ERCOT, PJM, CAISO, and MISO. We currently have 500+ MW under management."},{q:"How quickly can we go live?",a:"Most operators are live within days. Talk to one of our experts and we'll walk you through it."},{q:"How does demand response revenue work?",a:"When the grid calls for load reduction, LÅD automatically curtails or routes your workloads and logs the event. The demand response credit flows directly to you with no manual paperwork."},{q:"What happens if the grid signal is wrong or delayed?",a:"LÅD uses multiple redundant data sources and applies confidence thresholds before acting. If a signal is uncertain, the platform holds and reassesses rather than routing on bad data."},{q:"Can we set limits on how much load can be shifted?",a:"Yes. You define hard caps by site, by workload type, or globally. LÅD never shifts more than you authorize, and all actions are fully auditable in real time."},{q:"Does this work with our existing infrastructure?",a:"Yes. LÅD integrates at the workload scheduling layer. No hardware changes, no facility modifications. Setup typically takes less than a week."},{q:"Is our data safe?",a:"LÅD is SOC 1 Type II and SOC 2 Type II certified. All telemetry is encrypted in transit and at rest. We operate on a strict least-privilege access model."},{q:"What is the typical ROI timeline?",a:"Most operators see positive ROI within the first billing cycle. Energy savings alone typically cover the platform cost within 30â60 days of going live."}];function OCe(){const[e,t]=O.useState(null);return a.jsxs("div",{style:{background:"#1A1A1A",minHeight:"100vh"},children:[a.jsx(He,{title:"Flexible Compute â Lower Energy Costs, Same SLAs | LÅD",description:"LÅD routes compute jobs to the lowest-cost grid region in real time. 40% energy cost reduction, $250K avg annual savings per MW, sub-10s grid response, 100% SLA compliance.",canonical:"https://lod.io/lp/flexible-compute"}),a.jsxs("header",{className:"fixed top-0 left-0 right-0 z-50 flex items-center justify-between px-6 py-3",style:{background:"rgba(26,26,26,0.95)",borderBottom:"1px solid rgba(255,255,255,0.07)",backdropFilter:"blur(10px)"},children:[a.jsx("a",{href:"/",children:a.jsx("img",{src:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/6cf86e0a9_Lod-Green-no-Background.png",alt:"LÅD",className:"h-8 w-auto"})}),a.jsx(ye,{to:"/lp/flexible-compute-demo",className:"btn-primary text-sm px-5 py-2",children:"Talk to an Expert â"})]}),a.jsxs("main",{className:"pt-16",children:[a.jsxs("section",{className:"relative overflow-hidden grid-lines-overlay",style:{background:"#1A1A1A"},children:[a.jsxs("div",{className:"max-w-[1400px] mx-auto px-6 pt-20 pb-20 relative z-10",children:[a.jsxs("div",{className:"text-center mb-16",children:[a.jsxs("h1",{className:"font-display text-4xl md:text-5xl text-lod-white mb-5 leading-none tracking-tight",children:["THE REAL SECRET TO",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"UNLOCK CAPACITY."})]}),a.jsx("div",{className:"font-mono text-xl md:text-2xl uppercase tracking-widest mb-5",style:{color:"#BFF589"},children:"EVERYONE NEEDS MORE CAPACITY"})]}),a.jsx("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4 mb-10 text-center",children:[{label:"THE GRID",want:"Sell & distribute more energy",blocker:"Data centers must flex to support grid stability, but they refuse to, because any flex threatens uptime.",accentColor:"#60a5fa",accentBg:"rgba(96,165,250,0.07)",accentBorder:"rgba(96,165,250,0.25)",accentGlow:"rgba(96,165,250,0.15)"},{label:"DATA CENTERS",want:"Sell more compute capacity",blocker:"Can't be flexible. Reducing load means downtime. Downtime breaks SLAs. Broken SLAs lose customers.",accentColor:"#a78bfa",accentBg:"rgba(167,139,250,0.07)",accentBorder:"rgba(167,139,250,0.25)",accentGlow:"rgba(167,139,250,0.15)"},{label:"AI / COMPUTE BUYERS",want:"Process more workloads",blocker:"Can't trust data centers that won't guarantee uptime. More demand, nowhere reliable to send it.",accentColor:"#BFF589",accentBg:"rgba(191,245,137,0.07)",accentBorder:"rgba(191,245,137,0.25)",accentGlow:"rgba(191,245,137,0.15)"}].map((n,r)=>a.jsxs(pt.div,{initial:{opacity:0,y:24}
2009,animate:{opacity:1,y:0},transition:{duration:.5,delay:r*.12,ease:"easeOut"},whileHover:{y:-6,scale:1.02},className:"rounded-xl flex flex-col overflow-hidden cursor-default",style:{background:"rgba(255,255,255,0.02)",border:"1px solid rgba(255,255,255,0.08)",transition:"border-color 0.25s, box-shadow 0.25s"},onMouseEnter:i=>{i.currentTarget.style.borderColor=n.accentBorder,i.currentTarget.style.boxShadow=`0 0 32px ${n.accentGlow}, 0 8px 32px rgba(0,0,0,0.4)`},onMouseLeave:i=>{i.currentTarget.style.borderColor="rgba(255,255,255,0.08)",i.currentTarget.style.boxShadow="none"},children:[a.jsx("div",{className:"h-0.5 w-full",style:{background:`linear-gradient(90deg, ${n.accentColor}, transparent)`}}),a.jsxs("div",{className:"px-6 pt-5 pb-4 flex items-center justify-center gap-3",style:{borderBottom:"1px solid rgba(255,255,255,0.06)"},children:[a.jsx("span",{className:"w-2 h-2 rounded-full flex-shrink-0",style:{background:n.accentColor,boxShadow:`0 0 8px ${n.accentColor}`}}),a.jsx("div",{className:"font-display text-base text-lod-white tracking-wide",children:n.label})]}),a.jsxs("div",{className:"px-6 py-4 text-center",style:{borderBottom:"1px solid rgba(255,255,255,0.06)"},children:[a.jsx("div",{className:"font-mono text-xs mb-1.5 uppercase tracking-widest",style:{color:n.accentColor},children:"They want"}),a.jsx("div",{className:"text-lod-white text-sm font-semibold leading-snug",children:n.want})]}),a.jsxs("div",{className:"px-6 py-4 flex-1 text-center",style:{background:"rgba(255,59,48,0.04)"},children:[a.jsx("div",{className:"font-mono text-xs mb-1.5 uppercase tracking-widest",style:{color:"#FF3B30"},children:"The blocker"}),a.jsx("div",{className:"text-sm leading-relaxed",style:{color:"#A0A0A0"},children:n.blocker})]})]},n.label))}),a.jsx("div",{className:"text-center mb-14 py-8 px-6 rounded-2xl",style:{background:"rgba(255,59,48,0.05)",border:"1px solid rgba(255,59,48,0.15)"},children:a.jsxs("p",{className:"font-display text-xl md:text-2xl",style:{color:"#F9F9F9"},children:["The industry has approached this the wrong way: ",a.jsx("span",{style:{color:"#FF3B30",textDecoration:"line-through"},children:"make data centers flexible."})]})}),a.jsxs("div",{className:"text-center",children:[a.jsxs("h2",{className:"font-display text-2xl md:text-3xl text-lod-white mb-6 leading-none tracking-tight",children:["THE SOLUTION: MAKE THE ",a.jsx("span",{style:{color:"#BFF589"},children:"WORKLOAD"}),a.jsx("br",{}),"FLEXIBLE. NOT THE BUILDING."]}),a.jsx("p",{className:"text-lod-gray text-lg md:text-xl mb-10 max-w-2xl mx-auto leading-relaxed",children:"LÅD routes compute jobs to the lowest-cost, most stable grid region, in real time, below the application layer. The grid gets flexibility. Data centers keep their uptime. Compute buyers get more capacity. Everyone wins."}),a.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-center gap-4",children:[a.jsxs("div",{className:"inline-flex items-center gap-2 px-4 py-2 rounded-full text-xs font-mono",style:{background:"rgba(191,245,137,0.07)",border:"1px solid rgba(191,245,137,0.22)",color:"#BFF589"},children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full inline-block animate-pulse-green",style:{background:"#BFF589"}}),"500+ MW Under Management | SOC 1 & SOC 2 Certified"]}),a.jsxs(ye,{to:"/lp/flexible-compute-demo",className:"btn-primary text-base px-10 py-4 inline-flex items-center gap-2",children:["Talk to a Flexible Compute Expert ",a.jsx(Ve,{size:16})]})]})]})]}),a.jsx("div",{className:"absolute bottom-0 left-0 right-0 h-px",style:{background:"linear-gradient(90deg, transparent, rgba(191,245,137,0.35), transparent)"}})]}),a.jsxs("section",{style:{background:"#0A0A0A",borderBottom:"1px solid rgba(255,255,255,0.06)"},children:[a.jsx("div",{className:"max-w-[1400px] mx-auto px-6 py-12 grid grid-cols-2 md:grid-cols-4 gap-8 text-center",children:[{num:40,suffix:"%",label:"Energy Cost Reduction"},{prefix:"$",num:250,suffix:"K",label:"Avg Annual Savings PER MW"},{stat:"<10s",label:"Grid Response Time"},{num:100,suffix:"%",label:"SLA Compliance"}].map(({stat:n,num:r,suffix:i,prefix:o,label:s})=>a.jsxs(Lr,{children:[a.jsx("div",{className:"font-display text-5xl mb-1",style:{color:"#BFF589"},children:n??a.jsx(wCe,{target:r,suffix:i,prefix:o??""})}),a.jsx("div",{className:"text-xs font-mono uppercase tracking-wider",style:{color:"#A0A0A0"},children:s})]},s))}),a.jsx("div",{className:"text-center pb-10",children:a.jsxs(ye,{to:"/lp/flexible-compute-demo",className:"btn-primary text-sm px-8 py-3 inline-flex items-center gap-2",children:["Unlock Your Data Center Potential ",a.jsx(Ve,{size:14})]})})]}),a.jsxs("section",{className:"py-24 relative overflow-hidden",style:{background:"#0D0D0D"},children:[a.jsx("div",{"aria-hidden":"true",style:{position:"absolute",inset:0,pointerEvents:"none",backgroundImage:"radial-gradient(circle, rgba(191,245,137,0.2) 1px, transparent 1px)",backgroundSize:"28px 28px"}}),a.jsx("div",{className:"max-w-[1400px] mx-auto px-6",children:a.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-16 items-center",children:[a.jsxs(Lr,{children:[a.jsx("div",{className:"section-label mb-4",children:"The Impact"}),a.jsxs("h2",{className:"font-display text-4xl md:text-5xl text-lod-white mb-6 leading-tight",children:["ENERGY
2009COSTS FALL.",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"SLAs DON'T."})]}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-6",children:"When the grid gets expensive, your jobs move. Not your infrastructure. LÅD watches every signal across every region and shifts workloads before costs spike."}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-8",children:"The result is a cost curve that looks nothing like the grid curve. You capture cheap electrons all day. Your applications never notice."}),a.jsxs(ye,{to:"/lp/flexible-compute-demo",className:"btn-primary text-sm px-8 py-3 inline-flex items-center gap-2",children:["Make Your Data Center Flexible ",a.jsx(Ve,{size:14})]})]}),a.jsx(Lr,{delay:.15,children:a.jsx(ECe,{regions:SCe})})]})})]}),a.jsx("section",{className:"py-24 relative overflow-hidden",style:{background:"#0A0A0A"},children:a.jsxs("div",{className:"max-w-[1400px] mx-auto px-6",children:[a.jsx("div",{className:"section-label mb-4 text-center",children:"How It Works"}),a.jsxs("h2",{className:"font-display text-4xl md:text-5xl text-lod-white mb-4 text-center leading-tight",children:["OBSERVE. DECIDE. EXECUTE.",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"28 MILLISECONDS."})]}),a.jsx("p",{className:"text-lod-gray text-base text-center mb-16 max-w-xl mx-auto",children:"Every signal. Every region. Evaluated and acted on in under 30 seconds."}),a.jsx("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-6 mb-16",children:[{num:"01",title:"OBSERVE",desc:"Continuous monitoring of grid load, real-time LMP prices, ancillary markets, and infrastructure health across all regions.",detail:"ERCOT · CAISO · PJM"},{num:"02",title:"DECIDE",desc:"The platform evaluates every signal, scores each region for cost and stability, and selects the right routing action.",detail:"< 28ms decision latency"},{num:"03",title:"EXECUTE",desc:"Workloads shift. Demand response is captured. Revenue flows. Your SLAs never feel it. Flexibility lives below the application layer.",detail:"Zero SLA impact"}].map((n,r)=>a.jsx(Lr,{delay:r*.12,children:a.jsxs("div",{className:"card-obsidian p-8 h-full",children:[a.jsx("div",{className:"font-display text-5xl mb-3",style:{color:"#BFF589"},children:n.num}),a.jsx("h3",{className:"font-display text-xl text-lod-white mb-3 tracking-widest",children:n.title}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed mb-4",children:n.desc}),a.jsx("div",{className:"font-mono text-xs px-3 py-1.5 rounded inline-block",style:{background:"rgba(191,245,137,0.08)",color:"#BFF589",border:"1px solid rgba(191,245,137,0.2)"},children:n.detail})]})},n.num))}),a.jsx(Lr,{children:a.jsxs("div",{className:"rounded-xl overflow-hidden",style:{background:"#0A0A0A",border:"1px solid rgba(191,245,137,0.15)"},children:[a.jsxs("div",{className:"flex items-center gap-2 px-4 py-3",style:{borderBottom:"1px solid rgba(255,255,255,0.06)"},children:[a.jsx("span",{className:"w-2.5 h-2.5 rounded-full",style:{background:"#FF3B30"}}),a.jsx("span",{className:"w-2.5 h-2.5 rounded-full",style:{background:"#FFD60A"}}),a.jsx("span",{className:"w-2.5 h-2.5 rounded-full",style:{background:"#BFF589"}}),a.jsx("span",{className:"font-mono text-xs ml-2",style:{color:"#A0A0A0"},children:"lod-orchestrator · live"})]}),a.jsxs("div",{className:"p-6 font-mono text-xs space-y-2",children:[a.jsx("div",{style:{color:"#A0A0A0"},children:"// 14:32:07.004 :: grid event detected"}),a.jsx("div",{style:{color:"#BFF589"},children:'> signal: "coincident_peak_risk" · confidence: 0.96'}),a.jsx("div",{style:{color:"#A0A0A0"},children:"// evaluating regions..."}),a.jsxs("div",{style:{color:"#BFF589"},children:["> ERCOT_SOUTH: cost=88 $/MWh, load=95% â ",a.jsx("span",{style:{color:"#FF3B30"},children:"AVOID"})]}),a.jsxs("div",{style:{color:"#BFF589"},children:["> ERCOT_WEST: cost=22 $/MWh, load=58% â ",a.jsx("span",{style:{color:"#BFF589"},children:"ROUTE HERE"})]}),a.jsx("div",{style:{color:"#A0A0A0"},children:"// executing workload shift..."}),a.jsx("div",{style:{color:"#BFF589"},children:"> 47 jobs migrated · latency: 28ms · SLA: intact"}),a.jsx("div",{style:{color:"#A0A0A0"},children:"// demand response credit captured"}),a.jsx("div",{style:{color:"#BFF589"},children:"> revenue_captured: $4,820 · cost_avoided: $11,340"}),a.jsx("div",{style:{color:"#4A4A4A"},className:"mt-2",children:"â"})]})]})}),a.jsx("div",{className:"text-center mt-12",children:a.jsxs(ye,{to:"/lp/flexible-compute-demo",className:"btn-primary text-base px-10 py-4 inline-flex items-center gap-2",children:["Let's Talk Flexibility ",a.jsx(Ve,{size:16})]})})]})}),a.jsx("section",{className:"py-24 grid-lines-overlay",style:{background:"#1A1A1A",position:"relative"},children:a.jsx("div",{className:"max-w-[1400px] mx-auto px-6",children:a.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-16 items-center",children:[a.jsxs("div",{className:"rounded-xl overflow-hidden",style:{background:"#111",border:"1px solid rgba(191,245,137,0.12)"},children:[a.jsxs("div",{className:"flex items-center justify-between px-4 py-3",style:{borderBottom:"1px solid rgba(255,255,255,0.06)",background:"#0A0A0A"},children:[a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx(jg,{size:12,style:{color:"#BFF589"}}),a.jsx("span",{className:"font-mono text-xs",style:{color:"#BFF589"},children:"LIVE OPTIMIZATION IN ACTION"})]}),a.jsx("span",{className:"font-mono text-xs",style:{color:"#A0A0A0"},children:"auto-updating"})]}),a.jsx("div",{className:"p-4 space-y-3",children:CCe.map((n,r)=>a.jsxs("div",{className:"p-4 rounded-lg",style:{background:"rgba(255,255,255,0.03)",border:"1px solid rgba(255,255,255,0.06)"},children:[a.jsxs("div",{className:"flex items-center justify-between mb-2",children:[a.jsxs("div",{className:"flex items-center gap-2 font-mono text-sm",children:[a.jsx("span",{style:{color:"#FF3B30"},children:n.from}),a.jsx("span",{style:{color:"#A0A0A0"},children:"â"}),a.jsx("span",{style:{color:"#BFF589"},children:n.to})]}),a.jsxs("span",{className:"font-display text-base",style:{color:"#BFF589"},children:[n.mw," MW"]})]}),a.jsxs("div",{className:"flex items-center justify-between",children:[a.jsx("span",{className:"font-mono text-xs",style:{color:"#A0A0A0"},children:n.type}),a.jsx("span",{className:"font-mono text-xs px-2 py-0.5 rounded",style:{background:"rgba(191,245,137,0.1)",color:"#BFF589",border:"1px solid rgba(191,245,137,0.2)"},children:n.action})]}),a.jsx("div",{className:"mt-3 h-0.5 rounded-full overflow-hidden",style:{background:"rgba(255,255,255,0.06)"},children:a.jsx("div",{className:"h-full rounded-full",style:{width:`${60+r*15}%`,background:"linear-gradient(90deg, #BFF589, rgba(191,245,137,0.3))"}})})]},r))}),a.jsxs("div",{className:"px-4 py-3 flex items-center justify-between",style:{borderTop:"1px solid rgba(255,255,255,0.06)",background:"#0A0A0A"},children:[a.jsx("span",{className:"font-mono text-xs",style:{color:"#A0A0A0"},children:"TOTAL ACTIVE SHIFT"}),a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx(Gk,{size:12,style:{color:"#BFF589"}}),a.jsx("span",{className:"font-display text-lg",style:{color:"#BFF589"},children:"77 MW"})]})]})]}),a.jsxs("div",{children:[a.jsx("div",{className:"section-label mb-4",children:"Grid-Aware Routing"}),a.jsxs("h2",{className:"font-display text-4xl md:text-5xl text-lod-white mb-6 leading-tight",children:["JOBS GO WHERE",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"ELECTRONS ARE CHEAP."})]}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-6",children:"LÅD scores every grid region continuously: load, LMP, ancillary risk, congestion. When one zone spikes, jobs move to a better one. No manual step required."}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed",children:"You don't engineer the building to bend. You route the job. The building stays exactly what it was designed to be: stable, always-on infrastru
2009cture."})]})]})})}),a.jsxs("section",{className:"py-24 relative overflow-hidden",style:{background:"#0D0D0D"},children:[a.jsx("div",{"aria-hidden":"true",style:{position:"absolute",inset:0,pointerEvents:"none",backgroundImage:"radial-gradient(circle, rgba(191,245,137,0.2) 1px, transparent 1px)",backgroundSize:"28px 28px"}}),a.jsxs("div",{className:"max-w-[1400px] mx-auto px-6",children:[a.jsx("div",{className:"section-label mb-4 text-center",children:"Proven Results"}),a.jsxs("h2",{className:"font-display text-4xl text-lod-white mb-12 text-center leading-tight",children:["CUMULATIVE SAVINGS.",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"UNINTERRUPTED UPTIME."})]}),a.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4 mb-4",children:[a.jsx(Lr,{children:a.jsxs("div",{className:"rounded-xl overflow-hidden",style:{background:"#111",border:"1px solid rgba(191,245,137,0.12)"},children:[a.jsxs("div",{className:"px-4 pt-4 pb-2 flex items-start justify-between",style:{borderBottom:"1px solid rgba(255,255,255,0.05)"},children:[a.jsxs("div",{children:[a.jsx("p",{className:"font-mono text-xs mb-1",style:{color:"#A0A0A0"},children:"MONTHLY ENERGY SAVINGS · USD"}),a.jsx("p",{className:"font-display text-2xl",style:{color:"#BFF589"},children:"$2.8M / year"})]}),a.jsx("span",{className:"font-mono text-xs px-2 py-1 rounded",style:{background:"rgba(191,245,137,0.08)",color:"#BFF589",border:"1px solid rgba(191,245,137,0.15)"},children:"â YoY"})]}),a.jsx("div",{className:"px-2 py-3",children:a.jsx(ks,{width:"100%",height:160,children:a.jsxs(DD,{data:kCe,margin:{top:4,right:4,bottom:0,left:-16},children:[a.jsx("defs",{children:a.jsxs("linearGradient",{id:"savGrad",x1:"0",y1:"0",x2:"0",y2:"1",children:[a.jsx("stop",{offset:"0%",stopColor:"#BFF589",stopOpacity:.3}),a.jsx("stop",{offset:"100%",stopColor:"#BFF589",stopOpacity:0})]})}),a.jsx(Cs,{strokeDasharray:"2 6",stroke:"rgba(255,255,255,0.04)",vertical:!1}),a.jsx(Vr,{dataKey:"month",tick:{fill:"#4A4A4A",fontSize:9,fontFamily:"JetBrains Mono"},tickLine:!1,axisLine:!1}),a.jsx(Gr,{tickFormatter:n=>`$${(n/1e3).toFixed(0)}k`,tick:{fill:"#4A4A4A",fontSize:9,fontFamily:"JetBrains Mono"},tickLine:!1,axisLine:!1}),a.jsx(Kn,{content:a.jsx(g2,{})}),a.jsx(Ri,{type:"monotone",dataKey:"savings",name:"savings",stroke:"#BFF589",strokeWidth:2,fill:"url(#savGrad)",dot:!1})]})})})]})}),a.jsx(Lr,{delay:.15,children:a.jsxs("div",{className:"rounded-xl overflow-hidden",style:{background:"#111",border:"1px solid rgba(191,245,137,0.12)"},children:[a.jsxs("div",{className:"px-4 pt-4 pb-2 flex items-start justify-between",style:{borderBottom:"1px solid rgba(255,255,255,0.05)"},children:[a.jsxs("div",{children:[a.jsx("p",{className:"font-mono text-xs mb-1",style:{color:"#A0A0A0"},children:"SLA COMPLIANCE · % UPTIME"}),a.jsx("p",{className:"font-display text-2xl",style:{color:"#BFF589"},children:"99.98% avg"})]}),a.jsx("span",{className:"font-mono text-xs px-2 py-1 rounded",style:{background:"rgba(191,245,137,0.08)",color:"#BFF589",border:"1px solid rgba(191,245,137,0.15)"},children:"LIVE"})]}),a.jsx("div",{className:"px-2 py-3",children:a.jsx(ks,{width:"100%",height:160,children:a.jsxs(wS,{data:ACe,margin:{top:4,right:4,bottom:0,left:-16},children:[a.jsx(Cs,{strokeDasharray:"2 6",stroke:"rgba(255,255,255,0.04)",vertical:!1}),a.jsx(Vr,{dataKey:"day",tick:{fill:"#4A4A4A",fontSize:9,fontFamily:"JetBrains Mono"},tickLine:!1,axisLine:!1}),a.jsx(Gr,{domain:[99.9,100.05],tickFormatter:n=>`${n}%`,tick:{fill:"#4A4A4A",fontSize:9,fontFamily:"JetBrains Mono"},tickLine:!1,axisLine:!1}),a.jsx(Kn,{content:a.jsx(g2,{})}),a.jsx(Ls,{y:99.95,stroke:"rgba(255,59,48,0.25)",strokeDasharray:"4 4"}),a.jsx(Ii,{type:"monotone",dataKey:"uptime",name:"uptime",stroke:"#BFF589",strokeWidth:2,dot:{fill:"#BFF589",strokeWidth:0,r:4},activeDot:{r:6,fill:"#BFF589"}})]})})})]})})]}),a.jsx(Lr,{delay:.1,children:a.jsxs("div",{className:"rounded-xl overflow-hidden",style:{background:"#111",border:"1px solid rgba(191,245,137,0.12)"},children:[a.jsxs("div",{className:"px-4 pt-4 pb-2 flex items-center justify-between",style:{borderBottom:"1px solid rgba(255,255,255,0.05)"},children:[a.jsxs("div",{children:[a.jsx("p",{className:"font-mono text-xs mb-1",style:{color:"#A0A0A0"},children:"ENERGY COST · $/MWh · 24H WINDOW"}),a.jsx("p",{className:"font-display text-lg",style:{color:"#BFF589"},children:"-25% avg cost with LÅD routing"})]}),a.jsxs("div",{className:"flex gap-4 text-xs font-mono",children:[a.jsxs("span",{className:"flex items-center gap-1.5",style:{color:"#FF3B30"},children:[a.jsx("span",{className:"w-2 h-2 rounded-full inline-block",style:{background:"#FF3B30"}}),"Without LÅD"]}),a.jsxs("span",{className:"flex items-center gap-1.5",style:{color:"#BFF589"},children:[a.jsx("span",{className:"w-2 h-2 rounded-full inline-block",style:{background:"#BFF589"}}),"With LÅD"]})]})]}),a.jsx("div",{className:"px-2 py-3",children:a.jsx(ks,{width:"100%",height:140,children:a.jsxs(DD,{data:jCe,margin:{top:4,right:8,bottom:0,left:-16},children:[a.jsxs("defs",{children:[a.jsxs("linearGradient",{id:"beforeGrad",x1:"0",y1:"0",x2:"0",y2:"1",children:[a.jsx("stop",{offset:"0%",stopColor:"#FF3B30",stopOpacity:.2}),a.jsx("stop",{offset:"100%",stopColor:"#FF3B30",stopOpacity:0})]}),a.jsxs("linearGradient",{id:"afterGrad",x1:"0",y1:"0",x2:"0",y2:"1",children:[a.jsx("stop",{offset:"0%",stopColor:"#BFF589",stopOpacity:.2}),a.jsx("stop",{offset:"100%",stopColor:"#BFF589",stopOpacity:0})]})]}),a.jsx(Cs,{strokeDasharray:"2 6",stroke:"rgba(255,255,255,0.04)",vertical:!1}),a.jsx(Vr,{dataKey:"hour",tick:{fill:"#4A4A4A",fontSize:9,fontFamily:"JetBrains Mono"}
2009,tickLine:!1,axisLine:!1}),a.jsx(Gr,{tick:{fill:"#4A4A4A",fontSize:9,fontFamily:"JetBrains Mono"},tickLine:!1,axisLine:!1}),a.jsx(Kn,{content:a.jsx(g2,{})}),a.jsx(Ri,{type:"monotone",dataKey:"before",name:"before",stroke:"#FF3B30",strokeWidth:1.5,fill:"url(#beforeGrad)",dot:!1}),a.jsx(Ri,{type:"monotone",dataKey:"after",name:"with LÅD",stroke:"#BFF589",strokeWidth:2,fill:"url(#afterGrad)",dot:!1})]})})})]})}),a.jsx("div",{className:"text-center mt-10",children:a.jsxs(ye,{to:"/lp/flexible-compute-demo",className:"btn-primary text-base px-10 py-4 inline-flex items-center gap-2",children:["Get Speed to Power ",a.jsx(Ve,{size:16})]})})]})]}),a.jsx("section",{className:"py-24 relative overflow-hidden",style:{background:"#0A0A0A"},children:a.jsxs("div",{className:"max-w-[1400px] mx-auto px-6",children:[a.jsx("div",{className:"section-label mb-4 text-center",children:"Who It's For"}),a.jsxs("h2",{className:"font-display text-4xl text-lod-white mb-10 text-center leading-tight",children:["IF YOUR WORKLOADS CAN MOVE,",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"YOUR COSTS SHOULD TOO."})]}),a.jsx("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-6 mb-12",children:[{title:"Cloud Operators",desc:"Multi-region routing based on real-time grid economics. Lower costs, same SLAs."},{title:"Compute Training Facilities",desc:"Non-real-time training jobs are deferrable by nature. LÅD captures the financial value of that deferability."},{title:"HPC Data Centers",desc:"Schedule high-performance workloads around peak grid conditions without any disruption to end users."}].map((n,r)=>a.jsx(Lr,{delay:r*.1,children:a.jsxs("div",{className:"card-obsidian p-8 text-center h-full",children:[a.jsx("div",{className:"w-2 h-2 rounded-full mb-4 mx-auto",style:{background:"#BFF589"}}),a.jsx("h3",{className:"font-display text-xl text-lod-white mb-3",children:n.title}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed",children:n.desc})]})},n.title))}),a.jsx(Lr,{children:a.jsx("div",{className:"card-obsidian p-8",children:a.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:["Routes workloads to lowest-cost grid regions automatically","Captures demand response revenue without downtime","Keeps SLAs intact. Flexibility lives below the application layer.","SOC 1 Type II & SOC 2 Type II certified","No rearchitecting required. Setup in days.","Fully autonomous. No manual coordination needed."].map(n=>a.jsxs("div",{className:"flex items-start gap-3",children:[a.jsx(di,{size:14,style:{color:"#BFF589",marginTop:2,flexShrink:0}}),a.jsx("p",{className:"text-lod-gray text-sm",children:n})]},n))})})}),a.jsx("div",{className:"text-center mt-10",children:a.jsxs(ye,{to:"/lp/flexible-compute-demo",className:"btn-primary text-base px-10 py-4 inline-flex items-center gap-2",children:["Unlock Your Data Center Potential ",a.jsx(Ve,{size:16})]})})]})}),a.jsx("section",{className:"py-24 grid-lines-overlay",style:{background:"#1A1A1A",position:"relative"},children:a.jsx("div",{className:"max-w-[1400px] mx-auto px-6",children:a.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-12 items-center",children:[a.jsx(Lr,{children:a.jsxs("div",{children:[a.jsx("div",{className:"section-label mb-4",children:"Case Study"}),a.jsxs("h2",{className:"font-display text-4xl text-lod-white mb-4 leading-tight",children:["CLoD: $2.8M Saved.",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"Zero SLA Events."})]}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-6",children:"A distributed compute operator eliminated 25% of energy costs by routing workloads across regions in real time based on live grid conditions. Not a single SLA was affected."}),a.jsx("div",{className:"mt-0",children:a.jsxs(ye,{to:"/lp/flexible-compute-demo",className:"btn-primary text-sm px-8 py-3 inline-flex items-center gap-2",children:["Talk to Flexibility Expert ",a.jsx(Ve,{size:14})]})})]})}),a.jsx(Lr,{delay:.15,children:a.jsx("div",{className:"card-obsidian p-8 space-y-4",children:[{label:"Energy Cost Reduction",value:"25%"},{label:"Annual Savings",value:"$2.8M"},{label:"SLA Compliance",value:"98%"},{label:"Compute Nodes",value:"240+"},{label:"Grid Response Time",value:"<30s"}].map(n=>a.jsxs("div",{className:"flex justify-between items-end border-b pb-3",style:{borderColor:"rgba(255,255,255,0.07)"},children:[a.jsx("span",{className:"text-lod-gray text-sm",children:n.label}),a.jsx("span",{className:"font-display text-2xl",style:{color:"#BFF589"},children:n.value})]},n.label))})})]})})}),a.jsxs("section",{className:"py-20 relative overflow-hidden",style:{background:"#0D0D0D"},children:[a.jsx("div",{"aria-hidden":"true",style:{position:"absolute",inset:0,pointerEvents:"none",backgroundImage:"radial-gradient(circle, rgba(191,245,137,0.2) 1px, transparent 1px)",backgroundSize:"28px 28px"}}),a.jsxs("div",{className:"max-w-[700px] mx-auto px-6",children:[a.jsx("h2",{className:"font-display text-3xl text-lod-white mb-10 text-center",children:"Common Questions"}),a.jsx("div",{className:"space-y-3",children:PCe.map((n,r)=>a.jsxs("div",{className:"card-obsidian overflow-hidden",children:[a.jsxs("button",{className:"w-full text-left px-6 py-5 flex items-center justify-between gap-4",onClick:()=>t(e===r?null:r),children:[a.jsx("span",{className:"text-lod-white text-sm font-semibold",children:n.q}),a.jsx("span",{className:"text-xl flex-shrink-0",style:{color:"#BFF589"},children:e===r?"â":"+"})]}),e===r&&a.jsx("div",{className:"px-6 pb-5",children:a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed",children:n.a})})]},r))})]})]}),a.jsxs("section",{className:"py-28 text-center relative overflow-hidden",style:{backgroundImage:"url(https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/60e492244_SectionGreenmountainsMediumBannerUSLandscape.png)",backgroundSize:"cover",backgroundPosition:"center",borderTop:"1px solid rgba(191,245,137,0.18)",borderBottom:"1px solid rgba(191,245,137,0.18)"},children:[a.jsx("div",{"aria-hidden":"true",style:{position:"absolute",inset:0,pointerEvents:"none",background:"rgba(0,0,0,0.35)"}}),a.jsxs("div",{className:"max-w-[700px] mx-auto px-6 relative z-10",children:[a.jsx("div",{className:"font-mono text-xs uppercase tracking-widest mb-4",style:{color:"#BFF589"},children:"Ready to move your workloads?"}),a.jsxs("h2",{className:"font-display text-5xl md:text-7xl text-lod-white mb-6 leading-none",children:["LOWER COSTS.",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"SAME SLAS."})]}),a.jsx("p",{className:"text-lod-gray text-base mb-10 max-w-md mx-auto leading-relaxed",children:"Talk to a Flexible Compute expert. We will show you exactly how much you can save, based on your actual workloads and grid exposure."}),a.jsxs(ye,{to:"/lp/flexible-compute-demo",className:"btn-primary text-base px-12 py-4 inline-flex items-center gap-2",children:["Talk to a Flexible Compute Expert ",a.jsx(Ve,{size:16})]}),a.jsx("p",{className:"text-xs mt-6",style:{color:"#A0A0A0"},children:"No commitment · Setup in days · SOC 2 Certified"})]})]})]}),a.jsx("footer",{className:"py-6 text-center",style:{borderTop:"1px solid rgba(255,255,255,0.06)"},children:a.jsxs("p",{className:"text-xs",style:{color:"#A0A0A0"},children:["© 2026 LÅD Energy Intelligence |"," ",a.jsx("a",{href:"/privacy",className:"hover:text-lod-gray transition-colors",children:"Privacy"})]})})]})}const _Ce="https://lod-crm-api.vercel.app/api/v1/forms/26cf8b27-bbab-4d1a-884c-596926976661/submit",Tl="w-full px-4 py-3 rounded-lg bg-transparent text-lod-white placeholder-lod-gray text-sm outline-none focus:border-lod-green transition-colors",El={border:"1px solid rgba(255,255,255,0.15)"};function N$({source:e="direct",buttonLabel:t="Request a Strategy Call"}){const[n,r]=O.useState({firstName:"",lastName:"",email:"",name:"",title:"",body:""}),[i,o]=O.useState(!1),[s,l]=O.useState(!1),[u,d]=O.useState(!1),[p,f]=O.useState(""),[g,y]=O.useState(!1),b=v=>j=>{r(k=>({...k,[v]:j.target.value}))},w=async v=>{if(v.preventDefault(),!i){f("Please acknowledge the Privacy Policy to continue.");return}d(!0),f("");try{if(!(await fetch(_Ce,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({payload:{...n,privacyPolicyAck:i,marketingConsent:s,consentTimestamp:new Date().toISOString()},source:e==="direct"?"web":e})})).ok)throw new Error("Submission failed");y(!0)}catch{f("Something went wrong. Please try again."),d(!1)}};return g?a.jsxs("div",{className:"text-center py-10 px-6 rounded-xl",style:{background:"rgba(191,245,137,0.04)",border:"1px solid rgba(191,245,137,0.2)"},children:[a.jsx("div",{className:"w-12 h-12 rounded-full flex items-center justify-center mx-auto mb-4",style:{background:"rgba(191,245,137,0.15)"},children:a.jsx("svg",{width:"22",height:"22",viewBox:"0 0 24 24",fill:"none",stroke:"#BFF589",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",children:a.jsx("polyline",{points:"20 6 9 17 4 12"})})}),a.jsx("h3",{className:"font-display text-xl text-lod-white mb-2",children:"Request Received"}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed max-w-sm mx-auto",children:"Thanks for reaching out. Our team will review your request and get back to you within one business day to schedule your strategy call."})]}):a.jsxs("div",{id:"meeting-form-container",className:"w-full",children:[a.jsxs("form",{onSubmit:w,className:"space-y-3",children:[a.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[a.jsx("input",{type:"text",placeholder:"First Name *",required:!0,value:n.firstName,onChange:b("firstName"),className:Tl,style:El}),a.jsx("input",{type:"text",placeholder:"Last Name *",required:!0,value:n.lastName,onChange:b("lastName"),className:Tl,style:El})]}),a.jsx("input",{type:"email",placeholder:"Work Email *",required:!0,value:n.email,onChange:b("email"),className:Tl,style:El}),a.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[a.jsx("input",{type:"text",placeholder:"Company *",required:!0,value:n.name,onChange:b("name"),className:Tl,style:El}),a.jsx("input",{type:"text",placeholder:"Role / Title *",required:!0,value:n.title,onChange:b("title"),className:Tl,style:El})]}
2009),a.jsx("textarea",{placeholder:"What would you like to discuss? (optional)",rows:3,value:n.body,onChange:b("body"),className:Tl+" resize-none",style:El}),a.jsxs("div",{className:"space-y-2.5",children:[a.jsxs("label",{className:"flex items-start gap-2.5 text-xs leading-relaxed cursor-pointer",style:{color:"#A0A0A0"},children:[a.jsx("input",{type:"checkbox",checked:i,onChange:v=>o(v.target.checked),className:"mt-0.5 w-4 h-4 shrink-0 accent-lod-green"}),a.jsxs("span",{children:["I acknowledge LÅD's"," ",a.jsx("a",{href:"/privacy",className:"text-lod-green hover:underline",children:"Privacy Policy"})," and consent to my data being processed to handle this request. *"]})]}),a.jsxs("label",{className:"flex items-start gap-2.5 text-xs leading-relaxed cursor-pointer",style:{color:"#A0A0A0"},children:[a.jsx("input",{type:"checkbox",checked:s,onChange:v=>l(v.target.checked),className:"mt-0.5 w-4 h-4 shrink-0 accent-lod-green"}),a.jsx("span",{children:"I'd also like to receive marketing communications and updates from LÅD (optional)."})]})]}),a.jsx("button",{type:"submit",disabled:u,className:"btn-primary w-full justify-center text-sm disabled:opacity-60 disabled:cursor-not-allowed",children:u?a.jsxs(a.Fragment,{children:[a.jsx(Cg,{size:14,className:"animate-spin"})," Sending..."]}):a.jsxs(a.Fragment,{children:[t," ",a.jsx(Ve,{size:14})]})})]}),p&&a.jsx("p",{className:"text-xs text-red-400 mt-2 text-center",children:p}),a.jsx("p",{className:"text-xs mt-3 text-center",style:{color:"#707070"},children:"* Required fields"}),a.jsxs("div",{className:"flex items-center justify-center gap-2 mt-2",children:[a.jsx(Ng,{size:11,style:{color:"#A0A0A0"}}),a.jsx("span",{className:"text-xs",style:{color:"#A0A0A0"},children:"No spam. Unsubscribe anytime."})]})]})}const ICe=[{val:"2-3x",label:"Faster Interconnection"},{val:"500MW+",label:"Capacity Unlocked"},{val:"<10s",label:"Grid Response Time"},{val:"100%",label:"SLA Compliance"}],RCe=["Get to power faster by routing workloads around grid constraints, not waiting behind them","Unlock capacity that's stuck behind interconnection queues and grid bottlenecks","Keep SLAs fully intact, flexibility lives below the application layer","No rearchitecting required, most operators go live within days"];function DCe(){const t=new URLSearchParams(window.location.search).get("source")||"flexible-compute-demo";return a.jsxs("div",{style:{background:"#1A1A1A",minHeight:"100vh"},children:[a.jsx(He,{title:"Book a Flexible Compute Demo | LÅD",description:"See how LÅD gets you to power faster and unlocks stranded capacity by routing AI compute workloads around grid constraints in real time, with zero impact to SLAs. Book your demo.",canonical:"https://lod.io/lp/flexible-compute-demo"}),a.jsx("header",{className:"fixed top-0 left-0 right-0 z-50 flex items-center justify-center px-6 py-4",style:{background:"rgba(26,26,26,0.95)",borderBottom:"1px solid rgba(255,255,255,0.06)",backdropFilter:"blur(8px)"},children:a.jsx("a",{href:"/",children:a.jsx("img",{src:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/6cf86e0a9_Lod-Green-no-Background.png",alt:"LÅD energy intelligence platform logo",className:"h-8 w-auto"})})}),a.jsxs("main",{className:"pt-16",children:[a.jsxs("section",{className:"py-16 grid-lines-overlay relative overflow-hidden",style:{background:"#1A1A1A"},children:[a.jsx("div",{"aria-hidden":"true",className:"pointer-events-none absolute -top-40 -right-40 w-[500px] h-[500px] rounded-full",style:{background:"radial-gradient(circle, rgba(191,245,137,0.07) 0%, transparent 70%)"}}),a.jsx("div",{className:"max-w-[1100px] mx-auto px-6 relative z-10",children:a.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-12 items-center",children:[a.jsxs(pt.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.5,ease:"easeOut"},children:[a.jsx("div",{className:"tag-chip mb-5",children:"LÅD Flexible Compute"}),a.jsxs("h1",{className:"font-display text-3xl md:text-5xl text-lod-white mb-5 leading-tight",children:["Speed to Power.",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"Unlocked Capacity."})]}),a.jsx("p",{className:"text-lod-gray text-base md:text-lg mb-8 leading-relaxed max-w-lg",children:"See how LÅD routes your AI compute workloads around grid constraints in real time, getting you to power faster and unlocking capacity that's stuck behind interconnection queues, with zero disruption to uptime."}),a.jsx("div",{className:"space-y-3 mb-8",children:RCe.map(n=>a.jsxs("div",{className:"flex items-start gap-3",children:[a.jsx(di,{size:16,style:{color:"#BFF589",marginTop:2,flexShrink:0}}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed",children:n})]},n))}),a.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[a.jsxs("div",{className:"inline-flex items-center gap-2 px-3 py-1.5 rounded-full text-xs font-mono",style:{background:"rgba(191,245,137,0.07)",border:"1px solid rgba(191,245,137,0.22)",color:"#BFF589"},children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full inline-block animate-pulse-green",style:{background:"#BFF589"}}),"500+ MW Under Management"]}),a.jsx("div",{className:"inline-flex items-center gap-2 px-3 py-1.5 rounded-full text-xs font-mono",style:{background:"rgba(191,245,137,0.07)",border:"1px solid rgba(191,245,137,0.22)",color:"#BFF589"},children:"SOC 1 & SOC 2 Certified"})]})]}),a.jsxs(pt.div,{initial:{opacity:0,y:20}
2009,animate:{opacity:1,y:0},transition:{duration:.5,delay:.15,ease:"easeOut"},className:"rounded-xl p-6 md:p-8",style:{background:"rgba(255,255,255,0.02)",border:"1px solid rgba(255,255,255,0.08)"},children:[a.jsx("h2",{className:"font-display text-xl text-lod-white mb-1",children:"Book Your Demo"}),a.jsx("p",{className:"text-lod-gray text-sm mb-6",children:"See how much faster you can get to power, modeled on your workloads and grid exposure."}),a.jsx(N$,{source:t,buttonLabel:"Book My Demo"})]})]})})]}),a.jsx("section",{style:{background:"#0A0A0A",borderTop:"1px solid rgba(255,255,255,0.06)",borderBottom:"1px solid rgba(255,255,255,0.06)"},children:a.jsx("div",{className:"max-w-[1100px] mx-auto px-6 py-10 grid grid-cols-2 md:grid-cols-4 gap-8 text-center",children:ICe.map(n=>a.jsxs("div",{children:[a.jsx("div",{className:"font-display text-3xl md:text-4xl mb-1",style:{color:"#BFF589"},children:n.val}),a.jsx("div",{className:"text-xs font-mono uppercase tracking-wider",style:{color:"#A0A0A0"},children:n.label})]},n.label))})}),a.jsx("section",{className:"py-16",style:{background:"#0D0D0D"},children:a.jsxs("div",{className:"max-w-[800px] mx-auto px-6",children:[a.jsx("div",{className:"section-label mb-4 text-center",children:"What to Expect"}),a.jsx("h2",{className:"font-display text-2xl md:text-3xl text-lod-white mb-10 text-center leading-tight",children:"A focused conversation, not a sales pitch."}),a.jsx("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:[{icon:xt,title:"30 Minutes",desc:"A focused call about your workloads, grid exposure, and where capacity is stuck today."},{icon:Gk,title:"Real Numbers",desc:"We model how much faster you can get to power and how much capacity you can unlock, based on real grid data."},{icon:Es,title:"Zero SLA Risk",desc:"We'll show exactly how workload routing stays below your application layer, with your uptime untouched."}].map((n,r)=>a.jsxs(pt.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0,margin:"-60px"},transition:{duration:.5,delay:r*.1,ease:"easeOut"},className:"card-obsidian p-6 text-center h-full",children:[a.jsx("div",{className:"w-10 h-10 rounded-lg flex items-center justify-center mx-auto mb-4",style:{background:"rgba(191,245,137,0.08)",border:"1px solid rgba(191,245,137,0.2)"},children:a.jsx(n.icon,{size:18,style:{color:"#BFF589"}})}),a.jsx("h3",{className:"font-display text-lg text-lod-white mb-2",children:n.title}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed",children:n.desc})]},n.title))})]})})]}),a.jsx("footer",{className:"py-6 text-center",style:{borderTop:"1px solid rgba(255,255,255,0.06)"},children:a.jsxs("p",{className:"text-xs",style:{color:"#A0A0A0"},children:["© 2026 LÅD Energy Intelligence |"," ",a.jsx("a",{href:"/privacy",className:"hover:text-lod-gray transition-colors",children:"Privacy"})]})})]})}function MCe(){const e=_g(),[t,n]=O.useState({fullName:"",email:"",name:"",title:""}),[r,i]=O.useState(!1),[o,s]=O.useState(""),l=d=>p=>n(f=>({...f,[d]:p.target.value})),u=async d=>{var f,g;d.preventDefault(),s(""),i(!0);const p=new URLSearchParams(window.location.search);try{await xn.entities.WorkshopRegistration.create({workshop_slug:"ai-infra-summit-workshop",full_name:t.fullName,email:t.email,company:t.name,job_title:t.title,visitor_id:((g=(f=window.lodTrack)==null?void 0:f.getVisitorId)==null?void 0:g.call(f))??null,referrer:document.referrer||null,landing_page:window.location.href,utm_source:p.get("utm_source")||"",utm_medium:p.get("utm_medium")||"",utm_campaign:p.get("utm_campaign")||"",utm_term:p.get("utm_term")||"",utm_content:p.get("utm_content")||""}),e("/events/AIinfra-workshop")}catch{s("No pudimos enviar el formulario. Por favor intenta de nuevo."),i(!1)}};return a.jsx("div",{className:"rounded-xl p-6 md:p-8",style:{background:"rgba(191,245,137,0.08)",border:"1px solid rgba(191,245,137,0.25)"},children:a.jsxs("form",{onSubmit:u,className:"space-y-4",children:[a.jsxs("div",{children:[a.jsxs("label",{className:"block text-xs font-mono uppercase tracking-widest mb-2",style:{color:"#A0A0A0"},children:["Full name ",a.jsx("span",{style:{color:"#FF3B30"},children:"*"})]}),a.jsx("input",{type:"text",required:!0,value:t.fullName,onChange:l("fullName"),className:"w-full px-4 py-3 rounded-lg text-sm text-lod-white bg-transparent outline-none",style:{border:"1px solid rgba(255,255,255,0.15)",background:"#1A1A1A"}})]}),a.jsxs("div",{children:[a.jsxs("label",{className:"block text-xs font-mono uppercase tracking-widest mb-2",style:{color:"#A0A0A0"},children:["Work email ",a.jsx("span",{style:{color:"#FF3B30"},children:"*"})]}),a.jsx("input",{type:"email",required:!0,value:t.email,onChange:l("email"),className:"w-full px-4 py-3 rounded-lg text-sm text-lod-white bg-transparent outline-none",style:{border:"1px solid rgba(255,255,255,0.15)",background:"#1A1A1A"}})]}),a.jsxs("div",{children:[a.jsxs("label",{className:"block text-xs font-mono uppercase tracking-widest mb-2",style:{color:"#A0A0A0"},children:["Company ",a.jsx("span",{style:{color:"#FF3B30"},children:"*"})]}),a.jsx("input",{type:"text",required:!0,value:t.name,onChange:l("name"),className:"w-full px-4 py-3 rounded-lg text-sm text-lod-white bg-transparent outline-none",style:{border:"1px solid rgba(255,255,255,0.15)",background:"#1A1A1A"}})]}),a.jsxs("div",{children:[a.jsxs("label",{className:"block text-xs font-mono uppercase tracking-widest mb-2",style:{color:"#A0A0A0"},children:["Job title ",a.jsx("span",{style:{color:"#FF3B30"},children:"*"})]}),a.jsx("input",{type:"text",required:!0,value:t.title,onChange:l("title"),className:"w-full px-4 py-3 rounded-lg text-sm text-lod-white bg-transparent outline-none",style:{border:"1px solid rgba(255,255,255,0.15)",background:"#1A1A1A"}})]}),o&&a.jsx("p",{className:"text-sm",style:{color:"#FF3B30"},children:o}),a.jsx("button",{type:"submit",disabled:r,className:"btn-primary w-full justify-center text-base py-3 disabled:opacity-60",children:r?a.jsxs(a.Fragment,{children:[a.jsx(Cg,{size:16,className:"animate-spin"})," Sending..."]}):"Get the Recording & Slides"})]})})}const LCe=[{name:"Medi Naseri, Ph.D.",title:"CEO & Co-Founder, LÅD",photo:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/ecf7068e9_MediNaseri2026.jpg",bio:"Medi holds a Ph.D. in Electrical Engineering and founded LÅD to bridge energy markets and intelligent compute. He leads the company's mission to make data centers grid-aware, sustainable, and operationally autonomous. LÅD was selected for Google's AI for Energy Accelerator under his leadership."},{name:"Astrid Atkinson",title:"CEO & Co-Founder, Camus Energy",photo:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/e1d0fa5d4_image.png",bio:"Astrid is the CEO and Co-founder of Camus Energy and an expert on large scale distributed systems architecture, reliability engineering, and organizational leadership. Prior to foun
2009ding Camus, she was a Senior Director of Software Engineering at Google."},{name:"Hans Royal",title:"Founder, Compute Heat Rate",photo:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/50f0769d6_image.png",bio:"Hans is the creator of the Compute Heat Rate (CHR), a framework for measuring the maximum electricity price AI compute can sustain while remaining economic. His research has been cited by PJM Interconnection and other leading power-market institutions. He has spent nearly two decades building businesses at the intersection of energy, markets, and corporate strategy, and his work has been featured in Reuters, the Associated Press, Latitude Media, RTO Insider, and Utility Dive."}];function FCe(){return a.jsx("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-8",children:LCe.map((e,t)=>a.jsxs(pt.div,{className:"text-center",initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0,amount:.3},transition:{duration:.5,delay:t*.12,ease:"easeOut"},whileHover:{y:-4},children:[a.jsx("div",{className:"w-28 h-28 rounded-full mx-auto mb-4 overflow-hidden transition-shadow duration-300",style:{border:"1px solid rgba(191,245,137,0.3)",boxShadow:"0 0 0 rgba(191,245,137,0)"},onMouseEnter:n=>n.currentTarget.style.boxShadow="0 0 24px rgba(191,245,137,0.35)",onMouseLeave:n=>n.currentTarget.style.boxShadow="0 0 0 rgba(191,245,137,0)",children:a.jsx("img",{src:e.photo,alt:`${e.name}, ${e.title}`,className:"w-full h-full object-cover"})}),a.jsx("p",{className:"text-lod-white text-base font-semibold",children:e.name}),a.jsx("p",{className:"font-mono text-xs mt-1 mb-3",style:{color:"#BFF589"},children:e.title}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed max-w-sm mx-auto",children:e.bio})]},e.name))})}const BCe=["A framework for thinking about power as the real constraint on AI growth, not chips","How to tell whether your infrastructure is actually flexible, or just plugged in","What 'speed to power' looks like in practice, and how leading operators are getting there faster","Key takeaways and the full slide deck, emailed directly to you"];function zCe(){return a.jsxs("div",{style:{background:"#1A1A1A",minHeight:"100vh"},children:[a.jsx(He,{title:"Speed to Power Through Flexible Data Centers | LÅD",description:"Get the slides and ke
2009y takeaways from the Speed to Power Through Flexible Data Centers workshop: how leading operators are rethinking power as the real constraint on AI growth.",canonical:"https://lod.io/lp/ai-infra-summit-workshop"}),a.jsx("header",{className:"fixed top-0 left-0 right-0 z-50 flex items-center justify-center px-6 py-4",style:{background:"rgba(26,26,26,0.95)",borderBottom:"1px solid rgba(255,255,255,0.06)",backdropFilter:"blur(8px)"},children:a.jsx("a",{href:"/",children:a.jsx("img",{src:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/6cf86e0a9_Lod-Green-no-Background.png",alt:"LÅD energy intelligence platform logo",className:"h-8 w-auto"})})}),a.jsxs("main",{className:"pt-16",children:[a.jsxs("section",{className:"py-16 grid-lines-overlay relative overflow-hidden",style:{background:"#1A1A1A"},children:[a.jsx(pt.div,{"aria-hidden":"true",className:"pointer-events-none absolute -top-40 -right-40 w-[500px] h-[500px] rounded-full",style:{background:"radial-gradient(circle, rgba(191,245,137,0.07) 0%, transparent 70%)"},animate:{scale:[1,1.15,1],opacity:[.6,1,.6]},transition:{duration:6,repeat:1/0,ease:"easeInOut"}}),a.jsxs("div",{className:"max-w-[1100px] mx-auto px-6 relative z-10",children:[a.jsxs("div",{className:"text-center mb-10",children:[a.jsx("h2",{className:"font-display text-2xl md:text-3xl text-lod-white mb-2",children:"Get the Knowledge Deck"}),a.jsx("p",{className:"text-lod-gray text-base",children:"Slides and recording of the AI Infra Summit Workshop"})]}),a.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-12 items-center",children:[a.jsxs(pt.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.5,ease:"easeOut"},children:[a.jsx(pt.div,{className:"tag-chip mb-5 inline-block",initial:{opacity:0,y:-8},animate:{opacity:1,y:0},transition:{duration:.4},children:"Workshop · Sep 15, Santa Clara"}),a.jsxs("h1",{className:"font-display text-3xl md:text-5xl text-lod-white mb-3 leading-tight",children:["Speed to Power Through",a.jsx("br",{}),a.jsx(pt.span,{style:{color:"#BFF589",backgroundSize:"200% 100%"},className:"bg-gradient-to-r from-[#BFF589] via-[#e8ffc9] to-[#BFF589] bg-clip-text text-transparent",initial:{backgroundPosition:"0% 0%"},animate:{backgroundPosition:["0% 0%","100% 0%","0% 0%"]},transition:{duration:5,repeat:1/0,ease:"linear"},children:"AI Flexible Data Centers."})]}),a.jsx("p",{className:"font-mono text-sm md:text-base mb-4",style:{color:"#BFF589"},children:"How to align infrastructure, workloads, and grid signals to cut costs and accelerate interconnection"}),a.jsx("p",{className:"text-lod-gray text-lg md:text-xl mb-6 leading-relaxed max-w-lg",children:"Power, not chips, is becoming the constraint on AI growth. This workshop breaks down the concept of flexibility, why it matters more than any single piece of infrastructure, and what it takes to get to power faster."}),a.jsx("div",{className:"space-y-3 mb-8",children:BCe.map((e,t)=>a.jsxs(pt.div,{className:"flex items-start gap-3",initial:{opacity:0,x:-12},animate:{opacity:1,x:0},transition:{duration:.4,delay:.3+t*.1,ease:"easeOut"},whileHover:{x:4},children:[a.jsx(di,{size:16,style:{color:"#BFF589",marginTop:2,flexShrink:0}}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed",children:e})]},e))}),a.jsx("p",{className:"inline-flex items-center gap-2 text-sm md:text-base font-semibold px-6 py-3 rounded-full",style:{color:"#BFF589",background:"rgba(191,245,137,0.08)",border:"1px solid rgba(191,245,137,0.3)"},children:"Presented at the AI Infra Summit · Sep 15 · 4 PM · Room 212"})]}),a.jsxs(pt.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.5,delay:.15,ease:"easeOut"},children:[a.jsx("h2",{className:"font-display text-xl text-lod-white mb-1 text-center",children:"Get the Recording & Slides"}),a.jsx("p",{className:"text-lod-gray text-sm mb-6 text-center",children:`Submit it and we'll email you the recording and slide deck of the "Flexible AI Data Centers" workshop once it wraps.`}),a.jsx(MCe,{})]})]})]})]}),a.jsx("section",{className:"py-20",style:{background:"#0D0D0D",borderTop:"1px solid rgba(255,255,255,0.06)"},children:a.jsxs("div",{className:"max-w-[1100px] mx-auto px-6",children:[a.jsxs(pt.div,{className:"text-center mb-12",initial:{opacity:0,y:16},whileInView:{opacity:1,y:0},viewport:{once:!0,amount:.4},transition:{duration:.5},children:[a.jsx("div",{className:"section-label mb-4",children:"Who's Presenting"}),a.jsx("h2",{className:"font-display text-2xl md:text-3xl text-lod-white leading-tight",children:"Guest Speakers"})]}),a.jsx(FCe,{})]})})]}),a.jsx("footer",{className:"py-6 text-center",style:{borderTop:"1px solid rgba(255,255,255,0.06)"},children:a.jsxs("p",{className:"text-xs",style:{color:"#A0A0A0"},children:["© 2026 LÅD Energy Intelligence |"," ",a.jsx("a",{href:"/privacy",className:"hover:text-lod-gray transition-colors",children:"Privacy"})]})})]})}function $Ce(){return a.jsxs("div",{style:{background:"#1A1A1A",minHeight:"100vh"},children:[a.jsx(He,{title:"You're Registered | Speed to Power Workshop | LÅD",description:"We've received your request. Slides and ke
2009y takeaways from the Speed to Power Through Flexible Data Centers workshop will be emailed to you once the workshop wraps.",canonical:"https://lod.io/events/AIinfra-workshop"}),a.jsx("header",{className:"fixed top-0 left-0 right-0 z-50 flex items-center justify-center px-6 py-4",style:{background:"rgba(26,26,26,0.95)",borderBottom:"1px solid rgba(255,255,255,0.06)",backdropFilter:"blur(8px)"},children:a.jsx("a",{href:"/",children:a.jsx("img",{src:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/6cf86e0a9_Lod-Green-no-Background.png",alt:"LÅD energy intelligence platform logo",className:"h-8 w-auto"})})}),a.jsx("main",{className:"pt-16",children:a.jsx("section",{className:"py-20",style:{background:"#1A1A1A"},children:a.jsxs("div",{className:"max-w-[600px] mx-auto px-6 text-center",children:[a.jsx(pt.div,{initial:{opacity:0,scale:.8},animate:{opacity:1,scale:1},transition:{duration:.5,ease:"easeOut"},children:a.jsx(di,{size:64,className:"mx-auto mb-6",style:{color:"#BFF589"}})}),a.jsx("h1",{className:"font-display text-3xl md:text-4xl text-lod-white mb-4 leading-tight",children:"Request Received!"}),a.jsxs("p",{className:"text-lod-gray text-base mb-8 leading-relaxed",children:["We've received your request for the recording and slides of the ",a.jsx("strong",{className:"text-lod-white",children:'"Flexible AI Data Centers"'})," workshop."]}),a.jsx("div",{className:"p-5 rounded-lg mb-6 text-left",style:{background:"rgba(191,245,137,0.06)",border:"1px solid rgba(191,245,137,0.2)"},children:a.jsxs("div",{className:"flex items-start gap-3",children:[a.jsx(CL,{size:18,style:{color:"#BFF589",marginTop:2,flexShrink:0}}),a.jsxs("p",{className:"text-sm leading-relaxed",style:{color:"#BFF589"},children:[a.jsx("strong",{children:"We'll email you the recording and slide deck"})," shortly after the workshop wraps."]})]})}),a.jsx("div",{className:"p-4 rounded-lg text-left",style:{background:"rgba(255,255,255,0.03)",border:"1px solid rgba(255,255,255,0.08)"},children:a.jsxs("div",{className:"flex items-start gap-3",children:[a.jsx(Hk,{size:16,style:{color:"#A0A0A0",marginTop:2,flexShrink:0}}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed",children:"The workshop is presented at the AI Infra Summit on Sep 15 at 4 PM, Room 212. No further action is needed on your end."})]})})]})})}),a.jsx("footer",{className:"py-6 text-center",style:{borderTop:"1px solid rgba(255,255,255,0.06)"},children:a.jsxs("p",{className:"text-xs",style:{color:"#A0A0A0"},children:["© 2026 LÅD Energy Intelligence |"," ",a.jsx("a",{href:"/privacy",className:"hover:text-lod-gray transition-colors",children:"Privacy"})]})})]})}const qCe="https://lod-crm-api.vercel.app/api/v1/forms/8a8c8f8c-45a5-4269-b45e-d6e73e45333a/submit";function JM(){const e=_g(),[t,n]=O.useState(""),[r,i]=O.useState(""),[o,s]=O.useState(!1),[l,u]=O.useState(!1),[d,p]=O.useState(""),f=async g=>{var y,b;if(g.preventDefault(),!o){p("Please agree to the Privacy Policy to continue.");return}u(!0),p("");try{const w=new URLSearchParams(window.location.search),v=k=>localStorage.getItem(k)||w.get(k)||null;if(!(await fetch(qCe,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({payload:{firstName:t,email:r,marketingConsent:o,consentTimestamp:new Date().toISOString()},source:"web",visitorId:((b=(y=window.lodTrack)==null?void 0:y.getVisitorId)==null?void 0:b.call(y))??null,referrer:document.referrer||null,landingPage:window.location.href,utm:{source:v("utm_source"),medium:v("utm_medium"),campaign:v("utm_campaign"),term:v("utm_term"),content:v("utm_content")}})})).ok)throw new Error("Submission failed");e("/lp/ebook-thank-you")}catch{p("Something went wrong. Please try again."),u(!1)}};return a.jsxs("div",{id:"ebook-form-container",className:"w-full",children:[a.jsxs("form",{onSubmit:f,className:"space-y-3",children:[a.jsx("input",{type:"text",placeholder:"First Name *",required:!0,value:t,onChange:g=>n(g.target.value),className:"w-full px-4 py-3 rounded-lg bg-transparent text-lod-white placeholder-lod-gray text-sm outline-none focus:border-lod-green transition-colors",style:{border:"1px solid rgba(255,255,255,0.15)"}}),a.jsx("input",{type:"email",placeholder:"Work Email *",required:!0,value:r,onChange:g=>i(g.target.value),className:"w-full px-4 py-3 rounded-lg bg-transparent text-lod-white placeholder-lod-gray text-sm outline-none focus:border-lod-green transition-colors",style:{border:"1px solid rgba(255,255,255,0.15)"}}),a.jsxs("label",{className:"flex items-start gap-2.5 text-xs leading-relaxed text-left cursor-pointer",style:{color:"#A0A0A0"},children:[a.jsx("input",{type:"checkbox",checked:o,onChange:g=>s(g.target.checked),className:"mt-0.5 w-4 h-4 shrink-0 accent-lod-green"}
2009),a.jsxs("span",{children:["I agree to receive marketing communications from LÅD, subject to LÅD's"," ",a.jsx("a",{href:"/privacy",className:"text-lod-green hover:underline",children:"Privacy Policy"}),". *"]})]}),a.jsx("button",{type:"submit",disabled:l,className:"btn-primary w-full justify-center text-sm disabled:opacity-60 disabled:cursor-not-allowed",children:l?a.jsxs(a.Fragment,{children:[a.jsx(Cg,{size:14,className:"animate-spin"})," Sending..."]}):a.jsxs(a.Fragment,{children:["Download the Free Guide ",a.jsx(Ve,{size:14})]})})]}),d&&a.jsx("p",{className:"text-xs text-red-400 mt-2 text-center",children:d}),a.jsx("p",{className:"text-xs mt-3 text-center",style:{color:"#707070"},children:"* Required fields"}),a.jsxs("div",{className:"flex items-center justify-center gap-2 mt-2",children:[a.jsx(Ng,{size:11,style:{color:"#A0A0A0"}}),a.jsx("span",{className:"text-xs",style:{color:"#A0A0A0"},children:"No spam. Unsubscribe anytime."})]})]})}const ZM="https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/9952d639c_MockUpTheultimateGuidetochoosingyourbitcoinmininngsoftware.png",WCe=[{icon:Uf,title:"What These Platforms Actually Do",desc:"Strip away the marketing pages. The shared core and where each platform diverges."},{icon:hH,title:"Where Each Platform Stands",desc:"Braiins, Luxor, Foreman, and LÅD, broken down by scope, architecture, and specialization."},{icon:Sg,title:"What This Actually Costs",desc:"Real $/MW pricing for all four, including hidden add-ons and module fees."},{icon:xt,title:"Where Each Platform Wins",desc:"Honest take on which platform fits which operational model, including where LÅD is not the right fit."}];function Ff({children:e,delay:t=0,className:n=""}){return a.jsx(pt.div,{className:n,initial:{opacity:0,y:24},whileInView:{opacity:1,y:0},viewport:{once:!0,margin:"-60px"},transition:{duration:.5,delay:t,ease:"easeOut"},children:e})}function UCe(){return a.jsxs("div",{style:{background:"#1A1A1A",minHeight:"100vh"},children:[a.jsx(He,{title:"The Ultimate Guide to Choosing Your Bitcoin Mining Management Platform | LÅD",description:"LÅD, Braiins, Luxor, and Foreman compared honestly. A vendor-neutral buyer's guide with real pricing, architecture, and energy strategy breakdowns for operators running 5MW+.",canonical:"https://lod.io/lp/mining-platform-guide",ogImage:ZM}),a.jsx("header",{className:"fixed top-0 left-0 right-0 z-50 flex items-center justify-between px-6 py-4",style:{background:"rgba(26,26,26,0.95)",borderBottom:"1px solid rgba(255,255,255,0.06)",backdropFilter:"blur(8px)"},children:a.jsx("a",{href:"/",children:a.jsx("img",{src:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/6cf86e0a9_Lod-Green-no-Background.png",alt:"LÅD Technologies logo",className:"h-8 w-auto"})})}),a.jsxs("main",{className:"pt-16",children:[a.jsx("section",{className:"relative overflow-hidden grid-lines-overlay",style:{background:"#1A1A1A"},children:a.jsx("div",{className:"max-w-[1200px] mx-auto px-6 pt-10 pb-8 relative z-10",children:a.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-12 gap-8 items-stretch",children:[a.jsxs("div",{className:"lg:col-span-5 lg:pl-8",children:[a.jsx("div",{className:"tag-chip mb-5",children:"Free Download · Buyer's Guide"}),a.jsx("h1",{className:"font-display text-2xl md:text-3xl text-lod-white mb-3 leading-tight",children:"The Ultimate Guide to Choosing Your Bitcoin Mining Management Platform"}),a.jsx("p",{className:"text-lod-gray text-sm md:text-base mb-5 leading-relaxed",children:"LÅD, Braiins, Luxor, and Foreman, compared honestly. A vendor-neutral guide for operators running 5MW+."}),a.jsxs("div",{className:"p-5 rounded-xl",style:{background:"rgba(255,255,255,0.03)",border:"1px solid rgba(255,255,255,0.08)"},children:[a.jsx("div",{className:"font-mono text-xs uppercase tracking-widest mb-4",style:{color:"#BFF589"},children:"Get the Free Guide"}),a.jsx(JM,{})]})]}),a.jsx("div",{className:"lg:col-span-7 h-full",children:a.jsxs("div",{className:"flex flex-col items-center h-full lg:pb-9",children:[a.jsx(pt.img,{src:ZM,alt:"The Ultimate Guide to Choosing Your Bitcoin Mining Management Platform",className:"rounded-lg shadow-2xl lg:mt-[-61px]",style:{maxHeight:"540px",width:"auto",maxWidth:"100%",boxShadow:"0 20px 80px rgba(0,0,0,0.5), 0 0 40px rgba(191,245,137,0.08)"},initial:{opacity:0,y:30}
2009,animate:{opacity:1,y:0},transition:{duration:.6,ease:"easeOut"}}),a.jsxs("div",{className:"w-full mt-auto",style:{maxWidth:"360px"},children:[a.jsx("div",{className:"font-mono text-[10px] uppercase tracking-widest mb-2",style:{color:"#BFF589"},children:"What You'll Get"}),a.jsx("div",{className:"flex flex-wrap gap-x-4 gap-y-1",children:["Features per platform","Side-by-side comparison","Pricing","Where each platform wins","and more"].map((e,t)=>a.jsxs("span",{className:"flex items-center gap-1.5",children:[a.jsx(di,{size:11,style:{color:"#BFF589",flexShrink:0}}),a.jsx("span",{className:"text-[11px] leading-snug",style:{color:"#A0A0A0"},children:e})]},t))})]})]})})]})})}),a.jsx("section",{style:{background:"#0A0A0A",borderBottom:"1px solid rgba(255,255,255,0.06)"},children:a.jsx("div",{className:"max-w-[1000px] mx-auto px-6 py-6 text-center",children:a.jsxs("p",{className:"text-sm",style:{color:"#A0A0A0"},children:["Built from vendor feature pages, pricing pages, product documentation, benchmarks, and field experience across ",a.jsx("span",{className:"text-lod-green font-semibold",children:"1,000+ MW under management"}),"."]})})}),a.jsx("section",{className:"py-20",style:{background:"#1A1A1A"},children:a.jsx("div",{className:"max-w-[700px] mx-auto px-6 text-center",children:a.jsxs(Ff,{children:[a.jsx("div",{className:"section-label mb-4",children:"The Problem"}),a.jsxs("h2",{className:"font-display text-3xl md:text-4xl text-lod-white mb-6 leading-tight",children:[`You've Googled "best mining management software."`,a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"You got sales pitches."})]}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-4",children:"Four platforms show up again and again: LÅD, Braiins, Luxor, and Foreman. At the core, they all do the same job: monitor, analyze, and control your ASIC fleet from one place."}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-4",children:"The real differences show up in scope: how far each goes into firmware, pool economics, financing, facility operations, and energy markets, and how open or closed that stack is once you're in it. This guide breaks each one down on those terms."}),a.jsxs("p",{className:"text-lod-gray text-sm leading-relaxed",children:["Want the short version first? Read"," ",a.jsx(ye,{to:"/blog/bitcoin-mining-management-platform",className:"text-lod-green hover:underline font-semibold",children:"what to look for in a Bitcoin mining management platform"})," ","or see how"," ",a.jsx(ye,{to:"/bitcoin-mining",className:"text-lod-green hover:underline font-semibold",children:"LÅD's platform"})," ","handles it."]})]})})}),a.jsx("section",{className:"py-20",style:{background:"#0D0D0D"},children:a.jsxs("div",{className:"max-w-[1000px] mx-auto px-6",children:[a.jsxs(Ff,{children:[a.jsx("div",{className:"section-label mb-4 text-center",children:"What's Inside"}),a.jsx("h2",{className:"font-display text-3xl md:text-4xl text-lod-white mb-12 text-center leading-tight",children:"What You'll Learn"})]}),a.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:WCe.map((e,t)=>a.jsx(Ff,{delay:t*.1,children:a.jsx("div",{className:"card-obsidian p-6 h-full",children:a.jsxs("div",{className:"flex items-start gap-4",children:[a.jsx("div",{className:"w-10 h-10 rounded-lg flex items-center justify-center flex-shrink-0",style:{background:"rgba(191,245,137,0.08)",border:"1px solid rgba(191,245,137,0.2)"},children:a.jsx(e.icon,{size:18,style:{color:"#BFF589"}})}),a.jsxs("div",{children:[a.jsx("h3",{className:"font-display text-lg text-lod-white mb-2",children:e.title}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed",children:e.desc})]})]})})},e.title))})]})}),a.jsx("section",{className:"py-20",style:{background:"#0A0A0A"},children:a.jsx("div",{className:"max-w-[700px] mx-auto px-6 text-center",children:a.jsxs(Ff,{children:[a.jsx(Es,{size:40,className:"mx-auto mb-6",style:{color:"#BFF589"}}),a.jsx("h2",{className:"font-display text-2xl md:text-3xl text-lod-white mb-6 leading-tight",children:"We're LÅD. Where a competitor is better, we say so."}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-8",children:"This guide is built from each vend
2009or's own feature and pricing pages, product documentation, benchmarks, and what we see running alongside these tools in the field."}),a.jsxs("div",{className:"flex flex-wrap justify-center gap-6",children:[a.jsxs(ye,{to:"/security",className:"flex items-center gap-2 hover:opacity-80 transition-opacity",children:[a.jsx(di,{size:14,style:{color:"#BFF589"}}),a.jsx("span",{className:"text-xs font-mono",style:{color:"#A0A0A0"},children:"SOC 1 Type II"})]}),a.jsxs(ye,{to:"/security",className:"flex items-center gap-2 hover:opacity-80 transition-opacity",children:[a.jsx(di,{size:14,style:{color:"#BFF589"}}),a.jsx("span",{className:"text-xs font-mono",style:{color:"#A0A0A0"},children:"SOC 2 Type II"})]}),a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx(di,{size:14,style:{color:"#BFF589"}}),a.jsx("span",{className:"text-xs font-mono",style:{color:"#A0A0A0"},children:"1,000+ MW Under Management"})]})]})]})})}),a.jsx("section",{className:"py-20 text-center relative overflow-hidden",style:{background:"linear-gradient(135deg, #0d1a07 0%, #0a1205 50%, #0d1a07 100%)",borderTop:"1px solid rgba(191,245,137,0.18)"},children:a.jsxs("div",{className:"max-w-[500px] mx-auto px-6 relative z-10",children:[a.jsx("h2",{className:"font-display text-3xl md:text-4xl text-lod-white mb-4 leading-tight",children:"Download the Free Guide"}),a.jsx("p",{className:"text-lod-gray text-sm mb-8",children:"Get the full comparison: pricing, architecture, and where each platform actually wins."}),a.jsx("div",{className:"p-6 rounded-xl",style:{background:"rgba(0,0,0,0.3)",border:"1px solid rgba(191,245,137,0.15)"},children:a.jsx(JM,{})})]})})]}),a.jsx("footer",{className:"py-6 text-center",style:{borderTop:"1px solid rgba(255,255,255,0.06)"},children:a.jsxs("p",{className:"text-xs",style:{color:"#A0A0A0"},children:["© 2026 LÅD Energy Intelligence |"," ",a.jsx(ye,{to:"/bitcoin-mining",className:"hover:text-lod-gray transition-colors",children:"Bitcoin Mining Platform"})," |"," ",a.jsx(ye,{to:"/blog",className:"hover:text-lod-gray transition-colors",children:"Blog"})," |"," ",a.jsx("a",{href:"/privacy",className:"hover:text-lod-gray transition-colors",children:"Privacy"})]})})]})}const HCe=["What these platforms actually do (beyond the marketing pages)","Real $/MW pricing for all four, including hidden add-on fees","The stack question: open vs. closed architecture","Where each platform actually wins, and where it doesn't"];function VCe(){return a.jsxs("div",{style:{background:"#1A1A1A",minHeight:"100vh"},children:[a.jsx(He,{title:"Your Guide is on the Way | LÅD",description:"Check your email for the download link to The Ultimate Guide to Choosing Your Bitcoin Mining Management Platform.",canonical:"https://lod.io/lp/ebook-thank-you"}),a.jsx("header",{className:"fixed top-0 left-0 right-0 z-50 flex items-center justify-between px-6 py-4",style:{background:"rgba(26,26,26,0.95)",borderBottom:"1px solid rgba(255,255,255,0.06)",backdropFilter:"blur(8px)"},children:a.jsx("a",{href:"/",children:a.jsx("img",{src:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/6cf86e0a9_Lod-Green-no-Background.png",alt:"LÅD",className:"h-8 w-auto"})})}),a.jsx("main",{className:"pt-16",children:a.jsx("section",{className:"py-20",style:{background:"#1A1A1A"},children:a.jsxs("div",{className:"max-w-[600px] mx-auto px-6 text-center",children:[a.jsx(pt.div,{initial:{opacity:0,scale:.8},animate:{opacity:1,scale:1},transition:{duration:.5,ease:"easeOut"},children:a.jsx(di,{size:64,className:"mx-auto mb-6",style:{color:"#BFF589"}})}),a.jsx("h1",{className:"font-display text-3xl md:text-4xl text-lod-white mb-4 leading-tight",children:"Your Guide is on the Way"}),a.jsxs("div",{className:"flex items-center justify-center gap-2 mb-6",children:[a.jsx(CL,{size:16,style:{color:"#BFF589"}}),a.jsx("p",{className:"text-lod-gray text-base",children:"We've sent the download link to your email."})]}),a.jsx("div",{className:"p-4 rounded-lg mb-10 text-left",style:{background:"rgba(191,245,137,0.06)",border:"1px solid rgba(191,245,137,0.2)"},children:a.jsxs("p",{className:"text-sm",style:{color:"#BFF589"},children:[a.jsx("strong",{children:"Check your spam folder"})," if you don't see it within 5 minutes. Move us to your primary inbox so you don't miss future insights."]})}),a.jsxs("div",{className:"text-left mb-10",children:[a.jsx("div",{className:"font-mono text-xs uppercase tracking-widest mb-4 text-center",style:{color:"#BFF589"},children:"While You Wait: Here's What's Inside"}),a.jsx("div",{className:"space-y-3",children:HCe.map((e,t)=>a.jsxs(pt.div,{initial:{opacity:0,x:-10}
2009,animate:{opacity:1,x:0},transition:{delay:.3+t*.1,duration:.4},className:"flex items-start gap-3",children:[a.jsx(di,{size:14,style:{color:"#BFF589",marginTop:3,flexShrink:0}}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed",children:e})]},t))})]}),a.jsxs("div",{className:"p-6 rounded-xl",style:{background:"rgba(255,255,255,0.03)",border:"1px solid rgba(255,255,255,0.08)"},children:[a.jsxs("div",{className:"flex items-center justify-center gap-2 mb-3",children:[a.jsx(uU,{size:16,style:{color:"#BFF589"}}),a.jsx("span",{className:"font-mono text-xs uppercase tracking-widest",style:{color:"#BFF589"},children:"Need Answers Now?"})]}),a.jsx("h3",{className:"font-display text-lg text-lod-white mb-2",children:"Book a 30-minute strategy call."}),a.jsx("p",{className:"text-lod-gray text-sm mb-5 leading-relaxed",children:"We'll tell you honestly whether LÅD is the right layer for your stack, or whether one of the other platforms solves your problem better."}),a.jsxs(ye,{to:"/lp/book-a-meeting?source=ebook-thankyou",className:"btn-primary inline-flex items-center gap-2 text-sm",children:["Book a Strategy Call ",a.jsx(Ve,{size:14})]})]})]})})}),a.jsx("footer",{className:"py-6 text-center",style:{borderTop:"1px solid rgba(255,255,255,0.06)"},children:a.jsxs("p",{className:"text-xs",style:{color:"#A0A0A0"},children:["© 2026 LÅD Energy Intelligence |"," ",a.jsx("a",{href:"/privacy",className:"hover:text-lod-gray transition-colors",children:"Privacy"})]})})]})}const GCe=[{icon:Hk,title:"30 Minutes",desc:"A focused call about your operation, your energy exposure, and where flexibility lives in your stack."},{icon:Es,title:"No Pressure",desc:"We'll tell you honestly if LÅD isn't the right fit, or if a competitor solves your problem better."},{icon:xt,title:"Real Numbers",desc:"We'll model your last 30 days of grid exposure and show you exactly where the value gap sits."}];function YCe(){const t=new URLSearchParams(window.location.search).get("source")||"direct";return a.jsxs("div",{style:{background:"#1A1A1A",minHeight:"100vh"},children:[a.jsx(He,{title:"Book a Strategy Call | LÅD",description:"Book a 30-minute strategy call with LÅD. We'll model your grid exposure and tell you honestly whether LÅD is the right layer for your stack.",canonical:"https://lod.io/lp/book-a-meeting"}),a.jsx("header",{className:"fixed top-0 left-0 right-0 z-50 flex items-center justify-between px-6 py-4",style:{background:"rgba(26,26,26,0.95)",borderBottom:"1px solid rgba(255,255,255,0.06)",backdropFilter:"blur(8px)"},children:a.jsx("a",{href:"/",children:a.jsx("img",{src:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/6cf86e0a9_Lod-Green-no-Background.png",alt:"LÅD energy intelligence platform logo",className:"h-8 w-auto"})})}),a.jsxs("main",{className:"pt-16",children:[a.jsx("section",{className:"py-16 grid-lines-overlay relative",style:{background:"#1A1A1A"},children:a.jsxs("div",{className:"max-w-[700px] mx-auto px-6 relative z-10 text-center",children:[a.jsxs(pt.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.5,ease:"easeOut"},children:[a.jsx("div",{className:"tag-chip mb-5",children:"Strategy Call · 30 Minutes"}),a.jsx("h1",{className:"font-display text-3xl md:text-5xl text-lod-white mb-4 leading-tight",children:"Book a Strategy Call"}),a.jsx("p",{className:"text-lod-gray text-base md:text-lg mb-10 leading-relaxed max-w-xl mx-auto",children:"We'll tell you honestly whether LÅD is the right layer for your stack, or whether one of the other platforms solves your problem better."})]}),a.jsx(pt.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.5,delay:.15,ease:"easeOut"},className:"rounded-xl p-6 md:p-8 text-left",style:{background:"rgba(255,255,255,0.02)",border:"1px solid rgba(255,255,255,0.08)"},children:a.jsx(N$,{source:t})})]})}),a.jsx("section",{className:"py-20",style:{background:"#0A0A0A"},children:a.jsxs("div",{className:"max-w-[800px] mx-auto px-6",children:[a.jsx("div",{className:"section-label mb-4 text-center",children:"What to Expect"}),a.jsx("h2",{className:"font-display text-2xl md:text-3xl text-lod-white mb-10 text-center leading-tight",children:"A focused conversation, not a sales pitch."}),a.jsx("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:GCe.map((n,r)=>a.jsxs(pt.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0,margin:"-60px"},transition:{duration:.5,delay:r*.1,ease:"easeOut"},className:"card-obsidian p-6 text-center h-full",children:[a.jsx("div",{className:"w-10 h-10 rounded-lg flex items-center justify-center mx-auto mb-4",style:{background:"rgba(191,245,137,0.08)",border:"1px solid rgba(191,245,137,0.2)"},children:a.jsx(n.icon,{size:18,style:{color:"#BFF589"}})}),a.jsx("h3",{className:"font-display text-lg text-lod-white mb-2",children:n.title}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed",children:n.desc})]},n.title))})]})}),a.jsx("section",{style:{background:"#0D0D0D",borderBottom:"1px solid rgba(255,255,255,0.06)"},children:a.jsxs("div",{className:"max-w-[600px] mx-auto px-6 py-6 flex flex-wrap justify-center gap-6",children:[a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx(Es,{size:14,style:{color:"#BFF589"}}),a.jsx("span",{className:"text-xs font-mono",style:{color:"#A0A0A0"},children:"SOC 1 Type II"})]}),a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx(Es,{size:14,style:{color:"#BFF589"}}),a.jsx("span",{className:"text-xs font-mono",style:{color:"#A0A0A0"},children:"SOC 2 Type II"})]}),a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx(xt,{size:14,style:{color:"#BFF589"}}),a.jsx("span",{className:"text-xs font-mono",style:{color:"#A0A0A0"},children:"1,000+ MW Under Management"})]})]})})]}),a.jsx("footer",{className:"py-6 text-center",style:{borderTop:"1px solid rgba(255,255,255,0.06)"},children:a.jsxs("p",{className:"text-xs",style:{color:"#A0A0A0"},children:["© 2026 LÅD Energy Intelligence |"," ",a.jsx("a",{href:"/privacy",className:"hover:text-lod-gray transition-colors",children:"Privacy"})]})})]})}const KCe=[{tag:"Data Layer · Feature",title:"Hashrate Realization Index",subtitle:"Know exactly where your hashrate stands",description:"HRI gives you a real-world benchmark for your exact hardware model and conditions. Instantly identify underperforming machines and make decisions based on actual data, not lab specs.",bullets:["Model-specific index built from millions of data points","Adjusted for your region, current season, and weather","Click any bucket to identify underperforming machines instantly","Jump to underperforming ASICs in one click"],cta:{label:"Learn More",href:"/data-layer/hri"},image:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/d1c37782a_HRIScreenrecordinggif.gif",imageAlt:"HRI walkthrough â selecting the widget, choosing a model, and drilling into underperforming ASICs",imageCaption:"S19j Pro fleet · 103.0% realization · +3.9% above index",flip:!1},{tag:"Bitcoin Mining · Features",title:"Bitcoin Mining Platform",subt
2009itle:"One platform. Every layer of your mining operation.",description:"A single platform for managing energy, infrastructure, operations, and revenue across industrial-scale Bitcoin mining sites. Every layer works together to support energy-aware, automated mining operations.",bullets:["Real-time & forward market awareness (DAM + RTM)","Direct ASIC control â air-cooled and immersion","Repair, RMA, and inventory lifecycle tracking","Native FPPS pool integration with revenue splits","SOC 1 Type II and SOC 2 Type II compliant"],cta:{label:"Learn More",href:"/bitcoin-mining-features"},image:"https://cdn.prod.website-files.com/68aca8c8fe05d65de8d26346/698f9e3b8306b626f6947764_Energy%20Orchestration(6)%20ok%20gif.gif",imageAlt:"Bitcoin mining energy orchestration dashboard",imageCaption:"Market-aware orchestration · real-time curtailment · grid-event automation",flip:!0}];function XCe(){return a.jsxs(a.Fragment,{children:[a.jsx(He,{title:"Platform Features â Hashrate Realization Index & Bitcoin Mining | LÅD",description:"Explore LÅD's platform features: the Hashrate Realization Index for fleet benchmarking and the full Bitcoin Mining Platform for energy-aware, automated operations.",canonical:"https://lod.io/features",ogImage:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/6cf86e0a9_Lod-Green-no-Background.png"}),a.jsxs(Je,{children:[a.jsxs("section",{className:"relative overflow-hidden grid-lines-overlay",style:{background:"#0A0A0A",minHeight:"360px"},children:[a.jsx("div",{className:"absolute top-0 left-1/2 -translate-x-1/2 w-[900px] h-[400px] pointer-events-none",style:{background:"radial-gradient(ellipse at 50% 0%, rgba(191,245,137,0.07) 0%, transparent 70%)",filter:"blur(40px)"}}),a.jsxs("div",{className:"max-w-[900px] mx-auto px-6 py-28 md:py-36 relative z-10 text-center",children:[a.jsx("div",{className:"section-label mb-4",children:"Platform"}),a.jsx("h1",{className:"font-display text-5xl md:text-6xl text-lod-white mb-6 leading-tight",children:"Features"}),a.jsx("p",{className:"text-lod-gray text-lg leading-relaxed max-w-xl mx-auto",children:"Explore the capabilities that power LÅD's energy-aware, automated infrastructure platform."})]}),a.jsx("div",{className:"absolute bottom-0 left-0 right-0 h-px",style:{background:"linear-gradient(90deg, transparent, rgba(191,245,137,0.2), transparent)"}})]}),KCe.map((e,t)=>a.jsx("section",{className:"py-24",style:{background:t%2===0?"#111":"#1A1A1A",borderBottom:"1px solid rgba(255,255,255,0.06)"},children:a.jsx("div",{className:"max-w-[1200px] mx-auto px-6",children:a.jsxs("div",{className:`grid lg:grid-cols-2 gap-16 items-center ${e.flip,""}`,children:[a.jsxs("div",{className:e.flip?"order-1 lg:order-2":"",children:[a.jsx("div",{className:"inline-flex items-center gap-2 px-3 py-1.5 rounded-full mb-5",style:{background:"rgba(191,245,137,0.08)",border:"1px solid rgba(191,245,137,0.2)"},children:a.jsx("span",{className:"font-mono text-xs",style:{color:"#BFF589"},children:e.tag})}),a.jsx("h2",{className:"font-display text-4xl md:text-5xl text-lod-white mb-3 leading-tight",children:e.title}),a.jsx("p",{className:"font-display text-lg mb-4",style:{color:"#BFF589"}
2009,children:e.subtitle}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-7",children:e.description}),a.jsx("ul",{className:"space-y-3 mb-10",children:e.bullets.map(n=>a.jsxs("li",{className:"flex items-start gap-3 text-sm",style:{color:"#C0C0C0"},children:[a.jsx("span",{className:"mt-1 w-4 h-4 rounded-sm flex items-center justify-center flex-shrink-0 text-xs",style:{background:"rgba(191,245,137,0.15)",color:"#BFF589"},children:"â"}),n]},n))}),a.jsxs(ye,{to:e.cta.href,className:"inline-flex items-center gap-2 px-8 py-4 rounded-lg text-base font-semibold transition-all duration-200",style:{background:"#BFF589",color:"#1A1A1A",fontFamily:"Montserrat, sans-serif",boxShadow:"0 4px 30px rgba(191,245,137,0.2)"},children:[e.cta.label," ",a.jsx(Ve,{size:16})]})]}),a.jsxs("div",{className:e.flip?"order-2 lg:order-1":"",children:[a.jsx("div",{className:"rounded-xl overflow-hidden",style:{border:"1px solid rgba(255,255,255,0.1)",boxShadow:"0 24px 60px rgba(0,0,0,0.5)"},children:a.jsx("img",{src:e.image,alt:e.imageAlt,className:"w-full h-auto block"})}),a.jsx("div",{className:"mt-3 px-4 py-3 rounded-lg",style:{background:"rgba(255,255,255,0.03)",border:"1px solid rgba(255,255,255,0.07)"},children:a.jsx("p",{className:"font-mono text-xs",style:{color:"#A0A0A0"},children:e.imageCaption})})]})]})})},e.title)),a.jsx("section",{className:"py-24",style:{background:"#0A0A0A"},children:a.jsxs("div",{className:"max-w-[700px] mx-auto px-6 text-center",children:[a.jsxs("h2",{className:"font-display text-4xl md:text-5xl text-lod-white mb-5 leading-none",children:["Ready to see LÅD ",a.jsx("span",{style:{color:"#BFF589"},children:"in action?"})]}),a.jsx("p",{className:"text-lod-gray text-base mb-10 max-w-md mx-auto",children:"Talk to our team and get a personalized walkthrough of the platform."}),a.jsxs(ye,{to:"/contact",className:"inline-flex items-center gap-3 px-8 py-4 rounded-lg text-base font-semibold transition-all duration-200",style:{background:"#BFF589",color:"#1A1A1A",fontFamily:"Montserrat, sans-serif",boxShadow:"0 4px 30px rgba(191,245,137,0.25)"},children:["Request a Demo ",a.jsx(Ve,{size:16})]})]})})]})]})}const QCe=[{tag:"Energy & Strategy Layer",title:"Market-Aware Orchestration",description:"LÅD enables operators to anticipate energy conditions, plan ahead, and automatically execute decisions across volatile power markets. Rather than reacting to price spikes or grid events, operators define strategy once and allow the platform to enforce it continuously.",bullets:["Real-time and forward market awareness (DAM + RTM)","Dynamic curtailment logic based on breakeven economics","Configurable strategy rules aligned to business goals","Predictive coincidental peak management","Grid-event driven automation","Energy ROI and value attribution"],image:"https://cdn.prod.website-files.com/68aca8c8fe05d65de8d26346/698f9e3b8306b626f6947764_Energy%20Orchestration(6)%20ok%20gif.gif",imageAlt:"Energy orchestration dashboard",flip:!1},{tag:"Device & Infrastructure Control",title:"Precision Execution at Scale",description:"LÅD provides unified, device-level control across mining infrastructure, enabling precise execution of energy and operational decisions.",bullets:["Direct control of ASIC miners","Support for air-cooled and immersion-cooled containers","Firmware-agnostic support across major providers","Anti-flapping and oscillation prevention","Smart PDU integration for power visibility and control","Monitoring and control of fans, pumps, and cooling systems","Safe sequencing and restart logic","High-resolution real-time telemetry"],image:"https://cdn.prod.website-files.com/68aca8c8fe05d65de8d26346/698e95f5293fac112b5ad34b_Device%20Control%20(2)%20(1).gif",imageAlt:"Device control dashboard",flip:!0},{tag:"Operations Management Layer",title:"Industrial-Grade Workflow and Discipline",description:"Beyond energy and device control, LÅD acts as an operational backbone for large-scale mining operations.",bullets:["Serialized and non-serialized asset tracking","Repair and RMA lifecycle tracking","Maintenance history and audit trails","Inventory management for miners, components, and spares","Work orders and technician
2009workflows","Real-time operational reporting across sites"],image:"https://cdn.prod.website-files.com/68aca8c8fe05d65de8d26346/698cefafda5ba0c44e5a342a_Work%20Order(1).gif",imageAlt:"Work order management interface",flip:!1},{tag:"Revenue & Mining Pool",title:"Transparent Earnings, Native Integration",description:"LÅD includes native integration with the Lincoln FPPS mining pool while remaining fully pool-agnostic by design.",bullets:["FPPS mining pool integration","Automated revenue splits for hosted environments","Lightning Network withdrawals","Pool-agnostic architecture for flexibility","Full profitability and revenue views"],image:"https://cdn.prod.website-files.com/68aca8c8fe05d65de8d26346/698cefaf385f5e475b10e5f3_Pools%20Page.gif",imageAlt:"Mining pool revenue dashboard",flip:!0},{tag:"Governance, Security & Compliance",title:"Built for Audited Environments",description:"LÅD is built to operate in audited, security-sensitive environments where accountability and access control are mandatory.",bullets:["SOC 1 Type II and SOC 2 Type II compliance","Comprehensive audit logs for all actions and decisions","Separation of duties for hosting and multi-client environments","Role-based access control across users, sites, and subaccounts","Secure APIs for integration with energy and financial systems"],image:"https://cdn.prod.website-files.com/68aca8c8fe05d65de8d26346/6994c8a47ad3ce64327bba6f_Inventory%20GIF%20(5).gif",imageAlt:"Security and compliance dashboard",flip:!1}],JCe=["SOC 1 Type II","SOC 2 Type II","Hosting-Grade","Multi-Site Ready"];function ZCe(){return a.jsxs(Je,{children:[a.jsx(He,{title:"Bitcoin Mining Platform Features â Energy, IoT & Revenue | LÅD",description:"A single platform for managing energy, infrastructure, operations, and revenue across industrial-scale Bitcoin mining sites. Market-aware orchestration, device control, and FPPS pool integration.",canonical:"https://lod.io/bitcoin-mining-features"}),a.jsxs("section",{className:"relative pt-16 pb-20 overflow-hidden",style:{background:"#0A0A0A"},children:[a.jsx("div",{className:"absolute inset-0 grid-blueprint opacity-30 pointer-events-none"}),a.jsx("div",{className:"absolute top-0 left-1/2 -translate-x-1/2 w-[900px] h-[400px] pointer-events-none",style:{background:"radial-gradient(ellipse at 50% 0%, rgba(191,245,137,0.07) 0%, transparent 70%)",filter:"blur(40px)"}}),a.jsxs("div",{className:"max-w-[1200px] mx-auto px-6 relative z-10 pt-10",children:[a.jsxs("div",{className:"grid lg:grid-cols-2 gap-12 items-center",children:[a.jsxs("div",{children:[a.jsx("div",{className:"inline-flex items-center gap-2 px-3 py-1.5 rounded-full mb-6",style:{background:"rgba(191,245,137,0.08)",border:"1px solid rgba(191,245,137,0.2)"},children:a.jsx("span",{className:"font-mono text-xs",style:{color:"#BFF589"},children:"BITCOIN MINING · FEATURES"})}),a.jsxs("h1",{className:"font-display text-5xl md:text-6xl lg:text-7xl text-lod-white mb-6 leading-none",children:["Bitcoin Mining",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"Features"})]}),a.jsx("p",{className:"text-lod-gray text-lg leading-relaxed mb-4",children:"A single platform for managing energy, infrastructure, operations, and revenue across industrial-scale Bitcoin mining sites."}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-10",children:"Learn the core capabilities of LÅD, and how each layer works together to support energy-aware, automated mining operations."}),a.jsxs("div",{className:"flex flex-col sm:flex-row gap-4",children:[a.jsxs(ye,{to:"/contact",className:"inline-flex items-center gap-2 px-8 py-4 rounded-lg text-base font-semibold transition-all duration-200",style:{background:"#BFF589",color:"#1A1A1A",fontFamily:"Montserrat, sans-serif",boxShadow:"0 4px 30px rgba(191,245,137,0.25)"},children:["Request a Demo ",a.jsx(Ve,{size:16})]}),a.jsxs(ye,{to:"/bitcoin-mining",className:"inline-flex items-center gap-2 text-sm font-semibold transition-colors",style:{color:"#A0A0A0",fontFamily:"Montserrat, sans-serif",alignSelf:"center"},children:["Bitcoin Mining Overview ",a.jsx(Ve,{size:14})]})]})]}),a.jsx("div",{className:"flex justify-center",children:a.jsx("img",{src:"https://cdn.prod.website-files.com/68aca8c8fe05d65de8d26346/68d43eb64d3f2f815d1aba34_FPPS_Full_Pay_Per_Share.png",alt:"Bitcoin mining platform overview",className:"w-full max-w-md h-auto"})})]}),a.jsx("div",{className:"flex flex-wrap gap-4 mt-16 pt-8",style:{borderTop:"1px solid rgba(255,255,255,0.06)"},children:JCe.map(e=>a.jsx("div",{className:"px-4 py-2 rounded-lg font-mono text-xs",style:{background:"rgba(191,245,137,0.08)",border:"1px solid rgba(191,245,137,0.15)",color:"#BFF589"},children:e},e))})]})]}),QCe.map((e,t)=>a.jsx("section",{className:"py-24",style:{background:t%2===0?"#111":"#1A1A1A",borderBottom:"1px solid rgba(255,255,255,0.06)"},children:a.jsx("div",{className:"max-w-[1200px] mx-auto px-6",children:a.jsxs("div",{className:"grid lg:grid-cols-2 gap-16 items-center",children:[a.jsxs("div",{className:e.flip?"order-1 lg:order-2":"",children:[a.jsx("div",{className:"section-label mb-4",children:e.tag}),a.jsx("h2",{className:"font-display text-4xl text-lod-white mb-5 leading-tight",children:e.title}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-7",children:e.description}),a.jsx("ul",{className:"space-y-3 mb-10",children:e.bullets.map(n=>a.jsxs("li",{className:"flex items-start gap-3 text-sm",style:{color:"#C0C0C0"},children:[a.jsx("span",{className:"mt-1 w-4 h-4 rounded-sm flex items-center justify-center flex-shrink-0 text-xs",style:{background:"rgba(191,245,137,0.15)",color:"#BFF589"},children:"â"}),n]},n))}),a.jsxs(ye,{to:"/contact",className:"inline-flex items-center gap-2 px-6 py-3 rounded-lg text-sm font-semibold transition-all duration-200",style:{background:"transparent",color:"#BFF589",border:"1px solid rgba(191,245,137,0.35)",fontFamily:"Montserrat, sans-serif"},children:["Request a Demo ",a.jsx(Ve,{size:14})]})]}),a.jsx("div",{className:e.flip?"order-2 lg:order-1":"",children:a.jsx("div",{className:"rounded-xl overflow-hidden",style:{border:"1px solid rgba(255,255,255,0.1)",boxShadow:"0 24px 60px rgba(0,0,0,0.5)"},children:a.jsx("img",{src:e.image,alt:e.imageAlt,className:"w-full h-auto block"})})})]})})}
2009,e.title)),a.jsx("section",{className:"py-24",style:{background:"#0A0A0A"},children:a.jsxs("div",{className:"max-w-[700px] mx-auto px-6 text-center",children:[a.jsxs("div",{className:"inline-flex items-center gap-2 px-4 py-2 rounded-full mb-8",style:{background:"rgba(191,245,137,0.08)",border:"1px solid rgba(191,245,137,0.18)"},children:[a.jsx(xt,{size:13,style:{color:"#BFF589"}}),a.jsx("span",{className:"font-mono text-xs text-lod-green uppercase tracking-wider",children:"Ready to boost your Bitcoin Mining profits?"})]}),a.jsx("h2",{className:"font-display text-4xl md:text-5xl text-lod-white mb-5 leading-none",children:"Let's talk!"}),a.jsx("p",{className:"text-lod-gray text-base mb-10 max-w-md mx-auto",children:"Trusted by hosting providers, multi-site operators, and energy-exposed mining fleets."}),a.jsxs(ye,{to:"/contact",className:"inline-flex items-center gap-3 px-8 py-4 rounded-lg text-base font-semibold transition-all duration-200",style:{background:"#BFF589",color:"#1A1A1A",fontFamily:"Montserrat, sans-serif",boxShadow:"0 4px 30px rgba(191,245,137,0.25)"},children:["Get Started ",a.jsx(Ve,{size:16})]})]})})]})}const zk="https://media.base44.com/files/public/69eb97e3a261d40e27688f9d/d7321a295_THEULTIMATEGUIDETOChoosingYourBitcoinMiningManagementPlatform_LINKED_Newpdf.pdf",e5e="https://docs.google.com/viewer?url="+encodeURIComponent(zk)+"&embedded=true",t5e=()=>typeof navigator<"u"&&/iPhone|iPad|iPod|Android/i.test(navigator.userAgent);function n5e(){const e=t5e();return a.jsxs("div",{style:{background:"#1A1A1A",minHeight:"100vh"},children:[a.jsx(He,{title:"The Ultimate Guide to Choosing Your Bitcoin Mining Management Platform | LÅD",description:"LÅD, Braiins, Luxor, and Foreman compared honestly. A vendor-neutral buyer's guide with real pricing, architecture, and energy strategy breakdowns for operators running 5â20 MW.",canonical:"https://lod.io/resources/bitcoin-mining-platform-guide",ogImage:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/9952d639c_MockUpTheultimateGuidetochoosingyourbitcoinmininngsoftware.png"}),a.jsx("header",{className:"fixed top-0 left-0 right-0 z-50 flex items-center justify-between px-6 py-4",style:{background:"rgba(26,26,26,0.95)",borderBottom:"1px solid rgba(255,255,255,0.06)",backdropFilter:"blur(8px)"},children:a.jsx("a",{href:"/",children:a.jsx("img",{src:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/6cf86e0a9_Lod-Green-no-Background.png",alt:"LÅD",className:"h-8 w-auto"})})}),a.jsxs("main",{className:"pt-16 flex flex-col",style:{height:"100vh"},children:[a.jsxs("div",{className:"px-6 py-5 flex flex-col sm:flex-row items-start sm:items-center justify-between gap-4",style:{borderBottom:"1px solid rgba(255,255,255,0.06)"},children:[a.jsxs("div",{children:[a.jsx("div",{className:"tag-chip mb-2",children:"Buyer's Guide · July 2026"}),a.jsx("h1",{className:"font-display text-lg md:text-xl text-lod-white leading-tight",children:"The Ultimate Guide to Choosing Your Bitcoin Mining Management Platform"})]}),a.jsx("a",{href:zk,target:"_blank",rel:"noopener noreferrer",className:"btn-outline text-xs px-4 py-2 shrink-0",children:"Open PDF"})]}),a.jsx("div",{className:"flex-1 w-full min-h-0",children:a.jsx("iframe",{src:e?e5e:zk+"#toolbar=1&navpanes=1&scrollbar=1&zoom=90",title:"The Ultimate Guide to Choosing Your Bitcoin Mining Management Platform",className:"w-full h-full",style:{border:"none"}})})]})]})}function r5e({current:e}){return a.jsxs("div",{className:"flex items-center gap-2 text-xs font-mono mb-8 flex-wrap",style:{color:"#A0A0A0"},children:[a.jsx(ye,{to:"/",className:"hover:text-lod-green transition-colors",children:"Home"}),a.jsx(la,{size:12}),a.jsx(ye,{to:"/blog",className:"hover:text-lod-green transition-colors",children:"Resources"}),a.jsx(la,{size:12}),a.jsx("span",{className:"text-lod-white",children:e})]})}function i5e({items:e}){return a.jsxs("nav",{className:"card-obsidian p-6 mb-14",children:[a.jsx("div",{className:"section-label mb-4",children:"Jump to a section"}),a.jsx("ul",{className:"grid sm:grid-cols-2 gap-2",children:e.map(t=>a.jsx("li",{children:a.jsx("a",{href:`#${t.id}`,className:"text-sm text-lod-gray hover:text-lod-green transition-colors",children:t.label})},t.id))})]})}function hs({headers:e,rows:t,caption:n}){return a.jsxs("div",{className:"overflow-x-auto mb-8 -mx-6 px-6 md:mx-0 md:px-0",children:[a.jsxs("table",{className:"border-collapse text-sm w-full",style:{minWidth:"640px"},children:[a.jsx("thead",{children:a.jsx("tr",{style:{borderBottom:"2px s
2009olid rgba(191,245,137,0.3)"},children:e.map((r,i)=>a.jsx("th",{className:"text-left text-lod-white font-semibold py-3 px-4 whitespace-nowrap",children:r},i))})}),a.jsx("tbody",{children:t.map((r,i)=>a.jsx("tr",{style:{borderBottom:"1px solid rgba(255,255,255,0.08)"},children:r.map((o,s)=>a.jsx("td",{className:"text-lod-gray py-3 px-4 align-top",children:o},s))},i))})]}),n&&a.jsx("p",{className:"font-mono text-xs mt-2 opacity-60 text-lod-gray",children:n})]})}const a5e=[["Deep ASIC-level firmware tuning","Braiins"],["One vendor for pool, firmware, financing, and retail power","Luxor"],["A familiar system if your team already runs Foreman","OBM"],["An energy strategy that plugs into your existing stack, no firmware or power-provider switch required","LÅD"],["The lowest advertised per-MW sticker price","Luxor's Commander Pro, read the fine print in the cost section first"],["Direct AI agent access to fleet and grid data","LÅD"]];function o5e(){return a.jsxs(a.Fragment,{children:[a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-5",children:"If you're running a Bitcoin mining operation past a few megawatts, the software that manages your fleet is no longer optional infrastructure. It's the layer that decides whether you catch a demand response payout, or miss it. Whether a firmware issue gets flagged in seconds, or discovered on a walkthrough three days later. Whether your energy costs are something you react to, or something you actively manage."}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-5",children:"This guide covers the entire category as it stands in 2026: what these platforms actually do, how the four names you'll run into everywhere, LÅD, Braiins, Luxor, and Foreman (rebranding to OBM), genuinely differ, what they cost, and how to figure out which one, or which combination, actually fits your site."}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-8",children:"We're LÅD, so we'll say the obvious thing upfront: we have a bias. What we did to control for it is build this guide from each vendor's own feature and pricing pages, public documentation, and what we see running in the field. Where a competitor does something better, we say so."}),a.jsx("blockquote",{className:"border-l-4 pl-6 py-4 my-8 rounded-r-lg",style:{borderColor:"#BFF589",background:"rgba(191,245,137,0.05)"},children:a.jsxs("p",{className:"text-lod-white text-base leading-relaxed",children:[a.jsx("strong",{className:"text-lod-green",children:"TL;DR:"})," Every Bitcoin mining management platform handles ASIC monitoring and remote control, that's the floor, not the differentiator. Braiins and Luxor build their own firmware; LÅD and OBM stay firmware-agnostic. Luxor is the most consolidated, closed stack (its own pool, firmware, financing, and retail power); LÅD is built to sit alongside whatever stack you already run. Public Pro/Enterprise pricing runs $100 to $250 per MW/month, or $0.60 per miner/month for OBM, but the real cost depends on which automation modules are bundled versus sold separately. There's no single best platform, only the one that matches your site's actual bottleneck, and most operators over 5 MW end up running two or three of these together."]})}),a.jsx("h3",{className:"font-display text-xl text-lod-white mt-8 mb-3",id:"who-this-guide-is-for",children:"Who this guide is for"}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-5",children:"This guide is written for the four kinds of people who actually make this decision:"}),a.jsx("ul",{className:"space-y-3 mb-8 ml-4",children:["Operations leads and site managers running 5 to 50 MW who need uptime, clarity, and a platform that doesn't require babysitting.","CFOs and energy managers who need real cost structures, not marketing pricing pages.","AI-curious operators exploring what automation and AI-driven optimization can realistically do for a mining site today.","Developers and technical teams evaluating API access, MCP support, and integration depth for in-house tooling."].map((e,t)=>a.jsxs("li",{className:"flex items-start gap-3 text-lod-gray text-base",children:[a.jsx("span",{className:"mt-2 w-1.5 h-1.5 rounded-full flex-shrink-0",style:{background:"#BFF589"}}),a.jsx("span",{children:e})]},t))}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-10",children:"If you're any of these, the sections below are written for your specific question, not a generic buyer."}),a.jsx("h3",{className:"font-display text-xl text-lod-white mt-8 mb-4",children:"Qu
2009ick answer"}),a.jsx(hs,{headers:["If you want...","Look at"],rows:a5e,caption:"Full detail on all four below."})]})}const s5e=[["Founded","2021","2011","2017","2017"],["Headquarters","Vancouver, Canada","Prague, Czech Republic","Seattle, US","Baltimore, US"],["Core market","Flexible data centers, Bitcoin mining, AI, HPC","Bitcoin mining operations","Bitcoin mining, hashrate financial markets, energy retail","Bitcoin mining, expanding into flexible load management"],["Platform type","Energy-integrated mine management (ASICs, GPU, sensors)","Mine management, firmware","Mine management: pool, firmware, derivatives, hardware, energy","Mine management"]];function l5e(){return a.jsxs("section",{id:"what-is-bitcoin-mining-management-software",className:"mt-14",children:[a.jsx("h2",{className:"font-display text-2xl text-lod-white mb-4",children:"What is Bitcoin mining management software?"}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-5",children:"Bitcoin mining management software gives you fleet visibility and remote control over your ASICs: uptime, hashrate, temperatures, and the ability to act on your fleet without a technician standing in front of every rack. That's the shared foundation across every platform in this category. Past that floor, platforms specialize in different directions, firmware tuning, financial tools, energy automation, and that's where real differences start."}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-5",children:`Here's the trap worth knowing before you compare anything: several platforms now use different names for the same underlying action. "Power control," "curtailment," and "demand response signaling" often describe the exact same thing, turning load down when the grid needs it, or when it's no longer profitable to keep running. A platform that lists "power management" and one that lists "demand response integration" might be doing the same job with a different label. Or one of them might not be doing the job at all.`}),a.jsxs("p",{className:"text-lod-gray text-base leading-relaxed mb-10",children:["Comparing feature checklists by name alone will mislead you. Compare what's actually happening underneath each label. We go deeper on exactly this naming problem, feature by feature, in"," ",a.jsx(ye,{to:"/blog/bitcoin-mining-management-platform",className:"text-lod-green hover:underline font-semibold",children:"What Bitcoin Mining Management Software Actually Does"}),', including a breakdown of how "automation," "inventory," "power management," "reporting," "site visualization," and "AI and optimization" diverge across vendors even when the label on the pricing page looks identical.']}),a.jsx("h3",{className:"font-display text-xl text-lod-white mt-8 mb-4",children:"The four platforms you'll run into"}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-5",children:"If you're evaluating this category, four names show up in almost every search and every RFP: LÅD, Braiins, Luxor, and Foreman, which is rebranding to OBM in 2026."}),a.jsx(hs,{headers:["Attribute","LÅD","Braiins","Luxor","OBM (Foreman)"],rows:s5e,caption:"As of July 2026."}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed",children:"Each one picked a different bet on where the value sits. Braiins started as a mining pool before building out firmware. Luxor has expanded the fastest, adding hardware financing and energy retail on top of pool and firmware. OBM, formerly Foreman, is operations-first, adding an AI layer in 2026. LÅD started in energy and mining, then built the platform around that, which is why energy is core to what we do rather than a feature we added later."})]})}const c5e=[{label:"Automation.",text:"Some platforms only support scheduled actions. Others support real-time triggers, recurring workflows, and conditional logic based on miner health, temperature, or energy prices. The question worth asking every vendor: does it react to live events, combine multiple conditions, and act differently by site?"},{label:"Inventory.",text:"For some platforms, inventory is a list of miners. For others, it's a full system of record: procurement tracking, deployment history, rack assignment, maintenance records, and lifecycle management. The real question is whether it becomes an operational system of record or stays a spreadsheet with a UI."},{label:"Power management.",text:"Nearly every platform advertises this. Some stop at manual controls, rebooting miners, and firmware profiles. Others automate using live electricity prices, demand response events, and market signals. That gap is the difference between monitoring energy and actually managing it."},{label:"Reporting.",text:"What's actually included ranges from a few charts to a full analytics platform: operational KPIs, financial performance, energy consumption, hosting billing, historical trends, and exportable dashboards."},{label:"Site visualization.",text:"Some sitemaps show only rack locations. Others overlay hashrate, temperatures, airflow, power consumption, and fault status, letting operators catch a spatial problem before it becomes downtime."},{label:"AI and optimization.",text:"This term gets used loosely right now. It can mean recommending actions, changing miner profiles, optimizing on profitability, responding to market prices, or running a site-wide energy strategy. The decision logic behind it matters more than the label on top of it."}];function u5e(){return a.jsxs("section",{id:"features-every-platform-shares",className:"mt-14",children:[a.jsx("h2",{className:"font-display text-2xl text-lod-white mb-4",children:"The features every platform shares, and where they actually diverge"}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-8",children:"Nearly every platform in this category now advertises the same six capabilities: automation, inventory management, power management, reporting, site visualization, and AI-driven optimization. Sharing a feature name doesn't mean sharing a capability. Here's where each one actually splits in practice."}),a.jsx("ul",{className:"space-y-4 mb-8 ml-4",children:c5e.map((e,t)=>a.jsxs("li",{className:"flex items-start gap-3 text-lod-gray text-base leading-relaxed",children:[a.jsx("span",{className:"mt-2 w-1.5 h-1.5 rounded-full flex-shrink-0",style:{background:"#BFF589"}}),a.jsxs("span",{children:[a.jsx("strong",{className:"text-lod-white",children:e.label})," ",e.text]})]},t))}),a.jsxs("p",{className:"text-lod-gray text-base leading-relaxed",children:["The best platform isn't the one with the longest feature list. It's the one whose capabilities actually match your site's operational challenges. Before signing anything, ask a vendor to demonstrate how one specific workflow, a curtailment event, a firmware push, a maintenance ticket, actually runs
2009in a live environment. For the full feature-by-feature version of this breakdown, see"," ",a.jsx(ye,{to:"/blog/bitcoin-mining-management-platform",className:"text-lod-green hover:underline font-semibold",children:"What Bitcoin Mining Management Software Actually Does"}),"."]})]})}const d5e=[["ASIC monitoring & remote control","Yes, native","Yes, native","Yes, native","Yes, native"],["Firmware / per-chip tuning","Not offered (firmware-agnostic)","Yes (Braiins OS+)","Yes (LuxOS)","Not offered (firmware-agnostic)"],["Mining pool offering","Lincoin Pool","Braiins Pool","Luxor Pool","Pool-agnostic"],["Energy / grid participation","Advanced multilayer strategy and 13 QSE/CSP integrations","Price-responsive strategies and QSE/CSP integrations","Price-responsive and 4CP strategies; acts as REP/QSE from a single supplier","Price-responsive strategies and QSE/CSP integrations"],["Financial tools (hedging, financing)","Not offered","Not offered","Yes, hashrate derivatives and hardware financing","Not offered"],["Fleet-wide AI analytics","MCP Server with access to all analytics, fleet performance, and grid data","Not offered","Not offered; performance-based automation","Foreman Intelligence (added 2026), AI-powered querying and dashboards"],["Compliance certification","SOC 1 & SOC 2 Type II","SOC 1 & SOC 2 Type II","SOC 1 & SOC 2 Type II","SOC 1 & SOC 2 Type II"]],h5e=[["System design",'Modular, "white-box"',"Firmware-centric mining stack",'Proprietary, "black-box"',"Operations-centric management"],["Integration","Every IoT device on site (ASICs, sensors, meters, GPUs, containers), plus all pools and firmwares","ASICs running Braiins OS, also stock firmware and other pools","ASICs running LuxOS, limited stock firmware, all major pools","All ASICs, firmwares, pools, plus other site equipment"],["Visibility","Full transparency into energy logic, rules, and actions","Transparent: CSP, firmware, performance, pool metrics","Device performance, hash economics, energy market","Transparent: CSP and device performance"]],p5e=[["Decision driver","Grid conditions, energy market and real-time signals from QSE/CSP, ASIC performance, site constraints","QSE/CSP integration and ASIC performance metrics","Grid and energy market with mining economics and site constraints","QSE/CSP integration, operational constraints, grid signals"],["Automation level","Deterministic, real-time monitoring, validation, and mining economics","ASIC-level tuning automation","ASIC-level tuning; performance and power-profile automation","Performance and operational automation"]],f5e=[["Grid connectivity","Direct ISO and market integration","Limited nodes and ISOs","ERCOT only","Limited nodes and ISOs"],["Analytics focus","Mining and energy performance and efficiency","Mining performance and efficiency","Hashprice, market data, performance","Performance and uptime reporting"],["Visibility layers","Grid, site, device, pool","Site, device, and pool","ERCOT grid, device, and pool","Site, device"],["Grid readiness","Complete integration","High integration and automation","ERCOT-only integrations","Complete integration"]],m5e=["Capability","LÅD","Braiins","Luxor","OBM (Foreman)"],y2=["Factor","LÅD","Braiins","Luxor","OBM (Foreman)"];function g5e(){return a.jsxs("section",{id:"lod-vs-braiins-vs-luxor-vs-foreman-comparison",className:"mt-14",children:[a.jsx("h2",{className:"font-display text-2xl text-lod-white mb-6",children:"LÅD vs Braiins vs Luxor vs Foreman: the full comparison"}),a.jsx("h3",{className:"font-display text-xl text-lod-white mt-6 mb-4",children:"Feature comparison"}),a.jsx(hs,{headers:m5e,rows:d5e}),a.jsxs("p",{className:"text-lod-gray text-base leading-relaxed mb-10",children:[`Every platform does ASIC monitoring and remote control natively now, that part is table stakes. The real splits are firmware tuning (Braiins and Luxor build their own, LÅD and OBM stay firmware-agnostic on purpose), financial tools (Luxor is the only one offering hashrate derivatives and hardware financing), and fleet-wide AI analytics, where the approach ranges from "not offered" to a paid add-on to a platform built to be queried directly by AI agents. If you want to give an AI agent or an internal tool direct access to fleet and grid data, look into how each vend
2009or exposes that. LÅD's approach is built on the`," ",a.jsx("a",{href:"https://modelcontextprotocol.io/",target:"_blank",rel:"noopener noreferrer",className:"text-lod-green hover:underline font-semibold",children:"Model Context Protocol"}),", an open standard for connecting AI systems to real-world data and tools."]}),a.jsx("h3",{className:"font-display text-xl text-lod-white mt-6 mb-4",children:"Architecture and transparency"}),a.jsx(hs,{headers:y2,rows:h5e}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-10",children:"This is the question worth spending real time on: is the system modular and inspectable, or a black box you have to trust? Luxor is explicit about being closed. LÅD, Braiins, and OBM all claim more transparency, but the depth of it, full visibility into energy logic and rules versus just performance metrics, varies."}),a.jsx("h3",{className:"font-display text-xl text-lod-white mt-6 mb-4",children:"Automation and decision-making"}),a.jsx(hs,{headers:y2,rows:p5e}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-10",children:"Three of the four platforms here, LÅD, Luxor, and OBM, now factor grid signals directly into their decision logic. That wasn't true two years ago. Energy has become the thing every platform in this category is racing toward."}),a.jsx("h3",{className:"font-display text-xl text-lod-white mt-6 mb-4",children:"Data and energy intelligence"}),a.jsx(hs,{headers:y2,rows:f5e}),a.jsxs("p",{className:"text-lod-gray text-base leading-relaxed mb-10",children:['Grid connectivity is the sleeper differentiator. "ERCOT only" and "direct ISO and market integration across every region you operate in" are very different answers if you run sites outside Texas, or plan to. For background on how'," ",a.jsx("a",{href:"https://www.ercot.com/",target:"_blank",rel:"noopener noreferrer",className:"text-lod-green hover:underline font-semibold",children:"ERCOT manages Texas's grid"}),", and why mining operators pay close attention to programs like 4CP (the four coincident peaks that set a large share of annual transmission cost allocation), it's worth understanding the mechanics behind the market signals these platforms are reacting to."]}),a.jsx("h3",{className:"font-display text-xl text-lod-white mt-6 mb-4",children:"Where each one wins"}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-5",children:"No platform in this comparison is objectively the best. Here's the honest fit for each:"}),a.jsx("ul",{className:"space-y-3 mb-8 ml-4",children:[a.jsxs(a.Fragment,{children:[a.jsx("strong",{className:"text-lod-white",children:"Braiins"}),", if you want deep ASIC-level tuning and don't mind running proprietary firmware to get it."]}),a.jsxs(a.Fragment,{children:[a.jsx("strong",{className:"text-lod-white",children:"Luxor"}),", if you want one vendor for pool, firmware, hardware financing, and retail power, and you're comfortable with that consolidation."]}),a.jsxs(a.Fragment,{children:[a.jsx("strong",{className:"text-lod-white",children:"OBM"}),", if your techs are already trained on Foreman and you want a familiar system for daily fleet uptime, adding modules as you grow."]}),a.jsxs(a.Fragment,{children:[a.jsx("strong",{className:"text-lod-white",children:"LÅD"}),", if you want a technician-friendly platform with an energy strategy that plugs into whatever mining and power stack you already run, without switching firmware or retail providers to get it."]})].map((e,t)=>a.jsxs("li",{className:"flex items-start gap-3 text-lod-gray text-base",children:[a.jsx("span",{className:"mt-2 w-1.5 h-1.5 rounded-full flex-shrink-0",style:{background:"#BFF589"}}),a.jsx("span",{children:e})]},t))}),a.jsxs("p",{className:"text-lod-gray text-base leading-relaxed mb-8",children:["Most operators we talk to end up running two or three of these together. For the complete side-by-side with all five comparison tables in one place, see"," ",a.jsx(ye,{to:"/blog/lod-vs-braiins-vs-luxor-vs-foreman",className:"text-lod-green hover:underline font-semibold",children:"LÅD vs Braiins vs Luxor vs Foreman: The Honest 2026 Comparison"}),"."]}),a.jsxs("p",{className:"text-lod-gray text-base leading-relaxed mb-8",children:["This isn't theoretical. LÅD monitors more than 500 MW of Bitcoin mining and AI data center capacity today. Customers running flexible compute workloads have measured energy cost reductions of 25% or more, and AI data center operators have seen 20% or more. The control layer executes grid actions, curtailment and demand response, in under 30 seconds at the device level, without a human approving each individual action. ",a.jsx("span",{className:"font-mono text-xs opacity-60",children:"(Source: lod.io)"})]}),a.jsxs("div",{className:"card-obsidian p-6 md:p-8 flex flex-col md:flex-row items-start md:items-center justify-between gap-5 mb-4",children:[a.jsxs("div",{children:[a.jsx("div",{className:"font-display text-lg text-lod-white mb-1",children:"Still deciding between these four?"}),a.jsx("p",{className:"text-lod-gray text-sm",children:"Get the complete ebook version of this guide, print-friendly, with every table in one document."})]}),a.jsx(ye,{to:"/lp/mining-platform-guide",className:"btn-primary text-sm px-6 py-3 whitespace-nowrap",children:"Download the complete ebook â"})]})]})}const y5e=[["Pro / Enterprise tier","Starts at $250 per MW/month; may rise with energy-efficiency needs, load, and market exposure","Pro plan starts at $250 per MW/month","Commander Pro at $100 per MW/month, or +0.25% hashrate added to Luxor pool rate","Essential tier starts at $0.60/miner/month. Curtailment, automation, and compliance features are Enterprise add-ons."]];function x5e(){return a.jsxs("section",{id:"what-it-costs",className:"mt-14",children:[a.jsx("h2",{className:"font-display text-2xl text-lod-white mb-4",children:"What Bitcoin mining management software costs in 2026"}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-5",children:"Mining and energy costs scale with load. A platform priced at $250 per MW per month costs very differently for a 6 MW site than a 40 MW site, and the pricing models aren't even structured the same way between vendors. Some charge per MW, some charge per miner, and some take a cut of your hashrate."}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-6",children:"Some platforms offer a free tier with basic miner monitoring and dashboards. For a site over 5 MW, that tier usually isn't useful, you need execution and automation (demand response, smart curtailment), not just a dashboard. Here's what the paid, execution-capable tiers actually cost, as of July 2026:"}),a.jsx(hs,{headers:["Pricing model","LÅD","Braiins","Luxor","OBM (Foreman)"],rows:y5e}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-5",children:"The fine print matters more than the sticker price. Braiins' per-chip autotuning looks attractive until you factor in the dev fee for running their OS on another pool (up to 3%) and the Braiins Pool fee (up to 2.5%). Luxor's Commander Pro looks cheapest on paper, but the alternative path, +0.25% hashrate added to the pool rate, ties your cost to revenue and uptime rather than a flat fee. OBM's per-miner pricing looks inexpensive until you convert it to a per-MW basis and realize curtailment, automation, and compliance, the reasons most operators are shopping this category, are Enterprise add-ons rather than
2009included features."}),a.jsxs("p",{className:"text-lod-gray text-base leading-relaxed",children:["None of these prices, LÅD included, should be treated as fixed. Get a quote from all four vendors against your actual load before deciding anything. For the full breakdown of what's bundled at each tier and where the hidden costs live, see"," ",a.jsx(ye,{to:"/blog/bitcoin-mining-management-software-cost",className:"text-lod-green hover:underline font-semibold",children:"What Bitcoin Mining Management Software Actually Costs in 2026"}),"."]})]})}function v5e(){return a.jsxs("section",{id:"how-to-choose",className:"mt-14",children:[a.jsx("h2",{className:"font-display text-2xl text-lod-white mb-4",children:"How to choose the right platform for your site"}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-5",children:`Every vendor comparison eventually gets asked the same question: "ok, but which one should I actually pick?" The honest answer is that no platform here is objectively the best. It depends on your site's needs and your business model.`}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-10",children:"But there's a real question underneath the noise that tells you more than any feature checklist: how deep does each platform's energy strategy actually go, and what do you have to give up to get it?"}),a.jsx("h3",{className:"font-display text-xl text-lod-white mt-6 mb-4",children:"The stack question: open or closed"}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-5",children:"Every platform in this category now touches energy, because that's where the margin is. The question isn't whether a platform supports demand response or curtailment anymore, almost all of them claim to. The question is what it costs you to get it, and who it ties you to."}),a.jsx("ul",{className:"space-y-3 mb-8 ml-4",children:[a.jsxs(a.Fragment,{children:[a.jsx("strong",{className:"text-lod-white",children:"Luxor Energy"})," requires you to become Luxor's retail power customer. That ties your energy strategy to one company's book, and the feature is sold separately from the rest of Luxor's platform."]}),a.jsxs(a.Fragment,{children:[a.jsx("strong",{className:"text-lod-white",children:"Foreman's"})," power control is an additional paid module bolted onto a proprietary, closed platform."]}),a.jsxs(a.Fragment,{children:[a.jsx("strong",{className:"text-lod-white",children:"Braiins'"})," energy participation runs through a partner curtailment service provider, meaning a third relationship on top of Braiins itself. That module is also sold separately."]}),a.jsxs(a.Fragment,{children:[a.jsx("strong",{className:"text-lod-white",children:"LÅD"})," is built to sit alongside any retail energy provider, QSE, or REP you already run. You don't have to leave your firmware or switch power providers to get grid-aware automation, because energy is core to the platform, not an add-on."]})].map((e,t)=>a.jsxs("li",{className:"flex items-start gap-3 text-lod-gray text-base",children:[a.jsx("span",{className:"mt-2 w-1.5 h-1.5 rounded-full flex-shrink-0",style:{background:"#BFF589"}}),a.jsx("span",{children:e})]},t))}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-10",children:"None of this makes the other three wrong. Luxor's model makes real sense if you want one vendor accountable for your entire stack. It's a genuine tradeoff, not a flaw, and you should walk in knowing which side of it you're choosing."}),a.jsx("h3",{className:"font-display text-xl text-lod-white mt-6 mb-4",children:"Match the platform to your actual bottleneck"}),a.jsx("ul",{className:"space-y-3 mb-8 ml-4",children:[a.jsxs(a.Fragment,{children:[a.jsx("strong",{className:"text-lod-white",children:"Choose Braiins"})," if you want deep ASIC-level tuning and firmware control, and you don't mind running their OS to get it."]}),a.jsxs(a.Fragment,{children:[a.jsx("strong",{className:"text-lod-white",children:"Choose Luxor"})," if you want one vendor for pool, firmware, hardware financing, and retail power, and consolidation is a feature to you, not a risk."]}),a.jsxs(a.Fragment,{children:[a.jsx("strong",{className:"text-lod-white",children:"Choose OBM"})," if your techs are already trained on Foreman and you want a familiar, proprietary system for daily fleet uptime, adding AI or power modules as budget allows."]}),a.jsxs(a.Fragment,{children:[a.jsx("strong",{className:"text-lod-white",children:"Choose LÅD"})," if you want a platform that plugs into whatever mining and power stack you already run, with an energy strategy that's built in rather than bolted on."]})].map((e,t)=>a.jsxs("li",{className:"flex items-start gap-3 text-lod-gray text-base",children:[a.jsx("span",{className:"mt-2 w-1.5 h-1.5 rounded-full flex-shrink-0",style:{background:"#BFF589"}}),a.jsx("span",{children:e})]},t))}),a.jsxs("p",{className:"text-lod-gray text-base leading-relaxed",children:["Most of the operators we talk to aren't running just one of these. They're running two or three together, using each for what it's actually good at. For the full decision framework, including where each platform genuinely wins, see"," ",a.jsx(ye,{to:"/blog/best-bitcoin-mining-management-platform",className:"text-lod-green hover:underline font-semibold",children:"Which Bitcoin Mining Management Platform Actually Fits Your Site"}),"."]})]})}function b5e(){return a.jsxs("section",{id:"where-market-headed",className:"mt-14",children:[a.jsx("h2",{className:"font-display text-2xl text-lod-white mb-4",children:"Where the market is headed"}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-5",children:"The differences that feel decisive today are becoming table stakes. Firmware, pools, and basic fleet tooling are commoditizing fast across every vend
2009or in this category. Three shifts are actually redrawing the map for operators running 5 to 50 MW."}),a.jsxs("p",{className:"text-lod-gray text-base leading-relaxed mb-5",children:[a.jsx("strong",{className:"text-lod-white",children:"The stack is consolidating around AI."})," Every platform in this space has shipped some AI or advanced automation layer in the past year. Natural-language querying of fleet and market data, predictive tuning, agent-driven control, these are moving from novelty to expectation. The platforms that expose their data and actions to AI agents, not just dashboards to humans, are the ones that will keep pace."]}),a.jsxs("p",{className:"text-lod-gray text-base leading-relaxed mb-5",children:[a.jsx("strong",{className:"text-lod-white",children:"Energy is the real constraint."})," For any site under 20 MW, the power bill dwarfs the cost of the software managing it. As grids tighten and interconnection queues stretch into years, the operators who treat energy as programmable, curtailing, shifting, and selling flexibility back to the grid, keep the margin everyone else leaves on the table. Bitcoin mining's overall energy footprint is tracked publicly by resources like the"," ",a.jsx("a",{href:"https://ccaf.io/cbeci/index",target:"_blank",rel:"noopener noreferrer",className:"text-lod-green hover:underline font-semibold",children:"Cambridge Bitcoin Electricity Consumption Index"}),", and demand response programs are increasingly how grid operators ask large, flexible loads like mining sites to help balance the system, see the"," ",a.jsx("a",{href:"https://www.energy.gov/oe/demand-response",target:"_blank",rel:"noopener noreferrer",className:"text-lod-green hover:underline font-semibold",children:"U.S. Department of Energy's overview of demand response"})," for the mechanics behind these programs."]}),a.jsxs("p",{className:"text-lod-gray text-base leading-relaxed mb-8",children:[a.jsx("strong",{className:"text-lod-white",children:"Capacity and flexibility now define the winning site."})," Bitcoin mining, AI training, and high-performance computing are all converging on the same scarce resource: interruptible power at scale. The infrastructure that wins is flexible by design, able to ramp load in seconds, qualify for demand response revenue, and shift capacity between workloads without a rebuild."]}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed",children:"Whoever manages the energy layer well controls the largest line item on a mining operation's P&L, and the option value of every kilowatt. That's the bet LÅD made when we started in 2021, and every platform racing to add energy features now is backing it up."})]})}const w5e=[{term:"ASIC.",def:"Application-Specific Integrated Circuit, the specialized chip inside a Bitcoin miner built to do one thing efficiently: compute SHA-256 hashes."}
2009,{term:"QSE.",def:"Qualified Scheduling Entity, an ERCOT-registered entity that submits bids, schedules, and manages settlement for market participants like mining sites."},{term:"REP.",def:"Retail Electric Provider, the company you actually buy retail power from in deregulated markets like Texas."},{term:"CSP.",def:"Curtailment Service Provider, a company that aggregates flexible loads like mining sites and manages their participation in demand response programs on their behalf."},{term:"4CP.",def:"The four coincident peak intervals ERCOT uses to calculate a large share of annual transmission cost allocation. Reducing load during these specific hours can meaningfully lower a site's transmission charges the following year."},{term:"DAM / RTM.",def:"Day-Ahead Market and Real-Time Market, the two main ERCOT electricity markets, where prices are set a day in advance versus in near real time."},{term:"Curtailment.",def:"Deliberately reducing or stopping mining load, either voluntarily for profitability or in response to a grid program."}];function j5e(){return a.jsxs("section",{id:"glossary",className:"mt-14",children:[a.jsx("h2",{className:"font-display text-2xl text-lod-white mb-4",children:"Glossary: terms you'll see across every vendor's docs"}),a.jsxs("dl",{className:"space-y-4",children:[w5e.map((e,t)=>a.jsxs("div",{className:"text-lod-gray text-base leading-relaxed",children:[a.jsxs("dt",{className:"inline text-lod-white font-semibold",children:[e.term," "]}),a.jsx("dd",{className:"inline",children:e.def})]},t)),a.jsxs("div",{className:"text-lod-gray text-base leading-relaxed",children:[a.jsx("dt",{className:"inline text-lod-white font-semibold",children:"Demand response. "}),a.jsxs("dd",{className:"inline",children:["Programs where grid operators pay large, flexible loads to reduce consumption during periods of grid stress. See the"," ",a.jsx("a",{href:"https://www.energy.gov/oe/demand-response",target:"_blank",rel:"noopener noreferrer",className:"text-lod-green hover:underline font-semibold",children:"DOE's overview"})," for the mechanics."]})]})]})]})}function k5e({faq:e}){return a.jsxs("section",{id:"faq",className:"mt-16 pt-12",style:{borderTop:"1px solid rgba(255,255,255,0.06)"},children:[a.jsxs("div",{className:"mb-10",children:[a.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[a.jsx("span",{className:"w-1 h-6 rounded-full",style:{background:"#BFF589"}}),a.jsx("span",{className:"font-mono text-xs text-lod-green uppercase tracking-wider",children:"Common Questions"})]}),a.jsx("h2",{className:"font-display text-3xl text-lod-white",children:"Frequently Asked Questions"})]}),a.jsx(Sy,{type:"single",collapsible:!0,className:"space-y-3",children:e.map((t,n)=>a.jsxs(Hh,{value:`faq-${n}`,style:{border:"1px solid rgba(191,245,137,0.15)",borderRadius:"8px",overflow:"hidden",background:"rgba(191,245,137,0.02)"},children:[a.jsx(Vh,{className:"text-lod-white hover:text-lod-green px-6 py-4 hover:bg-white/5 transition-colors",children:t.q}),a.jsx(Gh,{className:"text-lod-gray px-6 pb-4 pt-2 text-base leading-relaxed",children:t.a})]},n))})]})}const Bf="Bitcoin Mining Management Software: The Complete 2026 Guide to Choosing the Right Platform",x2="https://lod.io/resources/bitcoin-mining-management-software-guide",A5e=[{id:"who-this-guide-is-for",label:"Who this guide is for"},{id:"what-is-bitcoin-mining-management-software",label:"What is Bitcoin mining management software?"},{id:"features-every-platform-shares",label:"The features every platform shares"},{id:"lod-vs-braiins-vs-luxor-vs-foreman-comparison",label:"LÅD vs Braiins vs Luxor vs Foreman"},{id:"what-it-costs",label:"What it costs in 2026"},{id:"how-to-choose",label:"How to choose the right platform"},{id:"where-market-headed",label:"Where the market is headed"},{id:"glossary",label:"Glossary"},{id:"faq",label:"FAQ"}],eL=[{q:"What is Bitcoin mining management software?",a:"Software that gives mining operators fleet-wide visibility and remote control over their ASICs, uptime, hashrate, temperatures, and the ability to act on the fleet without a technician at every rack. Beyond that shared foundation, platforms diverge on firmware control, energy automation, financial tools, and AI-driven analytics."},{q:"Is mining management software the same as firmware?",a:"No. Firmware, like Braiins OS+ or LuxOS, runs on the ASIC chip itself and controls tuning. Management software sits above firmware and gives you fleet-wide visibility, remote control, reporting, and in some cases energy automation. Some platforms bundle both; others, like LÅD and OBM, stay firmware-agnostic so you can run any firmware underneath."},{q:"What's the difference between monitoring and automation?",a:`Monitoring shows you what's happening. Automation acts on it without you pressing a button, using triggers like live electricity prices, grid signals, or miner health. Many platforms market "automation" but only support scheduled, not real-time, actions.`},{q:"How is LÅD different from Braiins, Luxor, and Foreman?",a:"LÅD doesn't build its own firmware or require a specific retail power provider. It's designed to sit alongside whatever mining and power stack you already run, with an energy strategy (grid signals, demand response, curtailment) built into the core platform rather than sold as an add-on module through a third party."},{q:"What's a normal price range for Bitcoin mining management software?",a:"As of July 2026, public pricing for the Pro/Enterprise, execution-capable tiers runs from about $100 to $250 per MW per month, or $0.60 per miner per month for OBM's essential tier. Actual cost depends on your load, market, and which add-on modules you need beyond the base tier."},{q:"Are curtailment and demand response included in the base price?",a:"Not always. OBM's essential tier explicitly excludes curtailment, automation, and compliance features, they're Enterprise add-ons. LÅD includes its energy strategy and curtailment features in the base Pro/Enterprise tier rather than as a separate purchase. Always confirm what's bundled versus billed separately before comparing quotes."},{q:"What's the difference between an open and closed mining management stack?",a:"An open stack, like LÅD's, works alongside whatever firmware, mining pool, and retail power provider you already use. A closed stack requires you to adopt the vendor's own firmware, pool, or energy relationship to get the full feature set. Neither is universally right, closed stacks can offer deeper integration if you're comfortable with one vendor, open stacks preserve flexibility."},{q:"Do most operators use one platform or several?",a:"Most operators running 5 to 50 MW sites use two or three platforms together, commonly firmware from Braiins or Luxor, fleet operations from OBM, and energy strategy from LÅD, rather than relying on a single vendor for everything."},{q:"Do these platforms work with AI agents, or just human dashboards?",a:"LÅD is the only one of the four with an MCP server giving AI agents and developers direct access to fleet, performance, and grid data. OBM added an AI querying layer (Foreman Intelligence) in 2026 as a paid add-on. Braiins and Luxor currently offer performance-based automation but not agent-facing data access."}];function S5e(){const e={"@context":"https://schema.org","@graph":[{"@type":"Article",headline:Bf,description:"Everything you need to know about Bitcoin mining management software in 2026: what it does, how LÅD, Braiins, Luxor, and Foreman actually compare, what it costs, and how to choose the right one for your site.",datePublished:"2026-09-01",dateModified:"2026-09-01",author:{"@type":"Organization",name:"LÅD Technologies"},publisher:{"@type":"Organization",name:"LÅD Technologies",logo:{"@type":"ImageObject",url:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/6cf86e0a9_Lod-Green-no-Backgroun
2009d.png"}},mainEntityOfPage:{"@type":"WebPage","@id":x2}},{"@type":"FAQPage",mainEntity:eL.map(t=>({"@type":"Question",name:t.q,acceptedAnswer:{"@type":"Answer",text:t.a}}))},{"@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://lod.io/"},{"@type":"ListItem",position:2,name:"Resources",item:"https://lod.io/blog"},{"@type":"ListItem",position:3,name:Bf,item:x2}]}]};return a.jsxs(a.Fragment,{children:[a.jsx(He,{title:`${Bf} | LÅD`,description:"Everything you need to know about Bitcoin mining management software in 2026: what it does, how LÅD, Braiins, Luxor, and Foreman actually compare, what it costs, and how to choose the right one for your site.",canonical:x2,ogImage:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/9952d639c_MockUpTheultimateGuidetochoosingyourbitcoinmininngsoftware.png",schemaData:e}),a.jsxs(Je,{children:[a.jsx("section",{className:"py-16",style:{background:"#1A1A1A",borderBottom:"1px solid rgba(255,255,255,0.06)"},children:a.jsxs("div",{className:"max-w-[860px] mx-auto px-6",children:[a.jsx(r5e,{current:"Bitcoin Mining Management Software Guide"}),a.jsx("div",{className:"tag-chip mb-4",children:"Pillar Guide · Bitcoin Mining Management Software"}),a.jsx("h1",{className:"font-display text-3xl md:text-4xl text-lod-white mb-6 leading-tight",children:Bf}),a.jsx("p",{className:"font-mono text-xs text-lod-gray",children:"By the LÅD Team · Last updated September 2026 · Sourced from public vendor documentation and pricing pages"})]})}),a.jsx("section",{className:"py-16",style:{background:"#1A1A1A"},children:a.jsxs("div",{className:"max-w-[860px] mx-auto px-6",children:[a.jsx(i5e,{items:A5e}),a.jsx(o5e,{}),a.jsx(l5e,{}),a.jsx(u5e,{}),a.jsx(g5e,{}),a.jsx(x5e,{}),a.jsx(v5e,{}),a.jsx(b5e,{}),a.jsx(j5e,{}),a.jsx(k5e,{faq:eL}),a.jsxs("div",{className:"mt-16 pt-12",style:{borderTop:"1px solid rgba(255,255,255,0.06)"},children:[a.jsx("h2",{className:"font-display text-2xl text-lod-white mb-4",children:"Get the full picture"}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-6",children:"This guide covers the category. For the complete comparison, including every table, the full pricing breakdown, and a printable format for your evaluation team, download the source guide."}),a.jsxs("div",{className:"flex flex-wrap gap-4",children:[a.jsx(ye,{to:"/lp/mining-platform-guide",className:"btn-primary text-sm px-6 py-3",children:"Download the complete ebook"}),a.jsx(ye,{to:"/contact",className:"btn-outline text-sm px-6 py-3",children:"Book a 30-minute strategy call"})]}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed mt-6",children:"We'll tell you honestly whether LÅD is the right layer for your stack, or whether one of the other three platforms in this guide solves your problem better."})]})]})})]})]})}function _C({tag:e,headline:t,description:n,image:r,imageAlt:i,headlineClassName:o="text-4xl md:text-5xl",exploreHref:s="/control-layer",exploreLabel:l="Explore the Platform",showEnergyCta:u=!0,exploreVariant:d="outline"}){const p=s.startsWith("http"),f=d==="primary"?"btn-primary text-base px-8 py-4":"btn-outline text-base px-8 py-4";return a.jsxs("section",{className:"relative overflow-hidden grid-lines-overlay",style:{background:"#232323",minHeight:"560px"},children:[a.jsx("div",{className:"max-w-[1400px] mx-auto px-6 py-20 md:py-24 relative z-10",children:a.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-16 items-center",children:[a.jsxs("div",{children:[a.jsx("div",{className:"section-label mb-5",children:e}),a.jsx("h1",{className:`font-display ${o} text-lod-white mb-6 leading-tight`,children:t}),a.jsx("p",{className:"text-lod-gray text-base md:text-lg mb-10 max-w-lg leading-relaxed",children:n}),a.jsxs("div",{className:"flex flex-wrap gap-4",children:[u&&a.jsx(ye,{to:"/contact",className:"btn-primary text-base px-8 py-4",children:"Book an Energy Strategy Call"}),p?a.jsx("a",{href:s,target:"_blank",rel:"noopener noreferrer",className:f,children:l}):a.jsx(ye,{to:s,className:f,children:l})]})]}),a.jsx("div",{className:"hidden lg:block",children:a.jsx("div",{className:"rounded-xl overflow-hidden",style:{border:"1px solid rgba(191,245,137,0.15)"},children:a.jsx("img",{src:r,alt:i,className:"w-full h-auto object-cover"})})})]})}),a.jsx("div",{className:"absolute bottom-0 left-0 right-0 h-px",style:{background:"linear-gradient(90deg, transparent, rgba(191,245,137,0.25), transparent)"}})]})}
2009function IC({tag:e,subtitle:t,headline:n,problems:r,problemsNote:i,solutionLabel:o,solutionNote:s,children:l}){return a.jsxs("section",{className:"relative overflow-hidden py-24",style:{background:"#BFF589"},children:[a.jsx("div",{"aria-hidden":"true",className:"pointer-events-none absolute inset-0",style:{backgroundImage:"linear-gradient(rgba(26,26,26,0.06) 1px, transparent 1px), linear-gradient(90deg, rgba(26,26,26,0.06) 1px, transparent 1px)",backgroundSize:"60px 60px"}}),a.jsxs("div",{className:"max-w-[1400px] mx-auto px-6 relative z-10",children:[a.jsx("h2",{className:"font-display text-2xl md:text-3xl mb-3 leading-tight",style:{color:"#1A1A1A"},children:n}),e&&a.jsx("p",{className:"font-mono text-xs uppercase tracking-widest mb-12",style:{color:"#1A1A1A",opacity:.7},children:e}),t&&a.jsx("div",{className:"mb-12",children:t}),a.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-16 items-start",children:[a.jsxs("div",{children:[a.jsx("div",{className:"inline-block font-mono text-xs uppercase tracking-widest mb-4 px-3 py-1 rounded-full",style:{color:"#1A1A1A",background:"rgba(26,26,26,0.1)"},children:"The Problem"}),i&&a.jsx("p",{className:"text-sm leading-relaxed mb-6",style:{color:"rgba(26,26,26,0.7)"},children:i}),a.jsx("div",{className:"space-y-4",children:r.map(u=>a.jsxs("div",{className:"rounded-xl p-6",style:{background:"rgba(26,26,26,0.92)",border:"1px solid rgba(255,255,255,0.08)"},children:[a.jsx("h3",{className:"font-display text-xl mb-2",style:{color:"#F9F9F9"},children:u.title}),a.jsx("p",{className:"text-sm leading-relaxed",style:{color:"#A0A0A0"},children:u.desc})]},u.title))})]}),a.jsxs("div",{children:[a.jsx("div",{className:"inline-block font-mono text-xs uppercase tracking-widest mb-4 px-3 py-1 rounded-full",style:{color:"#1A1A1A",background:"rgba(26,26,26,0.1)"},children:"The Fix"}),o&&a.jsx("div",{className:"font-mono text-xs uppercase tracking-widest mb-6",style:{color:"#1A1A1A",opacity:.7},children:o}),s&&a.jsx("p",{className:"text-sm leading-relaxed mb-8",style:{color:"rgba(26,26,26,0.7)"},children:s}),l]})]})]})]})}function T$({num:e,title:t,desc:n}){return a.jsxs("div",{className:"rounded-xl p-5 flex items-start gap-5",style:{background:"rgba(26,26,26,0.92)",border:"1px solid rgba(255,255,255,0.08)"},children:[a.jsx("div",{className:"font-display text-2xl flex-shrink-0",style:{color:"#BFF589"},children:e}),a.jsxs("div",{children:[a.jsx("h3",{className:"font-semibold mb-2",style:{color:"#F9F9F9"},children:t}),a.jsx("p",{className:"text-sm leading-relaxed",style:{color:"#A0A0A0"},children:n})]})]})}function RC({tag:e,headline:t,features:n}){return a.jsx("section",{className:"py-24",style:{background:"#0A0A0A"},children:a.jsxs("div",{className:"max-w-[1400px] mx-auto px-6",children:[a.jsxs("div",{className:"text-center mb-16",children:[a.jsx("div",{className:"section-label mb-4",children:e}),a.jsx("h2",{className:"font-display text-4xl md:text-5xl text-lod-white",children:t})]}),a.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6",children:n.map(r=>a.jsxs("div",{className:"card-obsidian p-8",children:[a.jsx("div",{className:"w-12 h-12 rounded-sm flex items-center justify-center mb-5",style:{background:"rgba(191,245,137,0.08)",border:"1px solid rgba(191,245,137,0.15)"},children:a.jsx(r.icon,{size:20,style:{color:"#BFF589"}})}),a.jsx("h3",{className:"font-display text-lg text-lod-white mb-3",children:r.title}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed",children:r.desc})]},r.title))})]})})}function DC({tag:e,headline:t,quote:n,quoteAuthor:r,stats:i}){return a.jsx("section",{className:"relative overflow-hidden py-24 grid-lines-overlay",style:{background:"#1A1A1A"},children:a.jsx("div",{className:"max-w-[1400px] mx-auto px-6 relative z-10",children:a.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-16 items-center",children:[a.jsxs("div",{children:[a.jsx("div",{className:"section-label mb-4",children:e}),a.jsx("h2",{className:"font-display text-4xl md:text-5xl text-lod-white mb-8 leading-tight",children:t}),a.jsxs("div",{className:"card-obsidian p-8",children:[a.jsx("div",{className:"text-5xl font-display mb-4 leading-none",style:{color:"rgba(191,245,137,0.35)"},children:'"'}),a.jsx("p",{className:"text-lod-white text-base leading-relaxed mb-5 italic",children:n}),a.jsx("p",{className:"text-lod-gray text-xs font-mono uppercase tracking-wider",children:r})]})]}),a.jsx("div",{className:"card-obsidian p-8 text-center",children:a.jsx("div",{className:"grid grid-cols-2 gap-8",children:i.map(o=>a.jsxs("div",{className:"text-center",children:[a.jsx("div",{className:"font-display text-3xl md:text-4xl mb-2",style:{color:"#BFF589"},children:o.val}),a.jsx("div",{className:"text-lod-gray text-xs font-mono uppercase tracking-wider",children:o.label})]},o.label))})})]})})})}const C5e=[{title:"Fragmented Grid Data",desc:"Every market reports differently, forcing teams to rebuild the same data plumbing instead of acting on it."},{title:"Hard to Compare Markets",desc:"Without a standardized layer, comparing conditions across grids or forecasting ahead of time is slow and error-prone."},{title:"Data That Doesn't Reach Execution",desc:"Dashboards that only display data leave a gap between insight and the systems that need to act on it."}],N5e=[{num:"01",title:"Unify",desc:"Real-time and historical market data standardized across every major North American grid."},{num:"02",title:"Analyze",desc:"Build dashboards, compare markets, and forecast conditions from one consistent data layer."}
2009,{num:"03",title:"Trigger",desc:"Integrated with every major QSE and CSP, so signals reach the systems, and IoT, that execute on them."}],T5e=[{icon:tU,title:"AI Chat",desc:"Use the AI chat to generate dashboards, ask energy market questions, or pull live data, all in seconds."},{icon:hU,title:"Custom Dashboards",desc:"Build dashboards tailored to how your team reads and acts on energy data."},{icon:qU,title:"Market Comparison",desc:"Compare conditions across markets side by side to inform every strategy decision."},{icon:vL,title:"Forecasting",desc:"See grid conditions ahead of time instead of reacting to yesterday's numbers."},{icon:jH,title:"Execution-Ready Signals",desc:"Send signals to the execution system of your choice."},{icon:lH,title:"Fully Integrated",desc:"Real-time configuration with all QSE & CSP."}];function E5e(){return a.jsxs(Je,{children:[a.jsx(He,{title:"LÅD Energy: The Operational Data Layer for Data Center Energy Strategy",description:"LÅD Energy unifies real-time and historical energy market data across every major North American grid, integrated with every major QSE and CSP, so decisions reach the systems that execute them.",canonical:"https://lod.io/lod-energy",schemaData:{"@context":"https://schema.org","@type":"Product",name:"LÅD Energy",url:"https://lod.io/lod-energy",brand:{"@type":"Organization",name:"LÅD Technologies"},description:"The operational data layer for mission-critical data center operations, unifying real-time and historical energy market data across every major North American grid."}}),a.jsx(_C,{tag:"Products / LÅD Energy",headline:a.jsxs(a.Fragment,{children:["THE DATA LAYER FOR",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"MISSION-CRITICAL ENERGY DECISIONS"})]}),headlineClassName:"text-3xl md:text-4xl",description:a.jsxs(a.Fragment,{children:["One ",a.jsx("span",{style:{color:"#BFF589"},children:"standardized data layer"})," for real-time and historical energy market data across every major ",a.jsx("span",{style:{color:"#BFF589"},children:"North American grid"}),", built for teams that need to ",a.jsx("span",{style:{color:"#BFF589"},children:"act"}),", not just observe."]}),image:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/4b7bebcca_generated_image.png",imageAlt:"Dark dashboard showing real-time energy grid data visualization with charts and a US grid map",exploreHref:"https://energy.lod.io/"}),a.jsx(IC,{subtitle:a.jsxs(a.Fragment,{children:[a.jsx("p",{className:"font-semibold mb-2",style:{color:"#1A1A1A"},children:"One Layer, From Data to Action"}),a.jsx("p",{className:"text-sm leading-relaxed",style:{color:"rgba(26,26,26,0.7)"},children:"Standardized data becomes dashboards, comparisons, forecasts, and signals, in that order."})]}),headline:a.jsxs(a.Fragment,{children:["STANDARDIZE THE DATA.",a.jsx("br",{}),"TRUST THE DECISION."]}),problems:C5e,children:a.jsx("div",{className:"grid grid-cols-1 gap-4",children:N5e.map(e=>a.jsx(T$,{...e},e.num))})}),a.jsx(RC,{tag:"Main Features",headline:a.jsxs(a.Fragment,{children:["From Standardized Data",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"to Triggered Action"})]}),features:T5e}),a.jsx(DC,{tag:"Proof",headline:a.jsxs(a.Fragment,{children:["One Data Layer,",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"Every Major Grid"})]}),quote:"LÅD Energy gives operators standardized data they can trust to build dashboards, compare markets, forecast conditions, and trigger signals into their existing IoT, all from one operational data layer.",quoteAuthor:"LÅD Energy customer outcome",stats:[{val:"1,000+ MW",label:"Under Management"},{val:"100+",label:"Data Centers"},{val:"Every Major",label:"North American Grid"},{val:"Real-Time",label:"QSE & CSP Integration"}]}),a.jsx(un,{ctaLabel:"Book an Energy Strategy Call",ctaHref:"/contact"})]})}const P5e=[{title:"Multiple Vendors",desc:"No standards for communication and data across the data center."},{title:"2am Manual Decisions",desc:"Running on day-ahead forecasts and manual calls means reacting to price spikes too late, after the margin is already gone."}
2009,{title:"Segregated Systems",desc:"Data, systems, and infrastructure operate in silos, disconnected and uncoordinated instead of communicating in real time."}],O5e=[{num:"01",title:"Observe",desc:"Continuous, trustworthy monitoring of infrastructure and live grid signals."},{num:"02",title:"Decide",desc:"A human-led energy strategy turns signals into the right action â not a black box."},{num:"03",title:"Execute",desc:"Reliable automation acts on live grid signals in real time, at the device level."}],_5e=[{icon:jg,title:"Real-Time Grid Signals",desc:"Act on live grid conditions instead of last night's forecast."},{icon:Ts,title:"Device-Level Automation",desc:"Reliable automation executes energy strategy directly at the device level â no new hardware required."},{icon:Sg,title:"Integrated End to End",desc:"Map the entire data center: sites, meters, sensors, devices, and power infrastructure, not just grid strategies or demand response."},{icon:KW,title:"Flexible Assets",desc:"Automate batteries, generators, and other on-site assets to add even more flexibility."},{icon:TL,title:"Deterministic Remote Monitoring",desc:"Full visibility and remote control of infrastructure from a single execution platform."},{icon:Es,title:"Auditable & Reliable",desc:"Trustworthy data and reporting built for teams accountable to owners, investors, or clients."}];function I5e(){return a.jsxs(Je,{children:[a.jsx(He,{title:"LÅD IoT â Execution Platform for Energy Strategy & Revenue",description:"LÅD IoT turns energy from your highest, most volatile cost into a managed revenue stream: reliable data, human-led energy strategy, and automation that acts on live grid signals in real time.",canonical:"https://lod.io/lod-iot",schemaData:{"@context":"https://schema.org","@type":"Product",name:"LÅD IoT",url:"https://lod.io/lod-iot",brand:{"@type":"Organization",name:"LÅD Technologies"},description:"Real-time monitoring, remote control, and automated energy strategy execution that turns data center infrastructure into grid-responsive participants."}}),a.jsx(_C,{tag:"Products / LÅD IoT",headline:a.jsxs(a.Fragment,{children:["ENERGY, TURNED FROM COST",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"INTO REVENUE"})]}),description:"Reliable data, a human-led energy strategy, and automation that acts on live grid signals in real time, turning your highest cost into a managed revenue stream.",image:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/6afa827a1_generated_image.png",imageAlt:"Automated data center energy infrastructure with batteries, generators, and IoT sensors connected by glowing green signal lines"}),a.jsx(IC,{subtitle:a.jsxs(a.Fragment,{children:[a.jsx("p",{className:"font-semibold mb-2",style:{color:"#1A1A1A"},children:"A Platform Built to Act, Not Just Watch"}),a.jsx("p",{className:"text-sm leading-relaxed",style:{color:"rgba(26,26,26,0.7)"},children:"Volatility becomes a controllable variable, not a constant risk."})]}),headline:a.jsxs(a.Fragment,{children:["STOP REACTING.",a.jsx("br",{}),"START EXECUTING."]}),problems:P5e,children:a.jsx("div",{className:"grid grid-cols-1 gap-4",children:O5e.map(e=>a.jsx(T$,{...e},e.num))})}),a.jsx(RC,{tag:"Main Features",headline:a.jsxs(a.Fragment,{children:["Real Execution,",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"Not Just Monitoring"})]}),features:_5e}),a.jsx(DC,{tag:"Proof",headline:a.jsxs(a.Fragment,{children:["Built on Years of",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"Real Energy Operations"})]}),quote:"By using LÅD, we turn energy from our highest uncontrolled cost into a revenue stream, capturing 4CP and demand response without new hardware and acting on live grid signals instead of last night's forecast.",quoteAuthor:"LÅD IoT customer outcome",stats:[{val:"1,000+ MW",label:"Under Management"},{val:"47%",label:"Reduction in Unnecessary Downtime"},{val:"<30s",label:"Grid Response Time"},{val:"20%+",label:"Avg Energy Cost Reduction"}]}),a.jsx(un,{ctaLabel:"Book an Energy Strategy Call",ctaHref:"/contact"})]})}function zf({children:e,delay:t=0,className:n=""}){return a.jsx(pt.div,{className:n,initial:{opacity:0,y:24},whileInView:{opacity:1,y:0},viewport:{once:!0,amount:.2},transition:{duration:.6,delay:t,ease:"easeOut"},children:e})}const R5e=[{title:"Interconnection Is the Bottleneck",desc:"MW you can't energize is revenue you can't earn. Slow interconnection and scarce grid capacity cap growth long before compute demand does."},{title:"Underused Power Is Burned Margin",desc:"Asset-light compute economics mean every idle megawatt eats into the bottom line, while competitors race for the same power."},{title:"Not All Workloads Behave the Same",desc:"Training and inference have very different c
2009onstraints, and treating them the same way leaves flexibility â and revenue â on the table."}],D5e=[{icon:xt,title:"Speed to Power",desc:"Connect faster by becoming flexible: energize more compute per site without waiting on new substation capacity."},{icon:zU,title:"NVIDIA DSX Interconnection",desc:"Direct interconnection with NVIDIA DSX to throttle or curtail training workloads at the GPU level with zero SLA impact."},{icon:NL,title:"CEDN Distribution Engine",desc:"The Compute Energy Distribution Network routes SLA-sensitive inference across data centers in real time based on grid conditions."},{icon:AL,title:"Live Grid-Aware Routing",desc:"Every routing decision reacts to real-time grid conditions and energy cost, not a static schedule."},{icon:Ts,title:"Compute Efficiency",desc:"Smarter cache management and workload placement squeeze more useful compute out of every energized megawatt."},{icon:Eg,title:"Energy Cost Smart Routing",desc:"Workloads shift automatically to wherever energy is cheaper, cutting cost instead of running static."}];function M5e(){return a.jsxs(Je,{children:[a.jsx(He,{title:"LÅD Flexible Compute â Grid-Aware Workload & DSX Interconnection Engine",description:"LÅD Flexible Compute balances AI compute across data centers and GPUs in response to real-time grid conditions, energizing more compute per site without waiting on new substation capacity.",canonical:"https://lod.io/lod-flexible-compute",schemaData:{"@context":"https://schema.org","@type":"Product",name:"LÅD Flexible Compute",url:"https://lod.io/lod-flexible-compute",brand:{"@type":"Organization",name:"LÅD Technologies"},description:"The workload distribution and DSX interconnection engine that balances AI compute across data centers and GPUs in response to real-time grid conditions and energy cost."}}),a.jsx(pt.div,{initial:{opacity:0,y:16},animate:{opacity:1,y:0},transition:{duration:.7,ease:"easeOut"},children:a.jsx(_C,{tag:"Products / LÅD Flexible Compute",headline:a.jsxs(a.Fragment,{children:["SPEED TO POWER",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"FOR AI COMPUTE"})]}),description:"Energize more compute per site and earn grid revenue by flexing workloads against live grid signals, without waiting on new substation capacity or touching SLAs.",image:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/e36f08d39_generated_image.png",imageAlt:"Aerial view of multiple data centers connected by glowing green light trails and grid transmission lines, showing AI workloads distributed across sites in response to grid conditions",exploreHref:"/lp/flexible-compute-demo",exploreLabel:"See Your Speed to Power",showEnergyCta:!1,exploreVariant:"primary"})}),a.jsx(zf,{children:a.jsx(IC,{headline:a.jsxs(a.Fragment,{children:["POWER IS THE LIMIT.",a.jsx("br",{}),"FLEXIBILITY IS THE UNLOCK."]}),problems:R5e,problemsNote:"No real approach to be flexible and stay SLA compliant",solutionNote:"Training and inference move differently, so LÅD handles them differently.",children:a.jsx("div",{className:"grid grid-cols-1 gap-4",children:[{label:"Training",color:"#BFF589",border:"rgba(255,255,255,0.08)",title:"Throttle & Curtail Freely",desc:"No SLA to protect, so training can flex against grid conditions in real time. LÅD interconnects directly with NVIDIA DSX to manage this at the GPU level."},{label:"Inference",color:"#93C5FD",border:"rgba(147,197,253,0.25)",title:"Distribute, Don't Disrupt",desc:"Response-time sensitive, so instead of curtailing, LÅD's CEDN routes inference across data centers in real time with zero impact on response time."},{label:"Every Site",color:"#BFF589",border:"rgba(255,255,255,0.08)",title:"Batteries & Generators Add Flexibility Too",desc:"LÅD IoT can automate on-site assets like batteries and generators, adding another layer of flexibility beyond the workload itself."}].map((e,t)=>a.jsxs(pt.div,{className:"rounded-xl p-6",style:{background:"rgba(26,26,26,0.92)",border:`1px solid ${e.border}`},initial:{opacity:0,x:-16},whileInView:{opacity:1,x:0},viewport:{once:!0,amount:.3},transition:{duration:.5,delay:t*.1,ease:"easeOut"},whileHover:{y:-3,borderColor:"rgba(191,245,137,0.35)"},children:[a.jsx("div",{className:"font-mono text-xs uppercase tracking-widest mb-2",style:{color:e.color},children:e.label}),a.jsx("h3",{className:"font-display text-xl mb-2",style:{color:"#F9F9F9"},children:e.title}),a.jsx("p",{className:"text-sm leading-relaxed",style:{color:"#A0A0A0"},children:e.desc})]},e.title))})})}),a.jsx("div",{className:"text-center py-4",children:a.jsx(pt.div,{className:"inline-block",whileHover:{scale:1.04},whileTap:{scale:.97},children:a.jsxs(ye,{to:"/lp/flexible-compute-demo",className:"btn-primary text-base px-10 py-4 inline-flex items-center gap-2",children:["Find Your Flexibility Strategy ",a.jsx(Ve,{size:16})]})})}),a.jsx(zf,{children:a.jsx(RC,{tag:"Main Features",headline:a.jsxs(a.Fragment,{children:["Built to Move Compute",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"Not Just Data"})]}),features:D5e})}),a.jsx(zf,{children:a.jsx(DC,{tag:"Proof",headline:a.jsxs(a.Fragment,{children:["Real Results From",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"Grid-Aware Compute"})]}),quote:"Using LÅD, we energize more compute per site and earn grid revenue by flexing inference workloads against live grid signals, without waiting on new substation capacity or affecting SLAs.",quoteAuthor:"LÅD Flexible Compute customer outcome",stats:[{val:"1,000+ MW",label:"Under Management"},{val:"<30s",label:"Grid Response Time"},{val:"20%+",label:"Avg Energy Cost Reduction"}]})}),a.jsx("div",{className:"text-center py-4",children:a.jsx(pt.div,{className:"inline-block",whileHover:{scale:1.04},whileTap:{scale:.97},children:a.jsxs(ye,{to:"/lp/flexible-compute-demo",className:"btn-outline text-base px-10 py-4 inline-flex items-center gap-2",children:["See How Much Compute You Can Unlock ",a.jsx(Ve,{size:16})]})})}),a.jsx(zf,{children:a.jsx(un,{ctaLabel:"Book a Flexible Solution Call",ctaHref:"/lp/flexible-compute-demo"})})]})}function L5e({end:e,suffix:t="",duration:n=2e3}){const[r,i]=O.useState(0),o=O.useRef(null);return O.useEffect(()=>{const s=new IntersectionObserver(([l])=>{if(!l.isIntersecting)return;s.disconnect();let u=0;const d=e/(n/16),p=()=>{u+=d,u<e?(i(Math.floor(u)),requestAnimationFrame(p)):i(e)};requestAnimationFrame(p)});return o.current&&s.observe(o.current),()=>s.disconnect()}
2009,[e,n]),a.jsxs("span",{ref:o,children:[r.toLocaleString(),t]})}const tL=[{x:"0%",v:1},{x:"10%",v:2},{x:"20%",v:3},{x:"30%",v:4},{x:"40%",v:5},{x:"50%",v:6},{x:"60%",v:8},{x:"70%",v:12},{x:"80%",v:28},{x:"90%",v:95},{x:"95%",v:148},{x:"100%",v:130},{x:"105%",v:62,highlight:!0},{x:"110%",v:18},{x:"115%",v:5},{x:"120%",v:2}];function F5e({model:e,you:t,index:n,delta:r}){return a.jsxs("div",{className:"rounded-xl overflow-hidden",style:{background:"#141414",border:"1px solid rgba(255,255,255,0.1)"},children:[a.jsxs("div",{className:"flex items-center justify-between px-4 py-3",style:{borderBottom:"1px solid rgba(255,255,255,0.07)"},children:[a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("div",{className:"grid grid-cols-2 gap-0.5",style:{width:14},children:[0,1,2,3].map(i=>a.jsx("div",{className:"w-1.5 h-1.5 rounded-sm",style:{background:"#BFF589"}},i))}),a.jsx("span",{className:"font-mono text-sm font-semibold",style:{color:"#F9F9F9"},children:"Hashrate Realization"})]}),a.jsx("div",{style:{color:"#A0A0A0",fontSize:11},children:"â"})]}),a.jsxs("div",{className:"p-4",children:[a.jsxs("div",{className:"flex items-start gap-4 mb-4",children:[a.jsxs("div",{className:"flex-1 rounded px-3 py-2 flex items-center justify-between",style:{border:"1.5px solid #BFF589",background:"transparent"},children:[a.jsxs("div",{children:[a.jsx("div",{className:"font-mono text-xs",style:{color:"#606060"},children:"Model"}),a.jsx("div",{className:"font-mono text-sm",style:{color:"#F9F9F9"},children:e})]}),a.jsx(kg,{size:14,style:{color:"#BFF589"}})]}),a.jsx("div",{className:"flex gap-6 pt-1",children:[{label:"You",val:t},{label:"Index",val:n},{label:"Î",val:r}].map(({label:i,val:o})=>a.jsxs("div",{className:"text-center",children:[a.jsx("div",{className:"font-mono text-xs mb-1",style:{color:"#A0A0A0"},children:i}),a.jsx("div",{className:"font-mono text-lg font-bold",style:{color:i==="Î"?r.startsWith("+")?"#BFF589":"#FF3B30":"#F9F9F9"},children:o})]},i))})]}),a.jsx("div",{style:{height:120},children:a.jsx(ks,{width:"100%",height:"100%",children:a.jsxs(w9,{data:tL,barCategoryGap:2,margin:{top:0,right:0,left:-20,bottom:0},children:[a.jsx(Vr,{dataKey:"x",tick:{fontSize:9,fill:"#606060",fontFamily:"JetBrains Mono"},tickLine:!1,axisLine:!1,interval:1}),a.jsx(Gr,{tick:{fontSize:9,fill:"#606060",fontFamily:"JetBrains Mono"},tickLine:!1,axisLine:!1}),a.jsx(Ls,{x:"100%",stroke:"rgba(191,245,137,0.4)",strokeDasharray:"3 3",label:{value:"Index",position:"top",fontSize:9,fill:"#A0A0A0",fontFamily:"JetBrains Mono"}}),a.jsx(Ls,{x:"105%",stroke:"rgba(191,245,137,0.9)",strokeWidth:2,label:{value:"You",position:"top",fontSize:9,fill:"#BFF589",fontFamily:"JetBrains Mono"}}),a.jsx(To,{dataKey:"v",radius:[2,2,0,0],children:tL.map((i,o)=>a.jsx(Xg,{fill:i.highlight?"#BFF589":"rgba(191,245,137,0.35)"},o))})]})})})]})]})}function B5e(){const[e,t]=O.useState(0),n=[{label:"S19j Pro",model:"S19j Pro",you:"103.0%",index:"99.1%",delta:"+3.9%",insight:"30 workers benchmarked against 400+ peers running the same model in your region."},{label:"M56s++",model:"M56s++",you:"101.2%",index:"99.8%",delta:"+1.4%",insight:"Tight clustering near 100%. Most machines performing within expected range."},{label:"S21 XP Hyd",model:"S21 XP Hyd",you:"103.0%",index:"99.1%",delta:"+3.9%",insight:"Long tail on the left flags machines pulling the fleet average down."}];return a.jsxs(Je,{children:[a.jsx(He,{title:"Hashrate Realization Index â Real-World Fleet Benchmarks | LÅD",description:"HRI gives you a real-world benchmark for your exact hardware model and conditions. Instantly identify underperforming machines and make decisions based on actual data, not lab specs.",canonical:"https://lod.io/hri"}),a.jsxs("section",{className:"relative pt-16 pb-20 overflow-hidden",style:{background:"#0A0A0A"},children:[a.jsx("div",{className:"absolute inset-0 grid-blueprint opacity-30 pointer-events-none"}),a.jsx("div",{className:"absolute top-0 left-1/2 -translate-x-1/2 w-[900px] h-[400px] pointer-events-none",style:{background:"radial-gradient(ellipse at 50% 0%, rgba(191,245,137,0.07) 0%, transparent 70%)",filter:"blur(40px)"}}),a.jsxs("div",{className:"max-w-[900px] mx-auto px-6 text-center relative z-10 pt-10",children:[a.jsx("div",{className:"inline-flex items-center gap-2 px-3 py-1.5 rounded-full mb-6",style:{background:"rgba(191,245,137,0.08)",border:"1px solid rgba(191,245,137,0.2)"},children:a.jsx("span",{className:"font-mono text-xs",style:{color:"#BFF589"},children:"DATA LAYER · FEATURE"})}),a.jsxs("h1",{className:"font-display text-5xl md:text-6xl lg:text-7xl text-lod-white mb-6 leading-none",children:["Know exactly where",a.jsx("br",{}),"your hashrate stands"]}),a.jsx("p",{className:"text-lod-gray text-lg leading-relaxed mb-10 max-w-2xl mx-auto",children:"Hashrate Realization Index (HRI) gives you a real-world benchmark for your exact hardware model and conditions. Instantly identify underperforming machines and make decisions based on actual data, not lab specs."}),a.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-center gap-4",children:[a.jsxs("a",{href:"#how-it-works",className:"inline-flex items-center gap-2 px-8 py-4 rounded-lg text-base font-semibold transition-all duration-200",style:{background:"#BFF589",color:"#1A1A1A",fontFamily:"Montserrat, sans-serif",boxShadow:"0 4px 30px rgba(191,245,137,0.25)"},children:["See How It Works ",a.jsx(Ve,{size:16})]}),a.jsxs("a",{href:"/contact",className:"inline-flex items-center gap-2 text-sm font-semibold transition-colors",style:{color:"#A0A0A0",fontFamily:"Montserrat, sans-serif"},children:["Start Using LÅD ",a.jsx(Ve,{size:14})]})]})]})]}),a.jsx("section",{className:"py-8",style:{background:"#111",borderTop:"1px solid rgba(255,255,255,0.05)",borderBottom:"1px solid rgba(255,255,255,0.05)"},children:a.jsx("div",{className:"max-w-[1100px] mx-auto px-6",children:a.jsx("div",{className:"grid grid-cols-2 md:grid-cols-3 gap-8 text-center justify-items-center",children:[{n:1e3,suf:"+ MW",label:"Under Management"},{n:10,suf:"B+",label:"Data Points Indexed"},{n:50,suf:"+",label:"Hardware Models Tracked"}].map(r=>a.jsxs("div",{children:[a.jsx("div",{className:"font-display text-3xl md:text-4xl mb-1",style:{color:"#BFF589"},children:a.jsx(L5e,{end:r.n,suffix:r.suf})}),a.jsx("div",{className:"font-mono text-xs uppercase tracking-widest",style:{color:"#606060"},children:r.label})]},r.label))})})}),a.jsx("section",{className:"py-24",style:{background:"#0D0D0D",borderBottom:"1px solid rgba(255,255,255,0.06)"},children:a.jsxs("div",{className:"max-w-[900px] mx-auto px-6",children:[a.jsxs("div",{className:"text-center mb-14",children:[a.jsx("div",{className:"section-label mb-4",children:"The Problem"}),a.jsx("h2",{className:"font-display text-4xl text-lod-white leading-tight",children:"Your current benchmark vs. HRI"})]}),a.jsxs("div",{className:"grid md:grid-cols-2 gap-4",children:[a.jsxs("div",{className:"rounded-2xl p-6",style:{background:"rgba(255,59,48,0.05)",border:"1px solid rgba(255,59,48,0.2)"},children:[a.jsxs("div",{className:"flex items-center gap-3 mb-5",children:[a.jsx(EH,{size:16,style:{color:"#FF3B30"}}),a.jsx("span",{className:"font-semibold text-sm",style:{color:"#FF3B30",fontFamily:"Montserrat, sans-serif"},children:"Manufacturer Nameplate"})]}),a.jsx("ul",{className:"space-y-3 mb-6",children:["Set in a controlled lab environment","Ideal temperature, stable voltage","No seasonal or weather adjustment","Static. Never reflects your reality"].map(r=>a.jsxs("li",{className:"flex items-center gap-2 text-sm",style:{color:"#808080"},children:[a.jsx("span",{style:{color:"#FF3B30"},children:"â"})," ",r]},r))}),a.jsxs("div",{className:"pt-5 mt-2",style:{borderTop:"1px solid rgba(255,59,48,0.15)"},children:[a.jsxs("div",{className:"flex items-center justify-between font-mono text-sm",children:[a.jsx("span",{style:{color:"#606060"},children:"Benchmark"}),a.jsx("span",{className:"font-bold",style:{color:"#F9F9F9"},children:"110 TH/s"})]}),a.jsx("div",{className:"mt-2 h-2 rounded-full overflow-hidden",style:{background:"rgba(255,255,255,0.06)"},children:a.jsx("div",{className:"h-full rounded-full",style:{width:"100%",background:"rgba(255,59,48,0.4)"}})}),a.jsx("p",{className:"font-mono text-xs mt-2",style:{color:"#FF3B30"},children:"Chasing a number that was never yours to hit"})]})]}),a.jsxs("div",{className:"rounded-2xl p-6",style:{background:"rgba(191,245,137,0.05)",border:"1px solid rgba(191,245,137,0.25)"},children:[a.jsxs("div",{className:"flex items-center gap-3 mb-5",children:[a.jsx(di,{size:16,style:{color:"#BFF589"}}),a.jsx("span",{className:"font-semibold text-sm",style:{color:"#BFF589",fontFamily:"Montserrat, sans-serif"},children:"HRI Benchmark"})]}),a.jsx("ul",{className:"space-y-3 mb-6",children:["Millions of historical data points, filtered to your model","Adjusted for your region, current season, and weather","Aggregated and anonymized. No competitor data exposed","Continuously refined as new fleet data flows in"].map(r=>a.jsxs("li",{className:"flex items-center gap-2 text-sm",style:{color:"#A0A0A0"},children:[a.jsx("span",{style:{color:"#BFF589"},children:"â"})," ",r]},r))}),a.jsxs("div",{className:"pt-5 mt-2",style:{borderTop:"1px solid rgba(191,245,137,0.15)"},children:[a.jsxs("div",{className:"flex items-center justify-between font-mono text-sm",children:[a.jsx("span",{style:{color:"#606060"},children:"Real-world benchmark"}),a.jsx("span",{className:"font-bold",style:{color:"#BFF589"},children:"96.4 TH/s"})]}),a.jsx("div",{className:"mt-2 h-2 rounded-full overflow-hidden",style:{background:"rgba(255,255,255,0.06)"},children:a.jsx("div",{className:"h-full rounded-full",style:{width:"88%",background:"#BFF589"}})}),a.jsx("p",{className:"font-mono text-xs mt-2",style:{color:"#BFF589"},children:"The number your site actually delivers"})]})]})]})]})}),a.jsx("section",{className:"py-24",style:{background:"#1A1A1A",borderBottom:"1px solid rgba(255,255,255,0.06)"},children:a.jsx("div",{className:"max-w-[1200px] mx-auto px-6",children:a.jsxs("div",{className:"grid lg:grid-cols-2 gap-16 items-center",children:[a.jsxs("div",{children:[a.jsx("div",{className:"section-label mb-4",children:"The Distribution View"}),a.jsx("h2",{className:"font-display text-4xl md:text-5xl text-lod-white mb-5 leading-tight",children:"See where you stand"}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-8",children:"The HRI distribution shows how every machine in your fleet compares to the aggregated index for that exact model. Built from millions of historical data points, filtered to match your region and current conditions. Your position, your delta, your underperformers â all at a glance."}),a.jsx("ul",{className:"space-y-3",children:["Index is model-specific. S19j Pro is never compared to an S21","Pinpoint exactly which machines are underperforming and by how much","Filter by hardware model to isolate performance across your fleet","Worker counts per realization bucket. No guessing how many machines are affected"].map((r,i)=>a.jsxs("li",{className:"flex items-start gap-3 text-sm",style:{color:"#C0C0C0"},children:[a.jsx("span",{className:"mt-1 w-4 h-4 rounded-sm flex items-center justify-center flex-shrink-0",style:{background:"rgba(191,245,137,0.15)",color:"#BFF589",fontSize:10},children:"â"}),r]},i))})]}),a.jsxs("div",{children:[a.jsx("div",{className:"flex gap-1 mb-4 p-1 rounded-lg",style:{background:"rgba(255,255,255,0.04)",border:"1px solid rgba(255,255,255,0.07)"},children:n.map((r,i)=>a.jsx("button",{onClick:()=>t(i),className:"flex-1 px-3 py-1.5 rounded-md text-xs font-mono transition-all",style:{background:e===i?"rgba(191,245,137,0.12)":"transparent",color:e===i?"#BFF589":"#606060",border:e===i?"1px solid rgba(191,245,137,0.25)":"1px solid transparent"},children:r.label},i))}),a.jsx(F5e,{model:n[e].model,you:n[e].you,index:n[e].index,delta:n[e].delta}),a.jsx("div",{className:"mt-3 px-4 py-3 rounded-lg",style:{background:"rgba(191,245,137,0.05)",border:"1px solid rgba(191,245,137,0.12)"},children:a.jsxs("p",{className:"font-mono text-xs",style:{color:"#A0A0A0"},children:[a.jsx("span",{style:{color:"#BFF589"},children:"â"})," ",n[e].insight]})})]})]})})}),a.jsx("section",{className:"py-24",style:{background:"#0A0A0A",borderBottom:"1px solid rgba(255,255,255,0.06)"},children:a.jsx("div",{className:"max-w-[1200px] mx-auto px-6",children:a.jsxs("div",{className:"grid lg:grid-cols-2 gap-16 items-center",children:[a.jsxs("div",{className:"order-2 lg:order-1",children:[a.jsx("div",{className:"rounded-xl overflow-hidden",style:{border:"1px solid rgba(255,255,255,0.1)",boxShadow:"0 24px 60px rgba(0,0,0,0.5)"},children:a.jsx("img",{src:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/dd6d7bde1_Screenshot2026-05-12at24042PM.png",alt:"HRI distribution view showing S19j Pro at 103.0% vs 99.1% index",className:"w-full h-auto block"})}),a.jsx("div",{className:"mt-3 px-4 py-3 rounded-lg",style:{background:"rgba(255,255,255,0.03)",border:"1px solid rgba(255,255,255,0.07)"},children:a.jsxs("p",{className:"font-mono text-xs",style:{color:"#A0A0A0"},children:["S19j Pro fleet · 103.0% realization · ",a.jsx("span",{style:{color:"#BFF589"},children:"+3.9% above index"})]})})]}),a.jsxs("div",{className:"order-1 lg:order-2",children:[a.jsx("div",{className:"section-label mb-4",children:"How the Index is Built"}),a.jsx("h2",{className:"font-display text-4xl text-lod-white mb-5 leading-tight",children:"Millions of data points matched to your setup"}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-3",children:"The HRI index is derived from millions of historical performance data points filtered to match your specific hardware model, then cross-referenced against live data from your region, season, and weather conditions."}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-6",children:"You're not seeing competitor data. You're seeing an anonymized, aggregated benchmark built specifically for your gear and
2009your conditions. No individual operator data is ever exposed."}),a.jsx("ul",{className:"space-y-3",children:["Millions of historical data points power the index. Not a single snapshot","Filtered to your exact hardware model. No cross-model comparisons","Live factors applied: current season, regional weather, power profile","Fully anonymized. Individual operator data is never visible"].map((r,i)=>a.jsxs("li",{className:"flex items-start gap-3 text-sm",style:{color:"#C0C0C0"},children:[a.jsx("span",{className:"mt-1 w-4 h-4 rounded-sm flex items-center justify-center flex-shrink-0",style:{background:"rgba(191,245,137,0.15)",color:"#BFF589",fontSize:10},children:"â"}),r]},i))})]})]})})}),a.jsx("section",{className:"py-24",style:{background:"#111",borderBottom:"1px solid rgba(255,255,255,0.06)"},children:a.jsx("div",{className:"max-w-[1200px] mx-auto px-6",children:a.jsxs("div",{className:"grid lg:grid-cols-2 gap-16 items-center",children:[a.jsxs("div",{children:[a.jsx("div",{className:"section-label mb-4",children:"Actionable Underperformer Detection"}),a.jsx("h2",{className:"font-display text-4xl text-lod-white mb-5 leading-tight",children:"Identify underperforming machines instantly"}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-6",children:"Every bar in the distribution is clickable. Select any realization range and immediately see exactly which machines fall in it â model, realization %, and worker count. Then open them directly in your ASIC view to investigate or act. No spreadsheets. No manual cross-referencing."}),a.jsx("ul",{className:"space-y-3",children:["Click any bucket to immediately identify the underperforming machines","See model, realization range, and worker count in one view","Jump directly to those ASICs to take action. One click","Make better decisions based on real data, not nameplate assumptions"].map((r,i)=>a.jsxs("li",{className:"flex items-start gap-3 text-sm",style:{color:"#C0C0C0"},children:[a.jsx("span",{className:"mt-1 w-4 h-4 rounded-sm flex items-center justify-center flex-shrink-0",style:{background:"rgba(191,245,137,0.15)",color:"#BFF589",fontSize:10},children:"â"}),r]},i))})]}),a.jsxs("div",{children:[a.jsx("div",{className:"rounded-xl overflow-hidden",style:{border:"1px solid rgba(255,255,255,0.1)",boxShadow:"0 24px 60px rgba(0,0,0,0.5)"},children:a.jsx("img",{src:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/5e00cd231_Screenshot2026-05-12at24127PM.png",alt:"Open ASICs view modal showing model S19 Pro, realization 102.0%-105.0%, ~12 workers",className:"w-full h-auto block"})}),a.jsx("div",{className:"mt-3 px-4 py-3 rounded-lg",style:{background:"rgba(255,255,255,0.03)",border:"1px solid rgba(255,255,255,0.07)"},children:a.jsxs("p",{className:"font-mono text-xs",style:{color:"#A0A0A0"},children:["Selected: S19 Pro · 102%â105% range · ~12 workers · ",a.jsx("span",{style:{color:"#BFF589"},children:"Open in ASIC view â"})]})})]})]})})}),a.jsx("section",{className:"py-24",style:{background:"#1A1A1A",borderBottom:"1px solid rgba(255,255,255,0.06)"},children:a.jsx("div",{className:"max-w-[1200px] mx-auto px-6",children:a.jsxs("div",{className:"grid lg:grid-cols-2 gap-16 items-center",children:[a.jsxs("div",{className:"order-2 lg:order-1 space-y-3",children:[a.jsx("div",{className:"rounded-xl overflow-hidden",style:{border:"1px solid rgba(255,255,255,0.1)",boxShadow:"0 16px 40px rgba(0,0,0,0.4)"},children:a.jsx("img",{src:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/21539ca88_Screenshot2026-05-12at24159PM.png",alt:"M56s++ showing tight distribution near 100%",className:"w-full h-auto block"})}),a.jsxs("div",{className:"flex gap-3",children:[a.jsxs("div",{className:"flex-1 px-3 py-2 rounded-lg text-center",style:{background:"rgba(191,245,137,0.06)",border:"1px solid rgba(191,245,137,0.15)"},children:[a.jsx("div",{className:"font-mono text-xs",style:{color:"#BFF589"},children:"Tight Distribution"}),a.jsx("div",{className:"font-mono text-xs mt-1",style:{color:"#606060"},children:"Fleet is healthy"})]}),a.jsxs("div",{className:"flex-1 px-3 py-2 rounded-lg text-center",style:{background:"rgba(255,211,10,0.05)",border:"1px solid rgba(255,211,10,0.15)"},children:[a.jsx("div",{className:"font-mono text-xs",style:{color:"#FFD60A"},children:"Wide Spread"}),a.jsx("div",{className:"font-mono text-xs mt-1",style:{color:"#606060"},children:"Outliers to investigate"})]})]})]}),a.jsxs("div",{className:"order-1 lg:order-2",children:[a.jsx("div",{className:"section-label mb-4",children:"Fleet Health at a Glance"}),a.jsx("h2",{className:"font-display text-4xl text-lod-white mb-5 leading-tight",children:"Read your fleet in seconds"}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-6",children:"A tight cluster near the index means your fleet is consistent and performing as expected. A wide spread with a long left tail means underperforming machines are silently dragging your average down."}),a.jsx("ul",{className:"space-y-3",children:["Tight cluster = fleet is consistent and hitting the index","Left tail = underperformers to investigate. Now you can see exactly which ones","Right tail = machines beating the index. Learn from what's working","Available for every hardware model in your fleet"].map((r,i)=>a.jsxs("li",{className:"flex items-start gap-3 text-sm",style:{color:"#C0C0C0"},children:[a.jsx("span",{className:"mt-1 w-4 h-4 rounded-sm flex items-center justify-center flex-shrink-0",style:{background:"rgba(191,245,137,0.15)",color:"#BFF589",fontSize:10},children:"â"}),r]},i))})]})]})})}),a.jsx("section",{id:"how-it-works",className:"py-24",style:{background:"#0D0D0D",borderBottom:"1px solid rgba(255,255,255,0.06)"},children:a.jsxs("div",{className:"max-w-[1100px] mx-auto px-6",children:[a.jsxs("div",{className:"text-center max-w-2xl mx-auto mb-14",children:[a.jsx("div",{className:"section-label mb-4",children:"How to Use It"}),a.jsx("h2",{className:"font-display text-4xl text-lod-white mb-4 leading-tight",children:"Up and running in seconds"}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed",children:"HRI is built into your LÅD IoT dashboard. No setup, no integrations. Just open it and start benchmarking."})]}),a.jsxs("div",{className:"grid lg:grid-cols-2 gap-12 items-center",children:[a.jsx("div",{className:"rounded-xl overflow-hidden",style:{border:"1px solid rgba(191,245,137,0.2)",boxShadow:"0 24px 60px rgba(0,0,0,0.6)"},children:a.jsx("img",{src:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/d1c37782a_HRIScreenrecordinggif.gif",alt:"HRI walkthrough â selecting the widget, choosing a model, and drilling into underperforming ASICs",className:"w-full h-auto block"})}),a.jsx("div",{className:"space-y-6",children:[{n:"01",title:"Open your IoT dashboard",body:"Click the gear icon above the dashboard stat c
2009ards and select Hashrate Realization from the widget list."},{n:"02",title:"Choose your hardware model",body:"Select the ASIC model you want to benchmark. The distribution chart loads instantly, showing your fleet against the HRI index."},{n:"03",title:"Click any bar to inspect machines",body:"Select a realization range on the chart to see exactly which devices fall in it â model, realization %, and worker count."},{n:"04",title:"Jump to those ASICs in one click",body:'Click "View in ASICs" and LÅD automatically filters your ASIC tab to show only those devices. Investigate or act immediately.'}].map(r=>a.jsxs("div",{className:"flex gap-4",children:[a.jsx("div",{className:"font-mono text-xs font-bold flex-shrink-0 w-8 h-8 rounded-sm flex items-center justify-center mt-0.5",style:{background:"rgba(191,245,137,0.1)",color:"#BFF589",border:"1px solid rgba(191,245,137,0.2)"},children:r.n}),a.jsxs("div",{children:[a.jsx("div",{className:"font-display text-base text-lod-white mb-1",children:r.title}),a.jsx("div",{className:"text-sm leading-relaxed",style:{color:"#A0A0A0"},children:r.body})]})]},r.n))})]})]})}),a.jsx("section",{className:"py-24",style:{background:"#0A0A0A"},children:a.jsxs("div",{className:"max-w-[700px] mx-auto px-6 text-center",children:[a.jsxs("div",{className:"inline-flex items-center gap-2 px-4 py-2 rounded-full mb-8",style:{background:"rgba(191,245,137,0.08)",border:"1px solid rgba(191,245,137,0.18)"},children:[a.jsx(xt,{size:13,style:{color:"#BFF589"}}),a.jsx("span",{className:"font-mono text-xs text-lod-green uppercase tracking-wider",children:"Available inside LÅD · No setup required"})]}),a.jsxs("h2",{className:"font-display text-4xl md:text-5xl text-lod-white mb-5 leading-none",children:["HRI is already running",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"inside your LÅD dashboard"})]}),a.jsx("p",{className:"text-lod-gray text-base mb-10 max-w-md mx-auto leading-relaxed",children:"If you're on LÅD, HRI is live. Open your IoT dashboard and look for the Hashrate Realization panel."}),a.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-center gap-4",children:[a.jsxs("a",{href:"/contact",className:"inline-flex items-center gap-3 px-8 py-4 rounded-lg text-base font-semibold transition-all duration-200",style:{background:"#BFF589",color:"#1A1A1A",fontFamily:"Montserrat, sans-serif",boxShadow:"0 4px 30px rgba(191,245,137,0.25)"},children:["Start Using LÅD ",a.jsx(Ve,{size:16})]}),a.jsx("a",{href:"/docs",className:"text-sm font-semibold transition-colors",style:{color:"#A0A0A0",fontFamily:"Montserrat, sans-serif"},children:"Read the docs â"})]})]})})]})}function z5e(){return a.jsxs("div",{style:{background:"#1A1A1A",minHeight:"100vh",padding:"60px 40px",maxWidth:"1100px",margin:"0 auto"},children:[a.jsx(He,{title:"LÅD Design System â Components, Tokens & Patterns",description:"Internal reference for the LÅD design system. Color palette, typography, buttons, tags, cards, section backgrounds, spacing, borders, and animation tokens.",canonical:"https://lod.io/design-system"}),a.jsxs("div",{style:{borderBottom:"1px solid rgba(191,245,137,0.3)",paddingBottom:"32px",marginBottom:"64px"},children:[a.jsx("p",{className:"font-mono text-xs uppercase tracking-widest mb-2",style:{color:"#BFF589"},children:"LÅD Design System"}),a.jsx("h1",{className:"font-display text-5xl text-lod-white",children:"Design System Reference"}),a.jsx("p",{className:"text-lod-gray mt-3 text-base",children:"Internal reference â not in navigation. Every token, component, and pattern used across the site."})]}),a.jsx(ki,{label:"01",title:"Color Palette",children:a.jsx("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-4",children:[{name:"lod-green",hex:"#BFF589",usage:"Primary accent, CTAs, highlights"},{name:"lod-white",hex:"#F9F9F9",usage:"Body text, headings"},{name:"lod-black",hex:"#1A1A1A",usage:"Page background"},{name:"lod-obsidian",hex:"#2C2C2C",usage:"Card backgrounds"},{name:"lod-gray",hex:"#A0A0A0",usage:"Secondary / muted text"},{name:"lod-red",hex:"#FF3B30",usage:"Errors, danger states"},{name:"Dark BG alt",hex:"#0A0A0A",usage:"Section alternates"},{name:"Border",hex:"rgba(255,255,255,0.08)",usage:"Card & UI borders"}].map(e=>a.jsxs("div",{children:[a.jsx("div",{className:"rounded-lg mb-3",style:{background:e.hex,height:"72px",border:"1px solid rgba(255,255,255,0.1)",boxShadow:e.hex==="#BFF589"?"0 0 20px rgba(191,245,137,0.3)":"none"}}),a.jsx("p",{className:"font-mono text-xs font-bold",style:{color:"#F9F9F9"},children:e.name}),a.jsx("p",{className:"font-mono text-xs mt-0.5",style:{color:"#A0A0A0"},children:e.hex}),a.jsx("p",{className:"text-xs mt-1",style:{color:"#A0A0A0"},children:e.usage})]},e.name))})}),a.jsx(ki,{label:"02",title:"Typography",children:a.jsxs("div",{className:"space-y-10",children:[a.jsxs(yr,{name:"font-display / Syne",detail:"font-family: Syne · weights 400â800 · used for all headings",children:[a.jsx("h1",{className:"font-display text-lod-white",style:{fontSize:"64px",lineHeight:1.05},children:"Display / H1 â 64px"}),a.jsx("h2",{className:"font-display text-lod-white",style:{fontSize:"48px",lineHeight:1.1},children:"Heading H2 â 48px"}),a.jsx("h3",{className:"font-display text-lod-white",style:{fontSize:"36px",lineHeight:1.1},children:"Heading H3 â 36px"}),a.jsx("h4",{className:"font-display text-lod-white",style:{fontSize:"24px",lineHeight:1.2},children:"Heading H4 â 24px"}),a.jsx("h5",{className:"font-display text-lod-white",style:{fontSize:"18px",lineHeight:1.3},children:"Heading H5 â 18px"})]}
2009),a.jsxs(yr,{name:"font-body / Roboto",detail:"font-family: Roboto · weights 300â700 · used for paragraphs & UI",children:[a.jsx("p",{className:"text-lod-white text-xl leading-relaxed",children:"Body Large â 20px / line-height 1.6"}),a.jsx("p",{className:"text-lod-white text-base leading-relaxed",children:"Body Regular â 16px / line-height 1.6 · The quick brown fox jumps over the lazy dog."}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed",children:"Body Small / Muted â 14px · color #A0A0A0"})]}),a.jsxs(yr,{name:"font-mono / JetBrains Mono",detail:"font-family: JetBrains Mono · used for labels, tags, terminal, code",children:[a.jsx("p",{className:"font-mono uppercase tracking-widest text-xs",style:{color:"#BFF589"},children:"SECTION LABEL â 11px · letter-spacing 0.2em · #BFF589"}),a.jsx("p",{className:"font-mono text-sm",style:{color:"#A0A0A0"},children:"Mono body â 14px · data readouts, status text, timestamps"}),a.jsx("p",{className:"font-mono text-xs",style:{color:"#F9F9F9"},children:"// terminal / code snippet â 12px"})]})]})}),a.jsx(ki,{label:"03",title:"Buttons",children:a.jsxs("div",{className:"space-y-8",children:[a.jsx(yr,{name:".btn-primary",detail:"background: #BFF589 · color: #1A1A1A · font: Montserrat 600 · px-6 py-3 rounded-lg · hover: lighter + translateY(-1px) + green shadow",children:a.jsxs("div",{className:"flex flex-wrap gap-4 items-center",children:[a.jsx("a",{href:"#",className:"btn-primary",onClick:e=>e.preventDefault(),children:"Primary Button"}),a.jsx("a",{href:"#",className:"btn-primary text-base px-10 py-4",onClick:e=>e.preventDefault(),children:"Primary Large"}),a.jsx("a",{href:"#",className:"btn-primary text-sm px-5 py-2",onClick:e=>e.preventDefault(),children:"Primary Small"})]})}),a.jsx(yr,{name:".btn-outline",detail:"border: 1px solid rgba(255,255,255,0.2) · color: #F9F9F9 · transparent bg · hover: border + text #BFF589",children:a.jsxs("div",{className:"flex flex-wrap gap-4 items-center",children:[a.jsx("a",{href:"#",className:"btn-outline",onClick:e=>e.preventDefault(),children:"Outline Button"}),a.jsx("a",{href:"#",className:"btn-outline text-base px-10 py-4",onClick:e=>e.preventDefault(),children:"Outline Large"})]})}),a.jsx(yr,{name:"Inline text link",detail:"font-mono · color: #BFF589 · inline-flex items-center gap-2 · no background",children:a.jsxs("a",{href:"#",className:"inline-flex items-center gap-2 font-mono text-sm",style:{color:"#BFF589"},onClick:e=>e.preventDefault(),children:["Read more â ",a.jsx("span",{style:{fontSize:"13px"},children:"â"})]})})]})}),a.jsxs(ki,{label:"04",title:"Tags & Badges",children:[a.jsx(yr,{name:".tag-chip",detail:"border: 1px solid rgba(191,245,137,0.3) · bg: rgba(191,245,137,0.06) · color: #BFF589 · font: Montserrat 600 10px uppercase · px-2.5 py-0.5 rounded",children:a.jsxs("div",{className:"flex flex-wrap gap-3 items-center",children:[a.jsx("span",{className:"tag-chip",children:"SOC 2 Type II"}),a.jsx("span",{className:"tag-chip",children:"SOC 1 Type II"}),a.jsx("span",{className:"tag-chip",children:"ERCOT"}),a.jsx("span",{className:"tag-chip",children:"Live"})]})}),a.jsx("div",{className:"mt-6",children:a.jsx(yr,{name:"Status pill (inline)",detail:"font-mono · small rounded px-2 py-0.5 · used inside dashboard cards",children:a.jsx("div",{className:"flex flex-wrap gap-3 items-center",children:[{label:"ROUTED",color:"#BFF589",bg:"rgba(191,245,137,0.1)",border:"rgba(191,245,137,0.2)"},{label:"STANDBY",color:"#60a5fa",bg:"rgba(96,165,250,0.1)",border:"rgba(96,165,250,0.2)"},{label:"AVOID",color:"#FF3B30",bg:"rgba(255,59,48,0.1)",border:"rgba(255,59,48,0.2)"},{label:"LIVE",color:"#BFF589",bg:"rgba(191,245,137,0.08)",border:"rgba(191,245,137,0.15)"}].map(e=>a.jsx("span",{className:"font-mono text-xs px-2 py-0.5 rounded",style:{color:e.color,background:e.bg,border:`1px solid ${e.border}`},children:e.label},e.label))})})})]}),a.jsx(ki,{label:"05",title:"Cards",children:a.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[a.jsxs("div",{children:[a.jsx("p",{className:"font-mono text-xs mb-3",style:{color:"#A0A0A0"},children:".card-obsidian â bg: #2C2C2C · border: rgba(255,255,255,0.08) · rounded-xl · hover: border #BFF589/30 + translateY(-2px)"}),a.jsxs("div",{className:"card-obsidian p-8",children:[a.jsx("div",{className:"w-2 h-2 rounded-full mb-4",style:{background:"#BFF589"}}),a.jsx("h3",{className:"font-display text-xl text-lod-white mb-3",children:"Card Title"}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed",children:"Card body text â secondary info, descriptions, feature details. Uses lod-gray color #A0A0A0 at 14px."})]})]}),a.jsxs("div",{children:[a.jsx("p",{className:"font-mono text-xs mb-3",style:{color:"#A0A0A0"},children:"Dashboard panel â bg: #111 · border: rgba(191,245,137,0.12) · rounded-xl · with header bar"}),a.jsxs("div",{className:"rounded-xl overflow-hidden",style:{background:"#111",border:"1px solid rgba(191,245,137,0.12)"},children:[a.jsxs("div",{className:"flex items-center justify-between px-4 py-3",style:{borderBottom:"1px solid rgba(255,255,255,0.06)",background:"#0A0A0A"},children:[a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full animate-pulse-green",style:{background:"#BFF589"}}),a.jsx("span",{className:"font-mono text-xs",style:{color:"#BFF589"},children:"PANEL TITLE · LIVE"})]}),a.jsx("span",{className:"font-mono text-xs",style:{color:"#A0A0A0"},children:"timestamp"})]}),a.jsxs("div",{className:"p-5",children:[a.jsx("p",{className:"font-display text-3xl mb-1",style:{color:"#BFF589"},children:"$2.8M"}),a.jsx("p",{className:"font-mono text-xs",style:{color:"#A0A0A0"},children:"METRIC LABEL · UNIT"})]})]})]})]})}
2009),a.jsx(ki,{label:"06",title:"Section Backgrounds",children:a.jsx("div",{className:"space-y-4",children:[{name:"#1A1A1A â lod-black",bg:"#1A1A1A",label:"Primary page background"},{name:"#0A0A0A â near-black",bg:"#0A0A0A",label:"Alternate dark section"},{name:"#0D0D0D + dot grid",bg:"#0D0D0D",dot:!0,label:"Dot grid overlay section"},{name:"#1A1A1A + line grid (.grid-lines-overlay)",bg:"#1A1A1A",lines:!0,label:"Blueprint grid overlay section"},{name:"Green CTA â linear-gradient(135deg, #0d1a07, #0a1205)",bg:"linear-gradient(135deg, #0d1a07 0%, #0a1205 50%, #0d1a07 100%)",label:"CTA banner background",cta:!0}].map(e=>a.jsxs("div",{children:[a.jsxs("p",{className:"font-mono text-xs mb-2",style:{color:"#A0A0A0"},children:[e.name," · ",e.label]}),a.jsxs("div",{className:"rounded-lg relative overflow-hidden",style:{background:e.bg,height:"80px",border:"1px solid rgba(255,255,255,0.08)"},children:[e.dot&&a.jsx("div",{"aria-hidden":!0,style:{position:"absolute",inset:0,backgroundImage:"radial-gradient(circle, rgba(191,245,137,0.2) 1px, transparent 1px)",backgroundSize:"28px 28px"}}),e.lines&&a.jsx("div",{"aria-hidden":!0,className:"grid-lines-overlay",style:{position:"absolute",inset:0}}),e.cta&&a.jsx("div",{"aria-hidden":!0,style:{position:"absolute",inset:0,background:"radial-gradient(ellipse 70% 60% at 50% 50%, rgba(191,245,137,0.07) 0%, transparent 70%)"}}),a.jsx("div",{className:"absolute inset-0 flex items-center px-6",children:a.jsx("p",{className:"font-mono text-xs",style:{color:e.cta?"#BFF589":"#A0A0A0"},children:"Section content sits here"})})]})]},e.name))})}),a.jsx(ki,{label:"07",title:"Section Label",children:a.jsx(yr,{name:".section-label",detail:"font-family: JetBrains Mono · font-size: 11px · letter-spacing: 0.2em · color: #BFF589 · text-transform: uppercase · used above every section heading",children:a.jsx("div",{className:"section-label",children:"Section Label â Used Above Every Heading"})})}),a.jsx(ki,{label:"08",title:"Spacing & Layout",children:a.jsx("div",{className:"space-y-4",children:[{name:"Section vertical padding",value:"py-24 (96px top + bottom)",usage:"Standard section rhythm"},{name:"Section vertical padding â large CTA",value:"py-28 (112px)",usage:"Final CTA sections"},{name:"Max content width",value:"max-w-[1400px] mx-auto px-6",usage:"Full-width content sections"},{name:"Max content width â narrow",value:"max-w-[1000px] mx-auto px-6",usage:"LP pages, focused layouts"},{name:"Max content width â text",value:"max-w-[700px]",usage:"FAQ, prose sections"},{name:"Card padding",value:"p-8 (32px)",usage:"Standard card inner padding"},{name:"Grid gap",value:"gap-6 / gap-12 / gap-16",usage:"Card grids / column layouts"},{name:"Border radius",value:"rounded-xl (12px) / rounded-lg (8px)",usage:"Cards / buttons"}].map(e=>a.jsxs("div",{className:"grid grid-cols-3 gap-4 py-3",style:{borderBottom:"1px solid rgba(255,255,255,0.06)"},children:[a.jsx("p",{className:"font-mono text-xs",style:{color:"#BFF589"},children:e.name}),a.jsx("p",{className:"font-mono text-xs",style:{color:"#F9F9F9"},children:e.value}),a.jsx("p",{className:"text-xs",style:{color:"#A0A0A0"},children:e.usage})]},e.name))})}),a.jsx(ki,{label:"09",title:"Borders & Dividers",children:a.jsxs("div",{className:"space-y-4",children:[a.jsx(yr,{name:"Standard card border",detail:"1px solid rgba(255,255,255,0.08)",children:a.jsx("div",{style:{height:"1px",background:"rgba(255,255,255,0.08)"}})}),a.jsx(yr,{name:"Green accent border",detail:"1px solid rgba(191,245,137,0.18) â used on CTA sections top/bottom",children:a.jsx("div",{style:{height:"1px",background:"rgba(191,245,137,0.18)"}})}),a.jsx(yr,{name:"Green glow divider",detail:"linear-gradient(90deg, transparent, rgba(191,245,137,0.35), transparent) â used as section separator lines",children:a.jsx("div",{style:{height:"1px",background:"linear-gradient(90deg, transparent, rgba(191,245,137,0.35), transparent)"}})}),a.jsx(yr,{name:"Panel inner border",detail:"1px solid rgba(255,255,255,0.06) â inside dashboard panels, between rows",children:a.jsx("div",{style:{height:"1px",background:"rgba(255,255,255,0.06)"}})})]})}),a.jsx(ki,{label:"10",title:"Effects & Animations",children:a.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-6",children:[a.jsxs("div",{className:"card-obsidian p-6 text-center",children:[a.jsx("div",{className:"w-3 h-3 rounded-full mx-auto mb-4 animate-pulse-green",style:{background:"#BFF589"}}),a.jsx("p",{className:"font-mono text-xs",style:{color:"#BFF589"},children:"animate-pulse-green"}),a.jsx("p",{className:"text-xs mt-1",style:{color:"#A0A0A0"},children:"opacity 1 â 0.6 · 2s ease-in-out · live status dots"})]}),a.jsxs("div",{className:"card-obsidian p-6 text-center",children:[a.jsx("div",{className:"w-8 h-8 border-2 rounded-full animate-spin mx-auto mb-4",style:{borderColor:"#BFF589",borderTopColor:"transparent"}}),a.jsx("p",{className:"font-mono text-xs",style:{color:"#BFF589"},children:"Spinner"}),a.jsx("p",{className:"text-xs mt-1",style:{color:"#A0A0A0"},children:"border-2 rounded-full animate-spin · loading states"})]}),a.jsxs("div",{className:"card-obsidian p-6 text-center",children:[a.jsx("div",{className:"mx-auto mb-4 rounded-lg",style:{width:"64px",height:"32px",background:"#BFF589",boxShadow:"0 0 20px rgba(191,245,137,0.5), 0 0 60px rgba(191,245,137,0.15)"}}),a.jsx("p",{className:"font-mono text-xs",style:{color:"#BFF589"},children:".green-glow"}),a.jsx("p",{className:"text-xs mt-1",style:{color:"#A0A0A0"},children:"box-shadow green glow · used on hero elements"})]})]})}),a.jsx("div",{className:"mt-24 pt-8",style:{borderTop:"1px solid rgba(191,245,137,0.15)"},children:a.jsx("p",{className:"font-mono text-xs",style:{color:"#A0A0A0"},children:"LÅD Design System · Internal reference · /design-system · Not in navigation"})})]})}function ki({label:e,title:t,children:n}){return a.jsxs("section",{className:"mb-20",children:[a.jsxs("div",{className:"flex items-center gap-4 mb-8",children:[a.jsx("span",{className:"font-display text-3xl",style:{color:"#BFF589"},children:e}),a.jsx("h2",{className:"font-display text-3xl text-lod-white",children:t})]}),n]})}function yr({name:e,detail:t,children:n}){return a.jsxs("div",{className:"mb-6",children:[a.jsxs("div",{className:"mb-3",children:[a.jsx("p",{className:"font-mono text-sm font-bold",style:{color:"#BFF589"},children:e}),a.jsx("p",{className:"font-mono text-xs mt-0.5",style:{color:"#A0A0A0"},children:t})]}),a.jsx("div",{className:"rounded-lg p-6",style:{background:"#111",border:"1px solid rgba(255,255,255,0.07)"},children:n})]})}const $5e=[{icon:GU,title:"Comprehensive Benefits",desc:"Full health insurance including medical, vision, and dental coverage for you and your family."}
2009,{icon:AH,title:"Paid Time Off",desc:"Generous PTO to support a balanced work-life experience so you can recharge and come back sharp."},{icon:eH,title:"Downtown Vancouver",desc:"Work from a conveniently located office in the heart of downtown Vancouver."},{icon:Eg,title:"Career Growth",desc:"Grow your career and take on more responsibility as LÅD scales. We promote from within."},{icon:SL,title:"Real-World Impact",desc:"Be part of building an innovative product that makes a measurable difference in global energy systems."},{icon:xt,title:"Frontier Problems",desc:"Discover how energy, artificial intelligence, and computing intersect to tackle significant challenges."},{icon:NU,title:"Engineering Excellence",desc:"Join a team that prioritizes clean coding practices, strong principles, and technical craftsmanship."}],q5e=[{icon:LU,title:"Everyone brings their best",desc:"At LÅD, passion isn't a buzzword. It's the baseline. Every person on the team genuinely cares about the problems we're solving and brings their full energy to it every day."},{icon:OL,title:"We lift each other up",desc:"No one is left to figure things out alone. Whether you're onboarding or tackling a hard technical challenge, the team rallies around you with real, hands-on support."},{icon:zs,title:"Trust and ownership",desc:"We hire talented people and trust them to do great work. You own your outcomes, have the freedom to make decisions, and are supported when you take bold bets."}];function W5e(){return O.useEffect(()=>{const e=document.createElement("script");return e.src="https://www.workable.com/assets/embed.js",e.type="text/javascript",e.onload=()=>{window.whr&&window.whr(document).ready(()=>{window.whr_embed(690557,{base:"jobs",detail:"titles",zoom:"country",grouping:"departments"})})},document.head.appendChild(e),()=>{document.head.contains(e)&&document.head.removeChild(e)}},[]),a.jsxs(Je,{children:[a.jsx(He,{title:"Careers at LÅD â Build Energy Intelligence for Data Centers",description:"Join a focused team solving hard problems at the intersection of energy markets, AI, and infrastructure. Comprehensive benef
2009its, downtown Vancouver, and real-world impact.",canonical:"https://lod.io/careers"}),a.jsxs("section",{className:"relative py-28 overflow-hidden",style:{background:"#1A1A1A",borderBottom:"1px solid rgba(255,255,255,0.06)"},children:[a.jsx("div",{className:"absolute inset-0 grid-blueprint opacity-50 pointer-events-none"}),a.jsx("div",{className:"absolute -top-20 right-1/4 w-[500px] h-[500px] rounded-full pointer-events-none",style:{background:"radial-gradient(circle, rgba(191,245,137,0.08) 0%, transparent 70%)",filter:"blur(80px)"}}),a.jsxs("div",{className:"max-w-[1200px] mx-auto px-6 relative z-10",children:[a.jsx("div",{className:"section-label mb-5",children:"We're Hiring"}),a.jsxs("h1",{className:"font-display text-5xl md:text-7xl text-lod-white mb-6 leading-none",children:["Build What",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"Matters."})]}),a.jsx("p",{className:"text-lod-gray text-lg max-w-2xl leading-relaxed mb-10",children:"We're a focused team solving hard problems at the intersection of energy markets, AI, and infrastructure. If that excites you, we'd love to hear from you."}),a.jsxs("a",{href:"#open-roles",className:"btn-primary inline-flex items-center gap-2 text-base px-8 py-4",children:["See Open Roles ",a.jsx(xt,{size:16})]})]})]}),a.jsx("section",{className:"py-20",style:{background:"#232323",borderBottom:"1px solid rgba(255,255,255,0.06)"},children:a.jsx("div",{className:"max-w-[1200px] mx-auto px-6",children:a.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-16 items-center",children:[a.jsxs("div",{children:[a.jsx("div",{className:"section-label mb-4",children:"Our Culture"}),a.jsxs("h2",{className:"font-display text-4xl md:text-5xl text-lod-white mb-6 leading-tight",children:["Passionate people,",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"real support."})]}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-4",children:"The energy that drives LÅD comes from the people inside it. Everyone here shows up with genuine curiosity and a drive to build things that actually work, not just demos, but production systems that handle real grid conditions, real markets, and real dollars."}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed",children:"That passion is matched with strong team culture. We believe great work happens when people feel trusted, supported, and connected to a mission bigger than any single feature or deadline."})]}),a.jsx("div",{className:"space-y-4",children:q5e.map((e,t)=>{const n=e.icon;return a.jsxs("div",{className:"flex gap-5 p-6 rounded-xl",style:{background:"#2C2C2C",border:"1px solid rgba(255,255,255,0.08)"},children:[a.jsx("div",{className:"w-11 h-11 rounded-lg flex items-center justify-center flex-shrink-0",style:{background:"rgba(191,245,137,0.1)",border:"1px solid rgba(191,245,137,0.2)"},children:a.jsx(n,{size:18,style:{color:"#BFF589"}})}),a.jsxs("div",{children:[a.jsx("h3",{className:"font-display text-base text-lod-white mb-1",children:e.title}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed",children:e.desc})]})]},t)})})]})})}),a.jsx("section",{className:"py-20",style:{background:"#111"},children:a.jsxs("div",{className:"max-w-[1200px] mx-auto px-6",children:[a.jsxs("div",{className:"text-center mb-14",children:[a.jsx("div",{className:"section-label mb-4",children:"Why LÅD"}),a.jsxs("h2",{className:"font-display text-4xl md:text-5xl text-lod-white leading-none",children:["A great place to do",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"your best work."})]})]}),a.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-
20095",children:[$5e.map((e,t)=>{const n=e.icon;return a.jsxs("div",{className:"card-obsidian p-8",style:{background:"#1A1A1A"},children:[a.jsx("div",{className:"w-10 h-10 rounded-lg flex items-center justify-center mb-4",style:{background:"rgba(191,245,137,0.1)",border:"1px solid rgba(191,245,137,0.2)"},children:a.jsx(n,{size:18,style:{color:"#BFF589"}})}),a.jsx("h3",{className:"font-display text-base text-lod-white mb-2",children:e.title}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed",children:e.desc})]},t)}),a.jsxs("div",{className:"p-6 rounded-xl relative overflow-hidden",style:{background:"linear-gradient(135deg, rgba(191,245,137,0.12) 0%, rgba(191,245,137,0.03) 100%)",border:"1px solid rgba(191,245,137,0.25)"},children:[a.jsx("div",{className:"absolute top-0 right-0 w-24 h-24 rounded-full pointer-events-none",style:{background:"radial-gradient(circle, rgba(191,245,137,0.2) 0%, transparent 70%)",filter:"blur(20px)"}}),a.jsxs("div",{className:"relative z-10",children:[a.jsx("p",{className:"font-mono text-xs uppercase tracking-widest mb-3",style:{color:"#BFF589"},children:"Our Mission"}),a.jsx("h3",{className:"font-display text-base text-lod-white mb-2 leading-snug",children:"Energy intelligence for the world's most demanding infrastructure."}),a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed",children:"Transforming how data centers interact with energy markets, in real time."})]})]})]})]})}),a.jsx("section",{id:"open-roles",className:"py-20",style:{background:"#1A1A1A",borderTop:"1px solid rgba(255,255,255,0.06)"},children:a.jsxs("div",{className:"max-w-[1000px] mx-auto px-6",children:[a.jsxs("div",{className:"text-center mb-12",children:[a.jsx("div",{className:"section-label mb-4",children:"Open Positions"}),a.jsxs("h2",{className:"font-display text-4xl text-lod-white leading-none",children:["Find your role",a.jsx("br",{}),a.jsx("span",{style:{color:"#BFF589"},children:"at LÅD"})]})]}),a.jsx("style",{children:` 2010 #whr_embed_hook { font-family: 'Roboto', sans-serif; color: #F9F9F9; } 2011 2012 #whr_embed_hook .whr-dept { 2013 font-family: 'Syne', sans-serif !important; 2014 color: #BFF589 !important; 2015 font-size: 10px !important; 2016 font-weight: 700 !important; 2017 letter-spacing: 0.2em !important; 2018 text-transform: uppercase !important; 2019 padding: 32px 0 12px !important; 2020 display: flex !important; 2021 align-items: center !important; 2022 gap: 8px !important; 2023 } 2024 #whr_embed_hook .whr-dept::before { 2025 content: '' !important; 2026 display: inline-block !important; 2027 width: 20px !important; 2028 height: 2px !important; 2029 background: #BFF589 !important; 2030 border-radius: 2px !important; 2031 } 2032 2033 #whr_embed_hook .whr-items { 2034 list-style: none !important; 2035 padding: 0 !important; 2036 margin: 0 0 8px !important; 2037 display: flex !important; 2038 flex-direction: column !important; 2039 gap: 16px !important; 2040 } 2041 2042 #whr_embed_hook .whr-item { 2043 background: linear-gradient(135deg, rgba(191,245,137,0.07) 0%, rgba(191,245,137,0.02) 100%) !important; 2044 border: 1px solid rgba(191,245,137,0.15) !important; 2045 border-radius: 14px !important; 2046 margin: 0 !important; 2047 overflow: hidden !important; 2048 transition: all 0.25s ease !important; 2049 position: relative !important; 2050 } 2051 #whr_embed_hook .whr-item:hover { 2052 background: linear-gradient(135deg, rgba(191,245,137,0.13) 0%, rgba(191,245,137,0.05) 100%) !important; 2053 border-color: rgba(191,245,137,0.45) !important; 2054 transform: translateY(-2px) !important; 2055 box-shadow: 0 8px 32px rgba(0,0,0,0.35), 0 0 24px rgba(191,245,137,0.08) !important; 2056 } 2057 2058 #whr_embed_hook .whr-item a { 2059 display: flex !important; 2060 justify-content: space-between !important; 2061 align-items: center !important; 2062 padding: 28px 32px !important; 2063 text-decoration: none !important; 2064 gap: 16px !important; 2065 } 2066 2067 #whr_embed_hook .whr-info { 2068 display: flex !important; 2069 flex-direction: column !important; 2070 gap: 6px !important; 2071 min-width: 0 !important; 2072 flex: 1 !important; 2073 } 2074 2075 #whr_embed_hook .whr-title, 2076 #whr_embed_hook .whr-item a > span:first-child { 2077 color: #BFF589 !important; 2078 font-size: 16px !important; 2079 font-weight: 700 !important; 2080 font-family: 'Syne', sans-serif !important; 2081 line-height: 1.3 !important; 2082 white-space: normal !important; 2083 word-break: break-word !important; 2084 } 2085 2086 #whr_embed_hook .whr-location { 2087 color: rgba(191,245,137,0.5) !important; 2088 font-size: 11px !important; 2089 font-family: 'JetBrains Mono', monospace !important; 2090 letter-spacing: 0.06em !important; 2091 text-transform: uppercase !important; 2092 margin-top: 6px !important; 2093 } 2094 2095 #whr_embed_hook .whr-date, 2096 #whr_embed_hook .whr-item .whr-date { 2097 color: rgba(160,160,160,0.6) !important; 2098 font-size: 10px !important; 2099 font-family: 'JetBrains Mono', monospace !important; 2100 letter-spacing: 0.06em !important; 2101 margin-top: 4px !important; 2102 } 2103 2104 #whr_embed_hook .whr-item a::after { 2105 content: 'â' !important; 2106 color: #BFF589 !important; 2107 font-size: 20px !important; 2108 flex-shrink: 0 !important; 2109 opacity: 0.5 !important; 2110 transition: all 0.25s ease !important; 2111 } 2112 #whr_embed_hook .whr-item:hover a::after { 2113 opacity: 1 !important; 2114 transform: translateX(4px) !important; 2115 } 2116 2117 #whr_embed_hook .whr-dept[data-name="other"], 2118 #whr_embed_hook .whr-dept:last-of-type { 2119 display: none !important; 2120 } 2121 #whr_embed_hook .whr-dept { 2122 text-transform: uppercase !important; 2123 } 2124 #whr_embed_hook li[data-department="other"], 2125 #whr_embed_hook [data-group="other"] { 2126 display: none !important; 2127 } 2128 `}),a.jsx("div",{id:"whr_embed_hook"})]})})]})}const U5e={"agent-install-windows":{title:"Cómo Instalar el Agente LÅD en Windows",category:"Primeros Pasos",content:[{type:"h2",text:"Instalación del Agente en Windows â Resumen"},{type:"p",text:"Este video proporciona un recorrido paso a paso para instalar el Agente LÅD en un dispositivo Windows. El agente permite que su sistema se comunique con la plataforma LÅD y comience a gestionar ASICs desde la página IoT."},{type:"video",loomId:"7d760b9f98944bc1bbac93ee40a5aeea",label:"Ver: Instalación del Agente en Windows"},{type:"h3",text:"Requisitos MÃnimos del Sistema"},{type:"p",text:"Antes de instalar, asegúrese de que su sistema cumpla con estos requisitos mÃnimos:"},{type:"ul",items:["16 GB de RAM","Procesador Intel i5 Quad-Core o superior","40 GB de espacio disponible en disco duro"]},{type:"h3",text:"Crear un Nuevo Agente en LÅD"},{type:"p",text:'Vaya a la página IoT â ASICs, abra la sección Agente, haga clic en el Ãcono "+" y seleccione Agregar Agente. Nombre su agente y haga clic en Crear Nuevo â inicialmente aparecerá sin conexión.'},{type:"h3",text:"Descargar y Preparar el Archivo del Agente"},{type:"p",text:"Haga clic en Descargar App, seleccione su sistema operativo (Windows) y abra el archivo descargado. En su Disco Local (C:), cree una nueva carpeta llamada Agent. Extraiga los archivos descargados en esta nueva carpeta."},{type:"h3",text:"Ejecutar el Instalador"},{type:"p",text:'Inicie el instalador y permita que realice cambios en el sistema. El primer mensaje mostrará "Key not found", lo cual es esperado antes de vincular la clave del agente.'},{type:"h3",text:"Agregar la Clave del Agente"},{type:"p",text:"Vuelva a LÅD, localice su agente recién creado y copie la Clave del Agente. Dentro de la carpeta Agent, cree un nuevo documento de texto llamado key, pegue la clave copiad
2128a dentro y guarde el archivo."},{type:"h3",text:"Iniciar el Agente LÅD"},{type:"p",text:'Ejecute el archivo ejecutable Lincoin Agent. Si Windows Defender lo marca, haga clic en Ejecutar de todas formas y permita los cambios. Una vez iniciado, el instalador confirmará "Key Found".'},{type:"h3",text:"Verificar la Conexión"},{type:"p",text:"Regrese a la plataforma LÅD y haga clic en Actualizar â su agente ahora deberÃa aparecer en lÃnea."}]},"setup-team-org":{title:"Cómo Configurar su Equipo y Organización",category:"Primeros Pasos",content:[{type:"h2",text:"Resumen de Configuración de Equipo y Organización"},{type:"video",loomId:"642ebb3d70214077bedd1b5f07fc6836",label:"Ver: Configuración de Equipo y Organización"},{type:"p",text:"La sección de Equipos en LÅD le permite gestionar los usuarios, roles y permisos de su organización. Configurar roles e invitar a miembros del equipo garantiza que todos tengan el nivel de acceso correcto a la plataforma y a las subcuentas especÃficas."},{type:"h3",text:"Acceder a la Sección de Equipos"},{type:"p",text:"Navegue a Equipos en la barra lateral. Verá dos pestañas: Miembros â lista todos los usuarios de su organización, y Roles â define qué puede hacer cada usuario en la plataforma."},{type:"h3",text:"Crear o Personalizar Roles"},{type:"ul",items:["Comience creando un nuevo rol. LÅD proporciona opciones predeterminadas como Técnico, Gerente y Administrador.","Para crear un rol personalizado, elija un rol base (ej., Administrador) y ajuste sus permisos según sea necesario.","Una vez configurado, nombre y guarde el rol. Aparecerá bajo la sección de Roles Personalizados.","Puede editar un rol existente para modificar permisos o eliminarlo si ya no es necesario."]},{type:"h3",text:"Agregar Nuevos Miembros del Equipo"},{type:"ul",items:["En la pestaña Miembros, haga clic en Nuevo Miembro.","Ingrese el nombre y correo electrónico del usuario, luego haga clic en Siguiente.","AsÃgnelo a las subcuentas apropiadas y seleccione su rol.","Haga clic en Enviar para enviar la invitación."]},{type:"h3",text:"Gestionar Invitaciones y Miembros"},{type:"ul",items:["Las invitaciones pendientes aparecen con un Ãcono de reloj de arena amarillo.","Una vez aceptadas, el miembro muestra una marca de verificación verde para indicar acceso activo.","Puede editar miembros en cualquier momento para cambiar su rol, actualizar su acceso a subcuentas, suspender el acceso temporalmente o eliminarlos de la organización."]}]},"scan-asics":{title:"Escanear sus ASICs en LÅD",category:"Primeros Pasos",content:[{type:"h2",text:"Resumen de Escaneo de IP y Descubrimiento de Dispositivos"},{type:"video",loomId:"45d2f59c2c95423a981ff4b973d232f5",label:"Ver: Escanear sus ASICs en LÅD"},{type:"p",text:"La función de Escaneo IP en LÅD facilita la detección y carga automática de todos los mineros ASIC en su red. Al configurar un rango de IP y agregar credenciales de dispositivos, puede importar rápidamente cada minero a su panel para monitoreo y gestión."},{type:"h3",text:"Verificar el Estado del Agente"},{type:"p",text:"Navegue a IoT â ASICs y confirme que su Agente esté en lÃnea. El agente debe estar activo para realizar un escaneo IP."},{type:"h3",text:"Crear un Nuevo Escaneo IP"},{type:"p",text:"Haga clic en Espacio de Búsqueda IP â Crear Nuevo. Si existen múltiples agentes, seleccione el apropiado. Nombre el escaneo de forma descriptiva (ej., Escaneo Edificio 2)."},{type:"h3",text:"Definir Rango de IP"},{type:"p",text:"Ingrese el rango de direcciones IP donde se encuentran sus mineros. Ejemplo: IP inicial 10.245.110.1, IP final 10.245.111.254. Esto le indica a LÅD dónde buscar dispositivos en su red."},{type:"h3",text:"Agregar Credenciales"},{type:"p",text:"Ingrese sus combinaciones de usuario y contraseña del minero para que LÅD pueda autenticarse durante el escaneo. Las credenciales comunes incluyen admin/admin o root/root. Agregue múltiples credenciales si sus dispositivos usan diferentes datos de inicio de sesión."},{type:"h3",text:"Ejecutar el Escaneo"},{type:"p",text:"Después de confirmar su rango de IP y credenciales, haga clic en Crear para iniciar el escaneo. En pocos minutos, los mineros dentro de ese rango IP comenzarán a aparecer en su panel bajo el agente seleccionado."}]}
2128,"hosted-clients-access":{title:"Cómo Dar Acceso a Clientes Alojados a sus ASICs",category:"Primeros Pasos",content:[{type:"h2",text:"Resumen de Configuración de Cliente Alojado"},{type:"video",loomId:"b0450a0cee854270a26e03e45667a9c5",label:"Ver: Configuración de Cliente Alojado"},{type:"p",text:"Al gestionar una operación alojada, uno de los pasos más importantes en la configuración de cuenta es garantizar que los clientes tengan acceso para ver y gestionar sus mineros. Hay dos formas principales de configurar este acceso: 1) Agregando clientes directamente a su equipo con roles y permisos personalizados. 2) Creando o vinculando una subcuenta de cliente y compartiendo el acceso al minero a través de esa subcuenta."},{type:"h3",text:"Método 1: Agregar Cliente a su Equipo"},{type:"h3",text:"1. Navegar a la Pestaña de Equipos"},{type:"ul",items:["Desde la barra de navegación izquierda, seleccione Equipos.","Haga clic en Agregar Nuevo Rol para crear un rol personalizado para su cliente."]},{type:"h3",text:"2. Configurar un Rol de Cliente"},{type:"ul",items:["En la lista de Roles Predeterminados, seleccione el rol Host como punto de partida.","Personalice los permisos según lo que su cliente deberÃa tener acceso.","Revise cada interruptor de permiso cuidadosamente, luego haga clic en Guardar y asigne un Nombre de Rol."]},{type:"h3",text:"3. Agregar el Usuario Cliente"},{type:"ul",items:["Haga clic en Nuevo Miembro e ingrese la dirección de correo electrónico de su cliente.","Seleccione la Subcuenta apropiada.","Asigne el Rol Host que acaba de crear.","Una vez enviado, el sistema enviará al cliente una invitación por correo electrónico con el nivel de acceso configurado."]},{type:"p",text:"Resultado: El cliente ahora tiene acceso controlado a sus mineros a través de los permisos de subcuenta existentes."},{type:"h3",text:"Método 2: Crear o Vincular una Subcuenta de Cliente"},{type:"h3",text:"1. Verificar si el Cliente Tiene una Subcuenta Existente"},{type:"ul",items:["Si ya tienen una, pueden enviarle una invitación desde su lado.","Una vez que acepte, ambas cuentas quedarán vinculadas y puede compartir los ASICs."]},{type:"h3",text:"2. Crear una Nueva Subcuenta (si es Necesario)"},{type:"ul",items:["Haga clic en el menú desplegable de Subcuenta en la parte superior del panel.","Presione el Ãcono + para Crear Nueva Subcuenta.","Después de crearla, navegue de regreso a la pestaña Equipos para agregar a su cliente y asignarle acceso a esta subcuenta."]},{type:"h3",text:"3. Establecer Acceso"},{type:"p",text:"En Equipos, puede asignar a su cliente el rol Administrador o el rol Host para su propia subcuenta. Esto les da control total dentro de su subcuenta manteniendo lÃmites claros entre cuentas."},{type:"h3",text:"Compartir Acceso al Minero"},{type:"p",text:"Una vez que la subcuenta y el rol del cliente estén listos:"},{type:"ol",items:["Vaya a su propia Subcuenta donde los mineros están actualmente asignados.","Seleccione los mineros especÃficos pertenecientes a ese cliente.","Haga clic en Acción de Grupo â Compartir Acceso.","Elija la Subcuenta del cliente del menú desplegable.","Seleccione si tendrán acceso por Túnel o no.","Haga clic en Enviar."]}
2128,{type:"p",text:"Resultado: Los mineros seleccionados aparecerán en la subcuenta del cliente. Ahora pueden ver sus mineros, monitorear el rendimiento e iniciar retiros de forma segura a través de su propia cuenta."}]},"configuring-location-profile":{title:"Configuración del Perfil de Ubicación",category:"Primeros Pasos",content:[{type:"h2",text:"Resumen del Perfil de Ubicación"},{type:"video",loomId:"de9b676551db4468ad19439dd03cf445",label:"Ver: Configuración del Perfil de Ubicación"},{type:"p",text:"El Perfil de Ubicación es un paso clave de configuración en LÅD que garantiza que los datos de su sitio â como costos de energÃa, objetivos de tasa de hash y precios dinámicos â sean precisos y estén alineados con su región. Configurar correctamente esta sección permite que la plataforma entregue información precisa de rendimiento y financiera a través de su operación minera."},{type:"h3",text:"Acceder al Perfil de Ubicación"},{type:"p",text:'Vaya a Configuración â Perfil de Ubicación para ver todas las subcuentas asociadas a su organización. Las subcuentas archivadas aún aparecerán, marcadas con una etiqueta "Archivado".'},{type:"h3",text:"Seleccionar y Editar Subcuentas"},{type:"ul",items:["Puede seleccionar todas las subcuentas a la vez, o solo algunas especÃficas para Edición de Grupo (para aplicar un cambio de parámetro único a múltiples cuentas).","Para configurar un sitio individual, haga clic en Editar Perfil junto a la subcuenta deseada."]},{type:"h3",text:"Configurar PaÃs, Zona Horaria y Etiquetas"},{type:"p",text:"Elija su paÃs y zona horaria, luego agregue etiquetas para ayudar a su equipo a identificar o categorizar sitios (ej., etiquetas de ubicación, notas de mantenimiento o etiquetas del proveedor de energÃa)."},{type:"h3",text:"Definir Métricas de Rendimiento Esperadas"},{type:"p",text:"Active Tasa de Hash Esperada y Conteo ASIC Esperado para medir la eficiencia operativa. Estos campos pueden dejarse desactivados si no son necesarios."},{type:"h3",text:"Configurar el Precio de la Electricidad"},{type:"ul",items:["Precio Fijo: Ingrese su costo estático por kilovatio hora.","Precio Dinámico (Paquete de EnergÃa): Cambie a Dinámico, seleccione su región y nodo (ej., ERCOT â LZ West), y LÅD extraerá automáticamente las tarifas de energÃa en tiempo real."]},{type:"h3",text:"Agregar Detalles Financieros Adicionales"},{type:"p",text:"Ingrese valores opcionales para:"},{type:"ul",items:["Costos diarios fijos (ej., arrendamiento o mantenimiento)","Recargos por kWh","Comisiones del pool","ID de QSE o CSP"]},{type:"h3",text:"Configurar los Ajustes del Mapa del Sitio"},{type:"p",text:"Elija si su mapa del sitio debe estar basado en IP o MAC, y establezca la orientación de diseño del mapa para que coincida con la orientación de su sitio."},{type:"h3",text:"Guardar su Configuración"},{type:"p",text:"Después de revisar todos los detalles, haga clic en Enviar para finalizar su configuración."}]},"wallet-addresses":{title:"Agregar Direcciones de Wallet y Configurar Retiros",category:"Primeros Pasos",content:[{type:"h2",text:"Resumen"},{type:"video",loomId:"33fb555db5174b3480614c1e153b1012",label:"Ver: Agregar Direcciones de Wallet y Configurar Retiros"},{type:"p",text:"Este video proporciona un recorrido de cómo agregar direcciones de wallet y configurar retiros dentro del pool Lincoin. Cubre cómo gestionar su libro de direcciones, configurar preferencias de retiro y comprender el perÃodo de seguridad de 24 horas que aplica a todas las nuevas direcciones de wallet y retiros automáticos."},{type:"callout",text:"Nota: La gestión de wallets y los retiros son especÃficos del pool Lincoin. Estos ajustes no aplican a otros pools."},{type:"h3",text:"Acceder al Libro de Direcciones"},{type:"ul",items:["Navegue a la sección Pool y abra el Libro de Direcciones.","Vea todas las direcciones de wallet vinculadas a sus subcuentas, junto con su estado, historial y detalles."]},{type:"h3",text:"Agregar una Nueva Dirección de Wallet"},{type:"ul",items:["Haga clic en Nueva Dirección para crear una nueva entrada.","Pegue su dirección de wallet, agregue una breve descripción y seleccione la subcuenta a la que pertenece.","Una vez creada, la nueva dirección aparece en su lista mostrando el vÃnculo de subcuenta, descripción, dirección de wallet, número de retiros y estado.","Las direcciones pueden editarse, guardarse o archivarse según sea necesario."]},{type:"h3",text:"PerÃodo de Seguridad de 24 Horas"},{type:"p",text:"Todas las nuevas direcciones de wallet están sujetas a un perÃodo de seguridad de 24 horas antes de poder usarse. Este perÃodo aplica tanto a retiros manuales como automáticos, garantizando una capa adicional de protección antes de que se puedan realizar transacciones."},{type:"h3",text:"Retiros Manuales"},{type:"p",text:"Una vez que expire el perÃodo de la dirección, puede iniciar retiros seleccionando la red Mainnet o Lightning, eligiendo su dirección de wallet e ingresando el monto del retiro."},{type:"h3",text:"Retiros Automáticos"},{type:"p",text:"Los retiros automáticos pueden configurarse tan pronto como se agrega una wallet, pero también están sujetos al mismo perÃodo de 24 horas antes de la activación. Puede definir: umbral mÃnimo de retiro (ej., 0.1 BTC), frecuencia: Diaria, Semanal o Mensual, y un dÃa especÃfico de la semana o mes para el procesamiento."},{type:"h3",text:"Seguridad y Gestión"},{type:"p",text:"Cada nueva dirección y configuración de retiro requiere autenticación. Todos los cambios de wallet, umbrales y transacciones se registran dentro del pool Lincoin."},{type:"h3",text:"LÃmites de Retiro"},{type:"ul",items:["LÃmite de Retiro On-Chain: 0.001 BTC","LÃmite de Retiro Lightning: 0.0001 BTC"]}]},"agent-settings":{title:"Cómo Configurar mi Agente LÅD",category:"Primeros Pasos",content:[{type:"h2",text:"Resumen y cómo configurar los ajustes del agente LoD"},{type:"h3",text:"Resumen de Configuración del Agente"},{type:"p",text:"Cómo acceder a la configuración:"},{type:"ol",items:["Vaya a IoT > ASICs","Haga clic en el botón de 3 lÃneas en su agente",'Luego haga clic en "Configuración"']},{type:"img",src:"https://docs.lod.io/hs-fs/hubfs/undefined-Oct-22-2025-02-52-44-6067-PM.png?width=670&height=334",alt:"Botón de menú de 3 lÃneas del agente"},{type:"img",src:"https://docs.lod.io/hs-fs/hubfs/undefined-Oct-22-2025-02-52-45-2880-PM.png?width=670&height=334",alt:"Opción de Configuración del Agente"},{type:"h3",text:"Configuración General"},{type:"img",src:"https://docs.lod.io/hs-fs/hubfs/undefined-Oct-22-2025-02-52-44-1657-PM.png?width=670&height=367",alt:"Panel de Configuración General"},{type:"h3",text:"Nombre del Agente"},{type:"p",text:"Especifica el nombre de visualización del agente. Use un nombre claro e identificable para distinguir fácilmente agentes en múltiples granjas."},{type:"h3",text:"Modo de Fragmentación (Sharding)"}
2128,{type:"ul",items:["Alta Disponibilidad â Cada agente puede ver todos los dispositivos de la granja, proporcionando redundancia y tolerancia a fallos.","Balanceo de Carga â Cada agente es responsable de un subconjunto de dispositivos, optimizando el rendimiento en granjas grandes."]},{type:"h3",text:"Recuperación de Conexión"},{type:"p",text:"Reintenta y restablece automáticamente las conexiones a dispositivos que se han desconectado."},{type:"h3",text:"Soporte para Elphapex e Iceriver"},{type:"p",text:"Agrega soporte para mineros Elphapex e Iceriver. Nota: Activar esta opción aumenta la carga de trabajo del agente. Esta configuración está desactivada por defecto y solo debe habilitarse si su granja incluye estos tipos de mineros."},{type:"h3",text:"Curtailment Local"},{type:"p",text:"Permite a los clientes enviar una señal local al agente, habilitando el control en sitio de los estados de energÃa de los dispositivos. Cuando se activa, el agente apagará los dispositivos según la señal recibida."},{type:"h3",text:"Configuración de Tiempo de Espera de Red"},{type:"img",src:"https://docs.lod.io/hs-fs/hubfs/undefined-Oct-22-2025-02-52-42-9589-PM.png?width=670&height=51",alt:"Configuración de Tiempo de Espera HTTP"},{type:"h3",text:"Tiempo de Espera HTTP"},{type:"p",text:"Define la duración máxima (en segundos) que el agente espera una solicitud HTTP a un minero antes de marcarlo como fallido. Aplica a: Primer escaneo, Escaneo de búsqueda IP, Escaneo periódico."},{type:"h3",text:"Tiempo de Espera de Socket"},{type:"p",text:"Define la duración máxima (en segundos) que el agente espera una solicitud de socket antes de marcarla como fallida."},{type:"h3",text:"Concurrencia de Acciones"},{type:"p",text:"Especifica el número máximo de solicitudes simultáneas que el agente envÃa al realizar acciones de red en dispositivos. Valores más altos pueden mejorar el rendimiento pero pueden aumentar la carga de red."},{type:"h3",text:"Configuración de Escaneo"},{type:"img",src:"https://docs.lod.io/hs-fs/hubfs/undefined-Oct-22-2025-02-52-43-8780-PM.png?width=358&height=215",alt:"Panel de Configuración de Escaneo"},{type:"h3",text:"Primer Escaneo"},{type:"p",text:"Se usa cuando el agente se conecta a una nueva granja o dispositivo por primera vez."},{type:"ul",items:["Tiempo de Espera de Ping â Duración máxima antes de que una solicitud de ping se marque como fallida.","Tiempo Máximo por Worker â Tiempo máximo permitido para todas las solicitudes enviadas a un worker.","Concurrencia â Número de solicitudes simultáneas para leer datos del dispositivo."]},{type:"h3",text:"Escaneo de Búsqueda IP"},{type:"img",src:"https://docs.lod.io/hs-fs/hubfs/undefined-Oct-22-2025-02-52-43-3300-PM.png?width=358&height=215",alt:"Configuración de Escaneo de Búsqueda IP"},{type:"p",text:"Se usa para descubrir mineros dentro de un rango de IP definido."},{type:"ul",items:["Tiempo de Espera de Ping â Duración máxima antes de que una solicitud de ping se marque como fallida.","Tiempo Máximo por Worker â Tiempo máximo permitido para todas las solicitudes enviadas a un worker.","Concurrencia â Número de solicitudes simultáneas para leer datos del dispositivo."]},{type:"h3",text:"Escaneo Periódico"},{type:"img",src:"https://docs.lod.io/hs-fs/hubfs/undefined-Oct-22-2025-02-52-43-6006-PM.png?width=358&height=215",alt:"Configuración de Escaneo Periódico"},{type:"p",text:"Se usa para monitoreo continuo y recopilación de datos."},{type:"ul",items:["Tiempo de Espera de Ping â Duración máxima antes de que una solicitud de ping se marque como fallida.","Tiempo Máximo por Worker â Tiempo máximo permitido para todas las solicitudes enviadas a un worker.","Concurrencia â Número de solicitudes simultáneas para leer datos del dispositivo."]}]},"linux-agent":{title:"Cómo Instalar el Agente LÅD en Linux",category:"Primeros Pasos",content:[{type:"h2",text:"Resumen"},{type:"p",text:"Después de descargar el Agente de la plataforma, los usuarios de Linux pueden instalar y ejecutar manualmente la aplicación desde su terminal. Siga los pasos a continuación para garantizar que el Agente se instale en un directorio seguro y persistente."},{type:"h3",text:"Crear el Agente"},{type:"ul",items:['Para crear un nuevo agente, haga clic en "IoT" luego en "ASICs". En la parte superior verá una sección de agente.',"Haga clic en el Ãcono de más en el lado derecho y nombre su nuevo agente."]},{type:"img",src:"https://docs.lod.io/hs-fs/hubfs/Screenshot%202025-11-25%20at%208.08.04%20AM.png?width=670&height=334&name=Screenshot%202025-11-25%20at%208.08.04%20AM.png",alt:"Crear un nuevo agente en LÅD"},{type:"h3",text:"Descargar la Aplicación"},{type:"ul",items:['Haga clic en el mismo Ãcono de más pero esta vez seleccione "Descargar App".',"Elija qué versión de Linux está ejecutando y espere a que el archivo se descargue."]},{type:"h3",text:"Ubicación de Instalación"},{type:"p",text:"Se recomienda ampliamente instalar el Agente en un directorio bajo su carpeta de usuario o home. Evite instalar en: /tmp, /Downloads, /Desktop. Estas ubicaciones son temporales o propensas a eliminación y pueden causar problemas de estabilidad."},{type:"h3",text:"Pasos de Instalación"},{type:"ol",items:["Abra la Terminal. Navegue a la carpeta donde extrajo los archivos del Agente."]},{type:"h3",text:"Ejecute los siguientes comandos:"},{type:"code",text:"sudo apt update"},{type:"ul",items:["Asegura que los paquetes de su sistema estén actualizados."]},{type:"code",text:"sudo chmod +x LincoinAgent"},{type:"ul",items:["Otorga permiso de ejecución al archivo del Agente."]},{type:"code",text:"sudo ./LincoinAgent"},{type:"ul",items:["Inicia el instalador del Agente Lincoin."]},{type:"h3",text:"Acceder a la Interfaz del Agente"},{type:"p",text:"Una vez que el Agente esté ejecutándose, los usuarios de Linux deben abrir manualmente la interfaz. En su navegador, navegue a: http://localhost:12400. Esto abrirá el panel del Agente, donde puede agregar su clave del Agente de la plataforma para completar la configuración."},{type:"h3",text:"Agregar su Clave del Agente"},{type:"p",text:"Después de descargar y ejecutar el Agente Lincoin, debe colocar su Clave del Agente dentro de un archivo key.txt ubicado en la misma carpeta que el ejecutable del Agente."},{type:"h3",text:"1. Crear el archivo de clave"}
2128,{type:"code",text:"touch key.txt"},{type:"h3",text:"2. Abrir el archivo"},{type:"code",text:"nano key.txt"},{type:"h3",text:"3. Pegar la clave"},{type:"p",text:"Pegue su Clave del Agente completa en el archivo exactamente como se proporcionó."},{type:"h3",text:"4. Guardar y salir"},{type:"ul",items:["Presione Ctrl + O, luego Enter para guardar.","Presione Ctrl + X para cerrar el editor."]},{type:"h3",text:"Reiniciar el Agente (si es necesario)"},{type:"code",text:"sudo ./LincoinAgent"},{type:"p",text:"El Agente leerá automáticamente el archivo key.txt y se autenticará con la plataforma."}]},"lincoin-revenues":{title:"Reporte de Ingresos del Pool Lincoin",category:"Operaciones Diarias y Gestión",content:[{type:"h2",text:"Resumen"},{type:"p",text:"Este reporte le brinda datos de ingresos del lado del pool para workers que ejecutan en el pool Lincoin. Es la forma más rápida de obtener ganancias, rendimiento y métricas relacionadas durante un perÃodo especÃfico."},{type:"h3",text:"Cómo Acceder"},{type:"ol",items:["Vaya a Pool en la barra lateral izquierda","Haga clic en Ingresos"]},{type:"img",src:"https://docs.lod.io/hs-fs/hubfs/Screenshot%202026-03-26%20at%2012.26.16%20PM.png?width=670&height=284",alt:"Reporte de Ingresos del Pool Lincoin"},{type:"h3",text:"Qué Está Viendo"},{type:"p",text:"Cada fila representa un dÃa e incluye:"},{type:"ul",items:["Ganancias totales (BTC + USD)","Recompensas de bloque, comisiones TX, recompensas de referidos","EstadÃsticas de rendimiento (tasa de hash, % rechazado, conteo de workers)","Dificultad de la red","Precio del BTC (actual vs. referencia anterior)","Porcentaje de ganancia de capital"]},{type:"h3",text:"Establecer su Rango de Fechas"},{type:"ol",items:["Use los campos de Fecha de Inicio y Fecha de Fin en la parte superior derecha","Haga clic en Establecer Rango","La tabla se actualizará según su rango seleccionado","Ajuste el tamaño de página en la parte inferior para asegurarse de que todos los puntos de datos se muestren",'Revise la columna "Todos"']},{type:"h3",text:"Exportar el Reporte"},{type:"p",text:"Haga clic en el botón Exportar (parte superior derecha) y elija Excel (.xlsx) o CSV. La exportación reflejará el rango de fechas que tenga configurado actualmente."}]},"generate-csv-excel-reports":{title:"Cómo Generar Reportes CSV y Excel para un PerÃodo Determinado",category:"Operaciones Diarias y Gestión",content:[{type:"h2",text:"Generación y Exportación de Reportes P&L"},{type:"p",text:"Esta guÃa explica cómo generar y exportar reportes P&L en LÅD. Una vez que haya iniciado sesión en su cuenta, navegue a Reportes â P&L. De forma predeterminada, la página muestra un reporte diario general del mes anterior. Para ajustar los datos mostrados, seleccione Modificar Reporte."},{type:"h3",text:"Opciones de Configuración del Reporte"},{type:"dl",items:[{term:"Zona Horaria",def:"Asegúrese de que su zona horaria esté configurada correctamente. Esto impacta cómo sus datos se alinean con sus horas operativas y puede diferir de la hora local del sitio."},{term:"Fechas de Inicio y Fin",def:"Elija la ventana de reporte que desea analizar. LÅD retiene datos históricos a largo plazo, permitiéndole extraer reportes para un solo dÃa, varios meses o incluso años."},{term:"Precio de la Electricidad",def:"Si está usando el Módulo de EnergÃa, su región y nodo se autocompletarán (ej., ERCOT â Load Zone West). Si opera bajo un modelo de tarifa fija, seleccione Fijo e ingrese su costo por kWh."},{term:"Intervalo",def:"Seleccione la granularidad de sus datos: Diario, Por Hora o intervalos de 15 minutos según sus necesidades de reporte."},{term:"Costos Adicionales",def:"Agregue cualquier costo fijo o variable que desee incluir, como salarios, recargos o comisiones adicionales por kWh."}]},{type:"h3",text:"Exportar su Reporte"},{type:"p",text:"Si desea exportar solo filas especÃficas, selecciónelas de la tabla y elija Exportar â CSV para descargar solo los datos resaltados."},{type:"p",text:"Para exportar el conjunto de datos completo:"},{type:"ol",items:["Haga clic en la pestaña Todos los Datos.","Seleccione Exportar vÃa CSV o Exportar vÃa Excel."]},{type:"callout",text:"Evite seleccionar manualmente todas las filas en la vista de tabla. La tabla puede cargar solo las primeras 10 filas a menos que se expanda. Usar las opciones de exportación de Todos los Datos garantiza que el conjunto de datos completo esté incluido."},{type:"h3",text:"Reportes Automatizados"},{type:"p",text:"Para aprender cómo programar reportes para entrega automática, consulte la documentación de Reporte Automatizado."}]},"smart-view-filter":{title:"Documentación del Filtro Smart View",category:"Operaciones Diarias y Gestión",content:[{type:"h2",text:"Resumen del Filtro SmartView"},{type:"p",text:"El Filtro SmartView le ayuda a ordenar, organizar y gestionar rápidamente sus dispositivos ASIC en las páginas de IoT y ASIC. Le permite filtrar dispositivos según métricas clave como tasa de hash, consumo de energÃa, eficiencia, firmware y tipo de modelo â facilitando encontrar y comandar grupos especÃficos de mineros."},{type:"h3",text:"Cómo Usar el Filtro Smart View"},{type:"ul",items:["Ubicación del Filtro SmartView: Se encuentra en el lado derecho de la página de ASIC.","Ejemplo de Filtrado: Puede seleccionar modelos ASIC especÃficos (ej., S19 XPs) y agregar múltiples filtros, c
2128omo rangos de vatios o versiones de firmware, para reducir aún más los resultados.","Aplicar y Eliminar Filtros: Haga clic en Aplicar Filtros para mostrar resultados. Haga clic en Eliminar Todos o la X junto a los filtros individuales para borrar selecciones.","Ver Dispositivos Filtrados: Una vez aplicados los filtros, puede hacer clic en Mostrar Dispositivos para ver todos los ASICs que coincidan con sus criterios.","Enviar Comandos: Después de filtrar, puede enviar comandos en lote al grupo seleccionado de dispositivos directamente desde el panel SmartView.","Guardar Filtros: Los filtros de uso frecuente se pueden guardar para acceso rápido, eliminando la necesidad de reconfigurarlos cada vez."]},{type:"h3",text:"Estado y Actividad del Dispositivo"},{type:"img",src:"https://docs.lod.io/hs-fs/hubfs/undefined-Oct-22-2025-07-06-40-7849-PM.png?width=670&height=432",alt:"Filtros de Estado y Actividad del Dispositivo"},{type:"dl",items:[{term:"Conectado / Desconectado",def:"Mostrar solo dispositivos conectados o desconectados."},{term:"Estado de MinerÃa",def:"Bajo â dispositivos minando con una tasa de hash baja. Minando â dispositivos activamente minando. Normal â dispositivos minando a la tasa esperada. Detenido â dispositivos que están parados."},{term:"Proceso Activo",def:"Cambio de Pool, Encendido/Apagado de EnergÃa, Inicio/Detención de Rampa, Riel Omitido, Ajuste de EnergÃa."},{term:"Etiquetas",def:"Filtrar dispositivos por etiquetas asignadas."},{term:"Excluir Selección",def:"Excluir los elementos seleccionados del resultado del filtro actual."}]},{type:"h3",text:"Filtros de Tasa de Hash"},{type:"img",src:"https://docs.lod.io/hs-fs/hubfs/undefined-Oct-22-2025-07-06-42-4984-PM.png?width=670&height=432",alt:"Filtros de Tasa de Hash"},{type:"dl",items:[{term:"Tasa de Hash IoT",def:"Mostrar dispositivos cuya tasa de hash IoT esté entre un valor mÃnimo y máximo. Opción para excluir."},{term:"Tasa de Hash Ideal",def:"Mostrar dispositivos cuya tasa de hash ideal esté entre un valor mÃnimo y máximo."},{term:"Tasa de Hash del Pool",def:"Mostrar dispositivos cuya tasa de hash del pool esté entre un valor mÃnimo y máximo."}]},{type:"h3",text:"EnergÃa y Eficiencia"},{type:"img",src:"https://docs.lod.io/hs-fs/hubfs/undefined-Oct-22-2025-07-06-43-1198-PM.png?width=670&height=432",alt:"Filtros de EnergÃa y Eficiencia"},{type:"dl",items:[{term:"EnergÃa",def:"Mostrar dispositivos cuyo consumo de energÃa esté entre el mÃnimo y el máximo. Opción para excluir."},{term:"Eficiencia",def:"Mostrar dispositivos cuya eficiencia esté entre el mÃnimo y el máximo. Opción para excluir."}]},{type:"h3",text:"Enfriamiento y Temperatura"},{type:"img",src:"https://docs.lod.io/hs-fs/hubfs/image-png.png?width=619&height=398",alt:"Filtros de Enfriamiento y Temperatura"},{type:"dl",items:[{term:"Velocidad del Ventilador",def:"Mostrar dispositivos cuyas RPM del ventilador estén entre los valores mÃnimo y máximo seleccionados. Opción para excluir (útil para configuraciones de inmersión/hidro)."},{term:"Estado de Enfriamiento",def:"Filtrar por configuración de enfriamiento: Ventilador, Inmersión o Hidro."},{term:"Temperatura de PCB",def:"Mostrar dispositivos cuya temperatura de PCB esté entre el mÃnimo y el máximo."},{term:"Temperatura del Chip",def:"Mostrar dispositivos cuya temperatura del chip esté entre el mÃnimo y el máximo."}]},{type:"h3",text:"Problemas y Errores"},{type:"img",src:"https://docs.lod.io/hs-fs/hubfs/undefined-Oct-22-2025-07-06-41-1422-PM.png?width=670&height=432",alt:"Filtros de Problemas y Errores"},{type:"dl",items:[{term:"Error de Autenticación",def:"Activar: mostrar solo dispositivos con errores de autenticación. Desactivar: mostrar solo dispositivos sin errores. Excluir: ignorar este filtro."},{term:"Error de Hash",def:"Activar: mostrar solo dispositivos con errores de hash. Desactivar/Excluir como se indica arriba."},{term:"Eficiencia No Detectada",def:"Activar: mostrar solo dispositivos donde la eficiencia no pudo detectarse. Desactivar: mostrar solo dispositivos donde la eficiencia sà se detecta."},{term:"Pool Desconectado",def:"Activar: mostrar solo dispositivos desconectados del pool."},{term:"Problema de Cambio de Pool",def:"Activar: mostrar solo dispositivos que tienen problemas al cambiar pools."},{term:"Pool VacÃo",def:"Activar: mostrar solo dispositivos sin pool configurado."},{term:"Problemas de Tasa de Hash",def:"Activar: mostrar solo dispositivos con problemas relacionados con la tasa de hash."},{term:"Ajuste de EnergÃa",def:"Activar: mostrar solo dispositivos donde los ajustes automáticos de energÃa están activos."},{term:"Discrepancia de Objetivo",def:"Activar: mostrar solo dispositivos con errores de discrepancia de objetivo."}]},{type:"h3",text:"Usuarios del Pool"},{type:"img",src:"https://docs.lod.io/hs-fs/hubfs/undefined-Oct-22-2025-07-06-42-8050-PM.png?width=670&height=432",alt:"Filtros de Usuarios del Pool"},{type:"dl",items:[{term:"Usuarios del Pool",def:"Mostrar dispositivos por sus usuarios del pool. Muestra dispositivos asociados a nombres de usuario del pool seleccionados. Ãtil para rastrear el rendimiento a nivel de usuario."},{term:"Excluir selección",def:"Oculta dispositivos vinculados a los usuarios del pool seleccionados."}]},{type:"h3",text:"Agente y Red"},{type:"img",src:"https://docs.lod.io/hs-fs/hubfs/image-png-1.png?width=667&height=429",alt:"Filtros de Agente y Red"},{type:"dl",items:[{term:"Agentes",def:"Mostrar dispositivos conectados a agentes especÃficos. Permite filtrar dispositivos según los agentes de monitoreo/gestión a los que están conectados."},{term:"Rango de IP",def:"Mostrar dispositivos con IP en el rango especificado. Muestra dispositivos cuyas direcciones IP están dentro del rango dado."}]},{type:"h3",text:"Hardware y Configuración"},{type:"img",src:"https://docs.lod.io/hs-fs/hubfs/undefined-Oct-22-2025-07-06-41-8407-PM.png?width=670&height=432",alt:"Filtros de Hardware y Configuración"},{type:"dl",items:[{term:"Algoritmos de MinerÃa",def:"Filtrar dispositivos según el algoritmo que están minando actualmente (ej., SHA-256, Scrypt)."},{term:"Modelos",def:"Limitar el monitoreo a ciertos tipos o fabricantes de mineros."},{term:"Firmwares",def:"Filtrar por firmware: bosminer, cgminer, luxos o vnish."}]},{type:"h3",text:"Gestión del Sitio"},{type:"img",src:"https://docs.lod.io/hs-fs/hubfs/undefined-Oct-22-2025-07-06-42-1511-PM.png?width=670&height=432",alt:"Filtros de Gestión del Sitio"},{type:"dl",items:[{term:"Subcuenta Compartida",def:"Filtrar dispositivos según la subcuenta a la que pertenecen."},{term:"Rieles",def:"Filtrar dispositivos por sus rieles configurados."},{term:"Posición del Dispositivo",def:"En Rack o Sin Rack."},{term:"Racks / Grupos / PDUs",def:"Filtrar dispositivos según asignaciones de rack, grupos definidos por el usuario o Unidades de Distribución de EnergÃa."}]},{type:"h3",text:"Mis Parámetros"},{type:"img",src:"https://docs.lod.io/hs-fs/hubfs/undefined-Oct-22-2025-07-06-41-5014-PM.png?width=670&height=432",alt:"Filtros de Mis Parámetros"},{type:"dl",items:[{term:"Velocidad del Ventilador",def:"Baja â dispositivos con velocidad de ventilador por debajo del rango normal. Normal â dentro del rango. Alta â por encima del rango normal."},{term:"Temperatura del Chip",def:"FrÃa â por debajo del rango normal. Normal â dentro del rango. Caliente â por encima del rango normal."},{term:"Temperatura de PCB",def:"FrÃa â por debajo del rango normal. Normal â dentro del rango. Caliente â por encima del rango normal."},{term:"Estado de EnergÃa",def:"Baja â consumiendo menos energÃa de lo esperado. Normal â dentro del rango normal. Alta â consumiendo más energÃa de lo esperado."},{term:"Estado de Eficiencia",def:"Baja â rendimiento por debajo de la eficiencia esperada. Normal â dentro de la eficiencia esperada. Alta â rendimiento por encima de la eficiencia esperada."},{term:"Estado de Tasa de Hash IoT",def:"Baja â por debajo de la tasa de hash esperada. Normal â dentro del rango. Alta â por encima de la tasa de hash esperada."}]}]},"site-map-overview":{title:"Descripción General del Mapa del Sitio",category:"Operaciones Diarias y Gestión",content:[{type:"h2",text:"Descripción General del Mapa del Sitio"},{type:"p",text:"Una breve descripción general sobre cómo leer y usar el mapa del sitio para obtener más información sobre sus operaciones mineras."},{type:"video",loomId:"4000adcae82943929048ee0ab2fee576",label:"Ver: Descripción General del Mapa del Sitio"},{type:"p",text:"El Mapa del Sitio en LÅD le brinda una vista visual a vista de pájaro de toda su operación minera. Le ayuda a localizar mineros especÃficos, monitorear métricas de rendimiento y profundizar en racks o dispositivos para obtener información detallada."},{type:"h3",text:"Acceder al Mapa del Sitio"},{type:"p",text:"Desde su panel, vaya a IoT â Mapa del Sitio. Esto abre un diseño interactivo de su sitio y dis
2128positivos conectados."},{type:"h3",text:"Ver y Ordenar Dispositivos"},{type:"p",text:"En la parte superior, puede alternar entre dispositivos y PDUs (si los Smart PDUs están configurados). Ordene o codifique por colores los dispositivos por métricas clave como:"},{type:"ul",items:["Estado de conexión","Tasa de hash","Temperatura de PCB","Temperatura del chip","Velocidad del ventilador","Consumo de energÃa","Eficiencia"]},{type:"p",text:"Los dispositivos con problemas (ej., RPM de ventilador anormal) se resaltan en rojo."},{type:"h3",text:"Modo Lite para Sitios Grandes"},{type:"p",text:"Habilita una vista más compacta para instalaciones con múltiples almacenes, contenedores o edificios."},{type:"h3",text:"Navegar Grupos y Pods"},{type:"p",text:"Los grupos representan áreas lógicas del sitio â como almacenes, contenedores o pods. Hacer clic en un pod (ej., Pod 21) revela sus racks y mineros."},{type:"h3",text:"Agregar y Configurar Racks"},{type:"p",text:"Haga clic en Agregar Rack, defina el número de filas y columnas, y ejecute un escaneo IP para cargar dispositivos en ese rack automáticamente."},{type:"h3",text:"Inspeccionar Racks y Dispositivos"},{type:"p",text:"Dentro de un rack, puede ver conteos de dispositivos, métricas (como RPM del ventilador o uso de energÃa) y rangos de IP. Seleccionar un minero individual muestra información detallada que incluye:"},{type:"ul",items:["Modelo y estado de conexión","Tasa de hash y detalles del pool","Lecturas de temperatura","La capacidad de hacer túnel o enviar comandos directamente a ese dispositivo"]}]},"commands-sent-through-lod":{title:"Cómo Ver los Comandos Enviados a Través de LÅD",category:"Optimización y Automatización",content:[{type:"h2",text:"Resumen del Registro de Solicitudes del Agente"},{type:"video",loomId:"f39ae860d6444dd693da8f8117db6b96",label:"Ver: Cómo Ver los Comandos Enviados a Través de LÅD"},{type:"p",text:"El Registro de Solicitudes del Agente proporciona un rastro de auditorÃa completo de toda la actividad dentro de su sitio. Registra cada comando, escaneo y evento del sistema enviado a través de su agente, permitiéndole rastrear el historial operativo, verificar acciones e identificar problemas de rendimiento o proceso a lo largo del tiempo."},{type:"h3",text:"Lista de Eventos (Ãcono de Campana)"},{type:"ul",items:["Muestra eventos automatizados de la plataforma como miembros del equipo agregados o eliminados, rieles activados y otras notificaciones a nivel del sistema.","Ãtil para rastrear la actividad general y actualizaciones dentro de LÅD."]},{type:"h3",text:"Registro de Solicitudes del Agente (Ãcono de Nube)"},{type:"ul",items:["Muestra un registro detallado de todas las acciones a nivel de agente, incluyendo escaneos, comandos de encendido/apagado y registros de datos enviados desde el agente.","Cada registro incluye: Marca de tiempo y tiempo de procesamiento, Tipo de acción y estado (Completado, Pendiente, Fallido o Cancelado), Nombre del dispositivo y dirección IP (ambos copiables como referencia)."]},{type:"h3",text:"Filtrar y Revisar Solicitudes"},{type:"ul",items:["Use filtros para ordenar por estado (Completado, Pendiente, Cancelado, etc.).","Haga clic en el Ãcono de calendario para ver registros de fechas especÃficas.","Seleccione Exportar para descargar registros como CSV o Excel para análisis fuera de lÃnea."]},{type:"h3",text:"Gestionar Solicitudes"},{type:"ul",items:["Haga clic en Cancelar Todos los Pendientes para detener todos los comandos en progreso.","Revisar estos registros ayuda a identificar tendencias, solucionar problemas y evaluar el rendimiento del equipo."]}]},"automated-reporting":{title:"Cómo Configurar Reportes Automatizados",category:"Optimización y Automatización",content:[{type:"h2",text:"Resumen de Reportes Automatizados"},{type:"video",loomId:"3770c87213644db29d9b69746d8dbe4b",label:"Ver: Configurar Reportes Automatizados"},{type:"p",text:"Este video proporciona un recorrido rápido sobre cómo crear y gestionar reportes automatizados dentro de LÅD. Los reportes automatizados le ayudan a usted y a su equipo a re
2128cibir actualizaciones regulares de rendimiento o financieras directamente por correo electrónico sin generar reportes manualmente cada vez."},{type:"h3",text:"Acceder a la Página de Automatización"},{type:"p",text:"Navegue a Reportes â Automatización y haga clic en Nueva Automatización para comenzar a crear un nuevo reporte programado."},{type:"h3",text:"Nombrar su Reporte y Agregar Destinatarios"},{type:"p",text:"Dé al reporte un nombre (ej., Reporte Semanal del Sitio). Elija destinatarios de su organización â solo los usuarios que ya forman parte de su organización LÅD pueden recibir estos reportes."},{type:"h3",text:"Establecer la Frecuencia y Tipo de Reporte"},{type:"p",text:"Elija con qué frecuencia se debe enviar el reporte (ej., diario, semanal o mensual)."},{type:"h3",text:"Enviar un Correo de Prueba"},{type:"p",text:"Opcionalmente envÃe un correo de prueba para asegurarse de que el reporte llegue a todos los destinatarios correctamente."},{type:"h3",text:"Guardar, Editar o Eliminar Reportes"},{type:"p",text:"Haga clic en Guardar para finalizar su automatización. Los reportes existentes aparecen en su lista de automatización, donde puede editar configuraciones para cambiar la frecuencia o los destinatarios, o eliminar reportes cuando ya no sean necesarios."}]},"watchdog-pool-enforcer":{title:"Riel Watch Dog (Aplicador de Pool)",category:"Optimización y Automatización",content:[{type:"h2",text:"Resumen del Riel Watchdog"},{type:"video",loomId:"dc6cf34cda634f78b7128ec9cf776458",label:"Ver: Riel Watch Dog (Aplicador de Pool)"},{type:"p",text:"El Riel Watchdog monitorea y corrige automáticamente dónde están minando sus ASICs, asegurando que permanezcan conectados a sus pools de minerÃa de confianza. Si un minero comienza a minar en un pool no confiable o tiene bajo rendimiento, el Riel Watchdog puede enrutarlo automáticamente según sus ajustes definidos."},{type:"h3",text:"Verificar Pools de Confianza"},{type:"p",text:"Antes de crear un Riel Watchdog, navegue a IoT â Pools de Confianza y confirme que sus pools estén configurados. Si no, haga clic en Agregar Nuevo e ingrese: nombre de subcuenta, dirección y puerto del pool, tasa de hash esperada y conteo de ASICs."},{type:"h3",text:"Crear el Riel Watchdog"},{type:"p",text:"Vaya a Rieles y haga clic en Nuevo Riel."},{type:"ul",items:["Nombre el riel (ej., Watchdog o Aplicador de Pool)","Active Establecer como Global para aplicarlo en todos los ASICs","Elija la señal Watchdog de la lista"]},{type:"h3",text:"Configurar Condiciones de Activación"},{type:"p",text:"Defina cuánto tiempo debe persistir una discrepancia antes de tomar acción (ej., 10 minutos). Esto significa que si un minero mina en un pool no confiable durante más de 10 minutos, se enrutará automáticamente."},{type:"h3",text:"Establecer Acciones Automatizadas"},{type:"ul",items:["Acción: Cambiar pool","Intervalo de reintento: Con qué frecuencia el sistema reintenta (ej., cada 30 minutos)","Activar: Mantener el riel activo inmediatamente, o desactivar para guardarlo para más tarde","Prioridad: Determina el orden de acción cuando se ejecutan múltiples rieles"]},{type:"h3",text:"Definir Orden de Pool y Credenciales"},{type:"p",text:"Ingrese hasta tres pools en orden de preferencia (Pool 1 â Pool 2 â Pool 3). Si el Pool 1 tiene bajo rendimiento o rechaza una tasa de hash excesiva, los mineros se enrutarán automáticamente al siguiente pool disponible. Ingrese la contraseña correspondiente de cada pool según sea necesario."},{type:"h3",text:"Guardar y Aplicar el Riel"},{type:"p",text:"Haga clic en Enviar para finalizar. El Riel Watchdog ahora monitoreará y gestionará activamente el enrutamiento del pool en toda su flota."}]},"energy-rails":{title:"Documentación de Rieles de EnergÃa",category:"Optimización y Automatización",content:[{type:"h2",text:"Resumen"},{type:"p",text:"El sistema de Rieles de EnergÃa de LÅD gobierna cómo las señales del mercado energético, los programas de respuesta a la demanda y la lógica de optimización económica controlan la carga del sitio. Debido a que las grandes cargas flexibles pueden participar en múltiples programas simultáneamente, las señales superpuestas son comunes."},{type:"p",text:"Los Rieles de EnergÃa garantizan comportamiento determinista, automatización compatible con la red, resolución predecible de conflictos y lógica de reinicio segura."},{type:"p",text:"Un Riel de EnergÃa es un camino de control independiente que puede emitir un comando de INICIO (energizar carga), DETENCIÃN (curtailment de carga) o AJUSTE DE ENERGÃA."},{type:"h3",text:"Tipos de Rieles"},{type:"dl",items:[{term:"Riel de Despacho",def:"Usado para participación en mercados ISO/RTO. Maneja instrucciones de despacho en tiempo real, despliegue de servicios auxiliares y directivas de emergencia de la red. Mercados aplicables: ERCOT, PJM, AESO, IESO, MISO, NYISO. El Riel de Despacho continúa aplicando el curtailment hasta 15 minutos después de que termine una ventana de despacho."},{term:"Riel de Programación / Recurrente",def:"Usado para control de carga basad
2128o en tiempo. Ejecuta comandos de INICIO, DETENCIÃN o AJUSTE DE ENERGÃA estrictamente según un horario configurado. Común para bloques de carga de utilidades, ventanas de curtailment planificadas y evitación recurrente de picos."},{term:"Riel LMP",def:"Impulsa decisiones de despacho económico basadas en precios de energÃa en tiempo real y dÃa anterior. Genera comandos según umbrales de margen y activadores de precio personalizados. Común para optimización de minerÃa de Bitcoin y arbitraje detrás del medidor."},{term:"Riel 4CP / 5CP",def:"Usado para gestión de picos coincidentes. Emite comandos de DETENCIÃN durante intervalos de pico pronosticados para minimizar la exposición a costos de capacidad. Común para gestión de picos estacionales y programas de picos de utilidades."}]},{type:"h3",text:"Prioridad y Resolución de Conflictos"},{type:"p",text:"Todos los rieles de mercado energético y respuesta a la demanda tienen por defecto Nivel de Prioridad 5. Un número más alto significa mayor prioridad â un riel en Prioridad 6 anulará un riel en Prioridad 4 independientemente del tipo de comando."},{type:"ul",items:["Paso 1 â Comparar Prioridad: El riel de mayor prioridad anula al de menor, independientemente del tipo de comando.","Paso 2 â Si las Prioridades son Iguales: DETENCIÃN anula INICIO. Esta regla de dominancia de DETENCIÃN garantiza un comportamiento conservador y seguro para la red durante eventos superpuestos."]},{type:"h3",text:"Escenarios de Ejemplo"},{type:"dl",items:[{term:"Escenario A â El despacho termina pero otro curtailment sigue activo",def:"Riel de Despacho emite INICIO. Riel de Transmisión emite DETENCIÃN. Ambos en Prioridad 5. Resultado: DETENCIÃN gana. La carga permanece en curtailment."},{term:"Escenario B â La señal de precio indica ejecución pero un evento DR está activo",def:"Riel LMP emite INICIO. DR de Emergencia emite DETENCIÃN. Ambos en Prioridad 5. Resultado: DETENCIÃN gana. Se aplica el curtailment."},{term:"Escenario C â INICIO de mayor prioridad anula DETENCIÃN de menor prioridad",def:"DR de Utilidad emite DETENCIÃN en Prioridad 4. Despliegue Auxiliar ISO emite INICIO en Prioridad 6. Resultado: Prioridad 6 anula Prioridad 4. La carga se energiza."}]},{type:"h3",text:"Lógica de Reinicio"},{type:"p",text:"Un reinicio tiene éxito solo cuando: ninguna otra señal de DETENCIÃN permanece activa, y ningún riel de mayor prioridad está bloqueando el reinicio. No existe una ventana de reinicio incondicional que anule los curtailments activos â esto previene la energización no deseada durante eventos de estrés en la red."},{type:"h3",text:"Ajustes de Prioridad EspecÃficos del Sitio"},{type:"p",text:"Aunque todos los programas de energÃa tienen por defecto Prioridad 5, la prioridad debe ajustarse en las siguientes circunstancias: un programa conlleva alta exposición a penalizaciones, o una obligación contractual requiere precedencia de señal."}]},"states-issues":{title:"Estados y Problemas de los ASICs",category:"Solución de Problemas y FAQ",content:[{type:"h2",text:"Recorrido completo con pasos de solución de problemas sobre los estados y problemas que sus mineros pueden mostrar en LÅD."},{type:"img",src:"https://docs.lod.io/hs-fs/hubfs/undefined-Oct-22-2025-03-16-22-4366-PM.png?width=670&height=334",alt:"Resumen de Estados y Problemas"},{type:"img",src:"https://docs.lod.io/hs-fs/hubfs/undefined-Oct-22-2025-03-16-22-0990-PM.png?width=422&height=464",alt:"Panel de Estados y Problemas"},{type:"p",text:"La sección de Estados y Problemas muestra un resumen de cualquier problema activo detectado en sus ASICs. Si no hay problemas, esta sección no aparecerá en la Gestión de ASIC. Cuando existan problemas, cada uno se listará por nombre junto con el número de ASICs actualmente afectados."},{type:"h3",text:"1. Problema de Ventilador"},{type:"p",text:"El sistema ha detectado un comportamiento anormal del ventilador o lecturas irregulares de RPM. Esto puede indicar ineficiencia en el enfriamiento o mal funcionamiento del hardware."},{type:"dl",items:[{term:"Posibles Causas",def:"Velocidad del ventilador por debajo o encima del rango seguro de RPM. Acumulación de polvo u obstrucción fÃsica reduce el flujo de aire. Sensor, cable o conector del ventilador defectuoso. Firmware reportando incorrectamente la velocidad o configuración de la curva del ventilador."},{term:"Pasos de Solución",def:"1. Inspeccionar visualmente los ventiladores para confirmar que giran y están libres de escombros. 2. Verificar las lecturas de RPM contra los rangos esperados. 3. Limpiar la acumulación de polvo y verificar cables y conectores. 4. Revisar la configuración del firmware para la curva o modo de control del ventilador. 5. Reemplazar el ventilador si la velocidad sigue siendo errática o por debajo del umbral después de la limpieza."}]},{type:"h3",text:"2. Problema de Temperatura"},{type:"p",text:"La temperatura del dispositivo ha excedido o caÃdo fuera del rango operativo seguro configurado. Si las temperaturas superan los umbrales seguros, el rendimiento de la minerÃa puede reducirse o detenerse para prevenir daños."},{type:"dl",items:[{term:"Posibles Causas",def:"Refrigeración inadecuada o flujo de aire restringido. Alta temperatura ambiente en la instalación. Acumulación de polvo en disipadores de calor o ventiladores. Sensor térmico fallido o impreciso."},{term:"Pasos de Solución",def:"1. Verificar que la temperatura ambiente esté dentro de los lÃmites operativos. 2. Inspeccionar el flujo de aire â confirmar que las ventilaciones, conductos y ventiladores no estén obstruidos. 3. Limpiar disipadores de calor y ventiladores para mejorar la disipación de calor. 4. Revisar sensores térmicos y velocidades de ventilador en la interfaz del minero o registros. 5. Si persiste, inspeccionar las placas hash o fuente de alimentación por sobrecalentamiento o falla de componentes."}]},{type:"h3",text:"3. Problema de Tasa de Hash"},{type:"p",text:"La tasa de hash reportada del dispositivo está por debajo de la lÃnea base de rendimiento esperada o configurada. LÅD compara datos de tasa de hash en tiempo real con la producción nominal del minero."},{type:"dl",items:[{term:"Posibles Causas",def:"Una o más placas hash no detectadas o con bajo rendimiento. Fuente de alimentación inestable o insuficiente. C
2128onfiguraciones incorrectas de firmware, voltaje o frecuencia. Temperatura excesiva que causa reducción de rendimiento."},{term:"Pasos de Solución",def:"1. Comparar la tasa de hash real con la capacidad nominal del modelo. 2. Verificar el estado de las placas hash en busca de placas faltantes o con error. 3. Verificar la salida de la fuente de alimentación y las conexiones de energÃa. 4. Reiniciar el dispositivo para descartar fallas temporales de red o firmware. 5. Escalar a depuración de hardware o firmware si el bajo rendimiento persiste."}]},{type:"h3",text:"4. Desconectado"},{type:"p",text:"El dispositivo ha perdido la conexión con el sistema de gestión LÅD, impidiendo que reciba comandos o reporte telemetrÃa."},{type:"dl",items:[{term:"Posibles Causas",def:"Interrupción de red local (LAN, switch o falla del router). Reinicio del dispositivo o pérdida de energÃa. CaÃda del firmware o cuelgue del sistema. IP incorrecta o restricciones del firewall bloqueando la comunicación."},{term:"Pasos de Solución",def:"1. Hacer ping a la IP del dispositivo para confirmar conectividad básica. 2. Revisar los registros del switch/router en busca de interrupciones o cambios de DHCP. 3. Verificar la energÃa del dispositivo y asegurarse de que el minero esté fÃsicamente funcionando. 4. Reiniciar el minero si no responde. 5. Si es recurrente, revisar la versión del firmware, la configuración de red y la estabilidad."}]},{type:"h3",text:"5. Tiene Error"},{type:"p",text:"Se ha detectado un error genérico por el firmware del minero, indicando una falla interna no clasificada que interrumpe el funcionamiento normal."},{type:"dl",items:[{term:"Posibles Causas",def:"Error de firmware o inconsistencia de software. Conflicto de configuración entre pool, ajustes del usuario o comandos API. Mal funcionamiento del hardware o falla intermitente."},{term:"Pasos de Solución",def:"1. Revisar los registros del minero para identificar mensajes o códigos de error relacionados. 2. Reiniciar el dispositivo para limpiar fallas temporales o a nivel de software. 3. Actualizar el firmware a la última versión estable. 4. Verificar los ajustes de configuración en busca de inconsistencias. 5. Contactar al soporte del proveedor o ingenierÃa si el error reaparece después de la actualización."}]},{type:"h3",text:"6. Pool Desconectado"},{type:"p",text:"El minero ha perdido la conexión con su pool de minerÃa configurado y dejará de recibir trabajo."},{type:"dl",items:[{term:"Posibles Causas",def:"Tiempo de inactividad o mantenimiento del servidor del pool. URL, puerto o credenciales del pool incorrectos. Interrupción de red local o falla de DNS. Interferencia de firewall o proxy."},{term:"Pasos de Solución",def:"1. Verificar el estado del pool en el sitio web o panel del pool. 2. Revisar la configuración del pool (URL, puerto, nombre del worker, contraseña). 3. Hacer ping o trazar el dominio del pool para confirmar la accesibilidad de red. 4. Probar una red o DNS alternativo para aislar problemas locales. 5. Configurar un pool de respaldo para minimizar el tiempo de inactividad."}]},{type:"h3",text:"7. Pool VacÃo"},{type:"p",text:"El pool configurado no está proporcionando trabajo válido al minero. El minero está conectado pero no está recibiendo asignaciones de trabajo del servidor stratum."},{type:"dl",items:[{term:"Posibles Causas",def:"Interrupción del backend del pool o mantenimiento temporal. Credenciales de worker incorrectas o no autorizadas. Throttling del pool o retrasos en la distribución de trabajo."},{term:"Pasos de Solución",def:"1. Confirmar la funcionalidad del pool usando otro dispositivo conocido como bueno. 2. Revisar las credenciales del worker en la configuración del pool. 3. Reiniciar el minero para reiniciar las solicitudes de trabajo. 4. Cambiar a un pool de respaldo para confirmar problemas del lado del pool."}]},{type:"h3",text:"8. Problema de Placa Hash"},{type:"p",text:"Una o más placas hash están fallando, con bajo rendimiento o no son detectadas por el sistema."},{type:"dl",items:[{term:"Posibles Causas",def:"Cables sueltos o mala conexión entre la placa de control, la fuente de alimentación y la placa hash. Sobrecalentamiento o daño eléctrico a los chips o trazas. Firmware incapaz de leer sensores o inicializar la placa."},{term:"Pasos de Solución",def:"1. Verificar todos los cables entre la fuente de alimentación, la placa de control y la placa hash. 2. Inspeccionar fÃsicamente las placas en busca de marcas de quemadura, decoloración o daños en componentes. 3. Intercambiar la placa sospechosa en un minero conocido como funcional para aislar la falla. 4. Volver a flashear el firmware o realizar un restablecimiento del sistema. 5. Reemplazar las placas defectuosas si se confirma mediante pruebas de aislamiento."}]},{type:"h3",text:"9. Discrepancia de Objetivo"},{type:"p",text:"El estado real de un dispositivo no coincide con su estado objetivo esperado en LÅD. Por ejemplo, si un minero está dirigido a estar ENCENDIDO pero se detecta como APAGADO, el sistema generará un error de Discrepancia de Objetivo. LÅD verifica continuamente que el estado operativo de cada dis
2128positivo se alinee con su objetivo de control."},{type:"dl",items:[{term:"Posibles Causas",def:"Error de autenticación â credenciales inválidas que impiden el control. Discrepancia de pool o configuración. Problema de hardware o energÃa â el minero está fÃsicamente apagado o inestable. Latencia de red o tiempo de espera. Retraso en el reporte del firmware."},{term:"Pasos de Solución",def:"1. Confirmar el estado esperado en la interfaz de LÅD. 2. Verificar energÃa y conectividad â asegurarse de que el minero esté encendido y accesible. 3. Re-autenticar el dispositivo â confirmar que las credenciales del firmware coincidan con la configuración de LÅD. 4. Reiniciar el minero para forzar una actualización del estado. 5. Revisar los registros en busca de errores relacionados de Auth o Red. 6. Escalar a ingenierÃa si la discrepancia persiste después de reinicios y re-autenticación."}]},{type:"h3",text:"10. Problema de Eficiencia"},{type:"p",text:"El dispositivo está operando fuera del rango de eficiencia esperado (J/TH). La eficiencia mide la relación entre la tasa de hash y el consumo de energÃa. Las desviaciones tÃpicamente indican energÃa inestable, sobrecalentamiento o configuración incorrecta del firmware."},{type:"dl",items:[{term:"Posibles Causas",def:"Fuente de alimentación inestable o ruidosa. Temperaturas elevadas que reducen el rendimiento. Configuraciones incorrectas de voltaje, frecuencia o lÃmite de energÃa. Hardware envejecido o chips ASIC degradados."},{term:"Pasos de Solución",def:"1. Comparar la eficiencia reportada con las especificaciones del modelo. 2. Revisar la estabilidad de la salida de la fuente de alimentación. 3. Verificar las temperaturas ambiente y del chip. 4. Verificar la configuración del firmware para voltaje y frecuencia. 5. Considerar el reemplazo de hardware para dispositivos envejecidos."}]}]}},nL=[{id:"getting-started",title:"Primeros Pasos",icon:xL,articles:[{id:"agent-install-windows",label:"Instalar Agente en Windows"},{id:"setup-team-org",label:"Configurar Equipo y Organización"},{id:"scan-asics",label:"Escanear ASICs en LÅD"},{id:"hosted-clients-access",label:"Acceso de Clientes Alojados"},{id:"configuring-location-profile",label:"Configurar Perfil de Ubicación"},{id:"wallet-addresses",label:"Direcciones de Wallet y Retiros"},{id:"agent-settings",label:"Configurar Agente LÅD"},{id:"linux-agent",label:"Instalar Agente en Linux"}]},{id:"daily-ops",title:"Operaciones Diarias y Gestión",icon:Tg,articles:[{id:"lincoin-revenues",label:"Reporte de Ingresos Lincoin"},{id:"generate-csv-excel-reports",label:"Generar Reportes CSV y Excel"},{id:"smart-view-filter",label:"Filtro Smart View"},{id:"site-map-overview",label:"Descripción del Mapa del Sitio"}]},{id:"optimization",title:"Optimización y Automatización",icon:xt,articles:[{id:"energy-rails",label:"Documentación de Rieles de EnergÃa"},{id:"commands-sent-through-lod",label:"Comandos Enviados a Través de LÅD"},{id:"automated-reporting",label:"Reportes Automatizados"},{id:"watchdog-pool-enforcer",label:"Riel Watch Dog (Aplicador de Pool)"}]},{id:"troubleshooting",title:"Solución de Problemas y FAQ",icon:bL,articles:[{id:"states-issues",label:"Estados y Problemas de ASICs"}]}];function H5e({blocks:e}){return a.jsx("div",{className:"space-y-4",children:e.map((t,n)=>{if(t.type==="h2")return a.jsx("h2",{className:"font-display text-2xl text-lod-white mt-8 mb-2 leading-tight",children:t.text},n);if(t.type==="h3")return a.jsx("h3",{className:"font-display text-lg mt-6 mb-2",style:{color:"#BFF589"},children:t.text},n);if(t.type==="p")return a.jsx("p",{className:"text-lod-gray text-sm leading-relaxed",children:t.text},n);if(t.type==="ul")return a.jsx("ul",{className:"list-none space-y-2",children:t.items.map((r,i)=>a.jsxs("li",{className:"flex items-start gap-2 text-lod-gray text-sm",children:[a.jsx("span",{style:{color:"#BFF589",marginTop:"4px",flexShrink:0},children:"â¸"}),a.jsx("span",{children:r})]},i))},n);if(t.type==="ol")return a.jsx("ol",{className:"space-y-2",children:t.items.map((r,i)=>a.jsxs("li",{className:"flex items-start gap-3 text-lod-gray text-sm",children:[a.jsx("span",{className:"font-mono text-xs flex-shrink-0 w-5 h-5 rounded-sm flex items-center justify-center mt-0.5",style:{background:"rgba(191,245,137,0.1)",color:"#BFF589"},children:i+1}),a.jsx("span",{children:r})]},i))},n);if(t.type==="dl")return a.jsx("dl",{className:"space-y-3",children:t.items.map((r,i)=>a.jsxs("div",{className:"rounded-sm p-3",style:{background:"rgba(255,255,255,0.03)",border:"1px solid rgba(255,255,255,0.06)"},children:[a.jsx("dt",{className:"font-mono text-xs mb-1",style:{color:"#BFF589"},children:r.term}),a.jsx("dd",{className:"text-lod-gray text-sm leading-relaxed",children:r.def})]},i))},n);if(t.type==="code")return a.jsx("pre",{className:"rounded-sm p-4 text-xs leading-relaxed overflow-x-auto",style:{background:"#0D0D0D",border:"1px solid rgba(191,245,137,0.15)",color:"#BFF589",fontFamily:"JetBrains Mono, monospace"},children:t.text},n);if(t.type==="callout")return a.jsxs("div",{className:"rounded-sm p-4 text-sm",style:{background:"rgba(191,245,137,0.06)",border:"1px solid rgba(191,245,137,0.2)",color:"#BFF589"},children:["â ",t.text]},n);if(t.type==="img"){const i=e.filter((o,s)=>s<=n&&o.type==="img").length-1===1;
2128return a.jsx("div",{className:"my-4 rounded-sm overflow-hidden",style:{border:"1px solid rgba(255,255,255,0.08)",maxWidth:i?"49%":"70%"},children:a.jsx("img",{src:t.src,alt:t.alt,className:"w-full h-auto block",loading:"lazy"})},n)}return t.type==="video"?a.jsx("div",{className:"my-6",style:{position:"relative",paddingBottom:"56.25%",height:0,border:"1px solid rgba(191,245,137,0.2)",borderRadius:"8px",overflow:"hidden",maxWidth:"70%"},children:a.jsx("iframe",{src:`https://www.loom.com/embed/${t.loomId}`,frameBorder:"0",webkitallowfullscreen:!0,mozallowfullscreen:!0,allowFullScreen:!0,style:{position:"absolute",top:0,left:0,width:"100%",height:"100%"},title:t.label})},n):null})})}function V5e(){const[e,t]=O.useState("agent-install-windows"),[n,r]=O.useState({"getting-started":!0,"daily-ops":!0,optimization:!0,troubleshooting:!0}),[i,o]=O.useState(""),[s,l]=O.useState(!1),u=U5e[e],d=g=>r(y=>({...y,[g]:!y[g]})),p=i.trim()?nL.map(g=>({...g,articles:g.articles.filter(y=>y.label.toLowerCase().includes(i.toLowerCase()))})).filter(g=>g.articles.length>0):nL,f=g=>{t(g),l(!1),window.scrollTo({top:0,behavior:"smooth"})};return a.jsxs(Je,{children:[a.jsx(He,{title:"Base de Conocimiento LÅD â Documentación en Español",description:"Todo lo que necesita para configurar, operar y optimizar la plataforma LÅD. Instalación de agentes, gestión de equipos, escaneo de ASICs, rieles de energÃa y solución de problemas.",canonical:"https://lod.io/es/docs"}),a.jsx("section",{className:"py-16",style:{background:"#0A0A0A",borderBottom:"1px solid rgba(255,255,255,0.06)"},children:a.jsxs("div",{className:"max-w-[1400px] mx-auto px-6",children:[a.jsx("div",{className:"section-label mb-3",children:"Documentación"}),a.jsxs("h1",{className:"font-display text-4xl md:text-5xl text-lod-white mb-4 leading-tight",children:["BASE DE CONOCIMIENTO ",a.jsx("span",{style:{color:"#BFF589"},children:"LÅD"})]}),a.jsx("p",{className:"text-lod-gray text-base max-w-xl mb-6",children:"Todo lo que necesita para configurar, operar y optimizar la plataforma LÅD."}),a.jsxs("div",{className:"relative max-w-md",children:[a.jsx(PL,{size:14,className:"absolute left-3 top-1/2 -translate-y-1/2 text-lod-gray"}),a.jsx("input",{type:"text",placeholder:"Buscar documentación...",value:i,onChange:g=>o(g.target.value),className:"w-full pl-9 pr-4 py-2.5 text-sm rounded-sm outline-none",style:{background:"rgba(255,255,255,0.06)",border:"1px solid rgba(255,255,255,0.1)",color:"#F9F9F9"}})]})]})}),a.jsx("div",{className:"max-w-[1400px] mx-auto px-6 py-10",children:a.jsxs("div",{className:"flex gap-10",children:[a.jsx("button",{className:"md:hidden fixed bottom-6 right-6 z-50 w-12 h-12 rounded-full flex items-center justify-center",style:{background:"#BFF589",color:"#1A1A1A"},onClick:()=>l(g=>!g),children:s?a.jsx(Pg,{size:20}):a.jsx(Vk,{size:20})}),a.jsx("aside",{className:` 2129 fixed inset-y-0 left-0 z-40 w-72 overflow-y-auto pt-20 px-4 pb-8 md:static md:z-auto md:w-64 md:flex-shrink-0 md:block md:pt-0 md:px-0 2130 transition-transform duration-300 2131 ${s?"translate-x-0":"-translate-x-full md:translate-x-0"} 2132 `,style:{background:"#0A0A0A",borderRight:"1px solid rgba(255,255,255,0.06)"},children:a.jsxs("div",{style:{position:"sticky",top:"20px"},children:[a.jsxs("div",{className:"flex items-center gap-2 mb-4 px-2",children:[a.jsx("a",{href:"/docs",className:"text-xs font-mono px-2 py-1 rounded-sm transition-colors",style:{color:"#A0A0A0",border:"1px solid rgba(255,255,255,0.1)"},children:"EN"}),a.jsx("span",{style:{color:"rgba(255,255,255,0.2)",fontSize:"10px"},children:"|"}),a.jsx("span",{className:"text-xs font-mono px-2 py-1 rounded-sm",style:{color:"#BFF589",background:"rgba(191,245,137,0.08)",border:"1px solid rgba(191,245,137,0.3)"},children:"ES"})]}),a.jsx("div",{className:"section-label mb-4",style:{paddingLeft:"10%"},children:"Contenidos"}),a.jsx("nav",{className:"space-y-1",children:p.map(g=>{const y=g.icon,b=n[g.id]!==!1;return a.jsxs("div",{className:"mb-2",children:[a.jsxs("button",{onClick:()=>d(g.id),className:"w-full flex items-center justify-between gap-2 px-2 py-2 rounded-sm text-sm font-display tracking-wide transition-colors",style:{color:"#F9F9F9"},children:[a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx(y,{size:14,style:{color:"#BFF589"}}),g.title]}),a.jsx(la,{size:12,className:`transition-transform ${b?"rotate-90":""}`,style:{color:"#A0A0A0"}})]}),b&&a.jsx("div",{className:"ml-5 mt-0.5 space-y-0.5",children:g.articles.map(w=>a.jsx("button",{onClick:()=>f(w.id),className:"w-full text-left px-3 py-2 text-xs rounded-sm transition-all",style:{background:e===w.id?"rgba(191,245,137,0.08)":"transparent",color:e===w.id?"#BFF589":"#A0A0A0",borderLeft:e===w.id?"2px solid #BFF589":"2px s
2132olid transparent"},children:w.label},w.id))})]},g.id)})})]})}),a.jsx("main",{className:"flex-1 min-w-0",children:u?a.jsxs("div",{children:[a.jsxs("div",{className:"flex items-center gap-2 mb-6 text-xs font-mono",style:{color:"#A0A0A0"},children:[a.jsx("span",{children:"Docs"}),a.jsx(la,{size:10}),a.jsx("span",{children:u.category}),a.jsx(la,{size:10}),a.jsx("span",{style:{color:"#BFF589"},children:u.title})]}),a.jsx("h2",{className:"font-display text-3xl md:text-4xl text-lod-white mb-2 leading-tight",children:u.title}),a.jsx("div",{className:"mb-8 pb-6",style:{borderBottom:"1px solid rgba(255,255,255,0.06)"},children:a.jsx("span",{className:"tag-chip",children:u.category})}),a.jsx(H5e,{blocks:u.content}),a.jsx("div",{className:"mt-16 pt-8 flex items-center justify-end",style:{borderTop:"1px solid rgba(255,255,255,0.06)"},children:a.jsx("a",{href:"/contact",className:"btn-outline text-xs px-4 py-2",children:"Obtener Soporte"})})]}):a.jsx("div",{className:"text-lod-gray text-sm",children:"Seleccione un artÃculo de la barra lateral."})})]})}),s&&a.jsx("div",{className:"fixed inset-0 z-30 md:hidden",style:{background:"rgba(0,0,0,0.6)"},onClick:()=>l(!1)})]})}function G5e({videoId:e,title:t,onEvent:n}){const r=O.useRef(!1);return O.useEffect(()=>{if(!e)return;r.current=!1;const i="vidyard-embed-script";if(!document.getElementById(i)){const s=document.createElement("script");s.id=i,s.src="https://play.vidyard.com/embed/v4.js",s.async=!0,document.body.appendChild(s)}const o=setInterval(()=>{var l,u,d;if(r.current)return;const s=(d=(u=(l=window.VidyardV4)==null?void 0:l.api)==null?void 0:u.getPlayersByUUID)==null?void 0:d.call(u,e);s&&s.length&&(r.current=!0,s[0].on("play",()=>n==null?void 0:n()),clearInterval(o))},500);return()=>clearInterval(o)},[e,n]),a.jsx("div",{className:"w-full rounded-lg overflow-hidden flex items-center justify-center",style:{aspectRatio:"16/9",background:"#111",border:"1px solid rgba(255,255,255,0.08)"},children:e?a.jsx("img",{className:"vidyard-player-embed w-full h-full block",src:`https://play.vidyard.com/${e}.jpg`,"data-uuid":e,"data-v":"4","data-type":"inline",alt:t||"Webinar video",title:t||"Webinar video",loading:"lazy",style:{objectFit:"cover"}}):a.jsx("span",{className:"text-sm font-mono",style:{color:"#707070"},children:"Video coming soon"})})}const _t={slug:"grid-strategy-fundamentals-with-bmi",dateLabel:"Tuesday, August 25, 2026",timeLabel:"11:00 AM",timezoneLabel:"Central Time (CT)",durationLabel:"60 minutes",startUtc:"2026-08-25T16:00:00Z",endUtc:"2026-08-25T17:00:00Z",registrationMode:"entity",endpointUrl:"",teaserVidyardId:"",recordingVidyardId:"",replayMode:!1,gateReplayWithForm:!1,privacyUrl:"/privacy",contactEmail:"[email protected]",speakers:[{name:"Nima Amir",title:"Chief Operating Officer, LÅD",descriptor:"Energy-operations perspective and technical instruction",bio:"Nima Amir serves as Chief Operating Officer at LÅD, where he works on the operating systems that help Bitcoin mining sites respond to grid conditions in real time. In this session, he brings a practical, operator-facing view to price response and demand-response mechanics, focusing on the decisions and controls site teams use day to day.",headshotUrl:""},{name:"Tyler Schmill",title:"Chief Executive Officer, Bitcoin Mining Institute",descriptor:"Host and translator between mining economics and operator education",bio:"Tyler Schmill is Chief Executive Officer of Bitcoin Mining Institute, where he works to build practical education for mining operators and the people entering the industry. He hosts this session to connect core mining economics with the grid concepts operators increasingly need to understand before applying them on site.",headshotUrl:""}]},Y5e=[{value:"",label:"Select one (optional)"},{value:"site_operator",label:"Site operator"},{value:"operations_leader",label:"Operations leader"},{value:"energy_grid_role",label:"Energy/grid role"},{value:"bmi_student_alumnus",label:"BMI student or alumnus"},{value:"mining_company_leadership",label:"Mining company leadership"},{value:"other",label:"Other"}],Ka=e=>{const n=new URLSearchParams(window.location.search).get(e);return n&&localStorage.setItem(e,n),n||localStorage.getItem(e)||""},K5e=/^[^\s@]+@[^\s@]+\.[^\s@]+$/,Pl="w-full px-4 py-3 rounded-lg bg-transparent text-lod-white placeholder-lod-gray text-sm outline-none focus:border-lod-green transition-colors",Ol={border:"1px solid rgba(255,255,255,0.15)"},$f={border:"1px solid #FF3B30"};function X5e({onSuccess:e}){const[t,n]=O.useState({first_name:"",last_name:"",email:"",company:"",role:"",question:"",privacy_policy_ack:!1,consent:!1}),[r,i]=O.useState({}),[o,s]=O.useState(!1),[l,u]=O.useState(""),d=O.useRef(!1),p=O.useRef(!1),f=()=>{d.current||(d.current=!0,xn.analytics.track({eventName:"webinar_form_start"}))},g=(v,j)=>{n(k=>({...k,[v]:j})),i(k=>({...k,[v]:void 0}))},y=()=>{const v={};return t.first_name.trim()||(v.first_name="First name is required."),t.last_name.trim()||(v.last_name="Last name is required."),t.email.trim()?K5e.test(t.email.trim())||(v.email="Enter a valid email address."):v.email="Work email is required.",t.company.trim()||(v.company="Company or organization is required."),t.privacy_policy_ack||(v.privacy_policy_ack="Please acknowledge the Privacy Policy to continue."),i(v),Object.keys(v).length===0},b=async v=>{if(v.preventDefault(),!(p.current||o)&&(u(""),!!y())){p.current=!0,s(!0);try{const j={utm_source:Ka("utm_source"),utm_medium:Ka("utm_medium"),utm_campaign:Ka("utm_campaign"),utm_content:Ka("utm_c
2132ontent")},k={webinar_slug:_t.slug,first_name:t.first_name.trim(),last_name:t.last_name.trim(),email:t.email.trim(),company:t.company.trim(),role:t.role,question:t.question.trim(),privacy_policy_ack:t.privacy_policy_ack,consent:t.consent,consent_timestamp:new Date().toISOString(),...j,referrer:document.referrer||"",landing_page:window.location.href};let S;_t.registrationMode==="external"&&_t.endpointUrl||(S=await xn.entities.WebinarRegistration.create(k)),xn.analytics.track({eventName:"webinar_registration_success"}),e(S)}catch{xn.analytics.track({eventName:"webinar_registration_error"}),u("Something went wrong submitting your registration. Please try again.")}finally{s(!1),p.current=!1}}},w=v=>r[v]&&a.jsx("p",{role:"alert",className:"text-xs mt-1.5",style:{color:"#FF3B30"},children:r[v]});return a.jsxs("form",{onSubmit:b,onFocus:f,className:"space-y-4",noValidate:!0,children:[a.jsx("input",{type:"hidden",name:"utm_source",value:Ka("utm_source"),readOnly:!0}),a.jsx("input",{type:"hidden",name:"utm_medium",value:Ka("utm_medium"),readOnly:!0}),a.jsx("input",{type:"hidden",name:"utm_campaign",value:Ka("utm_campaign"),readOnly:!0}),a.jsx("input",{type:"hidden",name:"utm_content",value:Ka("utm_content"),readOnly:!0}),a.jsx("input",{type:"hidden",name:"referrer",value:document.referrer||"",readOnly:!0}),a.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[a.jsxs("div",{children:[a.jsx("label",{htmlFor:"wb-first-name",className:"sr-only",children:"First name"}),a.jsx("input",{id:"wb-first-name",type:"text",autoComplete:"given-name",placeholder:"First Name *","aria-invalid":!!r.first_name,"aria-describedby":"wb-first-name-error",value:t.first_name,onChange:v=>g("first_name",v.target.value),className:Pl,style:r.first_name?$f:Ol}),a.jsx("div",{id:"wb-first-name-error",children:w("first_name")})]}),a.jsxs("div",{children:[a.jsx("label",{htmlFor:"wb-last-name",className:"sr-only",children:"Last name"}),a.jsx("input",{id:"wb-last-name",type:"text",autoComplete:"family-name",placeholder:"Last Name *","aria-invalid":!!r.last_name,"aria-describedby":"wb-last-name-error",value:t.last_name,onChange:v=>g("last_name",v.target.value),className:Pl,style:r.last_name?$f:Ol}),a.jsx("div",{id:"wb-last-name-error",children:w("last_name")})]})]}),a.jsxs("div",{children:[a.jsx("label",{htmlFor:"wb-email",className:"sr-only",children:"Work email"}),a.jsx("input",{id:"wb-email",type:"email",autoComplete:"email",placeholder:"Work Email *","aria-invalid":!!r.email,"aria-describedby":"wb-email-error",value:t.email,onChange:v=>g("email",v.target.value),className:Pl,style:r.email?$f:Ol}),a.jsx("div",{id:"wb-email-error",children:w("email")})]}),a.jsxs("div",{children:[a.jsx("label",{htmlFor:"wb-company",className:"sr-only",children:"Company or organization"}),a.jsx("input",{id:"wb-company",type:"text",autoComplete:"organization",placeholder:"Company or Organization *","aria-invalid":!!r.company,"aria-describedby":"wb-company-error",value:t.company,onChange:v=>g("company",v.target.value),className:Pl,style:r.company?$f:Ol}),a.jsx("div",{id:"wb-company-error",children:w("company")})]}),a.jsxs("div",{children:[a.jsx("label",{htmlFor:"wb-role",className:"block text-xs font-mono text-lod-gray mb-1.5",children:"Role"}),a.jsx("select",{id:"wb-role",value:t.role,onChange:v=>g("role",v.target.value),className:Pl,style:Ol,children:Y5e.map(v=>a.jsx("option",{value:v.value,style:{background:"#1A1A1A"},children:v.label},v.value))})]}),a.jsxs("div",{children:[a.jsx("label",{htmlFor:"wb-question",className:"block text-xs font-mono text-lod-gray mb-1.5",children:"One question you want covered"}),a.jsx("textarea",{id:"wb-question",rows:3,value:t.question,onChange:v=>g("question",v.target.value),placeholder:"Optional",className:`${Pl} resize-none`,style:Ol})]}),a.jsxs("div",{className:"space-y-3",children:[a.jsxs("label",{className:"flex items-start gap-3 text-xs leading-relaxed text-lod-gray cursor-pointer",children:[a.jsx("input",{type:"checkbox",checked:t.privacy_policy_ack,"aria-invalid":!!r.privacy_policy_ack,"aria-describedby":"wb-privacy-ack-error",onChange:v=>g("privacy_policy_ack",v.target.checked),className:"mt-0.5 w-4 h-4 shrink-0 accent-lod-green"}),a.jsxs("span",{children:["I acknowledge LÅD's ",a.jsx("a",{href:_t.privacyUrl,className:"text-lod-green hover:underline",children:"Privacy Policy"})," and consent to my data being processed to register me for this webinar. *"]})]}),a.jsx("div",{id:"wb-privacy-ack-error",children:w("privacy_policy_ack")}),a.jsxs("label",{className:"flex items-start gap-3 text-xs leading-relaxed text-lod-gray cursor-pointer",children:[a.jsx("input",{type:"checkbox",checked:t.consent,onChange:v=>g("consent",v.target.checked),className:"mt-0.5 w-4 h-4 shrink-0 accent-lod-green"}),a.jsx("span",{children:"I'd also like to receive marketing communications from LÅD and Bitcoin Mining Institute (optional)."})]})]}),a.jsx("button",{type:"submit",disabled:o,className:"btn-primary w-full justify-center text-sm disabled:opacity-60 disabled:cursor-not-allowed",children:o?a.jsxs(a.Fragment,{children:[a.jsx(Cg,{size:14,className:"animate-spin"})," Reserving your seatâ¦"]}):a.jsxs(a.Fragment,{children:["Reserve your seat ",a.jsx(Ve,{size:14})]})}),l&&a.jsx("p",{role:"alert",className:"text-xs text-center",style:{color:"#FF3B30"},children:l}),a.jsx("p",{className:"text-xs text-center",style:{color:"#707070"},children:"* Required fields"})]})}const MC="Grid Strategy for Bitcoin Mining Operations | LÅD à BMI Webinar",E$="Live educational webinar hosted by LÅD and Bitcoin Mining Institute: follow a modeled 10 MW mining site through price response, ERCOT 4CP, and demand response.",LC="Online â join link provided by email after registration",Sd=e=>e.replace(/[-:]/g,"").replace(".000","");function Q5e(){return`https://calendar.google.com/calendar/render?${new URLSearchParams({action:"TEMPLATE",text:MC,dates:`${Sd(_t.startUtc)}
2132/${Sd(_t.endUtc)}`,details:E$,location:LC}).toString()}`}function J5e(){const e=["BEGIN:VCALENDAR","VERSION:2.0","PRODID:-//LoD//WebinarRegistration//EN","BEGIN:VEVENT",`UID:${_t.slug}-${Date.now()}@lod.io`,`DTSTAMP:${Sd(_t.startUtc)}`,`DTSTART:${Sd(_t.startUtc)}`,`DTEND:${Sd(_t.endUtc)}`,`SUMMARY:${MC}`,`DESCRIPTION:${E$}`,`LOCATION:${LC}`,"END:VEVENT","END:VCALENDAR"].join(`\r 2133`),t=new Blob([e],{type:"text/calendar;charset=utf-8"}),n=URL.createObjectURL(t),r=document.createElement("a");r.href=n,r.download="grid-strategy-webinar.ics",document.body.appendChild(r),r.click(),r.remove(),URL.revokeObjectURL(n)}function Z5e(){return[MC,`${_t.dateLabel} ⢠${_t.timeLabel} ${_t.timezoneLabel} ⢠${_t.durationLabel}`,LC].join(` 2134`)}function eNe({registration:e}){const[t,n]=O.useState(!1),r=o=>{xn.analytics.track({eventName:"webinar_calendar_add",properties:{type:o}})},i=async()=>{await navigator.clipboard.writeText(Z5e()),r("copy"),n(!0),setTimeout(()=>n(!1),2e3)};return a.jsxs("div",{className:"space-y-6",children:[a.jsxs("div",{className:"flex items-start gap-3",children:[a.jsx(bU,{size:28,style:{color:"#BFF589"},className:"shrink-0 mt-1"}),a.jsxs("div",{children:[a.jsx("h3",{className:"font-display text-2xl text-lod-white mb-2",children:"You're registered."}),a.jsx("p",{className:"text-sm text-lod-gray leading-relaxed",children:"Check your inbox for event details. We'll also send a reminder before the session and the recording afterward."})]})]}),a.jsxs("div",{children:[a.jsx("p",{className:"text-xs font-mono text-lod-gray uppercase tracking-wider mb-3",children:"Add to your calendar"}),a.jsxs("div",{className:"flex flex-col sm:flex-row gap-3",children:[a.jsxs("a",{href:Q5e(),target:"_blank",rel:"noopener noreferrer",onClick:()=>r("google"),className:"btn-outline text-xs justify-center flex-1",children:[a.jsx(RT,{size:14})," Add to Google Calendar"]}),a.jsxs("button",{type:"button",onClick:()=>{J5e(),r("ics")},className:"btn-outline text-xs justify-center flex-1",children:[a.jsx(RT,{size:14})," Download .ics"]}),a.jsx("button",{type:"button",onClick:i,className:"btn-outline text-xs justify-center flex-1",children:t?a.jsxs(a.Fragment,{children:[a.jsx(Nh,{size:14})," Copied"]}):a.jsxs(a.Fragment,{children:[a.jsx(Ag,{size:14})," Copy event details"]})})]})]})]})}const tNe=["Why Bitcoin mining can function as flexible load","The simplified curtail-or-run decision","ERCOT 4CP as a coincident-peak worked example","Price response vs. 4CP avoidance vs. demand response","A 10 MW cost-of-inaction capstone","Live Q&A"],nNe=[{q:"Is this a product demo?",a:"No. This is an educational session focused on operating concepts and a modeled 10 MW example."},{q:"Do I need grid-market experience?",a:"No. Basic familiarity with mining economics is helpful, but the grid concepts are introduced from the foundation."},{q:"Will the recording be available?",a:"Yes. Registrants will receive the recording after the live session."},{q:"Will the examples apply to every mining site?",a:"No. Programs, tariffs, market rules, contracts, and site conditions vary. The reference site is designed to teach the decision framework."}];function rNe(){const[e,t]=O.useState(null),n=!0,r=O.useCallback(()=>{xn.analytics.track({eventName:"webinar_video_play"})},[]),i=d=>{xn.analytics.track({eventName:"webinar_cta_click",properties:{location:d}})},o=(d,p)=>{var f;i(p),(f=document.getElementById(d))==null||f.scrollIntoView({behavior:"smooth",block:"start"})},s="Reserve your seat",l="register",u={"@context":"https://schema.org","@type":"Event",name:"Grid Strategy for Bitcoin Mining Operations",description:"Follow a modeled 10 MW Bitcoin mining site through price response, ERCOT 4CP, demand response, and practical curtail-or-run decisions.",startDate:_t.startUtc,endDate:_t.endUtc,eventAttendanceMode:"https://schema.org/OnlineEventAttendanceMode",eventStatus:"https://schema.org/EventScheduled",location:{"@type":"VirtualLocation",url:`https://lod.io/webinars/${_t.slug}`},performer:_t.speakers.map(d=>({"@type":"Person",name:d.name})),organizer:{"@type":"Organization",name:"LÅD",url:"https://lod.io"}};return a.jsxs(a.Fragment,{children:[a.jsx(He,{title:"Grid Strategy for Bitcoin Mining Operations | LÅD à BMI Webinar",description:"Follow a modeled 10 MW Bitcoin mining site through price response, ERCOT 4CP, demand response, and practical curtail-or-run decisions.",canonical:`https://lod.io/webinars/${_t.slug}`,ogImage:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/6cf86e0a9_Lod-Green-no-Backgroun
2134d.png",schemaData:u}),a.jsxs(Je,{children:[a.jsx("section",{className:"relative py-14 md:py-20 grid-blueprint",style:{background:"#1A1A1A",borderBottom:"1px solid rgba(255,255,255,0.06)"},children:a.jsxs("div",{className:"max-w-[1200px] mx-auto px-6 relative z-10 grid lg:grid-cols-[1.15fr_1fr] gap-10 items-start",children:[a.jsxs("div",{children:[a.jsxs("div",{className:"flex items-center gap-5 mb-8 flex-wrap",children:[a.jsx("img",{src:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/6cf86e0a9_Lod-Green-no-Background.png",alt:"LÅD",className:"h-9 w-auto"}),a.jsx("span",{className:"text-lod-gray text-lg",children:"Ã"}),a.jsx("img",{src:"https://media.base44.com/images/public/69eb97e3a261d40e27688f9d/f25c7ca0b_bmi-logo-icon.png",alt:"Bitcoin Mining Institute",className:"h-11 w-auto"})]}),a.jsx("div",{className:"section-label mb-4",children:"Live LÅD à Bitcoin Mining Institute webinar"}),a.jsx("h1",{className:"font-display text-3xl md:text-5xl text-lod-white mb-5 leading-tight",children:"When should a Bitcoin mine runâand when should it curtail?"}),a.jsx("p",{className:"text-lod-gray text-base md:text-lg leading-relaxed mb-6 max-w-xl",children:"Follow a modeled 10 MW mining site through price response, ERCOT 4CP, demand response, and the operating evidence needed to verify results."}),a.jsxs("div",{className:"flex flex-wrap gap-4 mb-8",children:[a.jsxs("div",{className:"flex items-center gap-2 text-sm text-lod-white font-mono",children:[a.jsx(sU,{size:16,style:{color:"#BFF589"}}),_t.dateLabel]}),a.jsxs("div",{className:"flex items-center gap-2 text-sm text-lod-white font-mono",children:[a.jsx(Hk,{size:16,style:{color:"#BFF589"}}),_t.timeLabel," ",_t.timezoneLabel," · ",_t.durationLabel," · Live online"]})]}),a.jsxs("div",{className:"flex flex-wrap items-center gap-5",children:[a.jsx("button",{onClick:()=>o(l,"hero"),className:"btn-primary text-sm",children:s}),a.jsx("button",{onClick:()=>o("session-flow","hero_secondary"),className:"text-sm text-lod-green hover:underline font-semibold",children:"See what you'll learn"})]})]}),a.jsx("div",{id:"register",className:"card-obsidian p-6 md:p-8 scroll-mt-20",children:e?a.jsx(eNe,{registration:e}):a.jsxs(a.Fragment,{children:[a.jsx("h2",{className:"font-display text-xl text-lod-white mb-1",children:"Reserve your seat"}),a.jsx("p",{className:"text-xs text-lod-gray mb-5",children:"Register to attend live and receive the session recording afterward."}),a.jsx(X5e,{onSuccess:t})]})})]})}),a.jsx("section",{className:"py-16",style:{background:"#1A1A1A"},children:a.jsxs("div",{className:"max-w-[860px] mx-auto px-6",children:[a.jsx("h2",{className:"font-display text-3xl text-lod-white mb-5",children:"One site. Three mechanisms. Better operating decisions."}),a.jsx("p",{className:"text-lod-gray text-base leading-relaxed mb-8",children:"Grid strategy is not one program or one revenue stream. In this session, Nima Amir and Tyler Schmill will use a single 10 MW reference site to show how price response, coincident-peak avoidance, and paid demand response differâand why the distinction matters to mining economics."}),a.jsx("ul",{className:"space-y-4",children:["Apply a simplified curtail-or-run screen using mining revenue per MWh.","Understand how four 15-minute summer peak intervals can shape a year of ERCOT transmission charges.","Identify the metering, event logs, and operating controls needed to verify performance."].map(d=>a.jsxs("li",{className:"flex items-start gap-3 text-lod-gray text-base",children:[a.jsx("span",{className:"mt-2 w-1.5 h-1.5 rounded-full flex-shrink-0",style:{background:"#BFF589"}}),a.jsx("span",{children:d})]},d))})]})}),a.jsx("section",{className:"py-14",style:{background:"#232323",borderTop:"1px solid rgba(255,255,255,0.06)",borderBottom:"1px solid rgba(255,255,255,0.06)"},children:a.jsxs("div",{className:"max-w-[860px] mx-auto px-6",children:[a.jsxs("div",{className:"flex items-center gap-2 mb-5",children:[a.jsx("span",{className:"w-1 h-6 rounded-full",style:{background:"#BFF589"}}),a.jsx("span",{className:"font-mono text-xs text-lod-green uppercase tracking-wider",children:"A word from your hosts"})]}),a.jsx(G5e,{videoId:_t.teaserVidyardId,title:"Grid Strategy for Bitcoin Mining Operations â speaker teaser",onEvent:r})]})}),a.jsx("section",{className:"py-16",style:{background:"#1A1A1A"},children:a.jsxs("div",{className:"max-w-[860px] mx-auto px-6",children:[a.jsx("h2",{className:"font-display text-3xl text-lod-white mb-8",children:"Built for operatorsâand the people becoming operators"}),a.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-5 mb-6",children:["Mining operators and site leaders improving energy strategy","BMI students, alumni, and newer industry entrants","Employers evaluating or developing energy-operations talent"].map(d=>a.jsx("div",{className:"card-obsidian p-5 text-sm text-lod-gray leading-relaxed",children:d},d))}),a.jsx("p",{className:"text-sm",style:{color:"#707070"},children:"Familiarity with basic Bitcoin mining economics is helpful. No prior grid-market expertise is required."})]})}),a.jsx("section",{id:"session-flow",className:"py-16 scroll-mt-16",style:{background:"#1A1A1A",borderTop:"1px solid rgba(255,255,255,0.06)"},children:a.jsxs("div",{className:"max-w-[700px] mx-auto px-6",children:[a.jsx("h2",{className:"font-display text-3xl text-lod-white mb-10",children:"What the session covers"}),a.jsx("ol",{className:"space-y-6",children:tNe.map((d,p)=>a.jsxs("li",{className:"flex items-start gap-4",children:[a.jsx("span",{className:"w-8 h-8 rounded-full flex items-center justify-center font-mono text-xs shrink-0",style:{background:"rgba(191,245,137,0.1)",color:"#BFF589",border:"1px solid rgba(191,245,137,0.3)"},children:p+1}),a.jsx("p",{className:"text-lod-white text-base pt-1",children:d})]},d))})]})}),a.jsx("section",{className:"py-16",style:{background:"#232323",borderTop:"1px solid rgba(255,255,255,0.06)",borderBottom:"1px solid rgba(255,255,255,0.06)"},children:a.jsxs("div",{className:"max-w-[1000px] mx-auto px-6",children:[a.jsx("h2",{className:"font-display text-3xl text-lod-white mb-10",children:"Meet the Speakers"}),a.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-6",children:_t.speakers.map(d=>a.jsxs("div",{className:"card-obsidian p-6",children:[a.jsxs("div",{className:"flex items-center gap-4 mb-4",children:[d.headshotUrl?a.jsx("img",{src:d.headsh
2134otUrl,alt:d.name,className:"w-14 h-14 rounded-full object-cover shrink-0"}):a.jsx("div",{className:"w-14 h-14 rounded-full flex items-center justify-center font-display text-lg shrink-0",style:{background:"rgba(191,245,137,0.1)",color:"#BFF589",border:"1px solid rgba(191,245,137,0.3)"},children:d.name.split(" ").map(p=>p[0]).join("")}),a.jsxs("div",{children:[a.jsx("p",{className:"text-lod-white font-semibold text-sm",children:d.name}),a.jsx("p",{className:"text-lod-gray text-xs mt-1",children:d.title})]})]}),a.jsx("p",{className:"text-xs font-mono text-lod-green uppercase tracking-wider mb-2",children:d.descriptor}),a.jsx("p",{className:"text-sm text-lod-gray leading-relaxed",children:d.bio})]},d.name))})]})}),a.jsx("section",{className:"py-16",style:{background:"#1A1A1A"},children:a.jsxs("div",{className:"max-w-[860px] mx-auto px-6",children:[a.jsx("h2",{className:"font-display text-3xl text-lod-white mb-8",children:"Frequently Asked Questions"}),a.jsx("div",{className:"space-y-5",children:nNe.map(d=>a.jsxs("div",{className:"card-obsidian p-6",children:[a.jsx("h3",{className:"text-lod-white font-semibold text-sm mb-2",children:d.q}),a.jsx("p",{className:"text-sm text-lod-gray leading-relaxed",children:d.a})]},d.q))})]})}),a.jsx("section",{className:"py-16",style:{background:"#232323",borderTop:"1px solid rgba(255,255,255,0.06)"},children:a.jsxs("div",{className:"max-w-[860px] mx-auto px-6 text-center",children:[a.jsx("h2",{className:"font-display text-3xl md:text-4xl text-lod-white mb-7",children:"Build a clearer operating view of grid strategy."}),a.jsx("button",{onClick:()=>o(l,"final"),className:"btn-primary text-sm",children:s})]})}),!(e&&n)&&a.jsx("div",{className:"md:hidden fixed bottom-0 left-0 right-0 z-40 p-3",style:{background:"rgba(26,26,26,0.97)",borderTop:"1px solid rgba(255,255,255,0.1)",backdropFilter:"blur(8px)"},children:a.jsx("button",{onClick:()=>o(l,"sticky_mobile"),className:"btn-primary w-full justify-center text-sm",children:s})})]})]})}const iNe=()=>{const{isLoadingAuth:e,isLoadingPublicSettings:t,authError:n,navigateToLogin:r}=yJ();if(kJ(),O.useEffect(()=>{bJ()},[]),!t&&!e&&n){if(n.type==="user_not_registered")return a.jsx(xJ,{});if(n.type==="auth_required")return r(),null}return a.jsxs(a.Fragment,{children:[a.jsx(vJ,{}),a.jsxs(iY,{children:[a.jsx($e,{path:"/",element:a.jsx(ybe,{})}),a.jsx($e,{path:"/lod-energy",element:a.jsx(E5e,{})}),a.jsx($e,{path:"/lod-iot",element:a.jsx(I5e,{})}),a.jsx($e,{path:"/lod-flexible-compute",element:a.jsx(M5e,{})}),a.jsx($e,{path:"/data-layer",element:a.jsx(vbe,{})}),a.jsx($e,{path:"/strategy-layer",element:a.jsx(kbe,{})}),a.jsx($e,{path:"/control-layer",element:a.jsx(Cbe,{})}),a.jsx($e,{path:"/execution-layer",element:a.jsx(Nv,{to:"/control-layer",replace:!0})}),a.jsx($e,{path:"/ExecutionLayer",element:a.jsx(Nv,{to:"/control-layer",replace:!0})}),a.jsx($e,{path:"/mcp-grid-data",element:a.jsx(Tbe,{})}),a.jsx($e,{path:"/mcp-automation",element:a.jsx(Obe,{})}),a.jsx($e,{path:"/agent-docs",element:a.jsx(Ibe,{})}),a.jsx($e,{path:"/bitcoin-mining",element:a.jsx(ywe,{})}),a.jsx($e,{path:"/ai-data-centers",element:a.jsx(Fbe,{})}),a.jsx($e,{path:"/flexible-compute",element:a.jsx($be,{})}),a.jsx($e,{path:"/hyperscalers",element:a.jsx(Vbe,{})}),a.jsx($e,{path:"/utilities",element:a.jsx(Qbe,{})}),a.jsx($e,{path:"/flexible-compute/clod-case-study",element:a.jsx(Nv,{to:"/case-studies/clod-ai-workload-routing",replace:!0})}),a.jsx($e,{path:"/blog",element:a.jsx(t0e,{})}),a.jsx($e,{path:"/blog/:slug",element:a.jsx(mCe,{})}),a.jsx($e,{path:"/case-studies",element:a.jsx(i0e,{})}),a.jsx($e,{path:"/case-studies/:slug",element:a.jsx(gCe,{})}),a.jsx($e,{path:"/docs",element:a.jsx(s0e,{})}),a.jsx($e,{path:"/es/docs",element:a.jsx(V5e,{})}),a.jsx($e,{path:"/contact",element:a.jsx(c0e,{})}),a.jsx($e,{path:"/security",element:a.jsx(p0e,{})}),a.jsx($e,{path:"/faq",element:a.jsx(f0e,{})}),a.jsx($e,{path:"/about",element:a.jsx(y0e,{})}),a.jsx($e,{path:"/team",element:a.jsx(b0e,{})}),a.jsx($e,{path:"/privacy",element:a.jsx(j0e,{})}),a.jsx($e,{path:"/terms-of-use",element:a.jsx(A0e,{})}),a.jsx($e,{path:"/for-agents",element:a.jsx(bCe,{})}),a.jsx($e,{path:"/careers",element:a.jsx(W5e,{})}),a.jsx($e,{path:"/lp/flexible-compute",element:a.jsx(OCe,{})}),a.jsx($e,{path:"/lp/flexible-compute-demo",element:a.jsx(DCe,{})}),a.jsx($e,{path:"/lp/ai-infra-summit-workshop",element:a.jsx(zCe,{})}
2134),a.jsx($e,{path:"/events/AIinfra-workshop",element:a.jsx($Ce,{})}),a.jsx($e,{path:"/lp/mining-platform-guide",element:a.jsx(UCe,{})}),a.jsx($e,{path:"/lp/ebook-thank-you",element:a.jsx(VCe,{})}),a.jsx($e,{path:"/lp/book-a-meeting",element:a.jsx(YCe,{})}),a.jsx($e,{path:"/hri",element:a.jsx(B5e,{})}),a.jsx($e,{path:"/features",element:a.jsx(XCe,{})}),a.jsx($e,{path:"/bitcoin-mining-features",element:a.jsx(ZCe,{})}),a.jsx($e,{path:"/resources/bitcoin-mining-platform-guide",element:a.jsx(n5e,{})}),a.jsx($e,{path:"/resources/bitcoin-mining-management-software-guide",element:a.jsx(S5e,{})}),a.jsx($e,{path:"/design-system",element:a.jsx(z5e,{})}),a.jsx($e,{path:"/webinars/grid-strategy-fundamentals-with-bmi",element:a.jsx(rNe,{})}),a.jsx($e,{path:"*",element:a.jsx(mJ,{})})]})]})};function aNe(){return a.jsx(gJ,{children:a.jsxs(eG,{client:hG,children:[a.jsx(dY,{children:a.jsx(iNe,{})}),a.jsx(TV,{})]})})}DW.createRoot(document.getElementById("root")).render(a.jsx(aNe,{}));
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.