@oracle-agent/oracle 0.26.0 → 0.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/README.md +1 -1
  2. package/dist/assets/skills/oracle-desk-product/SKILL.md +1 -1
  3. package/dist/bin/desk-server.mjs +35 -79
  4. package/dist/bin/oracle-data-mcp.mjs +13 -57
  5. package/dist/bin/oracle-public-server.mjs +4 -48
  6. package/dist/bin/oracle-route.mjs +22 -66
  7. package/dist/bin/oracle-scan.mjs +15 -59
  8. package/dist/cli/commands/chat.mjs +100 -144
  9. package/dist/cli/commands/doctor.mjs +4 -4
  10. package/dist/cli/commands/eval.mjs +147 -190
  11. package/dist/cli/commands/farm.mjs +34 -78
  12. package/dist/cli/commands/follow.mjs +17 -61
  13. package/dist/cli/commands/model.mjs +105 -149
  14. package/dist/cli/commands/receipt.mjs +3 -3
  15. package/dist/cli/commands/resolve.mjs +13 -57
  16. package/dist/cli/commands/sign.mjs +14 -14
  17. package/dist/cli/commands/signer.mjs +14 -14
  18. package/dist/cli/commands/strategy.mjs +5 -49
  19. package/dist/cli/commands/swap.mjs +27 -71
  20. package/dist/cli/commands/venues.mjs +3 -3
  21. package/dist/data/desk-data.mjs +33 -77
  22. package/dist/data/names.mjs +2 -46
  23. package/dist/data/providers/farming.mjs +2 -46
  24. package/dist/index.mjs +37 -81
  25. package/dist/local-signer/anvil-attestation-worker.mjs +2 -0
  26. package/dist/local-signer/index.mjs +3 -3
  27. package/dist/local-signer/runtime.mjs +13 -0
  28. package/dist/nft/universal-mint-router.mjs +3 -47
  29. package/dist/router/index.mjs +2 -46
  30. package/dist/router/prepare-bridge.mjs +2 -46
  31. package/dist/scanner/index.mjs +4 -48
  32. package/dist/strategy/index.mjs +3 -47
  33. package/package.json +2 -1
  34. package/public/oracle-splash/_variants/ice.html +1 -1
  35. package/public/oracle-splash/_variants/ivory.html +1 -1
  36. package/public/oracle-splash/index.html +1 -1
@@ -1,49 +1,5 @@
1
- var mf=Object.create;var Pi=Object.defineProperty;var Df=Object.getOwnPropertyDescriptor;var kf=Object.getOwnPropertyNames;var bf=Object.getPrototypeOf,Ff=Object.prototype.hasOwnProperty;var d=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(A,t)=>(typeof require<"u"?require:A)[t]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var Je=(e,A,t)=>()=>{if(t)throw t[0];try{return e&&(A=e(e=0)),A}catch(r){throw t=[r],r}};var f=(e,A)=>()=>{try{return A||e((A={exports:{}}).exports,A),A.exports}catch(t){throw A=0,t}},Rf=(e,A)=>{for(var t in A)Pi(e,t,{get:A[t],enumerable:!0})},Nf=(e,A,t,r)=>{if(A&&typeof A=="object"||typeof A=="function")for(let n of kf(A))!Ff.call(e,n)&&n!==t&&Pi(e,n,{get:()=>A[n],enumerable:!(r=Df(A,n))||r.enumerable});return e};var Sf=(e,A,t)=>(t=e!=null?mf(bf(e)):{},Nf(A||!e||!e.__esModule?Pi(t,"default",{value:e,enumerable:!0}):t,e));var _=f((fL,Vg)=>{Vg.exports={kClose:Symbol("close"),kDestroy:Symbol("destroy"),kDispatch:Symbol("dispatch"),kUrl:Symbol("url"),kWriting:Symbol("writing"),kResuming:Symbol("resuming"),kQueue:Symbol("queue"),kConnect:Symbol("connect"),kConnecting:Symbol("connecting"),kKeepAliveDefaultTimeout:Symbol("default keep alive timeout"),kKeepAliveMaxTimeout:Symbol("max keep alive timeout"),kKeepAliveTimeoutThreshold:Symbol("keep alive timeout threshold"),kKeepAliveTimeoutValue:Symbol("keep alive timeout"),kKeepAlive:Symbol("keep alive"),kHeadersTimeout:Symbol("headers timeout"),kBodyTimeout:Symbol("body timeout"),kServerName:Symbol("server name"),kLocalAddress:Symbol("local address"),kHost:Symbol("host"),kNoRef:Symbol("no ref"),kBodyUsed:Symbol("used"),kBody:Symbol("abstracted request body"),kRunning:Symbol("running"),kBlocking:Symbol("blocking"),kPending:Symbol("pending"),kSize:Symbol("size"),kBusy:Symbol("busy"),kQueued:Symbol("queued"),kFree:Symbol("free"),kConnected:Symbol("connected"),kClosed:Symbol("closed"),kNeedDrain:Symbol("need drain"),kReset:Symbol("reset"),kDestroyed:Symbol.for("nodejs.stream.destroyed"),kResume:Symbol("resume"),kOnError:Symbol("on error"),kMaxHeadersSize:Symbol("max headers size"),kRunningIdx:Symbol("running index"),kPendingIdx:Symbol("pending index"),kError:Symbol("error"),kClients:Symbol("clients"),kClient:Symbol("client"),kParser:Symbol("parser"),kOnDestroyed:Symbol("destroy callbacks"),kPipelining:Symbol("pipelining"),kSocket:Symbol("socket"),kHostHeader:Symbol("host header"),kConnector:Symbol("connector"),kStrictContentLength:Symbol("strict content length"),kMaxRedirections:Symbol("maxRedirections"),kMaxRequests:Symbol("maxRequestsPerClient"),kProxy:Symbol("proxy agent options"),kCounter:Symbol("socket request counter"),kInterceptors:Symbol("dispatch interceptors"),kMaxResponseSize:Symbol("max response size"),kHTTP2Session:Symbol("http2Session"),kHTTP2SessionState:Symbol("http2Session state"),kRetryHandlerDefaultRetry:Symbol("retry agent default retry"),kConstruct:Symbol("constructable"),kListeners:Symbol("listeners"),kHTTPContext:Symbol("http context"),kMaxConcurrentStreams:Symbol("max concurrent streams"),kNoProxyAgent:Symbol("no proxy agent"),kHttpProxyAgent:Symbol("http proxy agent"),kHttpsProxyAgent:Symbol("https proxy agent")}});var J=f((wL,El)=>{"use strict";var qg=Symbol.for("undici.error.UND_ERR"),K=class extends Error{constructor(A){super(A),this.name="UndiciError",this.code="UND_ERR"}static[Symbol.hasInstance](A){return A&&A[qg]===!0}[qg]=!0},Wg=Symbol.for("undici.error.UND_ERR_CONNECT_TIMEOUT"),Oi=class extends K{constructor(A){super(A),this.name="ConnectTimeoutError",this.message=A||"Connect Timeout Error",this.code="UND_ERR_CONNECT_TIMEOUT"}static[Symbol.hasInstance](A){return A&&A[Wg]===!0}[Wg]=!0},Pg=Symbol.for("undici.error.UND_ERR_HEADERS_TIMEOUT"),zi=class extends K{constructor(A){super(A),this.name="HeadersTimeoutError",this.message=A||"Headers Timeout Error",this.code="UND_ERR_HEADERS_TIMEOUT"}static[Symbol.hasInstance](A){return A&&A[Pg]===!0}[Pg]=!0},Og=Symbol.for("undici.error.UND_ERR_HEADERS_OVERFLOW"),Zi=class extends K{constructor(A){super(A),this.name="HeadersOverflowError",this.message=A||"Headers Overflow Error",this.code="UND_ERR_HEADERS_OVERFLOW"}static[Symbol.hasInstance](A){return A&&A[Og]===!0}[Og]=!0},zg=Symbol.for("undici.error.UND_ERR_BODY_TIMEOUT"),_i=class extends K{constructor(A){super(A),this.name="BodyTimeoutError",this.message=A||"Body Timeout Error",this.code="UND_ERR_BODY_TIMEOUT"}static[Symbol.hasInstance](A){return A&&A[zg]===!0}[zg]=!0},Zg=Symbol.for("undici.error.UND_ERR_RESPONSE_STATUS_CODE"),Ki=class extends K{constructor(A,t,r,n){super(A),this.name="ResponseStatusCodeError",this.message=A||"Response Status Code Error",this.code="UND_ERR_RESPONSE_STATUS_CODE",this.body=n,this.status=t,this.statusCode=t,this.headers=r}static[Symbol.hasInstance](A){return A&&A[Zg]===!0}[Zg]=!0},_g=Symbol.for("undici.error.UND_ERR_INVALID_ARG"),Xi=class extends K{constructor(A){super(A),this.name="InvalidArgumentError",this.message=A||"Invalid Argument Error",this.code="UND_ERR_INVALID_ARG"}static[Symbol.hasInstance](A){return A&&A[_g]===!0}[_g]=!0},Kg=Symbol.for("undici.error.UND_ERR_INVALID_RETURN_VALUE"),ji=class extends K{constructor(A){super(A),this.name="InvalidReturnValueError",this.message=A||"Invalid Return Value Error",this.code="UND_ERR_INVALID_RETURN_VALUE"}static[Symbol.hasInstance](A){return A&&A[Kg]===!0}[Kg]=!0},Xg=Symbol.for("undici.error.UND_ERR_ABORT"),Hn=class extends K{constructor(A){super(A),this.name="AbortError",this.message=A||"The operation was aborted",this.code="UND_ERR_ABORT"}static[Symbol.hasInstance](A){return A&&A[Xg]===!0}[Xg]=!0},jg=Symbol.for("undici.error.UND_ERR_ABORTED"),$i=class extends Hn{constructor(A){super(A),this.name="AbortError",this.message=A||"Request aborted",this.code="UND_ERR_ABORTED"}static[Symbol.hasInstance](A){return A&&A[jg]===!0}[jg]=!0},$g=Symbol.for("undici.error.UND_ERR_INFO"),eo=class extends K{constructor(A){super(A),this.name="InformationalError",this.message=A||"Request information",this.code="UND_ERR_INFO"}static[Symbol.hasInstance](A){return A&&A[$g]===!0}[$g]=!0},el=Symbol.for("undici.error.UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"),Ao=class extends K{constructor(A){super(A),this.name="RequestContentLengthMismatchError",this.message=A||"Request body length does not match content-length header",this.code="UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"}static[Symbol.hasInstance](A){return A&&A[el]===!0}[el]=!0},Al=Symbol.for("undici.error.UND_ERR_RES_CONTENT_LENGTH_MISMATCH"),to=class extends K{constructor(A){super(A),this.name="ResponseContentLengthMismatchError",this.message=A||"Response body length does not match content-length header",this.code="UND_ERR_RES_CONTENT_LENGTH_MISMATCH"}static[Symbol.hasInstance](A){return A&&A[Al]===!0}[Al]=!0},tl=Symbol.for("undici.error.UND_ERR_DESTROYED"),ro=class extends K{constructor(A){super(A),this.name="ClientDestroyedError",this.message=A||"The client is destroyed",this.code="UND_ERR_DESTROYED"}static[Symbol.hasInstance](A){return A&&A[tl]===!0}[tl]=!0},rl=Symbol.for("undici.error.UND_ERR_CLOSED"),no=class extends K{constructor(A){super(A),this.name="ClientClosedError",this.message=A||"The client is closed",this.code="UND_ERR_CLOSED"}static[Symbol.hasInstance](A){return A&&A[rl]===!0}[rl]=!0},nl=Symbol.for("undici.error.UND_ERR_SOCKET"),so=class extends K{constructor(A,t){super(A),this.name="SocketError",this.message=A||"Socket error",this.code="UND_ERR_SOCKET",this.socket=t}static[Symbol.hasInstance](A){return A&&A[nl]===!0}[nl]=!0},sl=Symbol.for("undici.error.UND_ERR_NOT_SUPPORTED"),io=class extends K{constructor(A){super(A),this.name="NotSupportedError",this.message=A||"Not supported error",this.code="UND_ERR_NOT_SUPPORTED"}static[Symbol.hasInstance](A){return A&&A[sl]===!0}[sl]=!0},il=Symbol.for("undici.error.UND_ERR_BPL_MISSING_UPSTREAM"),oo=class extends K{constructor(A){super(A),this.name="MissingUpstreamError",this.message=A||"No upstream has been added to the BalancedPool",this.code="UND_ERR_BPL_MISSING_UPSTREAM"}static[Symbol.hasInstance](A){return A&&A[il]===!0}[il]=!0},ol=Symbol.for("undici.error.UND_ERR_HTTP_PARSER"),ao=class extends Error{constructor(A,t,r){super(A),this.name="HTTPParserError",this.code=t?`HPE_${t}`:void 0,this.data=r?r.toString():void 0}static[Symbol.hasInstance](A){return A&&A[ol]===!0}[ol]=!0},al=Symbol.for("undici.error.UND_ERR_RES_EXCEEDED_MAX_SIZE"),co=class extends K{constructor(A){super(A),this.name="ResponseExceededMaxSizeError",this.message=A||"Response content exceeded max size",this.code="UND_ERR_RES_EXCEEDED_MAX_SIZE"}static[Symbol.hasInstance](A){return A&&A[al]===!0}[al]=!0},cl=Symbol.for("undici.error.UND_ERR_REQ_RETRY"),go=class extends K{constructor(A,t,{headers:r,data:n}){super(A),this.name="RequestRetryError",this.message=A||"Request retry error",this.code="UND_ERR_REQ_RETRY",this.statusCode=t,this.data=n,this.headers=r}static[Symbol.hasInstance](A){return A&&A[cl]===!0}[cl]=!0},gl=Symbol.for("undici.error.UND_ERR_RESPONSE"),lo=class extends K{constructor(A,t,{headers:r,data:n}){super(A),this.name="ResponseError",this.message=A||"Response error",this.code="UND_ERR_RESPONSE",this.statusCode=t,this.data=n,this.headers=r}static[Symbol.hasInstance](A){return A&&A[gl]===!0}[gl]=!0},ll=Symbol.for("undici.error.UND_ERR_PRX_TLS"),Qo=class extends K{constructor(A,t,r){super(t,{cause:A,...r??{}}),this.name="SecureProxyConnectionError",this.message=t||"Secure Proxy Connection failed",this.code="UND_ERR_PRX_TLS",this.cause=A}static[Symbol.hasInstance](A){return A&&A[ll]===!0}[ll]=!0},Ql=Symbol.for("undici.error.UND_ERR_WS_MESSAGE_SIZE_EXCEEDED"),Eo=class extends K{constructor(A){super(A),this.name="MessageSizeExceededError",this.message=A||"Max decompressed message size exceeded",this.code="UND_ERR_WS_MESSAGE_SIZE_EXCEEDED"}static[Symbol.hasInstance](A){return A&&A[Ql]===!0}get[Ql](){return!0}};El.exports={AbortError:Hn,HTTPParserError:ao,UndiciError:K,HeadersTimeoutError:zi,HeadersOverflowError:Zi,BodyTimeoutError:_i,RequestContentLengthMismatchError:Ao,ConnectTimeoutError:Oi,ResponseStatusCodeError:Ki,InvalidArgumentError:Xi,InvalidReturnValueError:ji,RequestAbortedError:$i,ClientDestroyedError:ro,ClientClosedError:no,InformationalError:eo,SocketError:so,NotSupportedError:io,ResponseContentLengthMismatchError:to,BalancedPoolMissingUpstreamError:oo,ResponseExceededMaxSizeError:co,RequestRetryError:go,ResponseError:lo,SecureProxyConnectionError:Qo,MessageSizeExceededError:Eo}});var Vn=f((pL,Bl)=>{"use strict";var vn={},Bo=["Accept","Accept-Encoding","Accept-Language","Accept-Ranges","Access-Control-Allow-Credentials","Access-Control-Allow-Headers","Access-Control-Allow-Methods","Access-Control-Allow-Origin","Access-Control-Expose-Headers","Access-Control-Max-Age","Access-Control-Request-Headers","Access-Control-Request-Method","Age","Allow","Alt-Svc","Alt-Used","Authorization","Cache-Control","Clear-Site-Data","Connection","Content-Disposition","Content-Encoding","Content-Language","Content-Length","Content-Location","Content-Range","Content-Security-Policy","Content-Security-Policy-Report-Only","Content-Type","Cookie","Cross-Origin-Embedder-Policy","Cross-Origin-Opener-Policy","Cross-Origin-Resource-Policy","Date","Device-Memory","Downlink","ECT","ETag","Expect","Expect-CT","Expires","Forwarded","From","Host","If-Match","If-Modified-Since","If-None-Match","If-Range","If-Unmodified-Since","Keep-Alive","Last-Modified","Link","Location","Max-Forwards","Origin","Permissions-Policy","Pragma","Proxy-Authenticate","Proxy-Authorization","RTT","Range","Referer","Referrer-Policy","Refresh","Retry-After","Sec-WebSocket-Accept","Sec-WebSocket-Extensions","Sec-WebSocket-Key","Sec-WebSocket-Protocol","Sec-WebSocket-Version","Server","Server-Timing","Service-Worker-Allowed","Service-Worker-Navigation-Preload","Set-Cookie","SourceMap","Strict-Transport-Security","Supports-Loading-Mode","TE","Timing-Allow-Origin","Trailer","Transfer-Encoding","Upgrade","Upgrade-Insecure-Requests","User-Agent","Vary","Via","WWW-Authenticate","X-Content-Type-Options","X-DNS-Prefetch-Control","X-Frame-Options","X-Permitted-Cross-Domain-Policies","X-Powered-By","X-Requested-With","X-XSS-Protection"];for(let e=0;e<Bo.length;++e){let A=Bo[e],t=A.toLowerCase();vn[A]=vn[t]=t}Object.setPrototypeOf(vn,null);Bl.exports={wellknownHeaderNames:Bo,headerNameLowerCasedRecord:vn}});var Cl=f((yL,hl)=>{"use strict";var{wellknownHeaderNames:ul,headerNameLowerCasedRecord:Mf}=Vn(),uo=class e{value=null;left=null;middle=null;right=null;code;constructor(A,t,r){if(r===void 0||r>=A.length)throw new TypeError("Unreachable");if((this.code=A.charCodeAt(r))>127)throw new TypeError("key must be ascii string");A.length!==++r?this.middle=new e(A,t,r):this.value=t}add(A,t){let r=A.length;if(r===0)throw new TypeError("Unreachable");let n=0,s=this;for(;;){let i=A.charCodeAt(n);if(i>127)throw new TypeError("key must be ascii string");if(s.code===i)if(r===++n){s.value=t;break}else if(s.middle!==null)s=s.middle;else{s.middle=new e(A,t,n);break}else if(s.code<i)if(s.left!==null)s=s.left;else{s.left=new e(A,t,n);break}else if(s.right!==null)s=s.right;else{s.right=new e(A,t,n);break}}}search(A){let t=A.length,r=0,n=this;for(;n!==null&&r<t;){let s=A[r];for(s<=90&&s>=65&&(s|=32);n!==null;){if(s===n.code){if(t===++r)return n;n=n.middle;break}n=n.code<s?n.left:n.right}}return null}},qn=class{node=null;insert(A,t){this.node===null?this.node=new uo(A,t,0):this.node.add(A,t)}lookup(A){return this.node?.search(A)?.value??null}},Il=new qn;for(let e=0;e<ul.length;++e){let A=Mf[ul[e]];Il.insert(A,A)}hl.exports={TernarySearchTree:qn,tree:Il}});var L=f((mL,Ll)=>{"use strict";var Rr=d("node:assert"),{kDestroyed:fl,kBodyUsed:Ft,kListeners:Io,kBody:dl}=_(),{IncomingMessage:Uf}=d("node:http"),On=d("node:stream"),Lf=d("node:net"),{Blob:xf}=d("node:buffer"),Tf=d("node:util"),{stringify:Yf}=d("node:querystring"),{EventEmitter:Gf}=d("node:events"),{InvalidArgumentError:se}=J(),{headerNameLowerCasedRecord:Jf}=Vn(),{tree:wl}=Cl(),[Hf,vf]=process.versions.node.split(".").map(e=>Number(e)),Pn=class{constructor(A){this[dl]=A,this[Ft]=!1}async*[Symbol.asyncIterator](){Rr(!this[Ft],"disturbed"),this[Ft]=!0,yield*this[dl]}};function Vf(e){return zn(e)?(kl(e)===0&&e.on("data",function(){Rr(!1)}),typeof e.readableDidRead!="boolean"&&(e[Ft]=!1,Gf.prototype.on.call(e,"data",function(){this[Ft]=!0})),e):e&&typeof e.pipeTo=="function"?new Pn(e):e&&typeof e!="string"&&!ArrayBuffer.isView(e)&&Dl(e)?new Pn(e):e}function qf(){}function zn(e){return e&&typeof e=="object"&&typeof e.pipe=="function"&&typeof e.on=="function"}function pl(e){if(e===null)return!1;if(e instanceof xf)return!0;if(typeof e!="object")return!1;{let A=e[Symbol.toStringTag];return(A==="Blob"||A==="File")&&("stream"in e&&typeof e.stream=="function"||"arrayBuffer"in e&&typeof e.arrayBuffer=="function")}}function Wf(e,A){if(e.includes("?")||e.includes("#"))throw new Error('Query params cannot be passed when url already contains "?" or "#".');let t=Yf(A);return t&&(e+="?"+t),e}function yl(e){let A=parseInt(e,10);return A===Number(e)&&A>=0&&A<=65535}function Wn(e){return e!=null&&e[0]==="h"&&e[1]==="t"&&e[2]==="t"&&e[3]==="p"&&(e[4]===":"||e[4]==="s"&&e[5]===":")}function ml(e){if(typeof e=="string"){if(e=new URL(e),!Wn(e.origin||e.protocol))throw new se("Invalid URL protocol: the URL must start with `http:` or `https:`.");return e}if(!e||typeof e!="object")throw new se("Invalid URL: The URL argument must be a non-null object.");if(!(e instanceof URL)){if(e.port!=null&&e.port!==""&&yl(e.port)===!1)throw new se("Invalid URL: port must be a valid integer or a string representation of an integer.");if(e.path!=null&&typeof e.path!="string")throw new se("Invalid URL path: the path must be a string or null/undefined.");if(e.pathname!=null&&typeof e.pathname!="string")throw new se("Invalid URL pathname: the pathname must be a string or null/undefined.");if(e.hostname!=null&&typeof e.hostname!="string")throw new se("Invalid URL hostname: the hostname must be a string or null/undefined.");if(e.origin!=null&&typeof e.origin!="string")throw new se("Invalid URL origin: the origin must be a string or null/undefined.");if(!Wn(e.origin||e.protocol))throw new se("Invalid URL protocol: the URL must start with `http:` or `https:`.");let A=e.port!=null?e.port:e.protocol==="https:"?443:80,t=e.origin!=null?e.origin:`${e.protocol||""}//${e.hostname||""}:${A}`,r=e.path!=null?e.path:`${e.pathname||""}${e.search||""}`;return t[t.length-1]==="/"&&(t=t.slice(0,t.length-1)),r&&r[0]!=="/"&&(r=`/${r}`),new URL(`${t}${r}`)}if(!Wn(e.origin||e.protocol))throw new se("Invalid URL protocol: the URL must start with `http:` or `https:`.");return e}function Pf(e){if(e=ml(e),e.pathname!=="/"||e.search||e.hash)throw new se("invalid url");return e}function Of(e){if(e[0]==="["){let t=e.indexOf("]");return Rr(t!==-1),e.substring(1,t)}let A=e.indexOf(":");return A===-1?e:e.substring(0,A)}function zf(e){if(!e)return null;Rr(typeof e=="string");let A=Of(e);return Lf.isIP(A)?"":A}function Zf(e){return JSON.parse(JSON.stringify(e))}function _f(e){return e!=null&&typeof e[Symbol.asyncIterator]=="function"}function Dl(e){return e!=null&&(typeof e[Symbol.iterator]=="function"||typeof e[Symbol.asyncIterator]=="function")}function kl(e){if(e==null)return 0;if(zn(e)){let A=e._readableState;return A&&A.objectMode===!1&&A.ended===!0&&Number.isFinite(A.length)?A.length:null}else{if(pl(e))return e.size!=null?e.size:null;if(Rl(e))return e.byteLength}return null}function bl(e){return e&&!!(e.destroyed||e[fl]||On.isDestroyed?.(e))}function Kf(e,A){e==null||!zn(e)||bl(e)||(typeof e.destroy=="function"?(Object.getPrototypeOf(e).constructor===Uf&&(e.socket=null),e.destroy(A)):A&&queueMicrotask(()=>{e.emit("error",A)}),e.destroyed!==!0&&(e[fl]=!0))}var Xf=/timeout=(\d+)/;function jf(e){let A=e.toString().match(Xf);return A?parseInt(A[1],10)*1e3:null}function Fl(e){return typeof e=="string"?Jf[e]??e.toLowerCase():wl.lookup(e)??e.toString("latin1").toLowerCase()}function $f(e){return wl.lookup(e)??e.toString("latin1").toLowerCase()}function ew(e,A){A===void 0&&(A={});for(let t=0;t<e.length;t+=2){let r=Fl(e[t]),n=A[r];if(n)typeof n=="string"&&(n=[n],A[r]=n),n.push(e[t+1].toString("utf8"));else{let s=e[t+1];typeof s=="string"?A[r]=s:A[r]=Array.isArray(s)?s.map(i=>i.toString("utf8")):s.toString("utf8")}}return"content-length"in A&&"content-disposition"in A&&(A["content-disposition"]=Buffer.from(A["content-disposition"]).toString("latin1")),A}function Aw(e){let A=e.length,t=new Array(A),r=!1,n=-1,s,i,o=0;for(let a=0;a<e.length;a+=2)s=e[a],i=e[a+1],typeof s!="string"&&(s=s.toString()),typeof i!="string"&&(i=i.toString("utf8")),o=s.length,o===14&&s[7]==="-"&&(s==="content-length"||s.toLowerCase()==="content-length")?r=!0:o===19&&s[7]==="-"&&(s==="content-disposition"||s.toLowerCase()==="content-disposition")&&(n=a+1),t[a]=s,t[a+1]=i;return r&&n!==-1&&(t[n]=Buffer.from(t[n]).toString("latin1")),t}function Rl(e){return e instanceof Uint8Array||Buffer.isBuffer(e)}function tw(e,A,t){if(!e||typeof e!="object")throw new se("handler must be an object");if(typeof e.onConnect!="function")throw new se("invalid onConnect method");if(typeof e.onError!="function")throw new se("invalid onError method");if(typeof e.onBodySent!="function"&&e.onBodySent!==void 0)throw new se("invalid onBodySent method");if(t||A==="CONNECT"){if(typeof e.onUpgrade!="function")throw new se("invalid onUpgrade method")}else{if(typeof e.onHeaders!="function")throw new se("invalid onHeaders method");if(typeof e.onData!="function")throw new se("invalid onData method");if(typeof e.onComplete!="function")throw new se("invalid onComplete method")}}function rw(e){return!!(e&&(On.isDisturbed(e)||e[Ft]))}function nw(e){return!!(e&&On.isErrored(e))}function sw(e){return!!(e&&On.isReadable(e))}function iw(e){return{localAddress:e.localAddress,localPort:e.localPort,remoteAddress:e.remoteAddress,remotePort:e.remotePort,remoteFamily:e.remoteFamily,timeout:e.timeout,bytesWritten:e.bytesWritten,bytesRead:e.bytesRead}}function ow(e){let A;return new ReadableStream({async start(){A=e[Symbol.asyncIterator]()},async pull(t){let{done:r,value:n}=await A.next();if(r)queueMicrotask(()=>{t.close(),t.byobRequest?.respond(0)});else{let s=Buffer.isBuffer(n)?n:Buffer.from(n);s.byteLength&&t.enqueue(new Uint8Array(s))}return t.desiredSize>0},async cancel(t){await A.return()},type:"bytes"})}function aw(e){return e&&typeof e=="object"&&typeof e.append=="function"&&typeof e.delete=="function"&&typeof e.get=="function"&&typeof e.getAll=="function"&&typeof e.has=="function"&&typeof e.set=="function"&&e[Symbol.toStringTag]==="FormData"}function cw(e,A){return"addEventListener"in e?(e.addEventListener("abort",A,{once:!0}),()=>e.removeEventListener("abort",A)):(e.addListener("abort",A),()=>e.removeListener("abort",A))}var gw=typeof String.prototype.toWellFormed=="function",lw=typeof String.prototype.isWellFormed=="function";function Nl(e){return gw?`${e}`.toWellFormed():Tf.toUSVString(e)}function Qw(e){return lw?`${e}`.isWellFormed():Nl(e)===`${e}`}function Sl(e){switch(e){case 34:case 40:case 41:case 44:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 123:case 125:return!1;default:return e>=33&&e<=126}}function Ew(e){if(e.length===0)return!1;for(let A=0;A<e.length;++A)if(!Sl(e.charCodeAt(A)))return!1;return!0}var Bw=/[^\t\x20-\x7e\x80-\xff]/;function uw(e){return!Bw.test(e)}function Iw(e){if(e==null||e==="")return{start:0,end:null,size:null};let A=e?e.match(/^bytes (\d+)-(\d+)\/(\d+)?$/):null;return A?{start:parseInt(A[1]),end:A[2]?parseInt(A[2]):null,size:A[3]?parseInt(A[3]):null}:null}function hw(e,A,t){return(e[Io]??=[]).push([A,t]),e.on(A,t),e}function Cw(e){for(let[A,t]of e[Io]??[])e.removeListener(A,t);e[Io]=null}function dw(e,A,t){try{A.onError(t),Rr(A.aborted)}catch(r){e.emit("error",r)}}var Ml=Object.create(null);Ml.enumerable=!0;var ho={delete:"DELETE",DELETE:"DELETE",get:"GET",GET:"GET",head:"HEAD",HEAD:"HEAD",options:"OPTIONS",OPTIONS:"OPTIONS",post:"POST",POST:"POST",put:"PUT",PUT:"PUT"},Ul={...ho,patch:"patch",PATCH:"PATCH"};Object.setPrototypeOf(ho,null);Object.setPrototypeOf(Ul,null);Ll.exports={kEnumerableProperty:Ml,nop:qf,isDisturbed:rw,isErrored:nw,isReadable:sw,toUSVString:Nl,isUSVString:Qw,isBlobLike:pl,parseOrigin:Pf,parseURL:ml,getServerName:zf,isStream:zn,isIterable:Dl,isAsyncIterable:_f,isDestroyed:bl,headerNameToString:Fl,bufferToLowerCasedHeaderName:$f,addListener:hw,removeAllListeners:Cw,errorRequest:dw,parseRawHeaders:Aw,parseHeaders:ew,parseKeepAliveTimeout:jf,destroy:Kf,bodyLength:kl,deepClone:Zf,ReadableStreamFrom:ow,isBuffer:Rl,validateHandler:tw,getSocketInfo:iw,isFormDataLike:aw,buildURL:Wf,addAbortListener:cw,isValidHTTPToken:Ew,isValidHeaderValue:uw,isTokenCharCode:Sl,parseRangeHeader:Iw,normalizedMethodRecordsBase:ho,normalizedMethodRecords:Ul,isValidPort:yl,isHttpOrHttpsPrefixed:Wn,nodeMajor:Hf,nodeMinor:vf,safeHTTPMethods:["GET","HEAD","OPTIONS","TRACE"],wrapRequestBody:Vf}});var Rt=f((DL,Tl)=>{"use strict";var v=d("node:diagnostics_channel"),fo=d("node:util"),Zn=fo.debuglog("undici"),Co=fo.debuglog("fetch"),_A=fo.debuglog("websocket"),xl=!1,fw={beforeConnect:v.channel("undici:client:beforeConnect"),connected:v.channel("undici:client:connected"),connectError:v.channel("undici:client:connectError"),sendHeaders:v.channel("undici:client:sendHeaders"),create:v.channel("undici:request:create"),bodySent:v.channel("undici:request:bodySent"),headers:v.channel("undici:request:headers"),trailers:v.channel("undici:request:trailers"),error:v.channel("undici:request:error"),open:v.channel("undici:websocket:open"),close:v.channel("undici:websocket:close"),socketError:v.channel("undici:websocket:socket_error"),ping:v.channel("undici:websocket:ping"),pong:v.channel("undici:websocket:pong")};if(Zn.enabled||Co.enabled){let e=Co.enabled?Co:Zn;v.channel("undici:client:beforeConnect").subscribe(A=>{let{connectParams:{version:t,protocol:r,port:n,host:s}}=A;e("connecting to %s using %s%s",`${s}${n?`:${n}`:""}`,r,t)}),v.channel("undici:client:connected").subscribe(A=>{let{connectParams:{version:t,protocol:r,port:n,host:s}}=A;e("connected to %s using %s%s",`${s}${n?`:${n}`:""}`,r,t)}),v.channel("undici:client:connectError").subscribe(A=>{let{connectParams:{version:t,protocol:r,port:n,host:s},error:i}=A;e("connection to %s using %s%s errored - %s",`${s}${n?`:${n}`:""}`,r,t,i.message)}),v.channel("undici:client:sendHeaders").subscribe(A=>{let{request:{method:t,path:r,origin:n}}=A;e("sending request to %s %s/%s",t,n,r)}),v.channel("undici:request:headers").subscribe(A=>{let{request:{method:t,path:r,origin:n},response:{statusCode:s}}=A;e("received response to %s %s/%s - HTTP %d",t,n,r,s)}),v.channel("undici:request:trailers").subscribe(A=>{let{request:{method:t,path:r,origin:n}}=A;e("trailers received from %s %s/%s",t,n,r)}),v.channel("undici:request:error").subscribe(A=>{let{request:{method:t,path:r,origin:n},error:s}=A;e("request to %s %s/%s errored - %s",t,n,r,s.message)}),xl=!0}if(_A.enabled){if(!xl){let e=Zn.enabled?Zn:_A;v.channel("undici:client:beforeConnect").subscribe(A=>{let{connectParams:{version:t,protocol:r,port:n,host:s}}=A;e("connecting to %s%s using %s%s",s,n?`:${n}`:"",r,t)}),v.channel("undici:client:connected").subscribe(A=>{let{connectParams:{version:t,protocol:r,port:n,host:s}}=A;e("connected to %s%s using %s%s",s,n?`:${n}`:"",r,t)}),v.channel("undici:client:connectError").subscribe(A=>{let{connectParams:{version:t,protocol:r,port:n,host:s},error:i}=A;e("connection to %s%s using %s%s errored - %s",s,n?`:${n}`:"",r,t,i.message)}),v.channel("undici:client:sendHeaders").subscribe(A=>{let{request:{method:t,path:r,origin:n}}=A;e("sending request to %s %s/%s",t,n,r)})}v.channel("undici:websocket:open").subscribe(e=>{let{address:{address:A,port:t}}=e;_A("connection opened %s%s",A,t?`:${t}`:"")}),v.channel("undici:websocket:close").subscribe(e=>{let{websocket:A,code:t,reason:r}=e;_A("closed connection to %s - %s %s",A.url,t,r)}),v.channel("undici:websocket:socket_error").subscribe(e=>{_A("connection errored - %s",e.message)}),v.channel("undici:websocket:ping").subscribe(e=>{_A("ping received")}),v.channel("undici:websocket:pong").subscribe(e=>{_A("pong received")})}Tl.exports={channels:fw}});var Hl=f((kL,Jl)=>{"use strict";var{InvalidArgumentError:q,NotSupportedError:ww}=J(),gA=d("node:assert"),{isValidHTTPToken:Gl,isValidHeaderValue:Nr,isStream:pw,destroy:yw,isBuffer:mw,isFormDataLike:Dw,isIterable:kw,isBlobLike:bw,buildURL:Fw,validateHandler:Rw,getServerName:Nw,normalizedMethodRecords:Sw}=L(),{channels:Xe}=Rt(),{headerNameLowerCasedRecord:Yl}=Vn(),Mw=/[^\u0021-\u00ff]/,Ue=Symbol("handler"),wo=class{constructor(A,{path:t,method:r,body:n,headers:s,query:i,idempotent:o,blocking:a,upgrade:c,headersTimeout:g,bodyTimeout:l,reset:Q,throwOnError:B,expectContinue:E,servername:I},h){if(typeof t!="string")throw new q("path must be a string");if(t[0]!=="/"&&!(t.startsWith("http://")||t.startsWith("https://"))&&r!=="CONNECT")throw new q("path must be an absolute URL or start with a slash");if(Mw.test(t))throw new q("invalid request path");if(typeof r!="string")throw new q("method must be a string");if(Sw[r]===void 0&&!Gl(r))throw new q("invalid request method");if(c&&typeof c!="string")throw new q("upgrade must be a string");if(c&&!Nr(c))throw new q("invalid upgrade header");if(g!=null&&(!Number.isFinite(g)||g<0))throw new q("invalid headersTimeout");if(l!=null&&(!Number.isFinite(l)||l<0))throw new q("invalid bodyTimeout");if(Q!=null&&typeof Q!="boolean")throw new q("invalid reset");if(E!=null&&typeof E!="boolean")throw new q("invalid expectContinue");if(this.headersTimeout=g,this.bodyTimeout=l,this.throwOnError=B===!0,this.method=r,this.abort=null,n==null)this.body=null;else if(pw(n)){this.body=n;let u=this.body._readableState;(!u||!u.autoDestroy)&&(this.endHandler=function(){yw(this)},this.body.on("end",this.endHandler)),this.errorHandler=C=>{this.abort?this.abort(C):this.error=C},this.body.on("error",this.errorHandler)}else if(mw(n))this.body=n.byteLength?n:null;else if(ArrayBuffer.isView(n))this.body=n.buffer.byteLength?Buffer.from(n.buffer,n.byteOffset,n.byteLength):null;else if(n instanceof ArrayBuffer)this.body=n.byteLength?Buffer.from(n):null;else if(typeof n=="string")this.body=n.length?Buffer.from(n):null;else if(Dw(n)||kw(n)||bw(n))this.body=n;else throw new q("body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable");if(this.completed=!1,this.aborted=!1,this.upgrade=c||null,this.path=i?Fw(t,i):t,this.origin=A,this.idempotent=o??(r==="HEAD"||r==="GET"),this.blocking=a??!1,this.reset=Q??null,this.host=null,this.contentLength=null,this.contentType=null,this.headers=[],this.expectContinue=E??!1,Array.isArray(s)){if(s.length%2!==0)throw new q("headers array must be even");for(let u=0;u<s.length;u+=2)_n(this,s[u],s[u+1])}else if(s&&typeof s=="object")if(s[Symbol.iterator])for(let u of s){if(!Array.isArray(u)||u.length!==2)throw new q("headers must be in key-value pair format");_n(this,u[0],u[1])}else{let u=Object.keys(s);for(let C=0;C<u.length;++C)_n(this,u[C],s[u[C]])}else if(s!=null)throw new q("headers must be an object or an array");Rw(h,r,c),this.servername=I||Nw(this.host),this[Ue]=h,Xe.create.hasSubscribers&&Xe.create.publish({request:this})}onBodySent(A){if(this[Ue].onBodySent)try{return this[Ue].onBodySent(A)}catch(t){this.abort(t)}}onRequestSent(){if(Xe.bodySent.hasSubscribers&&Xe.bodySent.publish({request:this}),this[Ue].onRequestSent)try{return this[Ue].onRequestSent()}catch(A){this.abort(A)}}onConnect(A){if(gA(!this.aborted),gA(!this.completed),this.error)A(this.error);else return this.abort=A,this[Ue].onConnect(A)}onResponseStarted(){return this[Ue].onResponseStarted?.()}onHeaders(A,t,r,n){gA(!this.aborted),gA(!this.completed),Xe.headers.hasSubscribers&&Xe.headers.publish({request:this,response:{statusCode:A,headers:t,statusText:n}});try{return this[Ue].onHeaders(A,t,r,n)}catch(s){this.abort(s)}}onData(A){gA(!this.aborted),gA(!this.completed);try{return this[Ue].onData(A)}catch(t){return this.abort(t),!1}}onUpgrade(A,t,r){return gA(!this.aborted),gA(!this.completed),this[Ue].onUpgrade(A,t,r)}onComplete(A){this.onFinally(),gA(!this.aborted),this.completed=!0,Xe.trailers.hasSubscribers&&Xe.trailers.publish({request:this,trailers:A});try{return this[Ue].onComplete(A)}catch(t){this.onError(t)}}onError(A){if(this.onFinally(),Xe.error.hasSubscribers&&Xe.error.publish({request:this,error:A}),!this.aborted)return this.aborted=!0,this[Ue].onError(A)}onFinally(){this.errorHandler&&(this.body.off("error",this.errorHandler),this.errorHandler=null),this.endHandler&&(this.body.off("end",this.endHandler),this.endHandler=null)}addHeader(A,t){return _n(this,A,t),this}};function _n(e,A,t){if(t&&typeof t=="object"&&!Array.isArray(t))throw new q(`invalid ${A} header`);if(t===void 0)return;let r=Yl[A];if(r===void 0&&(r=A.toLowerCase(),Yl[r]===void 0&&!Gl(r)))throw new q("invalid header key");if(Array.isArray(t)){let n=[];for(let s=0;s<t.length;s++)if(typeof t[s]=="string"){if(!Nr(t[s]))throw new q(`invalid ${A} header`);n.push(t[s])}else if(t[s]===null)n.push("");else{if(typeof t[s]=="object")throw new q(`invalid ${A} header`);{let i=`${t[s]}`;if(!Nr(i))throw new q(`invalid ${A} header`);n.push(i)}}t=n}else if(typeof t=="string"){if(!Nr(t))throw new q(`invalid ${A} header`)}else if(t===null)t="";else if(t=`${t}`,!Nr(t))throw new q(`invalid ${A} header`);if(r==="host"){if(e.host!==null)throw new q("duplicate host header");if(typeof t!="string")throw new q("invalid host header");e.host=t}else if(r==="content-length"){if(e.contentLength!==null)throw new q("duplicate content-length header");if(e.contentLength=parseInt(t,10),!Number.isFinite(e.contentLength))throw new q("invalid content-length header")}else if(e.contentType===null&&r==="content-type")e.contentType=t,e.headers.push(A,t);else{if(r==="transfer-encoding"||r==="keep-alive"||r==="upgrade")throw new q(`invalid ${r} header`);if(r==="connection"){let n=typeof t=="string"?t.toLowerCase():null;if(n!=="close"&&n!=="keep-alive")throw new q("invalid connection header");n==="close"&&(e.reset=!0)}else{if(r==="expect")throw new ww("expect header not supported");e.headers.push(A,t)}}}Jl.exports=wo});var Sr=f((bL,vl)=>{"use strict";var Uw=d("node:events"),Kn=class extends Uw{dispatch(){throw new Error("not implemented")}close(){throw new Error("not implemented")}destroy(){throw new Error("not implemented")}compose(...A){let t=Array.isArray(A[0])?A[0]:A,r=this.dispatch.bind(this);for(let n of t)if(n!=null){if(typeof n!="function")throw new TypeError(`invalid interceptor, expected function received ${typeof n}`);if(r=n(r),r==null||typeof r!="function"||r.length!==2)throw new TypeError("invalid interceptor")}return new po(this,r)}},po=class extends Kn{#e=null;#A=null;constructor(A,t){super(),this.#e=A,this.#A=t}dispatch(...A){this.#A(...A)}close(...A){return this.#e.close(...A)}destroy(...A){return this.#e.destroy(...A)}};vl.exports=Kn});var Ut=f((FL,Vl)=>{"use strict";var Lw=Sr(),{ClientDestroyedError:yo,ClientClosedError:xw,InvalidArgumentError:Nt}=J(),{kDestroy:Tw,kClose:Yw,kClosed:Mr,kDestroyed:St,kDispatch:mo,kInterceptors:KA}=_(),lA=Symbol("onDestroyed"),Mt=Symbol("onClosed"),Xn=Symbol("Intercepted Dispatch"),Do=Symbol("webSocketOptions"),ko=class extends Lw{constructor(A){super(),this[St]=!1,this[lA]=null,this[Mr]=!1,this[Mt]=[],this[Do]=A?.webSocket??{}}get webSocketOptions(){return{maxFragments:this[Do].maxFragments??131072,maxPayloadSize:this[Do].maxPayloadSize??128*1024*1024}}get destroyed(){return this[St]}get closed(){return this[Mr]}get interceptors(){return this[KA]}set interceptors(A){if(A){for(let t=A.length-1;t>=0;t--)if(typeof this[KA][t]!="function")throw new Nt("interceptor must be an function")}this[KA]=A}close(A){if(A===void 0)return new Promise((r,n)=>{this.close((s,i)=>s?n(s):r(i))});if(typeof A!="function")throw new Nt("invalid callback");if(this[St]){queueMicrotask(()=>A(new yo,null));return}if(this[Mr]){this[Mt]?this[Mt].push(A):queueMicrotask(()=>A(null,null));return}this[Mr]=!0,this[Mt].push(A);let t=()=>{let r=this[Mt];this[Mt]=null;for(let n=0;n<r.length;n++)r[n](null,null)};this[Yw]().then(()=>this.destroy()).then(()=>{queueMicrotask(t)})}destroy(A,t){if(typeof A=="function"&&(t=A,A=null),t===void 0)return new Promise((n,s)=>{this.destroy(A,(i,o)=>i?s(i):n(o))});if(typeof t!="function")throw new Nt("invalid callback");if(this[St]){this[lA]?this[lA].push(t):queueMicrotask(()=>t(null,null));return}A||(A=new yo),this[St]=!0,this[lA]=this[lA]||[],this[lA].push(t);let r=()=>{let n=this[lA];this[lA]=null;for(let s=0;s<n.length;s++)n[s](null,null)};this[Tw](A).then(()=>{queueMicrotask(r)})}[Xn](A,t){if(!this[KA]||this[KA].length===0)return this[Xn]=this[mo],this[mo](A,t);let r=this[mo].bind(this);for(let n=this[KA].length-1;n>=0;n--)r=this[KA][n](r);return this[Xn]=r,r(A,t)}dispatch(A,t){if(!t||typeof t!="object")throw new Nt("handler must be an object");try{if(!A||typeof A!="object")throw new Nt("opts must be an object.");if(this[St]||this[lA])throw new yo;if(this[Mr])throw new xw;return this[Xn](A,t)}catch(r){if(typeof t.onError!="function")throw new Nt("invalid onError method");return t.onError(r),!1}}};Vl.exports=ko});var Uo=f((RL,Ol)=>{"use strict";var Lt=0,bo=1e3,Fo=(bo>>1)-1,QA,Ro=Symbol("kFastTimer"),EA=[],No=-2,So=-1,Wl=0,ql=1;function Mo(){Lt+=Fo;let e=0,A=EA.length;for(;e<A;){let t=EA[e];t._state===Wl?(t._idleStart=Lt-Fo,t._state=ql):t._state===ql&&Lt>=t._idleStart+t._idleTimeout&&(t._state=So,t._idleStart=-1,t._onTimeout(t._timerArg)),t._state===So?(t._state=No,--A!==0&&(EA[e]=EA[A])):++e}EA.length=A,EA.length!==0&&Pl()}function Pl(){QA?QA.refresh():(clearTimeout(QA),QA=setTimeout(Mo,Fo),QA.unref&&QA.unref())}var jn=class{[Ro]=!0;_state=No;_idleTimeout=-1;_idleStart=-1;_onTimeout;_timerArg;constructor(A,t,r){this._onTimeout=A,this._idleTimeout=t,this._timerArg=r,this.refresh()}refresh(){this._state===No&&EA.push(this),(!QA||EA.length===1)&&Pl(),this._state=Wl}clear(){this._state=So,this._idleStart=-1}};Ol.exports={setTimeout(e,A,t){return A<=bo?setTimeout(e,A,t):new jn(e,A,t)},clearTimeout(e){e[Ro]?e.clear():clearTimeout(e)},setFastTimeout(e,A,t){return new jn(e,A,t)},clearFastTimeout(e){e.clear()},now(){return Lt},tick(e=0){Lt+=e-bo+1,Mo(),Mo()},reset(){Lt=0,EA.length=0,clearTimeout(QA),QA=null},kFastTimer:Ro}});var Ur=f((ML,Xl)=>{"use strict";var Gw=d("node:net"),zl=d("node:assert"),Kl=L(),{InvalidArgumentError:Jw,ConnectTimeoutError:Hw}=J(),$n=Uo();function Zl(){}var Lo,xo;global.FinalizationRegistry&&!(process.env.NODE_V8_COVERAGE||process.env.UNDICI_NO_FG)?xo=class{constructor(A){this._maxCachedSessions=A,this._sessionCache=new Map,this._sessionRegistry=new global.FinalizationRegistry(t=>{if(this._sessionCache.size<this._maxCachedSessions)return;let r=this._sessionCache.get(t);r!==void 0&&r.deref()===void 0&&this._sessionCache.delete(t)})}get(A){let t=this._sessionCache.get(A);return t?t.deref():null}set(A,t){this._maxCachedSessions!==0&&(this._sessionCache.set(A,new WeakRef(t)),this._sessionRegistry.register(t,A))}}:xo=class{constructor(A){this._maxCachedSessions=A,this._sessionCache=new Map}get(A){return this._sessionCache.get(A)}set(A,t){if(this._maxCachedSessions!==0){if(this._sessionCache.size>=this._maxCachedSessions){let{value:r}=this._sessionCache.keys().next();this._sessionCache.delete(r)}this._sessionCache.set(A,t)}}};function vw({allowH2:e,maxCachedSessions:A,socketPath:t,timeout:r,session:n,...s}){if(A!=null&&(!Number.isInteger(A)||A<0))throw new Jw("maxCachedSessions must be a positive integer or zero");let i={path:t,...s},o=new xo(A??100);return r=r??1e4,e=e??!1,function({hostname:c,host:g,protocol:l,port:Q,servername:B,localAddress:E,httpSocket:I},h){let u;if(l==="https:"){Lo||(Lo=d("node:tls")),B=B||i.servername||Kl.getServerName(g)||null;let m=B||c;zl(m);let y=n||o.get(m)||null;Q=Q||443,u=Lo.connect({highWaterMark:16384,...i,servername:B,session:y,localAddress:E,ALPNProtocols:e?["http/1.1","h2"]:["http/1.1"],socket:I,port:Q,host:c}),u.on("session",function(Y){o.set(m,Y)})}else zl(!I,"httpSocket can only be sent on TLS update"),Q=Q||80,u=Gw.connect({highWaterMark:64*1024,...i,localAddress:E,port:Q,host:c});if(i.keepAlive==null||i.keepAlive){let m=i.keepAliveInitialDelay===void 0?6e4:i.keepAliveInitialDelay;u.setKeepAlive(!0,m)}let C=Vw(new WeakRef(u),{timeout:r,hostname:c,port:Q});return u.setNoDelay(!0).once(l==="https:"?"secureConnect":"connect",function(){if(queueMicrotask(C),h){let m=h;h=null,m(null,this)}}).on("error",function(m){if(queueMicrotask(C),h){let y=h;h=null,y(m)}}),u}}var Vw=process.platform==="win32"?(e,A)=>{if(!A.timeout)return Zl;let t=null,r=null,n=$n.setFastTimeout(()=>{t=setImmediate(()=>{r=setImmediate(()=>_l(e.deref(),A))})},A.timeout);return()=>{$n.clearFastTimeout(n),clearImmediate(t),clearImmediate(r)}}:(e,A)=>{if(!A.timeout)return Zl;let t=null,r=$n.setFastTimeout(()=>{t=setImmediate(()=>{_l(e.deref(),A)})},A.timeout);return()=>{$n.clearFastTimeout(r),clearImmediate(t)}};function _l(e,A){if(e==null)return;let t="Connect Timeout Error";Array.isArray(e.autoSelectFamilyAttemptedAddresses)?t+=` (attempted addresses: ${e.autoSelectFamilyAttemptedAddresses.join(", ")},`:t+=` (attempted address: ${A.hostname}:${A.port},`,t+=` timeout: ${A.timeout}ms)`,Kl.destroy(e,new Hw(t))}Xl.exports=vw});var jl=f(es=>{"use strict";Object.defineProperty(es,"__esModule",{value:!0});es.enumToMap=void 0;function qw(e){let A={};return Object.keys(e).forEach(t=>{let r=e[t];typeof r=="number"&&(A[t]=r)}),A}es.enumToMap=qw});var $l=f(p=>{"use strict";Object.defineProperty(p,"__esModule",{value:!0});p.SPECIAL_HEADERS=p.HEADER_STATE=p.MINOR=p.MAJOR=p.CONNECTION_TOKEN_CHARS=p.HEADER_CHARS=p.TOKEN=p.STRICT_TOKEN=p.HEX=p.URL_CHAR=p.STRICT_URL_CHAR=p.USERINFO_CHARS=p.MARK=p.ALPHANUM=p.NUM=p.HEX_MAP=p.NUM_MAP=p.ALPHA=p.FINISH=p.H_METHOD_MAP=p.METHOD_MAP=p.METHODS_RTSP=p.METHODS_ICE=p.METHODS_HTTP=p.METHODS=p.LENIENT_FLAGS=p.FLAGS=p.TYPE=p.ERROR=void 0;var Ww=jl(),Pw;(function(e){e[e.OK=0]="OK",e[e.INTERNAL=1]="INTERNAL",e[e.STRICT=2]="STRICT",e[e.LF_EXPECTED=3]="LF_EXPECTED",e[e.UNEXPECTED_CONTENT_LENGTH=4]="UNEXPECTED_CONTENT_LENGTH",e[e.CLOSED_CONNECTION=5]="CLOSED_CONNECTION",e[e.INVALID_METHOD=6]="INVALID_METHOD",e[e.INVALID_URL=7]="INVALID_URL",e[e.INVALID_CONSTANT=8]="INVALID_CONSTANT",e[e.INVALID_VERSION=9]="INVALID_VERSION",e[e.INVALID_HEADER_TOKEN=10]="INVALID_HEADER_TOKEN",e[e.INVALID_CONTENT_LENGTH=11]="INVALID_CONTENT_LENGTH",e[e.INVALID_CHUNK_SIZE=12]="INVALID_CHUNK_SIZE",e[e.INVALID_STATUS=13]="INVALID_STATUS",e[e.INVALID_EOF_STATE=14]="INVALID_EOF_STATE",e[e.INVALID_TRANSFER_ENCODING=15]="INVALID_TRANSFER_ENCODING",e[e.CB_MESSAGE_BEGIN=16]="CB_MESSAGE_BEGIN",e[e.CB_HEADERS_COMPLETE=17]="CB_HEADERS_COMPLETE",e[e.CB_MESSAGE_COMPLETE=18]="CB_MESSAGE_COMPLETE",e[e.CB_CHUNK_HEADER=19]="CB_CHUNK_HEADER",e[e.CB_CHUNK_COMPLETE=20]="CB_CHUNK_COMPLETE",e[e.PAUSED=21]="PAUSED",e[e.PAUSED_UPGRADE=22]="PAUSED_UPGRADE",e[e.PAUSED_H2_UPGRADE=23]="PAUSED_H2_UPGRADE",e[e.USER=24]="USER"})(Pw=p.ERROR||(p.ERROR={}));var Ow;(function(e){e[e.BOTH=0]="BOTH",e[e.REQUEST=1]="REQUEST",e[e.RESPONSE=2]="RESPONSE"})(Ow=p.TYPE||(p.TYPE={}));var zw;(function(e){e[e.CONNECTION_KEEP_ALIVE=1]="CONNECTION_KEEP_ALIVE",e[e.CONNECTION_CLOSE=2]="CONNECTION_CLOSE",e[e.CONNECTION_UPGRADE=4]="CONNECTION_UPGRADE",e[e.CHUNKED=8]="CHUNKED",e[e.UPGRADE=16]="UPGRADE",e[e.CONTENT_LENGTH=32]="CONTENT_LENGTH",e[e.SKIPBODY=64]="SKIPBODY",e[e.TRAILING=128]="TRAILING",e[e.TRANSFER_ENCODING=512]="TRANSFER_ENCODING"})(zw=p.FLAGS||(p.FLAGS={}));var Zw;(function(e){e[e.HEADERS=1]="HEADERS",e[e.CHUNKED_LENGTH=2]="CHUNKED_LENGTH",e[e.KEEP_ALIVE=4]="KEEP_ALIVE"})(Zw=p.LENIENT_FLAGS||(p.LENIENT_FLAGS={}));var F;(function(e){e[e.DELETE=0]="DELETE",e[e.GET=1]="GET",e[e.HEAD=2]="HEAD",e[e.POST=3]="POST",e[e.PUT=4]="PUT",e[e.CONNECT=5]="CONNECT",e[e.OPTIONS=6]="OPTIONS",e[e.TRACE=7]="TRACE",e[e.COPY=8]="COPY",e[e.LOCK=9]="LOCK",e[e.MKCOL=10]="MKCOL",e[e.MOVE=11]="MOVE",e[e.PROPFIND=12]="PROPFIND",e[e.PROPPATCH=13]="PROPPATCH",e[e.SEARCH=14]="SEARCH",e[e.UNLOCK=15]="UNLOCK",e[e.BIND=16]="BIND",e[e.REBIND=17]="REBIND",e[e.UNBIND=18]="UNBIND",e[e.ACL=19]="ACL",e[e.REPORT=20]="REPORT",e[e.MKACTIVITY=21]="MKACTIVITY",e[e.CHECKOUT=22]="CHECKOUT",e[e.MERGE=23]="MERGE",e[e["M-SEARCH"]=24]="M-SEARCH",e[e.NOTIFY=25]="NOTIFY",e[e.SUBSCRIBE=26]="SUBSCRIBE",e[e.UNSUBSCRIBE=27]="UNSUBSCRIBE",e[e.PATCH=28]="PATCH",e[e.PURGE=29]="PURGE",e[e.MKCALENDAR=30]="MKCALENDAR",e[e.LINK=31]="LINK",e[e.UNLINK=32]="UNLINK",e[e.SOURCE=33]="SOURCE",e[e.PRI=34]="PRI",e[e.DESCRIBE=35]="DESCRIBE",e[e.ANNOUNCE=36]="ANNOUNCE",e[e.SETUP=37]="SETUP",e[e.PLAY=38]="PLAY",e[e.PAUSE=39]="PAUSE",e[e.TEARDOWN=40]="TEARDOWN",e[e.GET_PARAMETER=41]="GET_PARAMETER",e[e.SET_PARAMETER=42]="SET_PARAMETER",e[e.REDIRECT=43]="REDIRECT",e[e.RECORD=44]="RECORD",e[e.FLUSH=45]="FLUSH"})(F=p.METHODS||(p.METHODS={}));p.METHODS_HTTP=[F.DELETE,F.GET,F.HEAD,F.POST,F.PUT,F.CONNECT,F.OPTIONS,F.TRACE,F.COPY,F.LOCK,F.MKCOL,F.MOVE,F.PROPFIND,F.PROPPATCH,F.SEARCH,F.UNLOCK,F.BIND,F.REBIND,F.UNBIND,F.ACL,F.REPORT,F.MKACTIVITY,F.CHECKOUT,F.MERGE,F["M-SEARCH"],F.NOTIFY,F.SUBSCRIBE,F.UNSUBSCRIBE,F.PATCH,F.PURGE,F.MKCALENDAR,F.LINK,F.UNLINK,F.PRI,F.SOURCE];p.METHODS_ICE=[F.SOURCE];p.METHODS_RTSP=[F.OPTIONS,F.DESCRIBE,F.ANNOUNCE,F.SETUP,F.PLAY,F.PAUSE,F.TEARDOWN,F.GET_PARAMETER,F.SET_PARAMETER,F.REDIRECT,F.RECORD,F.FLUSH,F.GET,F.POST];p.METHOD_MAP=Ww.enumToMap(F);p.H_METHOD_MAP={};Object.keys(p.METHOD_MAP).forEach(e=>{/^H/.test(e)&&(p.H_METHOD_MAP[e]=p.METHOD_MAP[e])});var _w;(function(e){e[e.SAFE=0]="SAFE",e[e.SAFE_WITH_CB=1]="SAFE_WITH_CB",e[e.UNSAFE=2]="UNSAFE"})(_w=p.FINISH||(p.FINISH={}));p.ALPHA=[];for(let e=65;e<=90;e++)p.ALPHA.push(String.fromCharCode(e)),p.ALPHA.push(String.fromCharCode(e+32));p.NUM_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9};p.HEX_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15};p.NUM=["0","1","2","3","4","5","6","7","8","9"];p.ALPHANUM=p.ALPHA.concat(p.NUM);p.MARK=["-","_",".","!","~","*","'","(",")"];p.USERINFO_CHARS=p.ALPHANUM.concat(p.MARK).concat(["%",";",":","&","=","+","$",","]);p.STRICT_URL_CHAR=["!",'"',"$","%","&","'","(",")","*","+",",","-",".","/",":",";","<","=",">","@","[","\\","]","^","_","`","{","|","}","~"].concat(p.ALPHANUM);p.URL_CHAR=p.STRICT_URL_CHAR.concat([" ","\f"]);for(let e=128;e<=255;e++)p.URL_CHAR.push(e);p.HEX=p.NUM.concat(["a","b","c","d","e","f","A","B","C","D","E","F"]);p.STRICT_TOKEN=["!","#","$","%","&","'","*","+","-",".","^","_","`","|","~"].concat(p.ALPHANUM);p.TOKEN=p.STRICT_TOKEN.concat([" "]);p.HEADER_CHARS=[" "];for(let e=32;e<=255;e++)e!==127&&p.HEADER_CHARS.push(e);p.CONNECTION_TOKEN_CHARS=p.HEADER_CHARS.filter(e=>e!==44);p.MAJOR=p.NUM_MAP;p.MINOR=p.MAJOR;var xt;(function(e){e[e.GENERAL=0]="GENERAL",e[e.CONNECTION=1]="CONNECTION",e[e.CONTENT_LENGTH=2]="CONTENT_LENGTH",e[e.TRANSFER_ENCODING=3]="TRANSFER_ENCODING",e[e.UPGRADE=4]="UPGRADE",e[e.CONNECTION_KEEP_ALIVE=5]="CONNECTION_KEEP_ALIVE",e[e.CONNECTION_CLOSE=6]="CONNECTION_CLOSE",e[e.CONNECTION_UPGRADE=7]="CONNECTION_UPGRADE",e[e.TRANSFER_ENCODING_CHUNKED=8]="TRANSFER_ENCODING_CHUNKED"})(xt=p.HEADER_STATE||(p.HEADER_STATE={}));p.SPECIAL_HEADERS={connection:xt.CONNECTION,"content-length":xt.CONTENT_LENGTH,"proxy-connection":xt.CONNECTION,"transfer-encoding":xt.TRANSFER_ENCODING,upgrade:xt.UPGRADE}});var To=f((xL,eQ)=>{"use strict";var{Buffer:Kw}=d("node:buffer");eQ.exports=Kw.from("AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAX8AYAJ/fwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAy0sBQYAAAIAAAAAAAACAQIAAgICAAADAAAAAAMDAwMBAQEBAQEBAQEAAAIAAAAEBQFwARISBQMBAAIGCAF/AUGA1AQLB9EFIgZtZW1vcnkCAAtfaW5pdGlhbGl6ZQAIGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBAAtsbGh0dHBfaW5pdAAJGGxsaHR0cF9zaG91bGRfa2VlcF9hbGl2ZQAvDGxsaHR0cF9hbGxvYwALBm1hbGxvYwAxC2xsaHR0cF9mcmVlAAwEZnJlZQAMD2xsaHR0cF9nZXRfdHlwZQANFWxsaHR0cF9nZXRfaHR0cF9tYWpvcgAOFWxsaHR0cF9nZXRfaHR0cF9taW5vcgAPEWxsaHR0cF9nZXRfbWV0aG9kABAWbGxodHRwX2dldF9zdGF0dXNfY29kZQAREmxsaHR0cF9nZXRfdXBncmFkZQASDGxsaHR0cF9yZXNldAATDmxsaHR0cF9leGVjdXRlABQUbGxodHRwX3NldHRpbmdzX2luaXQAFQ1sbGh0dHBfZmluaXNoABYMbGxodHRwX3BhdXNlABcNbGxodHRwX3Jlc3VtZQAYG2xsaHR0cF9yZXN1bWVfYWZ0ZXJfdXBncmFkZQAZEGxsaHR0cF9nZXRfZXJybm8AGhdsbGh0dHBfZ2V0X2Vycm9yX3JlYXNvbgAbF2xsaHR0cF9zZXRfZXJyb3JfcmVhc29uABwUbGxodHRwX2dldF9lcnJvcl9wb3MAHRFsbGh0dHBfZXJybm9fbmFtZQAeEmxsaHR0cF9tZXRob2RfbmFtZQAfEmxsaHR0cF9zdGF0dXNfbmFtZQAgGmxsaHR0cF9zZXRfbGVu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PgtBhwEMPQtBiAEMPAtBiQEMOwtBigEMOgtBiwEMOQtBjAEMOAtBjQEMNwtBjgEMNgtBjwEMNQtBkAEMNAtBkQEMMwtBkgEMMgtBkwEMMQtBlAEMMAtBlQEMLwtBlgEMLgtBlwEMLQtBmAEMLAtBmQEMKwtBmgEMKgtBmwEMKQtBnAEMKAtBnQEMJwtBngEMJgtBnwEMJQtBoAEMJAtBoQEMIwtBogEMIgtBowEMIQtBpAEMIAtBpQEMHwtBpgEMHgtBpwEMHQtBqAEMHAtBqQEMGwtBqgEMGgtBqwEMGQtBrAEMGAtBrQEMFwtBrgEMFgtBAQwVC0GvAQwUC0GwAQwTC0GxAQwSC0GzAQwRC0GyAQwQC0G0AQwPC0G1AQwOC0G2AQwNC0G3AQwMC0G4AQwLC0G5AQwKC0G6AQwJC0G7AQwIC0HGAQwHC0G8AQwGC0G9AQwFC0G+AQwEC0G/AQwDC0HAAQwCC0HCAQwBC0HBAQshAwNAAkACQAJAAkACQAJAAkACQAJAIAICfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAgJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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iQEhAwykAgtBASABLQAAQd8ARw1nGiABQQFqIQEMXgtBigEhAyABIARGDaICIAIoAgAiACAEIAFraiEFIAEgAGtBAWohBgNAIAEtAAAgAEGMzwBqLQAARw1kIABBAUYN+gEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMogILQYsBIQMgASAERg2hAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGOzwBqLQAARw1kIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyiAgsgAkEANgIAIAZBAWohAUECDGULQYwBIQMgASAERg2gAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHwzwBqLQAARw1jIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyhAgsgAkEANgIAIAZBAWohAUEfDGQLQY0BIQMgASAERg2fAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHyzwBqLQAARw1iIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAygAgsgAkEANgIAIAZBAWohAUEJDGMLIAEgBEYEQEGOASEDDJ8CCwJAAkAgAS0AAEHJAGsOBwBiYmJiYgFiCyABQQFqIQFB+AAhAwyGAgsgAUEBaiEBQfkAIQMMhQILQY8BIQMgASAERg2dAiACKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEGRzwBqLQAARw1gIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyeAgsgAkEANgIAIAZBAWohAUEYDGELQZABIQMgASAERg2cAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGXzwBqLQAARw1fIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAydAgsgAkEANgIAIAZBAWohAUEXDGALQZEBIQMgASAERg2bAiACKAIAIgAgBCABa2ohBSABIABrQQZqIQYCQANAIAEtAAAgAEGazwBqLQAARw1eIABBBkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAycAgsgAkEANgIAIAZBAWohAUEV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JSIARQ0RIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMtAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0gIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMswELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0iIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMsgELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0OIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMsQELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0dIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMsAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0fIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMrwELIABBP0cNASABQQFqCyEBQQUhAwyUAQtBACEDIAJBADYCHCACIAE2AhQgAkH9EjYCECACQQc2AgwMrAELIAJBADYCHCACIAE2AhQgAkHcCDYCECACQQc2AgxBACEDDKsBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNByACQeUANgIcIAIgATYCFCACIAA2AgxBACEDDKoBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNFiACQdMANgIcIAIgATYCFCACIAA2AgxBACEDDKkBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNGCACQdIANgIcIAIgATYCFCACIAA2AgxBACEDDKgBCyACQQA2AhwgAiABNgIUIAJBxgo2AhAgAkEHNgIMQQAhAwynAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQMgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwymAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRIgAkHTADYCHCACIAE2AhQgAiAANgIMQQAhAwylAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRQgAkHSADYCHCACIAE2AhQgAiAANgIMQQAhAwykAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQAgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwyjAQtB1QAhAwyJAQsgAEEVRwRAIAJBADYCHCACIAE2AhQgAkG5DTYCECACQRo2AgxB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AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB5ABrDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0HhJw8LQaQhDwtByywPC0H+MQ8LQcAkDwtBqyQPC0GNKA8LQeImDwtBgDAPC0G5Lw8LQdckDwtB7x8PC0HhHw8LQfofDwtB8iAPC0GoLw8LQa4yDwtBiDAPC0HsJw8LQYIiDwtBjh0PC0HQLg8LQcojDwtBxTIPC0HfHA8LQdIcDwtBxCAPC0HXIA8LQaIfDwtB7S4PC0GrMA8LQdQlDwtBzC4PC0H6Lg8LQfwrDwtB0jAPC0HxHQ8LQbsgDwtB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CABB3AgLii1JbnZhbGlkIGNoYXIgaW4gdXJsIHF1ZXJ5AFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fYm9keQBDb250ZW50LUxlbmd0aCBvdmVyZmxvdwBDaHVuayBzaXplIG92ZXJmbG93AFJlc3BvbnNlIG92ZXJmbG93AEludmFsaWQgbWV0aG9kIGZvciBIVFRQL3gueCByZXF1ZXN0AEludmFsaWQgbWV0aG9kIGZvciBSVFNQL3gueCByZXF1ZXN0AEV4cGVjdGVkIFNPVVJDRSBtZXRob2QgZm9yIElDRS94LnggcmVxdWVzdABJbnZhbGlkIGNoYXIgaW4gdXJsIGZyYWdtZW50IHN0YXJ0AEV4cGVjdGVkIGRvdABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3N0YXR1cwBJbnZhbGlkIHJlc3BvbnNlIHN0YXR1cwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zAFVzZXIgY2FsbGJhY2sgZXJyb3IAYG9uX3Jlc2V0YCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfaGVhZGVyYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9iZWdpbmAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3N0YXR1c19jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3ZlcnNpb25fY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl91cmxfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl92YWx1ZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXRob2RfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfZmllbGRfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fbmFtZWAgY2FsbGJhY2sgZXJyb3IAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzZXJ2ZXIASW52YWxpZCBoZWFkZXIgdmFsdWUgY2hhcgBJbnZhbGlkIGhlYWRlciBmaWVsZCBjaGFyAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fdmVyc2lvbgBJbnZhbGlkIG1pbm9yIHZlcnNpb24ASW52YWxpZCBtYWpvciB2ZXJzaW9uAEV4cGVjdGVkIHNwYWNlIGFmdGVyIHZlcnNpb24ARXhwZWN0ZWQgQ1JMRiBhZnRlciB2ZXJzaW9uAEludmFsaWQgSFRUUCB2ZXJzaW9uAEludmFsaWQgaGVhZGVyIHRva2VuAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fdXJsAEludmFsaWQgY2hhcmFjdGVycyBpbiB1cmwAVW5leHBlY3RlZCBzdGFydCBjaGFyIGluIHVybABEb3VibGUgQCBpbiB1cmwARW1wdHkgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyYWN0ZXIgaW4gQ29udGVudC1MZW5ndGgARHVwbGljYXRlIENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhciBpbiB1cmwgcGF0aABDb250ZW50LUxlbmd0aCBjYW4ndCBiZSBwcmVzZW50IHdpdGggVHJhbnNmZXItRW5jb2RpbmcASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgc2l6ZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2hlYWRlcl92YWx1ZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgTEYgYWZ0ZXIgaGVhZGVyIHZhbHVlAEludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYCBoZWFkZXIgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZSB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlZCB2YWx1ZQBQYXVzZWQgYnkgb25faGVhZGVyc19jb21wbGV0ZQBJbnZhbGlkIEVPRiBzdGF0ZQBvbl9yZXNldCBwYXVzZQBvbl9jaHVua19oZWFkZXIgcGF1c2UAb25fbWVzc2FnZV9iZWdpbiBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fdmFsdWUgcGF1c2UAb25fc3RhdHVzX2NvbXBsZXRlIHBhdXNlAG9uX3ZlcnNpb25fY29tcGxldGUgcGF1c2UAb25fdXJsX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl92YWx1ZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXNzYWdlX2NvbXBsZXRlIHBhdXNlAG9uX21ldGhvZF9jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfZmllbGRfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUgcGF1c2UAVW5leHBlY3RlZCBzcGFjZSBhZnRlciBzdGFydCBsaW5lAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBuYW1lAFBhdXNlIG9uIENPTk5FQ1QvVXBncmFkZQBQYXVzZSBvbiBQUkkvVXBncmFkZQBFeHBlY3RlZCBIVFRQLzIgQ29ubmVjdGlvbiBQcmVmYWNlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fbWV0aG9kAEV4cGVjdGVkIHNwYWNlIGFmdGVyIG1ldGhvZABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2hlYWRlcl9maWVsZABQYXVzZWQASW52YWxpZCB3b3JkIGVuY291bnRlcmVkAEludmFsaWQgbWV0aG9kIGVuY291bnRlcmVkAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2NoZW1hAFJlcXVlc3QgaGFzIGludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYABTV0lUQ0hfUFJPWFkAVVNFX1BST1hZAE1LQUNUSVZJVFkAVU5QUk9DRVNTQUJMRV9FTlRJVFkAQ09QWQBNT1ZFRF9QRVJNQU5FTlRMWQBUT09fRUFSTFkATk9USUZZAEZBSUxFRF9ERVBFTkRFTkNZAEJBRF9HQVRFV0FZAFBMQVkAUFVUAENIRUNLT1VUAEdBVEVXQVlfVElNRU9VVABSRVFVRVNUX1RJTUVPVVQATkVUV09SS19DT05ORUNUX1RJTUVPVVQAQ09OTkVDVElPTl9USU1FT1VUAExPR0lOX1RJTUVPVVQATkVUV09SS19SRUFEX1RJTUVPVVQAUE9TVABNSVNESVJFQ1RFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX0xPQURfQkFMQU5DRURfUkVRVUVTVABCQURfUkVRVUVTVABIVFRQX1JFUVVFU1RfU0VOVF9UT19IVFRQU19QT1JUAFJFUE9SVABJTV9BX1RFQVBPVABSRVNFVF9DT05URU5UAE5PX0NPTlRFTlQAUEFSVElBTF9DT05URU5UAEhQRV9JTlZBTElEX0NPTlNUQU5UAEhQRV9DQl9SRVNFVABHRVQASFBFX1NUUklDVABDT05GTElDVABURU1QT1JBUllfUkVESVJFQ1QAUEVSTUFORU5UX1JFRElSRUNUAENPTk5FQ1QATVVMVElfU1RBVFVTAEhQRV9JTlZBTElEX1NUQVRVUwBUT09fTUFOWV9SRVFVRVNUUwBFQVJMWV9ISU5UUwBVTkFWQUlMQUJMRV9GT1JfTEVHQUxfUkVBU09OUwBPUFRJT05TAFNXSVRDSElOR19QUk9UT0NPTFMAVkFSSUFOVF9BTFNPX05FR09USUFURVMATVVMVElQTEVfQ0hPSUNFUwBJTlRFUk5BTF9TRVJWRVJfRVJST1IAV0VCX1NFUlZFUl9VTktOT1dOX0VSUk9SAFJBSUxHVU5fRVJST1IASURFTlRJVFlfUFJPVklERVJfQVVUSEVOVElDQVRJT05fRVJST1IAU1NMX0NFUlRJRklDQVRFX0VSUk9SAElOVkFMSURfWF9GT1JXQVJERURfRk9SAFNFVF9QQVJBTUVURVIAR0VUX1BBUkFNRVRFUgBIUEVfVVNFUgBTRUVfT1RIRVIASFBFX0NCX0NIVU5LX0hFQURFUgBNS0NBTEVOREFSAFNFVFVQAFdFQl9TRVJWRVJfSVNfRE9XTgBURUFSRE9XTgBIUEVfQ0xPU0VEX0NPTk5FQ1RJT04ASEVVUklTVElDX0VYUElSQVRJT04ARElTQ09OTkVDVEVEX09QRVJBVElPTgBOT05fQVVUSE9SSVRBVElWRV9JTkZPUk1BVElPTgBIUEVfSU5WQUxJRF9WRVJTSU9OAEhQRV9DQl9NRVNTQUdFX0JFR0lOAFNJVEVfSVNfRlJPWkVOAEhQRV9JTlZBTElEX0hFQURFUl9UT0tFTgBJTlZBTElEX1RPS0VOAEZPUkJJRERFTgBFTkhBTkNFX1lPVVJfQ0FMTQBIUEVfSU5WQUxJRF9VUkwAQkxPQ0tFRF9CWV9QQVJFTlRBTF9DT05UUk9MAE1LQ09MAEFDTABIUEVfSU5URVJOQUwAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRV9VTk9GRklDSUFMAEhQRV9PSwBVTkxJTksAVU5MT0NLAFBSSQBSRVRSWV9XSVRIAEhQRV9JTlZBTElEX0NPTlRFTlRfTEVOR1RIAEhQRV9VTkVYUEVDVEVEX0NPTlRFTlRfTEVOR1RIAEZMVVNIAFBST1BQQVRDSABNLVNFQVJDSABVUklfVE9PX0xPTkcAUFJPQ0VTU0lORwBNSVNDRUxMQU5FT1VTX1BFUlNJU1RFTlRfV0FSTklORwBNSVNDRUxMQU5FT1VTX1dBUk5JTkcASFBFX0lOVkFMSURfVFJBTlNGRVJfRU5DT0RJTkcARXhwZWN0ZWQgQ1JMRgBIUEVfSU5WQUxJRF9DSFVOS19TSVpFAE1PVkUAQ09OVElOVUUASFBFX0NCX1NUQVRVU19DT01QTEVURQBIUEVfQ0JfSEVBREVSU19DT01QTEVURQBIUEVfQ0JfVkVSU0lPTl9DT01QTEVURQBIUEVfQ0JfVVJMX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19DT01QTEVURQBIUEVfQ0JfSEVBREVSX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9OQU1FX0NPTVBMRVRFAEhQRV9DQl9NRVNTQUdFX0NPTVBMRVRFAEhQRV9DQl9NRVRIT0RfQ09NUExFVEUASFBFX0NCX0hFQURFUl9GSUVMRF9DT01QTEVURQBERUxFVEUASFBFX0lOVkFMSURfRU9GX1NUQVRFAElOVkFMSURfU1NMX0NFUlRJRklDQVRFAFBBVVNFAE5PX1JFU1BPTlNFAFVOU1VQUE9SVEVEX01FRElBX1RZUEUAR09ORQBOT1RfQUNDRVBUQUJMRQBTRVJWSUNFX1VOQVZBSUxBQkxFAFJBTkdFX05PVF9TQVRJU0ZJQUJMRQBPUklHSU5fSVNfVU5SRUFDSEFCTEUAUkVTUE9OU0VfSVNfU1RBTEUAUFVSR0UATUVSR0UAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRQBSRVFVRVNUX0hFQURFUl9UT09fTEFSR0UAUEFZTE9BRF9UT09fTEFSR0UASU5TVUZGSUNJRU5UX1NUT1JBR0UASFBFX1BBVVNFRF9VUEdSQURFAEhQRV9QQVVTRURfSDJfVVBHUkFERQBTT1VSQ0UAQU5OT1VOQ0UAVFJBQ0UASFBFX1VORVhQRUNURURfU1BBQ0UAREVTQ1JJQkUAVU5TVUJTQ1JJQkUAUkVDT1JEAEhQRV9JTlZBTElEX01FVEhPRABOT1RfRk9VTkQAUFJPUEZJTkQAVU5CSU5EAFJFQklORABVTkFVVEhPUklaRUQATUVUSE9EX05PVF9BTExPV0VEAEhUVFBfVkVSU0lPTl9OT1RfU1VQUE9SVEVEAEFMUkVBRFlfUkVQT1JURUQAQUNDRVBURUQATk9UX0lNUExFTUVOVEVEAExPT1BfREVURUNURUQASFBFX0NSX0VYUEVDVEVEAEhQRV9MRl9FWFBFQ1RFRABDUkVBVEVEAElNX1VTRUQASFBFX1BBVVNFRABUSU1FT1VUX09DQ1VSRUQAUEFZTUVOVF9SRVFVSVJFRABQUkVDT05ESVRJT05fUkVRVUlSRUQAUFJPWFlfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATkVUV09SS19BVVRIRU5USUNBVElPTl9SRVFVSVJFRABMRU5HVEhfUkVRVUlSRUQAU1NMX0NFUlRJRklDQVRFX1JFUVVJUkVEAFVQR1JBREVfUkVRVUlSRUQAUEFHRV9FWFBJUkVEAFBSRUNPTkRJVElPTl9GQUlMRUQARVhQRUNUQVRJT05fRkFJTEVEAFJFVkFMSURBVElPTl9GQUlMRUQAU1NMX0hBTkRTSEFLRV9GQUlMRUQATE9DS0VEAFRSQU5TRk9STUFUSU9OX0FQUExJRUQATk9UX01PRElGSUVEAE5PVF9FWFRFTkRFRABCQU5EV0lEVEhfTElNSVRfRVhDRUVERUQAU0lURV9JU19PVkVSTE9BREVEAEhFQUQARXhwZWN0ZWQgSFRUUC8AAF4TAAAmEwAAMBAAAPAXAACdEwAAFRIAADkXAADwEgAAChAAAHUSAACtEgAAghMAAE8UAAB/EAAAoBUAACMUAACJEgAAixQAAE0VAADUEQAAzxQAABAYAADJFgAA3BYAAMERAADgFwAAuxQAAHQUAAB8FQAA5RQAAAgXAAAfEAAAZRUAAKMUAAAoFQAAAhUAAJkVAAAsEAAAixkAAE8PAADUDgAAahAAAM4QAAACFwAAiQ4AAG4TAAAcEwAAZhQAAFYXAADBEwAAzRMAAGwTAABoFwAAZhcAAF8XAAAiEwAAzg8AAGkOAADYDgAAYxYAAMsTAACqDgAAKBcAACYXAADFEwAAXRYAAOgRAABnEwAAZRMAAPIWAABzEwAAHRcAAPkWAADzEQAAzw4AAM4VAAAMEgAAsxEAAKURAABhEAAAMhcAALsTAEH5NQsBAQBBkDYL4AEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB/TcLAQEAQZE4C14CAwICAgICAAACAgACAgACAgICAgICAgICAAQAAAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAEH9OQsBAQBBkToLXgIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAQfA7Cw1sb3NlZWVwLWFsaXZlAEGJPAsBAQBBoDwL4AEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBiT4LAQEAQaA+C+cBAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAEGwwAALXwEBAAEBAQEBAAABAQABAQABAQEBAQEBAQEBAAAAAAAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAEGQwgALIWVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgBBwMIACy1yYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AQfnCAAsFAQIAAQMAQZDDAAvgAQQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAEH5xAALBQECAAEDAEGQxQAL4AEEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+cYACwQBAAABAEGRxwAL3wEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAEH6yAALBAEAAAIAQZDJAAtfAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAQfrKAAsEAQAAAQBBkMsACwEBAEGqywALQQIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAEH6zAALBAEAAAEAQZDNAAsBAQBBms0ACwYCAAAAAAIAQbHNAAs6AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBB8M4AC5YBTk9VTkNFRUNLT1VUTkVDVEVURUNSSUJFTFVTSEVURUFEU0VBUkNIUkdFQ1RJVklUWUxFTkRBUlZFT1RJRllQVElPTlNDSFNFQVlTVEFUQ0hHRU9SRElSRUNUT1JUUkNIUEFSQU1FVEVSVVJDRUJTQ1JJQkVBUkRPV05BQ0VJTkROS0NLVUJTQ1JJQkVIVFRQL0FEVFAv","base64")});var tQ=f((TL,AQ)=>{"use strict";var{Buffer:Xw}=d("node:buffer");AQ.exports=Xw.from("AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAX8AYAJ/fwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAy0sBQYAAAIAAAAAAAACAQIAAgICAAADAAAAAAMDAwMBAQEBAQEBAQEAAAIAAAAEBQFwARISBQMBAAIGCAF/AUGA1AQLB9EFIgZtZW1vcnkCAAtfaW5pdGlhbGl6ZQAIGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBAAtsbGh0dHBfaW5pdAAJGGxsaHR0cF9zaG91bGRfa2VlcF9hbGl2ZQAvDGxsaHR0cF9hbGxvYwALBm1hbGxvYwAxC2xsaHR0cF9mcmVlAAwEZnJlZQAMD2xsaHR0cF9nZXRfdHlwZQANFWxsaHR0cF9nZXRfaHR0cF9tYWpvcgAOFWxsaHR0cF9nZXRfaHR0cF9taW5vcgAPEWxsaHR0cF9nZXRfbWV0aG9kABAWbGxodHRwX2dldF9zdGF0dXNfY29kZQAREmxsaHR0cF9nZXRfdXBncmFkZQASDGxsaHR0cF9yZXNldAATDmxsaHR0cF9leGVjdXRlABQUbGxodHRwX3NldHRpbmdzX2luaXQAFQ1sbGh0dHBfZmluaXNoABYMbGxodHRwX3BhdXNlABcNbGxodHRwX3Jlc3VtZQAYG2xsaHR0cF9yZXN1bWVfYWZ0ZXJfdXBncmFkZQAZEGxsaHR0cF9nZXRfZXJybm8AGhdsbGh0dHBfZ2V0X2Vycm9yX3JlYXNvbgAbF2xsaHR0cF9zZXRfZXJyb3JfcmVhc29uABwUbGxodHRwX2dldF9lcnJvcl9wb3MAHRFsbGh0dHBfZXJybm9fbmFtZQAeEmxsaHR0cF9tZXRob2RfbmFtZQAfEmxsaHR0cF9zdGF0dXNfbmFtZQAgGmxsaHR0cF9zZXRfbGVu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PgtBhwEMPQtBiAEMPAtBiQEMOwtBigEMOgtBiwEMOQtBjAEMOAtBjQEMNwtBjgEMNgtBjwEMNQtBkAEMNAtBkQEMMwtBkgEMMgtBkwEMMQtBlAEMMAtBlQEMLwtBlgEMLgtBlwEMLQtBmAEMLAtBmQEMKwtBmgEMKgtBmwEMKQtBnAEMKAtBnQEMJwtBngEMJgtBnwEMJQtBoAEMJAtBoQEMIwtBogEMIgtBowEMIQtBpAEMIAtBpQEMHwtBpgEMHgtBpwEMHQtBqAEMHAtBqQEMGwtBqgEMGgtBqwEMGQtBrAEMGAtBrQEMFwtBrgEMFgtBAQwVC0GvAQwUC0GwAQwTC0GxAQwSC0GzAQwRC0GyAQwQC0G0AQwPC0G1AQwOC0G2AQwNC0G3AQwMC0G4AQwLC0G5AQwKC0G6AQwJC0G7AQwIC0HGAQwHC0G8AQwGC0G9AQwFC0G+AQwEC0G/AQwDC0HAAQwCC0HCAQwBC0HBAQshAwNAAkACQAJAAkACQAJAAkACQAJAIAICfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAgJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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iQEhAwykAgtBASABLQAAQd8ARw1nGiABQQFqIQEMXgtBigEhAyABIARGDaICIAIoAgAiACAEIAFraiEFIAEgAGtBAWohBgNAIAEtAAAgAEGMzwBqLQAARw1kIABBAUYN+gEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMogILQYsBIQMgASAERg2hAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGOzwBqLQAARw1kIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyiAgsgAkEANgIAIAZBAWohAUECDGULQYwBIQMgASAERg2gAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHwzwBqLQAARw1jIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyhAgsgAkEANgIAIAZBAWohAUEfDGQLQY0BIQMgASAERg2fAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHyzwBqLQAARw1iIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAygAgsgAkEANgIAIAZBAWohAUEJDGMLIAEgBEYEQEGOASEDDJ8CCwJAAkAgAS0AAEHJAGsOBwBiYmJiYgFiCyABQQFqIQFB+AAhAwyGAgsgAUEBaiEBQfkAIQMMhQILQY8BIQMgASAERg2dAiACKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEGRzwBqLQAARw1gIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyeAgsgAkEANgIAIAZBAWohAUEYDGELQZABIQMgASAERg2cAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGXzwBqLQAARw1fIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAydAgsgAkEANgIAIAZBAWohAUEXDGALQZEBIQMgASAERg2bAiACKAIAIgAgBCABa2ohBSABIABrQQZqIQYCQANAIAEtAAAgAEGazwBqLQAARw1eIABBBkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAycAgsgAkEANgIAIAZBAWohAUEV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JSIARQ0RIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMtAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0gIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMswELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0iIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMsgELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0OIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMsQELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0dIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMsAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0fIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMrwELIABBP0cNASABQQFqCyEBQQUhAwyUAQtBACEDIAJBADYCHCACIAE2AhQgAkH9EjYCECACQQc2AgwMrAELIAJBADYCHCACIAE2AhQgAkHcCDYCECACQQc2AgxBACEDDKsBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNByACQeUANgIcIAIgATYCFCACIAA2AgxBACEDDKoBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNFiACQdMANgIcIAIgATYCFCACIAA2AgxBACEDDKkBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNGCACQdIANgIcIAIgATYCFCACIAA2AgxBACEDDKgBCyACQQA2AhwgAiABNgIUIAJBxgo2AhAgAkEHNgIMQQAhAwynAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQMgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwymAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRIgAkHTADYCHCACIAE2AhQgAiAANgIMQQAhAwylAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRQgAkHSADYCHCACIAE2AhQgAiAANgIMQQAhAwykAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQAgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwyjAQtB1QAhAwyJAQsgAEEVRwRAIAJBADYCHCACIAE2AhQgAkG5DTYCECACQRo2AgxB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AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB5ABrDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0HhJw8LQaQhDwtByywPC0H+MQ8LQcAkDwtBqyQPC0GNKA8LQeImDwtBgDAPC0G5Lw8LQdckDwtB7x8PC0HhHw8LQfofDwtB8iAPC0GoLw8LQa4yDwtBiDAPC0HsJw8LQYIiDwtBjh0PC0HQLg8LQcojDwtBxTIPC0HfHA8LQdIcDwtBxCAPC0HXIA8LQaIfDwtB7S4PC0GrMA8LQdQlDwtBzC4PC0H6Lg8LQfwrDwtB0jAPC0HxHQ8LQbsgDwtB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AAADAEGUCAsFBAAAAAUAQaQICwkGAAAABwAAAAgAQdwIC4otSW52YWxpZCBjaGFyIGluIHVybCBxdWVyeQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2JvZHkAQ29udGVudC1MZW5ndGggb3ZlcmZsb3cAQ2h1bmsgc2l6ZSBvdmVyZmxvdwBSZXNwb25zZSBvdmVyZmxvdwBJbnZhbGlkIG1ldGhvZCBmb3IgSFRUUC94LnggcmVxdWVzdABJbnZhbGlkIG1ldGhvZCBmb3IgUlRTUC94LnggcmVxdWVzdABFeHBlY3RlZCBTT1VSQ0UgbWV0aG9kIGZvciBJQ0UveC54IHJlcXVlc3QASW52YWxpZCBjaGFyIGluIHVybCBmcmFnbWVudCBzdGFydABFeHBlY3RlZCBkb3QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9zdGF0dXMASW52YWxpZCByZXNwb25zZSBzdGF0dXMASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucwBVc2VyIGNhbGxiYWNrIGVycm9yAGBvbl9yZXNldGAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2hlYWRlcmAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfYmVnaW5gIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwBB+TULAQEAQZA2C+ABAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQf03CwEBAEGROAteAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgBB/TkLAQEAQZE6C14CAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAEHwOwsNbG9zZWVlcC1hbGl2ZQBBiTwLAQEAQaA8C+ABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQYk+CwEBAEGgPgvnAQEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZABBsMAAC18BAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQBBkMIACyFlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AQcDCAAstcmFuc2Zlci1lbmNvZGluZ3BncmFkZQ0KDQoNClNNDQoNClRUUC9DRS9UU1AvAEH5wgALBQECAAEDAEGQwwAL4AEEAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+cQACwUBAgABAwBBkMUAC+ABBAEBBQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQfnGAAsEAQAAAQBBkccAC98BAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+sgACwQBAAACAEGQyQALXwMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAEH6ygALBAEAAAEAQZDLAAsBAQBBqssAC0ECAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBB+swACwQBAAABAEGQzQALAQEAQZrNAAsGAgAAAAACAEGxzQALOgMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQfDOAAuWAU5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw==","base64")});var Lr=f((YL,gQ)=>{"use strict";var rQ=["GET","HEAD","POST"],jw=new Set(rQ),$w=[101,204,205,304],nQ=[301,302,303,307,308],ep=new Set(nQ),sQ=["1","7","9","11","13","15","17","19","20","21","22","23","25","37","42","43","53","69","77","79","87","95","101","102","103","104","109","110","111","113","115","117","119","123","135","137","139","143","161","179","389","427","465","512","513","514","515","526","530","531","532","540","548","554","556","563","587","601","636","989","990","993","995","1719","1720","1723","2049","3659","4045","4190","5060","5061","6000","6566","6665","6666","6667","6668","6669","6679","6697","10080"],Ap=new Set(sQ),iQ=["","no-referrer","no-referrer-when-downgrade","same-origin","origin","strict-origin","origin-when-cross-origin","strict-origin-when-cross-origin","unsafe-url"],tp=new Set(iQ),rp=["follow","manual","error"],oQ=["GET","HEAD","OPTIONS","TRACE"],np=new Set(oQ),sp=["navigate","same-origin","no-cors","cors"],ip=["omit","same-origin","include"],op=["default","no-store","reload","no-cache","force-cache","only-if-cached"],ap=["content-encoding","content-language","content-location","content-type","content-length"],cp=["half"],aQ=["CONNECT","TRACE","TRACK"],gp=new Set(aQ),cQ=["audio","audioworklet","font","image","manifest","paintworklet","script","style","track","video","xslt",""],lp=new Set(cQ);gQ.exports={subresource:cQ,forbiddenMethods:aQ,requestBodyHeader:ap,referrerPolicy:iQ,requestRedirect:rp,requestMode:sp,requestCredentials:ip,requestCache:op,redirectStatus:nQ,corsSafeListedMethods:rQ,nullBodyStatus:$w,safeMethods:oQ,badPorts:sQ,requestDuplex:cp,subresourceSet:lp,badPortsSet:Ap,redirectStatusSet:ep,corsSafeListedMethodsSet:jw,safeMethodsSet:np,forbiddenMethodsSet:gp,referrerPolicySet:tp}});var Go=f((GL,lQ)=>{"use strict";var Yo=Symbol.for("undici.globalOrigin.1");function Qp(){return globalThis[Yo]}function Ep(e){if(e===void 0){Object.defineProperty(globalThis,Yo,{value:void 0,writable:!0,enumerable:!1,configurable:!1});return}let A=new URL(e);if(A.protocol!=="http:"&&A.protocol!=="https:")throw new TypeError(`Only http & https urls are allowed, received ${A.protocol}`);Object.defineProperty(globalThis,Yo,{value:A,writable:!0,enumerable:!1,configurable:!1})}lQ.exports={getGlobalOrigin:Qp,setGlobalOrigin:Ep}});var ue=f((JL,CQ)=>{"use strict";var ts=d("node:assert"),Bp=new TextEncoder,xr=/^[!#$%&'*+\-.^_|~A-Za-z0-9]+$/,up=/[\u000A\u000D\u0009\u0020]/,Ip=/[\u0009\u000A\u000C\u000D\u0020]/g,hp=/^[\u0009\u0020-\u007E\u0080-\u00FF]+$/;function Cp(e){ts(e.protocol==="data:");let A=BQ(e,!0);A=A.slice(5);let t={position:0},r=Tt(",",A,t),n=r.length;if(r=mp(r,!0,!0),t.position>=A.length)return"failure";t.position++;let s=A.slice(n+1),i=uQ(s);if(/;(\u0020){0,}base64$/i.test(r)){let a=hQ(i);if(i=fp(a),i==="failure")return"failure";r=r.slice(0,-6),r=r.replace(/(\u0020)+$/,""),r=r.slice(0,-1)}r.startsWith(";")&&(r="text/plain"+r);let o=Jo(r);return o==="failure"&&(o=Jo("text/plain;charset=US-ASCII")),{mimeType:o,body:i}}function BQ(e,A=!1){if(!A)return e.href;let t=e.href,r=e.hash.length,n=r===0?t:t.substring(0,t.length-r);return!r&&t.endsWith("#")?n.slice(0,-1):n}function rs(e,A,t){let r="";for(;t.position<A.length&&e(A[t.position]);)r+=A[t.position],t.position++;return r}function Tt(e,A,t){let r=A.indexOf(e,t.position),n=t.position;return r===-1?(t.position=A.length,A.slice(n)):(t.position=r,A.slice(n,t.position))}function uQ(e){let A=Bp.encode(e);return dp(A)}function QQ(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function EQ(e){return e>=48&&e<=57?e-48:(e&223)-55}function dp(e){let A=e.length,t=new Uint8Array(A),r=0;for(let n=0;n<A;++n){let s=e[n];s!==37?t[r++]=s:s===37&&!(QQ(e[n+1])&&QQ(e[n+2]))?t[r++]=37:(t[r++]=EQ(e[n+1])<<4|EQ(e[n+2]),n+=2)}return A===r?t:t.subarray(0,r)}function Jo(e){e=As(e,!0,!0);let A={position:0},t=Tt("/",e,A);if(t.length===0||!xr.test(t)||A.position>e.length)return"failure";A.position++;let r=Tt(";",e,A);if(r=As(r,!1,!0),r.length===0||!xr.test(r))return"failure";let n=t.toLowerCase(),s=r.toLowerCase(),i={type:n,subtype:s,parameters:new Map,essence:`${n}/${s}`};for(;A.position<e.length;){A.position++,rs(c=>up.test(c),e,A);let o=rs(c=>c!==";"&&c!=="=",e,A);if(o=o.toLowerCase(),A.position<e.length){if(e[A.position]===";")continue;A.position++}if(A.position>e.length)break;let a=null;if(e[A.position]==='"')a=IQ(e,A,!0),Tt(";",e,A);else if(a=Tt(";",e,A),a=As(a,!1,!0),a.length===0)continue;o.length!==0&&xr.test(o)&&(a.length===0||hp.test(a))&&!i.parameters.has(o)&&i.parameters.set(o,a)}return i}function fp(e){e=e.replace(Ip,"");let A=e.length;if(A%4===0&&e.charCodeAt(A-1)===61&&(--A,e.charCodeAt(A-1)===61&&--A),A%4===1||/[^+/0-9A-Za-z]/.test(e.length===A?e:e.substring(0,A)))return"failure";let t=Buffer.from(e,"base64");return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}function IQ(e,A,t){let r=A.position,n="";for(ts(e[A.position]==='"'),A.position++;n+=rs(i=>i!=='"'&&i!=="\\",e,A),!(A.position>=e.length);){let s=e[A.position];if(A.position++,s==="\\"){if(A.position>=e.length){n+="\\";break}n+=e[A.position],A.position++}else{ts(s==='"');break}}return t?n:e.slice(r,A.position)}function wp(e){ts(e!=="failure");let{parameters:A,essence:t}=e,r=t;for(let[n,s]of A.entries())r+=";",r+=n,r+="=",xr.test(s)||(s=s.replace(/(\\|")/g,"\\$1"),s='"'+s,s+='"'),r+=s;return r}function pp(e){return e===13||e===10||e===9||e===32}function As(e,A=!0,t=!0){return Ho(e,A,t,pp)}function yp(e){return e===13||e===10||e===9||e===12||e===32}function mp(e,A=!0,t=!0){return Ho(e,A,t,yp)}function Ho(e,A,t,r){let n=0,s=e.length-1;if(A)for(;n<e.length&&r(e.charCodeAt(n));)n++;if(t)for(;s>0&&r(e.charCodeAt(s));)s--;return n===0&&s===e.length-1?e:e.slice(n,s+1)}function hQ(e){let A=e.length;if(65535>A)return String.fromCharCode.apply(null,e);let t="",r=0,n=65535;for(;r<A;)r+n>A&&(n=A-r),t+=String.fromCharCode.apply(null,e.subarray(r,r+=n));return t}function Dp(e){switch(e.essence){case"application/ecmascript":case"application/javascript":case"application/x-ecmascript":case"application/x-javascript":case"text/ecmascript":case"text/javascript":case"text/javascript1.0":case"text/javascript1.1":case"text/javascript1.2":case"text/javascript1.3":case"text/javascript1.4":case"text/javascript1.5":case"text/jscript":case"text/livescript":case"text/x-ecmascript":case"text/x-javascript":return"text/javascript";case"application/json":case"text/json":return"application/json";case"image/svg+xml":return"image/svg+xml";case"text/xml":case"application/xml":return"application/xml"}return e.subtype.endsWith("+json")?"application/json":e.subtype.endsWith("+xml")?"application/xml":""}CQ.exports={dataURLProcessor:Cp,URLSerializer:BQ,collectASequenceOfCodePoints:rs,collectASequenceOfCodePointsFast:Tt,stringPercentDecode:uQ,parseMIMEType:Jo,collectAnHTTPQuotedString:IQ,serializeAMimeType:wp,removeChars:Ho,removeHTTPWhitespace:As,minimizeSupportedMimeType:Dp,HTTP_TOKEN_CODEPOINTS:xr,isomorphicDecode:hQ}});var oe=f((HL,dQ)=>{"use strict";var{types:je,inspect:kp}=d("node:util"),{markAsUncloneable:bp}=d("node:worker_threads"),{toUSVString:Fp}=L(),w={};w.converters={};w.util={};w.errors={};w.errors.exception=function(e){return new TypeError(`${e.header}: ${e.message}`)};w.errors.conversionFailed=function(e){let A=e.types.length===1?"":" one of",t=`${e.argument} could not be converted to${A}: ${e.types.join(", ")}.`;return w.errors.exception({header:e.prefix,message:t})};w.errors.invalidArgument=function(e){return w.errors.exception({header:e.prefix,message:`"${e.value}" is an invalid ${e.type}.`})};w.brandCheck=function(e,A,t){if(t?.strict!==!1){if(!(e instanceof A)){let r=new TypeError("Illegal invocation");throw r.code="ERR_INVALID_THIS",r}}else if(e?.[Symbol.toStringTag]!==A.prototype[Symbol.toStringTag]){let r=new TypeError("Illegal invocation");throw r.code="ERR_INVALID_THIS",r}};w.argumentLengthCheck=function({length:e},A,t){if(e<A)throw w.errors.exception({message:`${A} argument${A!==1?"s":""} required, but${e?" only":""} ${e} found.`,header:t})};w.illegalConstructor=function(){throw w.errors.exception({header:"TypeError",message:"Illegal constructor"})};w.util.Type=function(e){switch(typeof e){case"undefined":return"Undefined";case"boolean":return"Boolean";case"string":return"String";case"symbol":return"Symbol";case"number":return"Number";case"bigint":return"BigInt";case"function":case"object":return e===null?"Null":"Object"}};w.util.markAsUncloneable=bp||(()=>{});w.util.ConvertToInt=function(e,A,t,r){let n,s;A===64?(n=Math.pow(2,53)-1,t==="unsigned"?s=0:s=Math.pow(-2,53)+1):t==="unsigned"?(s=0,n=Math.pow(2,A)-1):(s=Math.pow(-2,A)-1,n=Math.pow(2,A-1)-1);let i=Number(e);if(i===0&&(i=0),r?.enforceRange===!0){if(Number.isNaN(i)||i===Number.POSITIVE_INFINITY||i===Number.NEGATIVE_INFINITY)throw w.errors.exception({header:"Integer conversion",message:`Could not convert ${w.util.Stringify(e)} to an integer.`});if(i=w.util.IntegerPart(i),i<s||i>n)throw w.errors.exception({header:"Integer conversion",message:`Value must be between ${s}-${n}, got ${i}.`});return i}return!Number.isNaN(i)&&r?.clamp===!0?(i=Math.min(Math.max(i,s),n),Math.floor(i)%2===0?i=Math.floor(i):i=Math.ceil(i),i):Number.isNaN(i)||i===0&&Object.is(0,i)||i===Number.POSITIVE_INFINITY||i===Number.NEGATIVE_INFINITY?0:(i=w.util.IntegerPart(i),i=i%Math.pow(2,A),t==="signed"&&i>=Math.pow(2,A)-1?i-Math.pow(2,A):i)};w.util.IntegerPart=function(e){let A=Math.floor(Math.abs(e));return e<0?-1*A:A};w.util.Stringify=function(e){switch(w.util.Type(e)){case"Symbol":return`Symbol(${e.description})`;case"Object":return kp(e);case"String":return`"${e}"`;default:return`${e}`}};w.sequenceConverter=function(e){return(A,t,r,n)=>{if(w.util.Type(A)!=="Object")throw w.errors.exception({header:t,message:`${r} (${w.util.Stringify(A)}) is not iterable.`});let s=typeof n=="function"?n():A?.[Symbol.iterator]?.(),i=[],o=0;if(s===void 0||typeof s.next!="function")throw w.errors.exception({header:t,message:`${r} is not iterable.`});for(;;){let{done:a,value:c}=s.next();if(a)break;i.push(e(c,t,`${r}[${o++}]`))}return i}};w.recordConverter=function(e,A){return(t,r,n)=>{if(w.util.Type(t)!=="Object")throw w.errors.exception({header:r,message:`${n} ("${w.util.Type(t)}") is not an Object.`});let s={};if(!je.isProxy(t)){let o=[...Object.getOwnPropertyNames(t),...Object.getOwnPropertySymbols(t)];for(let a of o){let c=e(a,r,n),g=A(t[a],r,n);s[c]=g}return s}let i=Reflect.ownKeys(t);for(let o of i)if(Reflect.getOwnPropertyDescriptor(t,o)?.enumerable){let c=e(o,r,n),g=A(t[o],r,n);s[c]=g}return s}};w.interfaceConverter=function(e){return(A,t,r,n)=>{if(n?.strict!==!1&&!(A instanceof e))throw w.errors.exception({header:t,message:`Expected ${r} ("${w.util.Stringify(A)}") to be an instance of ${e.name}.`});return A}};w.dictionaryConverter=function(e){return(A,t,r)=>{let n=w.util.Type(A),s={};if(n==="Null"||n==="Undefined")return s;if(n!=="Object")throw w.errors.exception({header:t,message:`Expected ${A} to be one of: Null, Undefined, Object.`});for(let i of e){let{key:o,defaultValue:a,required:c,converter:g}=i;if(c===!0&&!Object.hasOwn(A,o))throw w.errors.exception({header:t,message:`Missing required key "${o}".`});let l=A[o],Q=Object.hasOwn(i,"defaultValue");if(Q&&l!==null&&(l??=a()),c||Q||l!==void 0){if(l=g(l,t,`${r}.${o}`),i.allowedValues&&!i.allowedValues.includes(l))throw w.errors.exception({header:t,message:`${l} is not an accepted type. Expected one of ${i.allowedValues.join(", ")}.`});s[o]=l}}return s}};w.nullableConverter=function(e){return(A,t,r)=>A===null?A:e(A,t,r)};w.converters.DOMString=function(e,A,t,r){if(e===null&&r?.legacyNullToEmptyString)return"";if(typeof e=="symbol")throw w.errors.exception({header:A,message:`${t} is a symbol, which cannot be converted to a DOMString.`});return String(e)};w.converters.ByteString=function(e,A,t){let r=w.converters.DOMString(e,A,t);for(let n=0;n<r.length;n++)if(r.charCodeAt(n)>255)throw new TypeError(`Cannot convert argument to a ByteString because the character at index ${n} has a value of ${r.charCodeAt(n)} which is greater than 255.`);return r};w.converters.USVString=Fp;w.converters.boolean=function(e){return!!e};w.converters.any=function(e){return e};w.converters["long long"]=function(e,A,t){return w.util.ConvertToInt(e,64,"signed",void 0,A,t)};w.converters["unsigned long long"]=function(e,A,t){return w.util.ConvertToInt(e,64,"unsigned",void 0,A,t)};w.converters["unsigned long"]=function(e,A,t){return w.util.ConvertToInt(e,32,"unsigned",void 0,A,t)};w.converters["unsigned short"]=function(e,A,t,r){return w.util.ConvertToInt(e,16,"unsigned",r,A,t)};w.converters.ArrayBuffer=function(e,A,t,r){if(w.util.Type(e)!=="Object"||!je.isAnyArrayBuffer(e))throw w.errors.conversionFailed({prefix:A,argument:`${t} ("${w.util.Stringify(e)}")`,types:["ArrayBuffer"]});if(r?.allowShared===!1&&je.isSharedArrayBuffer(e))throw w.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});if(e.resizable||e.growable)throw w.errors.exception({header:"ArrayBuffer",message:"Received a resizable ArrayBuffer."});return e};w.converters.TypedArray=function(e,A,t,r,n){if(w.util.Type(e)!=="Object"||!je.isTypedArray(e)||e.constructor.name!==A.name)throw w.errors.conversionFailed({prefix:t,argument:`${r} ("${w.util.Stringify(e)}")`,types:[A.name]});if(n?.allowShared===!1&&je.isSharedArrayBuffer(e.buffer))throw w.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});if(e.buffer.resizable||e.buffer.growable)throw w.errors.exception({header:"ArrayBuffer",message:"Received a resizable ArrayBuffer."});return e};w.converters.DataView=function(e,A,t,r){if(w.util.Type(e)!=="Object"||!je.isDataView(e))throw w.errors.exception({header:A,message:`${t} is not a DataView.`});if(r?.allowShared===!1&&je.isSharedArrayBuffer(e.buffer))throw w.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});if(e.buffer.resizable||e.buffer.growable)throw w.errors.exception({header:"ArrayBuffer",message:"Received a resizable ArrayBuffer."});return e};w.converters.BufferSource=function(e,A,t,r){if(je.isAnyArrayBuffer(e))return w.converters.ArrayBuffer(e,A,t,{...r,allowShared:!1});if(je.isTypedArray(e))return w.converters.TypedArray(e,e.constructor,A,t,{...r,allowShared:!1});if(je.isDataView(e))return w.converters.DataView(e,A,t,{...r,allowShared:!1});throw w.errors.conversionFailed({prefix:A,argument:`${t} ("${w.util.Stringify(e)}")`,types:["BufferSource"]})};w.converters["sequence<ByteString>"]=w.sequenceConverter(w.converters.ByteString);w.converters["sequence<sequence<ByteString>>"]=w.sequenceConverter(w.converters["sequence<ByteString>"]);w.converters["record<ByteString, ByteString>"]=w.recordConverter(w.converters.ByteString,w.converters.ByteString);dQ.exports={webidl:w}});var pe=f((vL,UQ)=>{"use strict";var{Transform:Rp}=d("node:stream"),fQ=d("node:zlib"),{redirectStatusSet:Np,referrerPolicySet:Sp,badPortsSet:Mp}=Lr(),{getGlobalOrigin:wQ}=Go(),{collectASequenceOfCodePoints:XA,collectAnHTTPQuotedString:Up,removeChars:Lp,parseMIMEType:xp}=ue(),{performance:Tp}=d("node:perf_hooks"),{isBlobLike:Yp,ReadableStreamFrom:Gp,isValidHTTPToken:pQ,normalizedMethodRecordsBase:Jp}=L(),jA=d("node:assert"),{isUint8Array:Hp}=d("node:util/types"),{webidl:Tr}=oe(),yQ=[],ss;try{ss=d("node:crypto");let e=["sha256","sha384","sha512"];yQ=ss.getHashes().filter(A=>e.includes(A))}catch{}function mQ(e){let A=e.urlList,t=A.length;return t===0?null:A[t-1].toString()}function vp(e,A){if(!Np.has(e.status))return null;let t=e.headersList.get("location",!0);return t!==null&&kQ(t)&&(DQ(t)||(t=Vp(t)),t=new URL(t,mQ(e))),t&&!t.hash&&(t.hash=A),t}function DQ(e){for(let A=0;A<e.length;++A){let t=e.charCodeAt(A);if(t>126||t<32)return!1}return!0}function Vp(e){return Buffer.from(e,"binary").toString("utf8")}function Gr(e){return e.urlList[e.urlList.length-1]}function qp(e){let A=Gr(e);return SQ(A)&&Mp.has(A.port)?"blocked":"allowed"}function Wp(e){return e instanceof Error||e?.constructor?.name==="Error"||e?.constructor?.name==="DOMException"}function Pp(e){for(let A=0;A<e.length;++A){let t=e.charCodeAt(A);if(!(t===9||t>=32&&t<=126||t>=128&&t<=255))return!1}return!0}var Op=pQ;function kQ(e){return(e[0]===" "||e[0]===" "||e[e.length-1]===" "||e[e.length-1]===" "||e.includes(`
2
- `)||e.includes("\r")||e.includes("\0"))===!1}function zp(e,A){let{headersList:t}=A,r=(t.get("referrer-policy",!0)??"").split(","),n="";if(r.length>0)for(let s=r.length;s!==0;s--){let i=r[s-1].trim();if(Sp.has(i)){n=i;break}}n!==""&&(e.referrerPolicy=n)}function Zp(){return"allowed"}function _p(){return"success"}function Kp(){return"success"}function Xp(e){let A=null;A=e.mode,e.headersList.set("sec-fetch-mode",A,!0)}function jp(e){let A=e.origin;if(!(A==="client"||A===void 0)){if(e.responseTainting==="cors"||e.mode==="websocket")e.headersList.append("origin",A,!0);else if(e.method!=="GET"&&e.method!=="HEAD"){switch(e.referrerPolicy){case"no-referrer":A=null;break;case"no-referrer-when-downgrade":case"strict-origin":case"strict-origin-when-cross-origin":e.origin&&Vo(e.origin)&&!Vo(Gr(e))&&(A=null);break;case"same-origin":is(e,Gr(e))||(A=null);break;default:}e.headersList.append("origin",A,!0)}}}function Yt(e,A){return e}function $p(e,A,t){return!e?.startTime||e.startTime<A?{domainLookupStartTime:A,domainLookupEndTime:A,connectionStartTime:A,connectionEndTime:A,secureConnectionStartTime:A,ALPNNegotiatedProtocol:e?.ALPNNegotiatedProtocol}:{domainLookupStartTime:Yt(e.domainLookupStartTime,t),domainLookupEndTime:Yt(e.domainLookupEndTime,t),connectionStartTime:Yt(e.connectionStartTime,t),connectionEndTime:Yt(e.connectionEndTime,t),secureConnectionStartTime:Yt(e.secureConnectionStartTime,t),ALPNNegotiatedProtocol:e.ALPNNegotiatedProtocol}}function ey(e){return Yt(Tp.now(),e)}function Ay(e){return{startTime:e.startTime??0,redirectStartTime:0,redirectEndTime:0,postRedirectStartTime:e.startTime??0,finalServiceWorkerStartTime:0,finalNetworkResponseStartTime:0,finalNetworkRequestStartTime:0,endTime:0,encodedBodySize:0,decodedBodySize:0,finalConnectionTimingInfo:null}}function bQ(){return{referrerPolicy:"strict-origin-when-cross-origin"}}function ty(e){return{referrerPolicy:e.referrerPolicy}}function ry(e){let A=e.referrerPolicy;jA(A);let t=null;if(e.referrer==="client"){let o=wQ();if(!o||o.origin==="null")return"no-referrer";t=new URL(o)}else e.referrer instanceof URL&&(t=e.referrer);let r=vo(t),n=vo(t,!0);r.toString().length>4096&&(r=n);let s=is(e,r),i=Yr(r)&&!Yr(e.url);switch(A){case"origin":return n??vo(t,!0);case"unsafe-url":return r;case"same-origin":return s?n:"no-referrer";case"origin-when-cross-origin":return s?r:n;case"strict-origin-when-cross-origin":{let o=Gr(e);return is(r,o)?r:Yr(r)&&!Yr(o)?"no-referrer":n}default:return i?"no-referrer":n}}function vo(e,A){return jA(e instanceof URL),e=new URL(e),e.protocol==="file:"||e.protocol==="about:"||e.protocol==="blank:"?"no-referrer":(e.username="",e.password="",e.hash="",A&&(e.pathname="",e.search=""),e)}function Yr(e){if(!(e instanceof URL))return!1;if(e.href==="about:blank"||e.href==="about:srcdoc"||e.protocol==="data:"||e.protocol==="file:")return!0;return A(e.origin);function A(t){if(t==null||t==="null")return!1;let r=new URL(t);return!!(r.protocol==="https:"||r.protocol==="wss:"||/^127(?:\.[0-9]+){0,2}\.[0-9]+$|^\[(?:0*:)*?:?0*1\]$/.test(r.hostname)||r.hostname==="localhost"||r.hostname.includes("localhost.")||r.hostname.endsWith(".localhost"))}}function ny(e,A){if(ss===void 0)return!0;let t=FQ(A);if(t==="no metadata"||t.length===0)return!0;let r=iy(t),n=oy(t,r);for(let s of n){let i=s.algo,o=s.hash,a=ss.createHash(i).update(e).digest("base64");if(a[a.length-1]==="="&&(a[a.length-2]==="="?a=a.slice(0,-2):a=a.slice(0,-1)),ay(a,o))return!0}return!1}var sy=/(?<algo>sha256|sha384|sha512)-((?<hash>[A-Za-z0-9+/]+|[A-Za-z0-9_-]+)={0,2}(?:\s|$)( +[!-~]*)?)?/i;function FQ(e){let A=[],t=!0;for(let r of e.split(" ")){t=!1;let n=sy.exec(r);if(n===null||n.groups===void 0||n.groups.algo===void 0)continue;let s=n.groups.algo.toLowerCase();yQ.includes(s)&&A.push(n.groups)}return t===!0?"no metadata":A}function iy(e){let A=e[0].algo;if(A[3]==="5")return A;for(let t=1;t<e.length;++t){let r=e[t];if(r.algo[3]==="5"){A="sha512";break}else{if(A[3]==="3")continue;r.algo[3]==="3"&&(A="sha384")}}return A}function oy(e,A){if(e.length===1)return e;let t=0;for(let r=0;r<e.length;++r)e[r].algo===A&&(e[t++]=e[r]);return e.length=t,e}function ay(e,A){if(e.length!==A.length)return!1;for(let t=0;t<e.length;++t)if(e[t]!==A[t]){if(e[t]==="+"&&A[t]==="-"||e[t]==="/"&&A[t]==="_")continue;return!1}return!0}function cy(e){}function is(e,A){return e.origin===A.origin&&e.origin==="null"||e.protocol===A.protocol&&e.hostname===A.hostname&&e.port===A.port}function gy(){let e,A;return{promise:new Promise((r,n)=>{e=r,A=n}),resolve:e,reject:A}}function ly(e){return e.controller.state==="aborted"}function Qy(e){return e.controller.state==="aborted"||e.controller.state==="terminated"}function Ey(e){return Jp[e.toLowerCase()]??e}function By(e){let A=JSON.stringify(e);if(A===void 0)throw new TypeError("Value is not JSON serializable");return jA(typeof A=="string"),A}var uy=Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));function RQ(e,A,t=0,r=1){class n{#e;#A;#t;constructor(i,o){this.#e=i,this.#A=o,this.#t=0}next(){if(typeof this!="object"||this===null||!(#e in this))throw new TypeError(`'next' called on an object that does not implement interface ${e} Iterator.`);let i=this.#t,o=this.#e[A],a=o.length;if(i>=a)return{value:void 0,done:!0};let{[t]:c,[r]:g}=o[i];this.#t=i+1;let l;switch(this.#A){case"key":l=c;break;case"value":l=g;break;case"key+value":l=[c,g];break}return{value:l,done:!1}}}return delete n.prototype.constructor,Object.setPrototypeOf(n.prototype,uy),Object.defineProperties(n.prototype,{[Symbol.toStringTag]:{writable:!1,enumerable:!1,configurable:!0,value:`${e} Iterator`},next:{writable:!0,enumerable:!0,configurable:!0}}),function(s,i){return new n(s,i)}}function Iy(e,A,t,r=0,n=1){let s=RQ(e,t,r,n),i={keys:{writable:!0,enumerable:!0,configurable:!0,value:function(){return Tr.brandCheck(this,A),s(this,"key")}},values:{writable:!0,enumerable:!0,configurable:!0,value:function(){return Tr.brandCheck(this,A),s(this,"value")}},entries:{writable:!0,enumerable:!0,configurable:!0,value:function(){return Tr.brandCheck(this,A),s(this,"key+value")}},forEach:{writable:!0,enumerable:!0,configurable:!0,value:function(a,c=globalThis){if(Tr.brandCheck(this,A),Tr.argumentLengthCheck(arguments,1,`${e}.forEach`),typeof a!="function")throw new TypeError(`Failed to execute 'forEach' on '${e}': parameter 1 is not of type 'Function'.`);for(let{0:g,1:l}of s(this,"key+value"))a.call(c,l,g,this)}}};return Object.defineProperties(A.prototype,{...i,[Symbol.iterator]:{writable:!0,enumerable:!1,configurable:!0,value:i.entries.value}})}async function hy(e,A,t){let r=A,n=t,s;try{s=e.stream.getReader()}catch(i){n(i);return}try{r(await NQ(s))}catch(i){n(i)}}function Cy(e){return e instanceof ReadableStream||e[Symbol.toStringTag]==="ReadableStream"&&typeof e.tee=="function"}function dy(e){try{e.close(),e.byobRequest?.respond(0)}catch(A){if(!A.message.includes("Controller is already closed")&&!A.message.includes("ReadableStream is already closed"))throw A}}var fy=/[^\x00-\xFF]/;function ns(e){return jA(!fy.test(e)),e}async function NQ(e){let A=[],t=0;for(;;){let{done:r,value:n}=await e.read();if(r)return Buffer.concat(A,t);if(!Hp(n))throw new TypeError("Received non-Uint8Array chunk");A.push(n),t+=n.length}}function wy(e){jA("protocol"in e);let A=e.protocol;return A==="about:"||A==="blob:"||A==="data:"}function Vo(e){return typeof e=="string"&&e[5]===":"&&e[0]==="h"&&e[1]==="t"&&e[2]==="t"&&e[3]==="p"&&e[4]==="s"||e.protocol==="https:"}function SQ(e){jA("protocol"in e);let A=e.protocol;return A==="http:"||A==="https:"}function py(e,A){let t=e;if(!t.startsWith("bytes"))return"failure";let r={position:5};if(A&&XA(a=>a===" "||a===" ",t,r),t.charCodeAt(r.position)!==61)return"failure";r.position++,A&&XA(a=>a===" "||a===" ",t,r);let n=XA(a=>{let c=a.charCodeAt(0);return c>=48&&c<=57},t,r),s=n.length?Number(n):null;if(A&&XA(a=>a===" "||a===" ",t,r),t.charCodeAt(r.position)!==45)return"failure";r.position++,A&&XA(a=>a===" "||a===" ",t,r);let i=XA(a=>{let c=a.charCodeAt(0);return c>=48&&c<=57},t,r),o=i.length?Number(i):null;return r.position<t.length||o===null&&s===null||s>o?"failure":{rangeStartValue:s,rangeEndValue:o}}function yy(e,A,t){let r="bytes ";return r+=ns(`${e}`),r+="-",r+=ns(`${A}`),r+="/",r+=ns(`${t}`),r}var qo=class extends Rp{#e;constructor(A){super(),this.#e=A}_transform(A,t,r){if(!this._inflateStream){if(A.length===0){r();return}this._inflateStream=(A[0]&15)===8?fQ.createInflate(this.#e):fQ.createInflateRaw(this.#e),this._inflateStream.on("data",this.push.bind(this)),this._inflateStream.on("end",()=>this.push(null)),this._inflateStream.on("error",n=>this.destroy(n))}this._inflateStream.write(A,t,r)}_final(A){this._inflateStream&&(this._inflateStream.end(),this._inflateStream=null),A()}};function my(e){return new qo(e)}function Dy(e){let A=null,t=null,r=null,n=MQ("content-type",e);if(n===null)return"failure";for(let s of n){let i=xp(s);i==="failure"||i.essence==="*/*"||(r=i,r.essence!==t?(A=null,r.parameters.has("charset")&&(A=r.parameters.get("charset")),t=r.essence):!r.parameters.has("charset")&&A!==null&&r.parameters.set("charset",A))}return r??"failure"}function ky(e){let A=e,t={position:0},r=[],n="";for(;t.position<A.length;){if(n+=XA(s=>s!=='"'&&s!==",",A,t),t.position<A.length)if(A.charCodeAt(t.position)===34){if(n+=Up(A,t),t.position<A.length)continue}else jA(A.charCodeAt(t.position)===44),t.position++;n=Lp(n,!0,!0,s=>s===9||s===32),r.push(n),n=""}return r}function MQ(e,A){let t=A.get(e,!0);return t===null?null:ky(t)}var by=new TextDecoder;function Fy(e){return e.length===0?"":(e[0]===239&&e[1]===187&&e[2]===191&&(e=e.subarray(3)),by.decode(e))}var Wo=class{get baseUrl(){return wQ()}get origin(){return this.baseUrl?.origin}policyContainer=bQ()},Po=class{settingsObject=new Wo},Ry=new Po;UQ.exports={isAborted:ly,isCancelled:Qy,isValidEncodedURL:DQ,createDeferredPromise:gy,ReadableStreamFrom:Gp,tryUpgradeRequestToAPotentiallyTrustworthyURL:cy,clampAndCoarsenConnectionTimingInfo:$p,coarsenedSharedCurrentTime:ey,determineRequestsReferrer:ry,makePolicyContainer:bQ,clonePolicyContainer:ty,appendFetchMetadata:Xp,appendRequestOriginHeader:jp,TAOCheck:Kp,corsCheck:_p,crossOriginResourcePolicyCheck:Zp,createOpaqueTimingInfo:Ay,setRequestReferrerPolicyOnRedirect:zp,isValidHTTPToken:pQ,requestBadPort:qp,requestCurrentURL:Gr,responseURL:mQ,responseLocationURL:vp,isBlobLike:Yp,isURLPotentiallyTrustworthy:Yr,isValidReasonPhrase:Pp,sameOrigin:is,normalizeMethod:Ey,serializeJavascriptValueToJSONString:By,iteratorMixin:Iy,createIterator:RQ,isValidHeaderName:Op,isValidHeaderValue:kQ,isErrorLike:Wp,fullyReadBody:hy,bytesMatch:ny,isReadableStreamLike:Cy,readableStreamClose:dy,isomorphicEncode:ns,urlIsLocal:wy,urlHasHttpsScheme:Vo,urlIsHttpHttpsScheme:SQ,readAllBytes:NQ,simpleRangeHeaderValue:py,buildContentRange:yy,parseMetadata:FQ,createInflate:my,extractMimeType:Dy,getDecodeSplit:MQ,utf8DecodeBytes:Fy,environmentSettingsObject:Ry}});var RA=f((VL,LQ)=>{"use strict";LQ.exports={kUrl:Symbol("url"),kHeaders:Symbol("headers"),kSignal:Symbol("signal"),kState:Symbol("state"),kDispatcher:Symbol("dispatcher")}});var zo=f((qL,xQ)=>{"use strict";var{Blob:Ny,File:Sy}=d("node:buffer"),{kState:BA}=RA(),{webidl:$e}=oe(),Oo=class e{constructor(A,t,r={}){let n=t,s=r.type,i=r.lastModified??Date.now();this[BA]={blobLike:A,name:n,type:s,lastModified:i}}stream(...A){return $e.brandCheck(this,e),this[BA].blobLike.stream(...A)}arrayBuffer(...A){return $e.brandCheck(this,e),this[BA].blobLike.arrayBuffer(...A)}slice(...A){return $e.brandCheck(this,e),this[BA].blobLike.slice(...A)}text(...A){return $e.brandCheck(this,e),this[BA].blobLike.text(...A)}get size(){return $e.brandCheck(this,e),this[BA].blobLike.size}get type(){return $e.brandCheck(this,e),this[BA].blobLike.type}get name(){return $e.brandCheck(this,e),this[BA].name}get lastModified(){return $e.brandCheck(this,e),this[BA].lastModified}get[Symbol.toStringTag](){return"File"}};$e.converters.Blob=$e.interfaceConverter(Ny);function My(e){return e instanceof Sy||e&&(typeof e.stream=="function"||typeof e.arrayBuffer=="function")&&e[Symbol.toStringTag]==="File"}xQ.exports={FileLike:Oo,isFileLike:My}});var Hr=f((WL,HQ)=>{"use strict";var{isBlobLike:os,iteratorMixin:Uy}=pe(),{kState:le}=RA(),{kEnumerableProperty:Gt}=L(),{FileLike:TQ,isFileLike:Ly}=zo(),{webidl:P}=oe(),{File:JQ}=d("node:buffer"),YQ=d("node:util"),GQ=globalThis.File??JQ,Jr=class e{constructor(A){if(P.util.markAsUncloneable(this),A!==void 0)throw P.errors.conversionFailed({prefix:"FormData constructor",argument:"Argument 1",types:["undefined"]});this[le]=[]}append(A,t,r=void 0){P.brandCheck(this,e);let n="FormData.append";if(P.argumentLengthCheck(arguments,2,n),arguments.length===3&&!os(t))throw new TypeError("Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'");A=P.converters.USVString(A,n,"name"),t=os(t)?P.converters.Blob(t,n,"value",{strict:!1}):P.converters.USVString(t,n,"value"),r=arguments.length===3?P.converters.USVString(r,n,"filename"):void 0;let s=Zo(A,t,r);this[le].push(s)}delete(A){P.brandCheck(this,e);let t="FormData.delete";P.argumentLengthCheck(arguments,1,t),A=P.converters.USVString(A,t,"name"),this[le]=this[le].filter(r=>r.name!==A)}get(A){P.brandCheck(this,e);let t="FormData.get";P.argumentLengthCheck(arguments,1,t),A=P.converters.USVString(A,t,"name");let r=this[le].findIndex(n=>n.name===A);return r===-1?null:this[le][r].value}getAll(A){P.brandCheck(this,e);let t="FormData.getAll";return P.argumentLengthCheck(arguments,1,t),A=P.converters.USVString(A,t,"name"),this[le].filter(r=>r.name===A).map(r=>r.value)}has(A){P.brandCheck(this,e);let t="FormData.has";return P.argumentLengthCheck(arguments,1,t),A=P.converters.USVString(A,t,"name"),this[le].findIndex(r=>r.name===A)!==-1}set(A,t,r=void 0){P.brandCheck(this,e);let n="FormData.set";if(P.argumentLengthCheck(arguments,2,n),arguments.length===3&&!os(t))throw new TypeError("Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'");A=P.converters.USVString(A,n,"name"),t=os(t)?P.converters.Blob(t,n,"name",{strict:!1}):P.converters.USVString(t,n,"name"),r=arguments.length===3?P.converters.USVString(r,n,"name"):void 0;let s=Zo(A,t,r),i=this[le].findIndex(o=>o.name===A);i!==-1?this[le]=[...this[le].slice(0,i),s,...this[le].slice(i+1).filter(o=>o.name!==A)]:this[le].push(s)}[YQ.inspect.custom](A,t){let r=this[le].reduce((s,i)=>(s[i.name]?Array.isArray(s[i.name])?s[i.name].push(i.value):s[i.name]=[s[i.name],i.value]:s[i.name]=i.value,s),{__proto__:null});t.depth??=A,t.colors??=!0;let n=YQ.formatWithOptions(t,r);return`FormData ${n.slice(n.indexOf("]")+2)}`}};Uy("FormData",Jr,le,"name","value");Object.defineProperties(Jr.prototype,{append:Gt,delete:Gt,get:Gt,getAll:Gt,has:Gt,set:Gt,[Symbol.toStringTag]:{value:"FormData",configurable:!0}});function Zo(e,A,t){if(typeof A!="string"){if(Ly(A)||(A=A instanceof Blob?new GQ([A],"blob",{type:A.type}):new TQ(A,"blob",{type:A.type})),t!==void 0){let r={type:A.type,lastModified:A.lastModified};A=A instanceof JQ?new GQ([A],t,r):new TQ(A,t,r)}}return{name:e,value:A}}HQ.exports={FormData:Jr,makeEntry:Zo}});var OQ=f((PL,PQ)=>{"use strict";var{isUSVString:vQ,bufferToLowerCasedHeaderName:xy}=L(),{utf8DecodeBytes:Ty}=pe(),{HTTP_TOKEN_CODEPOINTS:Yy,isomorphicDecode:VQ}=ue(),{isFileLike:Gy}=zo(),{makeEntry:Jy}=Hr(),as=d("node:assert"),{File:Hy}=d("node:buffer"),vy=globalThis.File??Hy,Vy=Buffer.from('form-data; name="'),qQ=Buffer.from("; filename"),qy=Buffer.from("--"),Wy=Buffer.from(`--\r
3
- `);function Py(e){for(let A=0;A<e.length;++A)if((e.charCodeAt(A)&-128)!==0)return!1;return!0}function Oy(e){let A=e.length;if(A<27||A>70)return!1;for(let t=0;t<A;++t){let r=e.charCodeAt(t);if(!(r>=48&&r<=57||r>=65&&r<=90||r>=97&&r<=122||r===39||r===45||r===95))return!1}return!0}function zy(e,A){as(A!=="failure"&&A.essence==="multipart/form-data");let t=A.parameters.get("boundary");if(t===void 0)return"failure";let r=Buffer.from(`--${t}`,"utf8"),n=[],s={position:0};for(;e[s.position]===13&&e[s.position+1]===10;)s.position+=2;let i=e.length;for(;e[i-1]===10&&e[i-2]===13;)i-=2;for(i!==e.length&&(e=e.subarray(0,i));;){if(e.subarray(s.position,s.position+r.length).equals(r))s.position+=r.length;else return"failure";if(s.position===e.length-2&&cs(e,qy,s)||s.position===e.length-4&&cs(e,Wy,s))return n;if(e[s.position]!==13||e[s.position+1]!==10)return"failure";s.position+=2;let o=Zy(e,s);if(o==="failure")return"failure";let{name:a,filename:c,contentType:g,encoding:l}=o;s.position+=2;let Q;{let E=e.indexOf(r.subarray(2),s.position);if(E===-1)return"failure";Q=e.subarray(s.position,E-4),s.position+=Q.length,l==="base64"&&(Q=Buffer.from(Q.toString(),"base64"))}if(e[s.position]!==13||e[s.position+1]!==10)return"failure";s.position+=2;let B;c!==null?(g??="text/plain",Py(g)||(g=""),B=new vy([Q],c,{type:g})):B=Ty(Buffer.from(Q)),as(vQ(a)),as(typeof B=="string"&&vQ(B)||Gy(B)),n.push(Jy(a,B,c))}}function Zy(e,A){let t=null,r=null,n=null,s=null;for(;;){if(e[A.position]===13&&e[A.position+1]===10)return t===null?"failure":{name:t,filename:r,contentType:n,encoding:s};let i=Jt(o=>o!==10&&o!==13&&o!==58,e,A);if(i=_o(i,!0,!0,o=>o===9||o===32),!Yy.test(i.toString())||e[A.position]!==58)return"failure";switch(A.position++,Jt(o=>o===32||o===9,e,A),xy(i)){case"content-disposition":{if(t=r=null,!cs(e,Vy,A)||(A.position+=17,t=WQ(e,A),t===null))return"failure";if(cs(e,qQ,A)){let o=A.position+qQ.length;if(e[o]===42&&(A.position+=1,o+=1),e[o]!==61||e[o+1]!==34||(A.position+=12,r=WQ(e,A),r===null))return"failure"}break}case"content-type":{let o=Jt(a=>a!==10&&a!==13,e,A);o=_o(o,!1,!0,a=>a===9||a===32),n=VQ(o);break}case"content-transfer-encoding":{let o=Jt(a=>a!==10&&a!==13,e,A);o=_o(o,!1,!0,a=>a===9||a===32),s=VQ(o);break}default:Jt(o=>o!==10&&o!==13,e,A)}if(e[A.position]!==13&&e[A.position+1]!==10)return"failure";A.position+=2}}function WQ(e,A){as(e[A.position-1]===34);let t=Jt(r=>r!==10&&r!==13&&r!==34,e,A);return e[A.position]!==34?null:(A.position++,t=new TextDecoder().decode(t).replace(/%0A/ig,`
4
- `).replace(/%0D/ig,"\r").replace(/%22/g,'"'),t)}function Jt(e,A,t){let r=t.position;for(;r<A.length&&e(A[r]);)++r;return A.subarray(t.position,t.position=r)}function _o(e,A,t,r){let n=0,s=e.length-1;if(A)for(;n<e.length&&r(e[n]);)n++;if(t)for(;s>0&&r(e[s]);)s--;return n===0&&s===e.length-1?e:e.subarray(n,s+1)}function cs(e,A,t){if(e.length<A.length)return!1;for(let r=0;r<A.length;r++)if(A[r]!==e[t.position+r])return!1;return!0}PQ.exports={multipartFormDataParser:zy,validateBoundary:Oy}});var Vt=f((OL,tE)=>{"use strict";var vr=L(),{ReadableStreamFrom:_y,isBlobLike:zQ,isReadableStreamLike:Ky,readableStreamClose:Xy,createDeferredPromise:jy,fullyReadBody:$y,extractMimeType:e0,utf8DecodeBytes:KQ}=pe(),{FormData:ZQ}=Hr(),{kState:vt}=RA(),{webidl:A0}=oe(),{Blob:t0}=d("node:buffer"),Ko=d("node:assert"),{isErrored:XQ,isDisturbed:r0}=d("node:stream"),{isArrayBuffer:n0}=d("node:util/types"),{serializeAMimeType:s0}=ue(),{multipartFormDataParser:i0}=OQ(),Xo;try{let e=d("node:crypto");Xo=A=>e.randomInt(0,A)}catch{Xo=e=>Math.floor(Math.random(e))}var gs=new TextEncoder;function o0(){}var jQ=globalThis.FinalizationRegistry&&process.version.indexOf("v18")!==0,$Q;jQ&&($Q=new FinalizationRegistry(e=>{let A=e.deref();A&&!A.locked&&!r0(A)&&!XQ(A)&&A.cancel("Response object has been garbage collected").catch(o0)}));function eE(e,A=!1){let t=null;e instanceof ReadableStream?t=e:zQ(e)?t=e.stream():t=new ReadableStream({async pull(a){let c=typeof n=="string"?gs.encode(n):n;c.byteLength&&a.enqueue(c),queueMicrotask(()=>Xy(a))},start(){},type:"bytes"}),Ko(Ky(t));let r=null,n=null,s=null,i=null;if(typeof e=="string")n=e,i="text/plain;charset=UTF-8";else if(e instanceof URLSearchParams)n=e.toString(),i="application/x-www-form-urlencoded;charset=UTF-8";else if(n0(e))n=new Uint8Array(e.slice());else if(ArrayBuffer.isView(e))n=new Uint8Array(e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength));else if(vr.isFormDataLike(e)){let a=`----formdata-undici-0${`${Xo(1e11)}`.padStart(11,"0")}`,c=`--${a}\r
5
- Content-Disposition: form-data`;let g=h=>h.replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),l=h=>h.replace(/\r?\n|\r/g,`\r
6
- `),Q=[],B=new Uint8Array([13,10]);s=0;let E=!1;for(let[h,u]of e)if(typeof u=="string"){let C=gs.encode(c+`; name="${g(l(h))}"\r
7
- \r
8
- ${l(u)}\r
9
- `);Q.push(C),s+=C.byteLength}else{let C=gs.encode(`${c}; name="${g(l(h))}"`+(u.name?`; filename="${g(u.name)}"`:"")+`\r
10
- Content-Type: ${u.type||"application/octet-stream"}\r
11
- \r
12
- `);Q.push(C,u,B),typeof u.size=="number"?s+=C.byteLength+u.size+B.byteLength:E=!0}let I=gs.encode(`--${a}--\r
13
- `);Q.push(I),s+=I.byteLength,E&&(s=null),n=e,r=async function*(){for(let h of Q)h.stream?yield*h.stream():yield h},i=`multipart/form-data; boundary=${a}`}else if(zQ(e))n=e,s=e.size,e.type&&(i=e.type);else if(typeof e[Symbol.asyncIterator]=="function"){if(A)throw new TypeError("keepalive");if(vr.isDisturbed(e)||e.locked)throw new TypeError("Response body object should not be disturbed or locked");t=e instanceof ReadableStream?e:_y(e)}if((typeof n=="string"||vr.isBuffer(n))&&(s=Buffer.byteLength(n)),r!=null){let a;t=new ReadableStream({async start(){a=r(e)[Symbol.asyncIterator]()},async pull(c){let{value:g,done:l}=await a.next();if(l)queueMicrotask(()=>{c.close(),c.byobRequest?.respond(0)});else if(!XQ(t)){let Q=new Uint8Array(g);Q.byteLength&&c.enqueue(Q)}return c.desiredSize>0},async cancel(c){await a.return()},type:"bytes"})}return[{stream:t,source:n,length:s},i]}function a0(e,A=!1){return e instanceof ReadableStream&&(Ko(!vr.isDisturbed(e),"The body has already been consumed."),Ko(!e.locked,"The stream is locked.")),eE(e,A)}function c0(e,A){let[t,r]=A.stream.tee();return A.stream=t,{stream:r,length:A.length,source:A.source}}function g0(e){if(e.aborted)throw new DOMException("The operation was aborted.","AbortError")}function l0(e){return{blob(){return Ht(this,t=>{let r=_Q(this);return r===null?r="":r&&(r=s0(r)),new t0([t],{type:r})},e)},arrayBuffer(){return Ht(this,t=>new Uint8Array(t).buffer,e)},text(){return Ht(this,KQ,e)},json(){return Ht(this,E0,e)},formData(){return Ht(this,t=>{let r=_Q(this);if(r!==null)switch(r.essence){case"multipart/form-data":{let n=i0(t,r);if(n==="failure")throw new TypeError("Failed to parse body as FormData.");let s=new ZQ;return s[vt]=n,s}case"application/x-www-form-urlencoded":{let n=new URLSearchParams(t.toString()),s=new ZQ;for(let[i,o]of n)s.append(i,o);return s}}throw new TypeError('Content-Type was not one of "multipart/form-data" or "application/x-www-form-urlencoded".')},e)},bytes(){return Ht(this,t=>new Uint8Array(t),e)}}}function Q0(e){Object.assign(e.prototype,l0(e))}async function Ht(e,A,t){if(A0.brandCheck(e,t),AE(e))throw new TypeError("Body is unusable: Body has already been read");g0(e[vt]);let r=jy(),n=i=>r.reject(i),s=i=>{try{r.resolve(A(i))}catch(o){n(o)}};return e[vt].body==null?(s(Buffer.allocUnsafe(0)),r.promise):(await $y(e[vt].body,s,n),r.promise)}function AE(e){let A=e[vt].body;return A!=null&&(A.stream.locked||vr.isDisturbed(A.stream))}function E0(e){return JSON.parse(KQ(e))}function _Q(e){let A=e[vt].headersList,t=e0(A);return t==="failure"?null:t}tE.exports={extractBody:eE,safelyExtractBody:a0,cloneBody:c0,mixinBody:Q0,streamRegistry:$Q,hasFinalizationRegistry:jQ,bodyUnusable:AE}});var CE=f((zL,hE)=>{"use strict";var b=d("node:assert"),R=L(),{channels:rE}=Rt(),jo=Uo(),{RequestContentLengthMismatchError:$A,ResponseContentLengthMismatchError:nE,RequestAbortedError:QE,InvalidArgumentError:B0,HeadersTimeoutError:u0,HeadersOverflowError:I0,SocketError:qt,InformationalError:Wt,BodyTimeoutError:h0,HTTPParserError:C0,ResponseExceededMaxSizeError:d0}=J(),{kUrl:EE,kReset:Ie,kClient:Bs,kParser:O,kBlocking:Wr,kRunning:te,kPending:BE,kSize:sE,kWriting:NA,kQueue:He,kNoRef:Vr,kKeepAliveDefaultTimeout:f0,kHostHeader:w0,kPendingIdx:p0,kRunningIdx:Le,kError:Qe,kPipelining:us,kSocket:At,kKeepAliveTimeoutValue:hs,kMaxHeadersSize:$o,kKeepAliveMaxTimeout:y0,kKeepAliveTimeoutThreshold:m0,kHeadersTimeout:D0,kBodyTimeout:k0,kStrictContentLength:ta,kMaxRequests:iE,kCounter:b0,kMaxResponseSize:F0,kOnError:oE,kResume:uA,kHTTPContext:uE}=_(),ye=$l(),aE=Buffer.alloc(0),ls=Buffer[Symbol.species],Qs=R.addListener,R0=R.removeAllListeners,tt=Symbol("kIdleSocketValidation"),et=Symbol("kIdleSocketValidationTimeout"),ia=Symbol("kSocketUsed"),ea;async function N0(){let e=process.env.JEST_WORKER_ID?To():void 0,A;try{A=await WebAssembly.compile(tQ())}catch{A=await WebAssembly.compile(e||To())}return await WebAssembly.instantiate(A,{env:{wasm_on_url:(t,r,n)=>0,wasm_on_status:(t,r,n)=>{b($.ptr===t);let s=r-AA+eA.byteOffset;return $.onStatus(new ls(eA.buffer,s,n))||0},wasm_on_message_begin:t=>(b($.ptr===t),$.onMessageBegin()||0),wasm_on_header_field:(t,r,n)=>{b($.ptr===t);let s=r-AA+eA.byteOffset;return $.onHeaderField(new ls(eA.buffer,s,n))||0},wasm_on_header_value:(t,r,n)=>{b($.ptr===t);let s=r-AA+eA.byteOffset;return $.onHeaderValue(new ls(eA.buffer,s,n))||0},wasm_on_headers_complete:(t,r,n,s)=>(b($.ptr===t),$.onHeadersComplete(r,!!n,!!s)||0),wasm_on_body:(t,r,n)=>{b($.ptr===t);let s=r-AA+eA.byteOffset;return $.onBody(new ls(eA.buffer,s,n))||0},wasm_on_message_complete:t=>(b($.ptr===t),$.onMessageComplete()||0)}})}var Aa=null,ra=N0();ra.catch();var $=null,eA=null,Es=0,AA=null,S0=0,qr=1,Pt=2|qr,Is=4|qr,na=8|S0,sa=class{constructor(A,t,{exports:r}){b(Number.isFinite(A[$o])&&A[$o]>0),this.llhttp=r,this.ptr=this.llhttp.llhttp_alloc(ye.TYPE.RESPONSE),this.client=A,this.socket=t,this.timeout=null,this.timeoutValue=null,this.timeoutType=null,this.statusCode=null,this.statusText="",this.upgrade=!1,this.headers=[],this.headersSize=0,this.headersMaxSize=A[$o],this.shouldKeepAlive=!1,this.paused=!1,this.resume=this.resume.bind(this),this.bytesRead=0,this.keepAlive="",this.contentLength="",this.connection="",this.maxResponseSize=A[F0]}setTimeout(A,t){A!==this.timeoutValue||t&qr^this.timeoutType&qr?(this.timeout&&(jo.clearTimeout(this.timeout),this.timeout=null),A&&(t&qr?this.timeout=jo.setFastTimeout(cE,A,new WeakRef(this)):(this.timeout=setTimeout(cE,A,new WeakRef(this)),this.timeout.unref())),this.timeoutValue=A):this.timeout&&this.timeout.refresh&&this.timeout.refresh(),this.timeoutType=t}resume(){this.socket.destroyed||!this.paused||(b(this.ptr!=null),b($==null),this.llhttp.llhttp_resume(this.ptr),b(this.timeoutType===Is),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),this.paused=!1,this.execute(this.socket.read()||aE),this.readMore())}readMore(){for(;!this.paused&&this.ptr;){let A=this.socket.read();if(A===null)break;this.execute(A)}}execute(A){b(this.ptr!=null),b($==null),b(!this.paused);let{socket:t,llhttp:r}=this;A.length>Es&&(AA&&r.free(AA),Es=Math.ceil(A.length/4096)*4096,AA=r.malloc(Es)),new Uint8Array(r.memory.buffer,AA,Es).set(A);try{let n;try{eA=A,$=this,n=r.llhttp_execute(this.ptr,AA,A.length)}catch(i){throw i}finally{$=null,eA=null}let s=r.llhttp_get_error_pos(this.ptr)-AA;if(n!==ye.ERROR.OK){let i=A.subarray(s);if(n===ye.ERROR.PAUSED_UPGRADE)this.onUpgrade(i);else if(n===ye.ERROR.PAUSED)this.paused=!0,t.unshift(i);else throw this.createError(n,i)}}catch(n){R.destroy(t,n)}}finish(){b($===null),b(this.ptr!=null),b(!this.paused);let{llhttp:A}=this,t;try{$=this,t=A.llhttp_finish(this.ptr)}finally{$=null}return t===ye.ERROR.OK?null:t===ye.ERROR.PAUSED||t===ye.ERROR.PAUSED_UPGRADE?(this.paused=!0,null):this.createError(t,aE)}createError(A,t){let{llhttp:r,contentLength:n,bytesRead:s}=this;if(n&&s!==parseInt(n,10))return new nE;let i=r.llhttp_get_error_reason(this.ptr),o="";if(i){let a=new Uint8Array(r.memory.buffer,i).indexOf(0);o="Response does not match the HTTP/1.1 protocol ("+Buffer.from(r.memory.buffer,i,a).toString()+")"}return new C0(o,ye.ERROR[A],t)}destroy(){b(this.ptr!=null),b($==null),this.llhttp.llhttp_free(this.ptr),this.ptr=null,this.timeout&&jo.clearTimeout(this.timeout),this.timeout=null,this.timeoutValue=null,this.timeoutType=null,this.paused=!1}onStatus(A){this.statusText=A.toString()}onMessageBegin(){let{socket:A,client:t}=this;if(A.destroyed)return-1;if(t[te]===0)return R.destroy(A,new qt("bad response",R.getSocketInfo(A))),-1;let r=t[He][t[Le]];if(!r)return-1;r.onResponseStarted()}onHeaderField(A){let t=this.headers.length;(t&1)===0?this.headers.push(A):this.headers[t-1]=Buffer.concat([this.headers[t-1],A]),this.trackHeader(A.length)}onHeaderValue(A){let t=this.headers.length;(t&1)===1?(this.headers.push(A),t+=1):this.headers[t-1]=Buffer.concat([this.headers[t-1],A]);let r=this.headers[t-2];if(r.length===10){let n=R.bufferToLowerCasedHeaderName(r);n==="keep-alive"?this.keepAlive+=A.toString():n==="connection"&&(this.connection+=A.toString())}else r.length===14&&R.bufferToLowerCasedHeaderName(r)==="content-length"&&(this.contentLength+=A.toString());this.trackHeader(A.length)}trackHeader(A){this.headersSize+=A,this.headersSize>=this.headersMaxSize&&R.destroy(this.socket,new I0)}onUpgrade(A){let{upgrade:t,client:r,socket:n,headers:s,statusCode:i}=this;b(t),b(r[At]===n),b(!n.destroyed),b(!this.paused),b((s.length&1)===0);let o=r[He][r[Le]];b(o),b(o.upgrade||o.method==="CONNECT"),this.statusCode=null,this.statusText="",this.shouldKeepAlive=null,this.headers=[],this.headersSize=0,n.unshift(A),n[O].destroy(),n[O]=null,n[Bs]=null,n[Qe]=null,R0(n),r[At]=null,r[uE]=null,r[He][r[Le]++]=null,r.emit("disconnect",r[EE],[r],new Wt("upgrade"));try{o.onUpgrade(i,s,n)}catch(a){R.destroy(n,a)}r[uA]()}onHeadersComplete(A,t,r){let{client:n,socket:s,headers:i,statusText:o}=this;if(s.destroyed)return-1;if(n[te]===0)return R.destroy(s,new qt("bad response",R.getSocketInfo(s))),-1;let a=n[He][n[Le]];if(!a)return-1;if(b(!this.upgrade),b(this.statusCode<200),A===100)return R.destroy(s,new qt("bad response",R.getSocketInfo(s))),-1;if(t&&!a.upgrade)return R.destroy(s,new qt("bad upgrade",R.getSocketInfo(s))),-1;if(b(this.timeoutType===Pt),this.statusCode=A,this.shouldKeepAlive=r||a.method==="HEAD"&&!s[Ie]&&this.connection.toLowerCase()==="keep-alive",this.statusCode>=200){let g=a.bodyTimeout!=null?a.bodyTimeout:n[k0];this.setTimeout(g,Is)}else this.timeout&&this.timeout.refresh&&this.timeout.refresh();if(a.method==="CONNECT")return b(n[te]===1),this.upgrade=!0,2;if(t)return b(n[te]===1),this.upgrade=!0,2;if(b((this.headers.length&1)===0),this.headers=[],this.headersSize=0,this.shouldKeepAlive&&n[us]){let g=this.keepAlive?R.parseKeepAliveTimeout(this.keepAlive):null;if(g!=null){let l=Math.min(g-n[m0],n[y0]);l<=0?s[Ie]=!0:n[hs]=l}else n[hs]=n[f0]}else s[Ie]=!0;let c=a.onHeaders(A,i,this.resume,o)===!1;return a.aborted?-1:a.method==="HEAD"||A<200?1:(s[Wr]&&(s[Wr]=!1,n[uA]()),c?ye.ERROR.PAUSED:0)}onBody(A){let{client:t,socket:r,statusCode:n,maxResponseSize:s}=this;if(r.destroyed)return-1;let i=t[He][t[Le]];if(b(i),b(this.timeoutType===Is),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),b(n>=200),s>-1&&this.bytesRead+A.length>s)return R.destroy(r,new d0),-1;if(this.bytesRead+=A.length,i.onData(A)===!1)return ye.ERROR.PAUSED}onMessageComplete(){let{client:A,socket:t,statusCode:r,upgrade:n,headers:s,contentLength:i,bytesRead:o,shouldKeepAlive:a}=this;if(t.destroyed&&(!r||a))return-1;if(n)return;b(r>=100),b((this.headers.length&1)===0);let c=A[He][A[Le]];if(b(c),this.statusCode=null,this.statusText="",this.bytesRead=0,this.contentLength="",this.keepAlive="",this.connection="",this.headers=[],this.headersSize=0,!(r<200)){if(c.method!=="HEAD"&&i&&o!==parseInt(i,10))return R.destroy(t,new nE),-1;if(c.onComplete(s),A[He][A[Le]++]=null,t[ia]=!0,t[NA])return b(A[te]===0),R.destroy(t,new Wt("reset")),ye.ERROR.PAUSED;if(a){if(t[Ie]&&A[te]===0)return R.destroy(t,new Wt("reset")),ye.ERROR.PAUSED;A[us]==null||A[us]===1?setImmediate(()=>A[uA]()):A[uA]()}else return R.destroy(t,new Wt("reset")),ye.ERROR.PAUSED}}};function cE(e){let{socket:A,timeoutType:t,client:r,paused:n}=e.deref();t===Pt?(!A[NA]||A.writableNeedDrain||r[te]>1)&&(b(!n,"cannot be paused while waiting for headers"),R.destroy(A,new u0)):t===Is?n||R.destroy(A,new h0):t===na&&(b(r[te]===0&&r[hs]),R.destroy(A,new Wt("socket idle timeout")))}async function M0(e,A){e[At]=A,Aa||(Aa=await ra,ra=null),A[Vr]=!1,A[NA]=!1,A[Ie]=!1,A[Wr]=!1,A[tt]=0,A[et]=null,A[ia]=!1,A[O]=new sa(e,A,Aa),Qs(A,"error",function(r){b(r.code!=="ERR_TLS_CERT_ALTNAME_INVALID");let n=this[O];if(r.code==="ECONNRESET"&&n.statusCode&&!n.shouldKeepAlive){let s=n.finish();s&&(this[Qe]=s,this[Bs][oE](s));return}this[Qe]=r,this[Bs][oE](r)}),Qs(A,"readable",function(){let r=this[O];r&&r.readMore()}),Qs(A,"end",function(){let r=this[O];if(r.statusCode&&!r.shouldKeepAlive){let n=r.finish();n&&R.destroy(this,n);return}R.destroy(this,new qt("other side closed",R.getSocketInfo(this)))}),Qs(A,"close",function(){let r=this[Bs],n=this[O];IE(this),n&&(!this[Qe]&&n.statusCode&&!n.shouldKeepAlive&&(this[Qe]=n.finish()||this[Qe]),this[O].destroy(),this[O]=null);let s=this[Qe]||new qt("closed",R.getSocketInfo(this));if(r[At]=null,r[uE]=null,r.destroyed){b(r[BE]===0);let i=r[He].splice(r[Le]);for(let o=0;o<i.length;o++){let a=i[o];R.errorRequest(r,a,s)}}else if(r[te]>0&&s.code!=="UND_ERR_INFO"){let i=r[He][r[Le]];r[He][r[Le]++]=null,R.errorRequest(r,i,s)}r[p0]=r[Le],b(r[te]===0),r.emit("disconnect",r[EE],[r],s),r[uA]()});let t=!1;return A.on("close",()=>{t=!0}),{version:"h1",defaultPipelining:1,write(...r){return T0(e,...r)},resume(){L0(e)},destroy(r,n){t?queueMicrotask(n):A.destroy(r).on("close",n)},get destroyed(){return A.destroyed},busy(r){return!!(A[NA]||A[Ie]||A[Wr]||A[tt]===1||r&&(e[te]>0&&!r.idempotent||e[te]>0&&(r.upgrade||r.method==="CONNECT")||e[te]>0&&R.bodyLength(r.body)!==0&&(R.isStream(r.body)||R.isAsyncIterable(r.body)||R.isFormDataLike(r.body))))}}}function IE(e){e[et]&&(clearTimeout(e[et]),e[et]=null),e[tt]=0}function U0(e,A){A[tt]=1,A[et]=setTimeout(()=>{A[et]=null,A[tt]=2,e[At]===A&&!A.destroyed&&e[uA]()},0),A[et].unref?.()}function L0(e){let A=e[At];if(A&&!A.destroyed){if(e[sE]===0?!A[Vr]&&A.unref&&(A.unref(),A[Vr]=!0):A[Vr]&&A.ref&&(A.ref(),A[Vr]=!1),e[te]===0&&e[BE]>0&&A[ia]){if(A[tt]===0)return U0(e,A),A[O].readMore(),A.destroyed,void 0;if(A[tt]===1)return A[O].readMore(),A.destroyed,void 0}if(e[te]===0&&(A[O].readMore(),A.destroyed))return;if(e[sE]===0)A[O].timeoutType!==na&&A[O].setTimeout(e[hs],na);else if(e[te]>0&&A[O].statusCode<200&&A[O].timeoutType!==Pt){let t=e[He][e[Le]],r=t.headersTimeout!=null?t.headersTimeout:e[D0];A[O].setTimeout(r,Pt)}}}function x0(e){return e!=="GET"&&e!=="HEAD"&&e!=="OPTIONS"&&e!=="TRACE"&&e!=="CONNECT"}function T0(e,A){let{method:t,path:r,host:n,upgrade:s,blocking:i,reset:o}=A,{body:a,headers:c,contentLength:g}=A,l=t==="PUT"||t==="POST"||t==="PATCH"||t==="QUERY"||t==="PROPFIND"||t==="PROPPATCH";if(R.isFormDataLike(a)){ea||(ea=Vt().extractBody);let[h,u]=ea(a);A.contentType==null&&c.push("content-type",u),a=h.stream,g=h.length}else if(R.isBlobLike(a)&&A.contentType==null){let h=a.type;if(h){let u=`${h}`;if(!R.isValidHeaderValue(u))return R.errorRequest(e,A,new B0("invalid content-type header")),!1;c.push("content-type",u)}}a&&typeof a.read=="function"&&a.read(0);let Q=R.bodyLength(a);if(g=Q??g,g===null&&(g=A.contentLength),g===0&&!l&&(g=null),x0(t)&&g>0&&A.contentLength!==null&&A.contentLength!==g){if(e[ta])return R.errorRequest(e,A,new $A),!1;process.emitWarning(new $A)}let B=e[At];IE(B);let E=h=>{A.aborted||A.completed||(R.errorRequest(e,A,h||new QE),R.destroy(a),R.destroy(B,new Wt("aborted")))};try{A.onConnect(E)}catch(h){R.errorRequest(e,A,h)}if(A.aborted)return!1;t==="HEAD"&&(B[Ie]=!0),(s||t==="CONNECT")&&(B[Ie]=!0),o!=null&&(B[Ie]=o),e[iE]&&B[b0]++>=e[iE]&&(B[Ie]=!0),i&&(B[Wr]=!0);let I=`${t} ${r} HTTP/1.1\r
14
- `;if(typeof n=="string"?I+=`host: ${n}\r
15
- `:I+=e[w0],s?I+=`connection: upgrade\r
16
- upgrade: ${s}\r
17
- `:e[us]&&!B[Ie]?I+=`connection: keep-alive\r
18
- `:I+=`connection: close\r
19
- `,Array.isArray(c))for(let h=0;h<c.length;h+=2){let u=c[h+0],C=c[h+1];if(Array.isArray(C))for(let m=0;m<C.length;m++)I+=`${u}: ${C[m]}\r
20
- `;else I+=`${u}: ${C}\r
21
- `}return rE.sendHeaders.hasSubscribers&&rE.sendHeaders.publish({request:A,headers:I,socket:B}),!a||Q===0?gE(E,null,e,A,B,g,I,l):R.isBuffer(a)?gE(E,a,e,A,B,g,I,l):R.isBlobLike(a)?typeof a.stream=="function"?lE(E,a.stream(),e,A,B,g,I,l):G0(E,a,e,A,B,g,I,l):R.isStream(a)?Y0(E,a,e,A,B,g,I,l):R.isIterable(a)?lE(E,a,e,A,B,g,I,l):b(!1),!0}function Y0(e,A,t,r,n,s,i,o){b(s!==0||t[te]===0,"stream body cannot be pipelined");let a=!1,c=new Cs({abort:e,socket:n,request:r,contentLength:s,client:t,expectsPayload:o,header:i}),g=function(E){if(!a)try{!c.write(E)&&this.pause&&this.pause()}catch(I){R.destroy(this,I)}},l=function(){a||A.resume&&A.resume()},Q=function(){if(queueMicrotask(()=>{A.removeListener("error",B)}),!a){let E=new QE;queueMicrotask(()=>B(E))}},B=function(E){if(!a){if(a=!0,b(n.destroyed||n[NA]&&t[te]<=1),n.off("drain",l).off("error",B),A.removeListener("data",g).removeListener("end",B).removeListener("close",Q),!E)try{c.end()}catch(I){E=I}c.destroy(E),E&&(E.code!=="UND_ERR_INFO"||E.message!=="reset")?R.destroy(A,E):R.destroy(A)}};A.on("data",g).on("end",B).on("error",B).on("close",Q),A.resume&&A.resume(),n.on("drain",l).on("error",B),A.errorEmitted??A.errored?setImmediate(()=>B(A.errored)):(A.endEmitted??A.readableEnded)&&setImmediate(()=>B(null)),(A.closeEmitted??A.closed)&&setImmediate(Q)}function gE(e,A,t,r,n,s,i,o){try{A?R.isBuffer(A)&&(b(s===A.byteLength,"buffer body must have content length"),n.cork(),n.write(`${i}content-length: ${s}\r
22
- \r
23
- `,"latin1"),n.write(A),n.uncork(),r.onBodySent(A),!o&&r.reset!==!1&&(n[Ie]=!0)):s===0?n.write(`${i}content-length: 0\r
24
- \r
25
- `,"latin1"):(b(s===null,"no body must not have content length"),n.write(`${i}\r
26
- `,"latin1")),r.onRequestSent(),t[uA]()}catch(a){e(a)}}async function G0(e,A,t,r,n,s,i,o){b(s===A.size,"blob body must have content length");try{if(s!=null&&s!==A.size)throw new $A;let a=Buffer.from(await A.arrayBuffer());n.cork(),n.write(`${i}content-length: ${s}\r
27
- \r
28
- `,"latin1"),n.write(a),n.uncork(),r.onBodySent(a),r.onRequestSent(),!o&&r.reset!==!1&&(n[Ie]=!0),t[uA]()}catch(a){e(a)}}async function lE(e,A,t,r,n,s,i,o){b(s!==0||t[te]===0,"iterator body cannot be pipelined");let a=null;function c(){if(a){let Q=a;a=null,Q()}}let g=()=>new Promise((Q,B)=>{b(a===null),n[Qe]?B(n[Qe]):a=Q});n.on("close",c).on("drain",c);let l=new Cs({abort:e,socket:n,request:r,contentLength:s,client:t,expectsPayload:o,header:i});try{for await(let Q of A){if(n[Qe])throw n[Qe];l.write(Q)||await g()}l.end()}catch(Q){l.destroy(Q)}finally{n.off("close",c).off("drain",c)}}var Cs=class{constructor({abort:A,socket:t,request:r,contentLength:n,client:s,expectsPayload:i,header:o}){this.socket=t,this.request=r,this.contentLength=n,this.client=s,this.bytesWritten=0,this.expectsPayload=i,this.header=o,this.abort=A,t[NA]=!0}write(A){let{socket:t,request:r,contentLength:n,client:s,bytesWritten:i,expectsPayload:o,header:a}=this;if(t[Qe])throw t[Qe];if(t.destroyed)return!1;let c=Buffer.byteLength(A);if(!c)return!0;if(n!==null&&i+c>n){if(s[ta])throw new $A;process.emitWarning(new $A)}t.cork(),i===0&&(!o&&r.reset!==!1&&(t[Ie]=!0),n===null?t.write(`${a}transfer-encoding: chunked\r
29
- `,"latin1"):t.write(`${a}content-length: ${n}\r
30
- \r
31
- `,"latin1")),n===null&&t.write(`\r
32
- ${c.toString(16)}\r
33
- `,"latin1"),this.bytesWritten+=c;let g=t.write(A);return t.uncork(),r.onBodySent(A),g||t[O].timeout&&t[O].timeoutType===Pt&&t[O].timeout.refresh&&t[O].timeout.refresh(),g}end(){let{socket:A,contentLength:t,client:r,bytesWritten:n,expectsPayload:s,header:i,request:o}=this;if(o.onRequestSent(),A[NA]=!1,A[Qe])throw A[Qe];if(!A.destroyed){if(n===0?s?A.write(`${i}content-length: 0\r
34
- \r
35
- `,"latin1"):A.write(`${i}\r
36
- `,"latin1"):t===null&&A.write(`\r
37
- 0\r
38
- \r
39
- `,"latin1"),t!==null&&n!==t){if(r[ta])throw new $A;process.emitWarning(new $A)}A[O].timeout&&A[O].timeoutType===Pt&&A[O].timeout.refresh&&A[O].timeout.refresh(),r[uA]()}}destroy(A){let{socket:t,client:r,abort:n}=this;t[NA]=!1,A&&(b(r[te]<=1,"pipeline should only contain this request"),n(A))}};hE.exports=M0});var kE=f((ZL,DE)=>{"use strict";var xe=d("node:assert"),{pipeline:J0}=d("node:stream"),x=L(),{RequestContentLengthMismatchError:oa,RequestAbortedError:dE,SocketError:Pr,InformationalError:aa}=J(),{kUrl:ds,kReset:ws,kClient:Ot,kRunning:ps,kPending:H0,kQueue:SA,kPendingIdx:ca,kRunningIdx:ve,kError:qe,kSocket:ie,kStrictContentLength:v0,kOnError:ga,kMaxConcurrentStreams:mE,kHTTP2Session:Ve,kResume:MA,kSize:V0,kHTTPContext:q0}=_(),IA=Symbol("open streams"),fE,wE=!1,fs;try{fs=d("node:http2")}catch{fs={constants:{}}}var{constants:{HTTP2_HEADER_AUTHORITY:W0,HTTP2_HEADER_METHOD:P0,HTTP2_HEADER_PATH:O0,HTTP2_HEADER_SCHEME:z0,HTTP2_HEADER_CONTENT_LENGTH:Z0,HTTP2_HEADER_EXPECT:_0,HTTP2_HEADER_STATUS:K0}}=fs;function X0(e){let A=[];for(let[t,r]of Object.entries(e))if(Array.isArray(r))for(let n of r)A.push(Buffer.from(t),Buffer.from(n));else A.push(Buffer.from(t),Buffer.from(r));return A}async function j0(e,A){e[ie]=A,wE||(wE=!0,process.emitWarning("H2 support is experimental, expect them to change at any time.",{code:"UNDICI-H2"}));let t=fs.connect(e[ds],{createConnection:()=>A,peerMaxConcurrentStreams:e[mE]});t[IA]=0,t[Ot]=e,t[ie]=A,x.addListener(t,"error",em),x.addListener(t,"frameError",Am),x.addListener(t,"end",tm),x.addListener(t,"goaway",rm),x.addListener(t,"close",function(){let{[Ot]:n}=this,{[ie]:s}=n,i=this[ie][qe]||this[qe]||new Pr("closed",x.getSocketInfo(s));if(n[Ve]=null,n.destroyed){xe(n[H0]===0);let o=n[SA].splice(n[ve]);for(let a=0;a<o.length;a++){let c=o[a];x.errorRequest(n,c,i)}}}),t.unref(),e[Ve]=t,A[Ve]=t,x.addListener(A,"error",function(n){xe(n.code!=="ERR_TLS_CERT_ALTNAME_INVALID"),this[qe]=n,this[Ot][ga](n)}),x.addListener(A,"end",function(){x.destroy(this,new Pr("other side closed",x.getSocketInfo(this)))}),x.addListener(A,"close",function(){let n=this[qe]||new Pr("closed",x.getSocketInfo(this));e[ie]=null,this[Ve]!=null&&this[Ve].destroy(n),e[ca]=e[ve],xe(e[ps]===0),e.emit("disconnect",e[ds],[e],n),e[MA]()});let r=!1;return A.on("close",()=>{r=!0}),{version:"h2",defaultPipelining:1/0,write(...n){return sm(e,...n)},resume(){$0(e)},destroy(n,s){r?queueMicrotask(s):A.destroy(n).on("close",s)},get destroyed(){return A.destroyed},busy(){return!1}}}function $0(e){let A=e[ie];A?.destroyed===!1&&(e[V0]===0&&e[mE]===0?(A.unref(),e[Ve].unref()):(A.ref(),e[Ve].ref()))}function em(e){xe(e.code!=="ERR_TLS_CERT_ALTNAME_INVALID"),this[ie][qe]=e,this[Ot][ga](e)}function Am(e,A,t){if(t===0){let r=new aa(`HTTP/2: "frameError" received - type ${e}, code ${A}`);this[ie][qe]=r,this[Ot][ga](r)}}function tm(){let e=new Pr("other side closed",x.getSocketInfo(this[ie]));this.destroy(e),x.destroy(this[ie],e)}function rm(e){let A=this[qe]||new Pr(`HTTP/2: "GOAWAY" frame received with code ${e}`,x.getSocketInfo(this)),t=this[Ot];if(t[ie]=null,t[q0]=null,this[Ve]!=null&&(this[Ve].destroy(A),this[Ve]=null),x.destroy(this[ie],A),t[ve]<t[SA].length){let r=t[SA][t[ve]];t[SA][t[ve]++]=null,x.errorRequest(t,r,A),t[ca]=t[ve]}xe(t[ps]===0),t.emit("disconnect",t[ds],[t],A),t[MA]()}function nm(e){return e!=="GET"&&e!=="HEAD"&&e!=="OPTIONS"&&e!=="TRACE"&&e!=="CONNECT"}function sm(e,A){let t=e[Ve],{method:r,path:n,host:s,upgrade:i,expectContinue:o,signal:a,headers:c}=A,{body:g}=A;if(i)return x.errorRequest(e,A,new Error("Upgrade not supported for H2")),!1;let l={};for(let y=0;y<c.length;y+=2){let Y=c[y+0],Z=c[y+1];if(Array.isArray(Z))for(let j=0;j<Z.length;j++)l[Y]?l[Y]+=`,${Z[j]}`:l[Y]=Z[j];else l[Y]=Z}let Q,{hostname:B,port:E}=e[ds];l[W0]=s||`${B}${E?`:${E}`:""}`,l[P0]=r;let I=y=>{A.aborted||A.completed||(y=y||new dE,x.errorRequest(e,A,y),Q!=null&&x.destroy(Q,y),x.destroy(g,y),e[SA][e[ve]++]=null,e[MA]())};try{A.onConnect(I)}catch(y){x.errorRequest(e,A,y)}if(A.aborted)return!1;if(r==="CONNECT")return t.ref(),Q=t.request(l,{endStream:!1,signal:a}),Q.id&&!Q.pending?(A.onUpgrade(null,null,Q),++t[IA],e[SA][e[ve]++]=null):Q.once("ready",()=>{A.onUpgrade(null,null,Q),++t[IA],e[SA][e[ve]++]=null}),Q.once("close",()=>{t[IA]-=1,t[IA]===0&&t.unref()}),!0;l[O0]=n,l[z0]="https";let h=r==="PUT"||r==="POST"||r==="PATCH";g&&typeof g.read=="function"&&g.read(0);let u=x.bodyLength(g);if(x.isFormDataLike(g)){fE??=Vt().extractBody;let[y,Y]=fE(g);l["content-type"]=Y,g=y.stream,u=y.length}if(u==null&&(u=A.contentLength),(u===0||!h)&&(u=null),nm(r)&&u>0&&A.contentLength!=null&&A.contentLength!==u){if(e[v0])return x.errorRequest(e,A,new oa),!1;process.emitWarning(new oa)}u!=null&&(xe(g,"no body must not have content length"),l[Z0]=`${u}`),t.ref();let C=r==="GET"||r==="HEAD"||g===null;return o?(l[_0]="100-continue",Q=t.request(l,{endStream:C,signal:a}),Q.once("continue",m)):(Q=t.request(l,{endStream:C,signal:a}),m()),++t[IA],Q.once("response",y=>{let{[K0]:Y,...Z}=y;if(A.onResponseStarted(),A.aborted){let j=new dE;x.errorRequest(e,A,j),x.destroy(Q,j);return}A.onHeaders(Number(Y),X0(Z),Q.resume.bind(Q),"")===!1&&Q.pause(),Q.on("data",j=>{A.onData(j)===!1&&Q.pause()})}),Q.once("end",()=>{(Q.state?.state==null||Q.state.state<6)&&A.onComplete([]),t[IA]===0&&t.unref(),I(new aa("HTTP/2: stream half-closed (remote)")),e[SA][e[ve]++]=null,e[ca]=e[ve],e[MA]()}),Q.once("close",()=>{t[IA]-=1,t[IA]===0&&t.unref()}),Q.once("error",function(y){I(y)}),Q.once("frameError",(y,Y)=>{I(new aa(`HTTP/2: "frameError" received - type ${y}, code ${Y}`))}),!0;function m(){!g||u===0?pE(I,Q,null,e,A,e[ie],u,h):x.isBuffer(g)?pE(I,Q,g,e,A,e[ie],u,h):x.isBlobLike(g)?typeof g.stream=="function"?yE(I,Q,g.stream(),e,A,e[ie],u,h):om(I,Q,g,e,A,e[ie],u,h):x.isStream(g)?im(I,e[ie],h,Q,g,e,A,u):x.isIterable(g)?yE(I,Q,g,e,A,e[ie],u,h):xe(!1)}}function pE(e,A,t,r,n,s,i,o){try{t!=null&&x.isBuffer(t)&&(xe(i===t.byteLength,"buffer body must have content length"),A.cork(),A.write(t),A.uncork(),A.end(),n.onBodySent(t)),o||(s[ws]=!0),n.onRequestSent(),r[MA]()}catch(a){e(a)}}function im(e,A,t,r,n,s,i,o){xe(o!==0||s[ps]===0,"stream body cannot be pipelined");let a=J0(n,r,g=>{g?(x.destroy(a,g),e(g)):(x.removeAllListeners(a),i.onRequestSent(),t||(A[ws]=!0),s[MA]())});x.addListener(a,"data",c);function c(g){i.onBodySent(g)}}async function om(e,A,t,r,n,s,i,o){xe(i===t.size,"blob body must have content length");try{if(i!=null&&i!==t.size)throw new oa;let a=Buffer.from(await t.arrayBuffer());A.cork(),A.write(a),A.uncork(),A.end(),n.onBodySent(a),n.onRequestSent(),o||(s[ws]=!0),r[MA]()}catch(a){e(a)}}async function yE(e,A,t,r,n,s,i,o){xe(i!==0||r[ps]===0,"iterator body cannot be pipelined");let a=null;function c(){if(a){let l=a;a=null,l()}}let g=()=>new Promise((l,Q)=>{xe(a===null),s[qe]?Q(s[qe]):a=l});A.on("close",c).on("drain",c);try{for await(let l of t){if(s[qe])throw s[qe];let Q=A.write(l);n.onBodySent(l),Q||await g()}A.end(),n.onRequestSent(),o||(s[ws]=!0),r[MA]()}catch(l){e(l)}finally{A.off("close",c).off("drain",c)}}DE.exports=j0});var ms=f((_L,RE)=>{"use strict";var tA=L(),{kBodyUsed:Or}=_(),Qa=d("node:assert"),{InvalidArgumentError:am}=J(),cm=d("node:events"),gm=[300,301,302,303,307,308],bE=Symbol("body"),ys=class{constructor(A){this[bE]=A,this[Or]=!1}async*[Symbol.asyncIterator](){Qa(!this[Or],"disturbed"),this[Or]=!0,yield*this[bE]}},la=class{constructor(A,t,r,n){if(t!=null&&(!Number.isInteger(t)||t<0))throw new am("maxRedirections must be a positive number");tA.validateHandler(n,r.method,r.upgrade),this.dispatch=A,this.location=null,this.abort=null,this.opts={...r,maxRedirections:0},this.maxRedirections=t,this.handler=n,this.history=[],this.redirectionLimitReached=!1,tA.isStream(this.opts.body)?(tA.bodyLength(this.opts.body)===0&&this.opts.body.on("data",function(){Qa(!1)}),typeof this.opts.body.readableDidRead!="boolean"&&(this.opts.body[Or]=!1,cm.prototype.on.call(this.opts.body,"data",function(){this[Or]=!0}))):this.opts.body&&typeof this.opts.body.pipeTo=="function"?this.opts.body=new ys(this.opts.body):this.opts.body&&typeof this.opts.body!="string"&&!ArrayBuffer.isView(this.opts.body)&&tA.isIterable(this.opts.body)&&(this.opts.body=new ys(this.opts.body))}onConnect(A){this.abort=A,this.handler.onConnect(A,{history:this.history})}onUpgrade(A,t,r){this.handler.onUpgrade(A,t,r)}onError(A){this.handler.onError(A)}onHeaders(A,t,r,n){if(this.location=this.history.length>=this.maxRedirections||tA.isDisturbed(this.opts.body)?null:lm(A,t),this.opts.throwOnMaxRedirect&&this.history.length>=this.maxRedirections){this.request&&this.request.abort(new Error("max redirects")),this.redirectionLimitReached=!0,this.abort(new Error("max redirects"));return}if(this.opts.origin&&this.history.push(new URL(this.opts.path,this.opts.origin)),!this.location)return this.handler.onHeaders(A,t,r,n);let{origin:s,pathname:i,search:o}=tA.parseURL(new URL(this.location,this.opts.origin&&new URL(this.opts.path,this.opts.origin))),a=o?`${i}${o}`:i;this.opts.headers=Qm(this.opts.headers,A===303,this.opts.origin!==s),this.opts.path=a,this.opts.origin=s,this.opts.maxRedirections=0,this.opts.query=null,A===303&&this.opts.method!=="HEAD"&&(this.opts.method="GET",this.opts.body=null)}onData(A){if(!this.location)return this.handler.onData(A)}onComplete(A){this.location?(this.location=null,this.abort=null,this.dispatch(this.opts,this)):this.handler.onComplete(A)}onBodySent(A){this.handler.onBodySent&&this.handler.onBodySent(A)}};function lm(e,A){if(gm.indexOf(e)===-1)return null;for(let t=0;t<A.length;t+=2)if(A[t].length===8&&tA.headerNameToString(A[t])==="location")return A[t+1]}function FE(e,A,t){if(e.length===4)return tA.headerNameToString(e)==="host";if(A&&tA.headerNameToString(e).startsWith("content-"))return!0;if(t&&(e.length===13||e.length===6||e.length===19)){let r=tA.headerNameToString(e);return r==="authorization"||r==="cookie"||r==="proxy-authorization"}return!1}function Qm(e,A,t){let r=[];if(Array.isArray(e))for(let n=0;n<e.length;n+=2)FE(e[n],A,t)||r.push(e[n],e[n+1]);else if(e&&typeof e=="object")for(let n of Object.keys(e))FE(n,A,t)||r.push(n,e[n]);else Qa(e==null,"headers must be an object or an array");return r}RE.exports=la});var Ds=f((KL,NE)=>{"use strict";var Em=ms();function Bm({maxRedirections:e}){return A=>function(r,n){let{maxRedirections:s=e}=r;if(!s)return A(r,n);let i=new Em(A,s,r,n);return r={...r,maxRedirections:0},A(r,i)}}NE.exports=Bm});var _t=f((XL,HE)=>{"use strict";var hA=d("node:assert"),TE=d("node:net"),um=d("node:http"),rt=L(),{channels:zt}=Rt(),Im=Hl(),hm=Ut(),{InvalidArgumentError:ee,InformationalError:Cm,ClientDestroyedError:dm}=J(),fm=Ur(),{kUrl:rA,kServerName:UA,kClient:wm,kBusy:Ea,kConnect:pm,kResuming:nt,kRunning:Xr,kPending:jr,kSize:Kr,kQueue:We,kConnected:ym,kConnecting:Zt,kNeedDrain:xA,kKeepAliveDefaultTimeout:SE,kHostHeader:mm,kPendingIdx:Pe,kRunningIdx:CA,kError:Dm,kPipelining:ks,kKeepAliveTimeoutValue:km,kMaxHeadersSize:bm,kKeepAliveMaxTimeout:Fm,kKeepAliveTimeoutThreshold:Rm,kHeadersTimeout:Nm,kBodyTimeout:Sm,kStrictContentLength:Mm,kConnector:zr,kMaxRedirections:Um,kMaxRequests:Ba,kCounter:Lm,kClose:xm,kDestroy:Tm,kDispatch:Ym,kInterceptors:ME,kLocalAddress:Zr,kMaxResponseSize:Gm,kOnError:Jm,kHTTPContext:Ae,kMaxConcurrentStreams:Hm,kResume:_r}=_(),vm=CE(),Vm=kE(),UE=!1,LA=Symbol("kClosedResolve"),LE=()=>{};function YE(e){return e[ks]??e[Ae]?.defaultPipelining??1}var ua=class extends hm{constructor(A,{interceptors:t,maxHeaderSize:r,headersTimeout:n,socketTimeout:s,requestTimeout:i,connectTimeout:o,bodyTimeout:a,idleTimeout:c,keepAlive:g,keepAliveTimeout:l,maxKeepAliveTimeout:Q,keepAliveMaxTimeout:B,keepAliveTimeoutThreshold:E,socketPath:I,pipelining:h,tls:u,strictContentLength:C,maxCachedSessions:m,maxRedirections:y,connect:Y,maxRequestsPerClient:Z,localAddress:j,maxResponseSize:Ke,autoSelectFamily:cA,autoSelectFamilyAttemptTimeout:Dt,maxConcurrentStreams:FA,allowH2:Be,webSocket:kt}={}){if(super({webSocket:kt}),g!==void 0)throw new ee("unsupported keepAlive, use pipelining=0 instead");if(s!==void 0)throw new ee("unsupported socketTimeout, use headersTimeout & bodyTimeout instead");if(i!==void 0)throw new ee("unsupported requestTimeout, use headersTimeout & bodyTimeout instead");if(c!==void 0)throw new ee("unsupported idleTimeout, use keepAliveTimeout instead");if(Q!==void 0)throw new ee("unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead");if(r!=null&&!Number.isFinite(r))throw new ee("invalid maxHeaderSize");if(I!=null&&typeof I!="string")throw new ee("invalid socketPath");if(o!=null&&(!Number.isFinite(o)||o<0))throw new ee("invalid connectTimeout");if(l!=null&&(!Number.isFinite(l)||l<=0))throw new ee("invalid keepAliveTimeout");if(B!=null&&(!Number.isFinite(B)||B<=0))throw new ee("invalid keepAliveMaxTimeout");if(E!=null&&!Number.isFinite(E))throw new ee("invalid keepAliveTimeoutThreshold");if(n!=null&&(!Number.isInteger(n)||n<0))throw new ee("headersTimeout must be a positive integer or zero");if(a!=null&&(!Number.isInteger(a)||a<0))throw new ee("bodyTimeout must be a positive integer or zero");if(Y!=null&&typeof Y!="function"&&typeof Y!="object")throw new ee("connect must be a function or an object");if(y!=null&&(!Number.isInteger(y)||y<0))throw new ee("maxRedirections must be a positive number");if(Z!=null&&(!Number.isInteger(Z)||Z<0))throw new ee("maxRequestsPerClient must be a positive number");if(j!=null&&(typeof j!="string"||TE.isIP(j)===0))throw new ee("localAddress must be valid string IP address");if(Ke!=null&&(!Number.isInteger(Ke)||Ke<-1))throw new ee("maxResponseSize must be a positive number");if(Dt!=null&&(!Number.isInteger(Dt)||Dt<-1))throw new ee("autoSelectFamilyAttemptTimeout must be a positive number");if(Be!=null&&typeof Be!="boolean")throw new ee("allowH2 must be a valid boolean value");if(FA!=null&&(typeof FA!="number"||FA<1))throw new ee("maxConcurrentStreams must be a positive integer, greater than 0");typeof Y!="function"&&(Y=fm({...u,maxCachedSessions:m,allowH2:Be,socketPath:I,timeout:o,...cA?{autoSelectFamily:cA,autoSelectFamilyAttemptTimeout:Dt}:void 0,...Y})),t?.Client&&Array.isArray(t.Client)?(this[ME]=t.Client,UE||(UE=!0,process.emitWarning("Client.Options#interceptor is deprecated. Use Dispatcher#compose instead.",{code:"UNDICI-CLIENT-INTERCEPTOR-DEPRECATED"}))):this[ME]=[qm({maxRedirections:y})],this[rA]=rt.parseOrigin(A),this[zr]=Y,this[ks]=h??1,this[bm]=r||um.maxHeaderSize,this[SE]=l??4e3,this[Fm]=B??6e5,this[Rm]=E??2e3,this[km]=this[SE],this[UA]=null,this[Zr]=j??null,this[nt]=0,this[xA]=0,this[mm]=`host: ${this[rA].hostname}${this[rA].port?`:${this[rA].port}`:""}\r
40
- `,this[Sm]=a??3e5,this[Nm]=n??3e5,this[Mm]=C??!0,this[Um]=y,this[Ba]=Z,this[LA]=null,this[Gm]=Ke>-1?Ke:-1,this[Hm]=FA??100,this[Ae]=null,this[We]=[],this[CA]=0,this[Pe]=0,this[_r]=bt=>Ia(this,bt),this[Jm]=bt=>GE(this,bt)}get pipelining(){return this[ks]}set pipelining(A){this[ks]=A,this[_r](!0)}get[jr](){return this[We].length-this[Pe]}get[Xr](){return this[Pe]-this[CA]}get[Kr](){return this[We].length-this[CA]}get[ym](){return!!this[Ae]&&!this[Zt]&&!this[Ae].destroyed}get[Ea](){return!!(this[Ae]?.busy(null)||this[Kr]>=(YE(this)||1)||this[jr]>0)}[pm](A){JE(this),this.once("connect",A)}[Ym](A,t){let r=A.origin||this[rA].origin,n=new Im(r,A,t);return this[We].push(n),this[nt]||(rt.bodyLength(n.body)==null&&rt.isIterable(n.body)?(this[nt]=1,queueMicrotask(()=>Ia(this))):this[_r](!0)),this[nt]&&this[xA]!==2&&this[Ea]&&(this[xA]=2),this[xA]<2}async[xm](){return new Promise(A=>{this[Kr]?this[LA]=A:A(null)})}async[Tm](A){return new Promise(t=>{let r=this[We].splice(this[Pe]);for(let s=0;s<r.length;s++){let i=r[s];rt.errorRequest(this,i,A)}let n=()=>{this[LA]&&(this[LA](),this[LA]=null),t(null)};this[Ae]?(this[Ae].destroy(A,n),this[Ae]=null):queueMicrotask(n),this[_r]()})}},qm=Ds();function GE(e,A){if(e[Xr]===0&&A.code!=="UND_ERR_INFO"&&A.code!=="UND_ERR_SOCKET"){hA(e[Pe]===e[CA]);let t=e[We].splice(e[CA]);for(let r=0;r<t.length;r++){let n=t[r];rt.errorRequest(e,n,A)}hA(e[Kr]===0)}}async function JE(e){hA(!e[Zt]),hA(!e[Ae]);let{host:A,hostname:t,protocol:r,port:n}=e[rA];if(t[0]==="["){let s=t.indexOf("]");hA(s!==-1);let i=t.substring(1,s);hA(TE.isIP(i)),t=i}e[Zt]=!0,zt.beforeConnect.hasSubscribers&&zt.beforeConnect.publish({connectParams:{host:A,hostname:t,protocol:r,port:n,version:e[Ae]?.version,servername:e[UA],localAddress:e[Zr]},connector:e[zr]});try{let s=await new Promise((i,o)=>{e[zr]({host:A,hostname:t,protocol:r,port:n,servername:e[UA],localAddress:e[Zr]},(a,c)=>{a?o(a):i(c)})});if(e.destroyed){rt.destroy(s.on("error",LE),new dm);return}hA(s);try{e[Ae]=s.alpnProtocol==="h2"?await Vm(e,s):await vm(e,s)}catch(i){throw s.destroy().on("error",LE),i}e[Zt]=!1,s[Lm]=0,s[Ba]=e[Ba],s[wm]=e,s[Dm]=null,zt.connected.hasSubscribers&&zt.connected.publish({connectParams:{host:A,hostname:t,protocol:r,port:n,version:e[Ae]?.version,servername:e[UA],localAddress:e[Zr]},connector:e[zr],socket:s}),e.emit("connect",e[rA],[e])}catch(s){if(e.destroyed)return;if(e[Zt]=!1,zt.connectError.hasSubscribers&&zt.connectError.publish({connectParams:{host:A,hostname:t,protocol:r,port:n,version:e[Ae]?.version,servername:e[UA],localAddress:e[Zr]},connector:e[zr],error:s}),s.code==="ERR_TLS_CERT_ALTNAME_INVALID")for(hA(e[Xr]===0);e[jr]>0&&e[We][e[Pe]].servername===e[UA];){let i=e[We][e[Pe]++];rt.errorRequest(e,i,s)}else GE(e,s);e.emit("connectionError",e[rA],[e],s)}e[_r]()}function xE(e){e[xA]=0,e.emit("drain",e[rA],[e])}function Ia(e,A){e[nt]!==2&&(e[nt]=2,Wm(e,A),e[nt]=0,e[CA]>256&&(e[We].splice(0,e[CA]),e[Pe]-=e[CA],e[CA]=0))}function Wm(e,A){for(;;){if(e.destroyed){hA(e[jr]===0);return}if(e[LA]&&!e[Kr]){e[LA](),e[LA]=null;return}if(e[Ae]&&e[Ae].resume(),e[Ea])e[xA]=2;else if(e[xA]===2){A?(e[xA]=1,queueMicrotask(()=>xE(e))):xE(e);continue}if(e[jr]===0||e[Xr]>=(YE(e)||1))return;let t=e[We][e[Pe]];if(e[rA].protocol==="https:"&&e[UA]!==t.servername){if(e[Xr]>0)return;e[UA]=t.servername,e[Ae]?.destroy(new Cm("servername changed"),()=>{e[Ae]=null,Ia(e)})}if(e[Zt])return;if(!e[Ae]){JE(e);return}if(e[Ae].destroyed||e[Ae].busy(t))return;!t.aborted&&e[Ae].write(t)?e[Pe]++:e[We].splice(e[Pe],1)}}HE.exports=ua});var ha=f(($L,vE)=>{"use strict";var bs=class{constructor(){this.bottom=0,this.top=0,this.list=new Array(2048),this.next=null}isEmpty(){return this.top===this.bottom}isFull(){return(this.top+1&2047)===this.bottom}push(A){this.list[this.top]=A,this.top=this.top+1&2047}shift(){let A=this.list[this.bottom];return A===void 0?null:(this.list[this.bottom]=void 0,this.bottom=this.bottom+1&2047,A)}};vE.exports=class{constructor(){this.head=this.tail=new bs}isEmpty(){return this.head.isEmpty()}push(A){this.head.isFull()&&(this.head=this.head.next=new bs),this.head.push(A)}shift(){let A=this.tail,t=A.shift();return A.isEmpty()&&A.next!==null&&(this.tail=A.next),t}}});var qE=f((ex,VE)=>{var{kFree:Pm,kConnected:Om,kPending:zm,kQueued:Zm,kRunning:_m,kSize:Km}=_(),st=Symbol("pool"),Ca=class{constructor(A){this[st]=A}get connected(){return this[st][Om]}get free(){return this[st][Pm]}get pending(){return this[st][zm]}get queued(){return this[st][Zm]}get running(){return this[st][_m]}get size(){return this[st][Km]}};VE.exports=Ca});var ma=f((Ax,$E)=>{"use strict";var Xm=Ut(),jm=ha(),{kConnected:da,kSize:WE,kRunning:PE,kPending:OE,kQueued:$r,kBusy:$m,kFree:eD,kUrl:AD,kClose:tD,kDestroy:rD,kDispatch:nD}=_(),sD=qE(),he=Symbol("clients"),Ee=Symbol("needDrain"),en=Symbol("queue"),fa=Symbol("closed resolve"),wa=Symbol("onDrain"),zE=Symbol("onConnect"),ZE=Symbol("onDisconnect"),_E=Symbol("onConnectionError"),pa=Symbol("get dispatcher"),XE=Symbol("add client"),jE=Symbol("remove client"),KE=Symbol("stats"),ya=class extends Xm{constructor(A){super(A),this[en]=new jm,this[he]=[],this[$r]=0;let t=this;this[wa]=function(n,s){let i=t[en],o=!1;for(;!o;){let a=i.shift();if(!a)break;t[$r]--,o=!this.dispatch(a.opts,a.handler)}this[Ee]=o,!this[Ee]&&t[Ee]&&(t[Ee]=!1,t.emit("drain",n,[t,...s])),t[fa]&&i.isEmpty()&&Promise.all(t[he].map(a=>a.close())).then(t[fa])},this[zE]=(r,n)=>{t.emit("connect",r,[t,...n])},this[ZE]=(r,n,s)=>{t.emit("disconnect",r,[t,...n],s)},this[_E]=(r,n,s)=>{t.emit("connectionError",r,[t,...n],s)},this[KE]=new sD(this)}get[$m](){return this[Ee]}get[da](){return this[he].filter(A=>A[da]).length}get[eD](){return this[he].filter(A=>A[da]&&!A[Ee]).length}get[OE](){let A=this[$r];for(let{[OE]:t}of this[he])A+=t;return A}get[PE](){let A=0;for(let{[PE]:t}of this[he])A+=t;return A}get[WE](){let A=this[$r];for(let{[WE]:t}of this[he])A+=t;return A}get stats(){return this[KE]}async[tD](){this[en].isEmpty()?await Promise.all(this[he].map(A=>A.close())):await new Promise(A=>{this[fa]=A})}async[rD](A){for(;;){let t=this[en].shift();if(!t)break;t.handler.onError(A)}await Promise.all(this[he].map(t=>t.destroy(A)))}[nD](A,t){let r=this[pa]();return r?r.dispatch(A,t)||(r[Ee]=!0,this[Ee]=!this[pa]()):(this[Ee]=!0,this[en].push({opts:A,handler:t}),this[$r]++),!this[Ee]}[XE](A){return A.on("drain",this[wa]).on("connect",this[zE]).on("disconnect",this[ZE]).on("connectionError",this[_E]),this[he].push(A),this[Ee]&&queueMicrotask(()=>{this[Ee]&&this[wa](A[AD],[this,A])}),this}[jE](A){A.close(()=>{let t=this[he].indexOf(A);t!==-1&&this[he].splice(t,1)}),this[Ee]=this[he].some(t=>!t[Ee]&&t.closed!==!0&&t.destroyed!==!0)}};$E.exports={PoolBase:ya,kClients:he,kNeedDrain:Ee,kAddClient:XE,kRemoveClient:jE,kGetDispatcher:pa}});var Kt=f((tx,rB)=>{"use strict";var{PoolBase:iD,kClients:Fs,kNeedDrain:oD,kAddClient:aD,kGetDispatcher:cD}=ma(),gD=_t(),{InvalidArgumentError:Da}=J(),eB=L(),{kUrl:AB,kInterceptors:lD}=_(),QD=Ur(),ka=Symbol("options"),ba=Symbol("connections"),tB=Symbol("factory");function ED(e,A){return new gD(e,A)}var Fa=class extends iD{constructor(A,{connections:t,factory:r=ED,connect:n,connectTimeout:s,tls:i,maxCachedSessions:o,socketPath:a,autoSelectFamily:c,autoSelectFamilyAttemptTimeout:g,allowH2:l,...Q}={}){if(t!=null&&(!Number.isFinite(t)||t<0))throw new Da("invalid connections");if(typeof r!="function")throw new Da("factory must be a function.");if(n!=null&&typeof n!="function"&&typeof n!="object")throw new Da("connect must be a function or an object");typeof n!="function"&&(n=QD({...i,maxCachedSessions:o,allowH2:l,socketPath:a,timeout:s,...c?{autoSelectFamily:c,autoSelectFamilyAttemptTimeout:g}:void 0,...n})),super(Q),this[lD]=Q.interceptors?.Pool&&Array.isArray(Q.interceptors.Pool)?Q.interceptors.Pool:[],this[ba]=t||null,this[AB]=eB.parseOrigin(A),this[ka]={...eB.deepClone(Q),connect:n,allowH2:l},this[ka].interceptors=Q.interceptors?{...Q.interceptors}:void 0,this[tB]=r,this.on("connectionError",(B,E,I)=>{for(let h of E){let u=this[Fs].indexOf(h);u!==-1&&this[Fs].splice(u,1)}})}[cD](){for(let A of this[Fs])if(!A[oD])return A;if(!this[ba]||this[Fs].length<this[ba]){let A=this[tB](this[AB],this[ka]);return this[aD](A),A}}};rB.exports=Fa});var aB=f((rx,oB)=>{"use strict";var{BalancedPoolMissingUpstreamError:BD,InvalidArgumentError:uD}=J(),{PoolBase:ID,kClients:ce,kNeedDrain:An,kAddClient:hD,kRemoveClient:CD,kGetDispatcher:dD}=ma(),fD=Kt(),{kUrl:Ra,kInterceptors:wD}=_(),{parseOrigin:nB}=L(),sB=Symbol("factory"),Rs=Symbol("options"),iB=Symbol("kGreatestCommonDivisor"),it=Symbol("kCurrentWeight"),ot=Symbol("kIndex"),Te=Symbol("kWeight"),Ns=Symbol("kMaxWeightPerServer"),Ss=Symbol("kErrorPenalty");function pD(e,A){if(e===0)return A;for(;A!==0;){let t=A;A=e%A,e=t}return e}function yD(e,A){return new fD(e,A)}var Na=class extends ID{constructor(A=[],{factory:t=yD,...r}={}){if(super(),this[Rs]=r,this[ot]=-1,this[it]=0,this[Ns]=this[Rs].maxWeightPerServer||100,this[Ss]=this[Rs].errorPenalty||15,Array.isArray(A)||(A=[A]),typeof t!="function")throw new uD("factory must be a function.");this[wD]=r.interceptors?.BalancedPool&&Array.isArray(r.interceptors.BalancedPool)?r.interceptors.BalancedPool:[],this[sB]=t;for(let n of A)this.addUpstream(n);this._updateBalancedPoolStats()}addUpstream(A){let t=nB(A).origin;if(this[ce].find(n=>n[Ra].origin===t&&n.closed!==!0&&n.destroyed!==!0))return this;let r=this[sB](t,Object.assign({},this[Rs]));this[hD](r),r.on("connect",()=>{r[Te]=Math.min(this[Ns],r[Te]+this[Ss])}),r.on("connectionError",()=>{r[Te]=Math.max(1,r[Te]-this[Ss]),this._updateBalancedPoolStats()}),r.on("disconnect",(...n)=>{let s=n[2];s&&s.code==="UND_ERR_SOCKET"&&(r[Te]=Math.max(1,r[Te]-this[Ss]),this._updateBalancedPoolStats())});for(let n of this[ce])n[Te]=this[Ns];return this._updateBalancedPoolStats(),this}_updateBalancedPoolStats(){let A=0;for(let t=0;t<this[ce].length;t++)A=pD(this[ce][t][Te],A);this[iB]=A}removeUpstream(A){let t=nB(A).origin,r=this[ce].find(n=>n[Ra].origin===t&&n.closed!==!0&&n.destroyed!==!0);return r&&this[CD](r),this}get upstreams(){return this[ce].filter(A=>A.closed!==!0&&A.destroyed!==!0).map(A=>A[Ra].origin)}[dD](){if(this[ce].length===0)throw new BD;if(!this[ce].find(s=>!s[An]&&s.closed!==!0&&s.destroyed!==!0)||this[ce].map(s=>s[An]).reduce((s,i)=>s&&i,!0))return;let r=0,n=this[ce].findIndex(s=>!s[An]);for(;r++<this[ce].length;){this[ot]=(this[ot]+1)%this[ce].length;let s=this[ce][this[ot]];if(s[Te]>this[ce][n][Te]&&!s[An]&&(n=this[ot]),this[ot]===0&&(this[it]=this[it]-this[iB],this[it]<=0&&(this[it]=this[Ns])),s[Te]>=this[it]&&!s[An])return s}return this[it]=this[ce][n][Te],this[ot]=n,this[ce][n]}};oB.exports=Na});var Xt=f((nx,uB)=>{"use strict";var{InvalidArgumentError:Ms}=J(),{kClients:TA,kRunning:cB,kClose:mD,kDestroy:DD,kDispatch:kD,kInterceptors:bD}=_(),FD=Ut(),RD=Kt(),ND=_t(),SD=L(),MD=Ds(),gB=Symbol("onConnect"),lB=Symbol("onDisconnect"),QB=Symbol("onConnectionError"),UD=Symbol("maxRedirections"),EB=Symbol("onDrain"),BB=Symbol("factory"),Sa=Symbol("options");function LD(e,A){return A&&A.connections===1?new ND(e,A):new RD(e,A)}var Ma=class extends FD{constructor({factory:A=LD,maxRedirections:t=0,connect:r,...n}={}){if(typeof A!="function")throw new Ms("factory must be a function.");if(r!=null&&typeof r!="function"&&typeof r!="object")throw new Ms("connect must be a function or an object");if(!Number.isInteger(t)||t<0)throw new Ms("maxRedirections must be a positive number");super(n),r&&typeof r!="function"&&(r={...r}),this[bD]=n.interceptors?.Agent&&Array.isArray(n.interceptors.Agent)?n.interceptors.Agent:[MD({maxRedirections:t})],this[Sa]={...SD.deepClone(n),connect:r},this[Sa].interceptors=n.interceptors?{...n.interceptors}:void 0,this[UD]=t,this[BB]=A,this[TA]=new Map,this[EB]=(s,i)=>{this.emit("drain",s,[this,...i])},this[gB]=(s,i)=>{this.emit("connect",s,[this,...i])},this[lB]=(s,i,o)=>{this.emit("disconnect",s,[this,...i],o)},this[QB]=(s,i,o)=>{this.emit("connectionError",s,[this,...i],o)}}get[cB](){let A=0;for(let t of this[TA].values())A+=t[cB];return A}[kD](A,t){let r;if(A.origin&&(typeof A.origin=="string"||A.origin instanceof URL))r=String(A.origin);else throw new Ms("opts.origin must be a non-empty string or URL.");let n=this[TA].get(r);return n||(n=this[BB](A.origin,this[Sa]).on("drain",this[EB]).on("connect",this[gB]).on("disconnect",this[lB]).on("connectionError",this[QB]),this[TA].set(r,n)),n.dispatch(A,t)}async[mD](){let A=[];for(let t of this[TA].values())A.push(t.close());this[TA].clear(),await Promise.all(A)}async[DD](A){let t=[];for(let r of this[TA].values())t.push(r.destroy(A));this[TA].clear(),await Promise.all(t)}};uB.exports=Ma});var Ya=f((sx,kB)=>{"use strict";var{kProxy:Ua,kClose:wB,kDestroy:pB,kDispatch:IB,kInterceptors:xD}=_(),{URL:at}=d("node:url"),TD=Xt(),yB=Kt(),mB=Ut(),{InvalidArgumentError:jt,RequestAbortedError:YD,SecureProxyConnectionError:GD}=J(),hB=Ur(),DB=_t(),Us=Symbol("proxy agent"),Ls=Symbol("proxy client"),YA=Symbol("proxy headers"),La=Symbol("request tls settings"),CB=Symbol("proxy tls settings"),dB=Symbol("connect endpoint function"),fB=Symbol("tunnel proxy");function JD(e){return e==="https:"?443:80}function HD(e,A){return new yB(e,A)}var vD=()=>{};function VD(e,A){return A.connections===1?new DB(e,A):new yB(e,A)}var xa=class extends mB{#e;constructor(A,{headers:t={},connect:r,factory:n}){if(super(),!A)throw new jt("Proxy URL is mandatory");this[YA]=t,n?this.#e=n(A,{connect:r}):this.#e=new DB(A,{connect:r})}[IB](A,t){let r=t.onHeaders;t.onHeaders=function(o,a,c){if(o===407){typeof t.onError=="function"&&t.onError(new jt("Proxy Authentication Required (407)"));return}r&&r.call(this,o,a,c)};let{origin:n,path:s="/",headers:i={}}=A;if(A.path=n+s,!("host"in i)&&!("Host"in i)){let{host:o}=new at(n);i.host=o}return A.headers={...this[YA],...i},this.#e[IB](A,t)}async[wB](){return this.#e.close()}async[pB](A){return this.#e.destroy(A)}},Ta=class extends mB{constructor(A){if(super(),!A||typeof A=="object"&&!(A instanceof at)&&!A.uri)throw new jt("Proxy uri is mandatory");let{clientFactory:t=HD}=A;if(typeof t!="function")throw new jt("Proxy opts.clientFactory must be a function.");let{proxyTunnel:r=!0}=A,n=this.#e(A),{href:s,origin:i,port:o,protocol:a,username:c,password:g,hostname:l}=n;if(this[Ua]={uri:s,protocol:a},this[xD]=A.interceptors?.ProxyAgent&&Array.isArray(A.interceptors.ProxyAgent)?A.interceptors.ProxyAgent:[],this[La]=A.requestTls,this[CB]=A.proxyTls,this[YA]=A.headers||{},this[fB]=r,A.auth&&A.token)throw new jt("opts.auth cannot be used in combination with opts.token");A.auth?this[YA]["proxy-authorization"]=`Basic ${A.auth}`:A.token?this[YA]["proxy-authorization"]=A.token:c&&g&&(this[YA]["proxy-authorization"]=`Basic ${Buffer.from(`${decodeURIComponent(c)}:${decodeURIComponent(g)}`).toString("base64")}`);let Q=hB({...A.proxyTls});this[dB]=hB({...A.requestTls});let B=A.factory||VD,E=(I,h)=>{let{protocol:u}=new at(I);return!this[fB]&&u==="http:"&&this[Ua].protocol==="http:"?new xa(this[Ua].uri,{headers:this[YA],connect:Q,factory:B}):B(I,h)};this[Ls]=t(n,{connect:Q}),this[Us]=new TD({...A,factory:E,connect:async(I,h)=>{let u=I.host;I.port||(u+=`:${JD(I.protocol)}`);try{let{socket:C,statusCode:m}=await this[Ls].connect({origin:i,port:o,path:u,signal:I.signal,headers:{...this[YA],host:I.host},servername:this[CB]?.servername||l});if(m!==200&&(C.on("error",vD).destroy(),h(new YD(`Proxy response (${m}) !== 200 when HTTP Tunneling`))),I.protocol!=="https:"){h(null,C);return}let y;this[La]?y=this[La].servername:y=I.servername,this[dB]({...I,servername:y,httpSocket:C},h)}catch(C){C.code==="ERR_TLS_CERT_ALTNAME_INVALID"?h(new GD(C)):h(C)}}})}dispatch(A,t){let r=qD(A.headers);if(WD(r),r&&!("host"in r)&&!("Host"in r)){let{host:n}=new at(A.origin);r.host=n}return this[Us].dispatch({...A,headers:r},t)}#e(A){return typeof A=="string"?new at(A):A instanceof at?A:new at(A.uri)}async[wB](){await this[Us].close(),await this[Ls].close()}async[pB](){await this[Us].destroy(),await this[Ls].destroy()}};function qD(e){if(Array.isArray(e)){let A={};for(let t=0;t<e.length;t+=2)A[e[t]]=e[t+1];return A}return e}function WD(e){if(e&&Object.keys(e).find(t=>t.toLowerCase()==="proxy-authorization"))throw new jt("Proxy-Authorization should be sent in ProxyAgent constructor")}kB.exports=Ta});var MB=f((ix,SB)=>{"use strict";var PD=Ut(),{kClose:OD,kDestroy:zD,kClosed:bB,kDestroyed:FB,kDispatch:ZD,kNoProxyAgent:tn,kHttpProxyAgent:GA,kHttpsProxyAgent:ct}=_(),RB=Ya(),_D=Xt(),KD={"http:":80,"https:":443},NB=!1,Ga=class extends PD{#e=null;#A=null;#t=null;constructor(A={}){super(),this.#t=A,NB||(NB=!0,process.emitWarning("EnvHttpProxyAgent is experimental, expect them to change at any time.",{code:"UNDICI-EHPA"}));let{httpProxy:t,httpsProxy:r,noProxy:n,...s}=A;this[tn]=new _D(s);let i=t??process.env.http_proxy??process.env.HTTP_PROXY;i?this[GA]=new RB({...s,uri:i}):this[GA]=this[tn];let o=r??process.env.https_proxy??process.env.HTTPS_PROXY;o?this[ct]=new RB({...s,uri:o}):this[ct]=this[GA],this.#r()}[ZD](A,t){let r=new URL(A.origin);return this.#s(r).dispatch(A,t)}async[OD](){await this[tn].close(),this[GA][bB]||await this[GA].close(),this[ct][bB]||await this[ct].close()}async[zD](A){await this[tn].destroy(A),this[GA][FB]||await this[GA].destroy(A),this[ct][FB]||await this[ct].destroy(A)}#s(A){let{protocol:t,host:r,port:n}=A;return r=r.replace(/:\d*$/,"").toLowerCase(),n=Number.parseInt(n,10)||KD[t]||0,this.#n(r,n)?t==="https:"?this[ct]:this[GA]:this[tn]}#n(A,t){if(this.#i&&this.#r(),this.#A.length===0)return!0;if(this.#e==="*")return!1;for(let r=0;r<this.#A.length;r++){let n=this.#A[r];if(!(n.port&&n.port!==t)){if(/^[.*]/.test(n.hostname)){if(A.endsWith(n.hostname.replace(/^\*/,"")))return!1}else if(A===n.hostname)return!1}}return!0}#r(){let A=this.#t.noProxy??this.#o,t=A.split(/[,\s]/),r=[];for(let n=0;n<t.length;n++){let s=t[n];if(!s)continue;let i=s.match(/^(.+):(\d+)$/);r.push({hostname:(i?i[1]:s).toLowerCase(),port:i?Number.parseInt(i[2],10):0})}this.#e=A,this.#A=r}get#i(){return this.#t.noProxy!==void 0?!1:this.#e!==this.#o}get#o(){return process.env.no_proxy??process.env.NO_PROXY??""}};SB.exports=Ga});var xs=f((ox,YB)=>{"use strict";var $t=d("node:assert"),{kRetryHandlerDefaultRetry:UB}=_(),{RequestRetryError:er}=J(),{isDisturbed:LB,parseHeaders:XD,parseRangeHeader:xB,wrapRequestBody:jD}=L();function $D(e){let A=Date.now();return new Date(e).getTime()-A}function TB(e,A,t,r){let n=e["content-length"];if(n==null||!Number.isFinite(A.start)||!Number.isFinite(A.end))return null;let s=Number(n),i=A.end-A.start+1;return!Number.isFinite(s)||s!==i?new er("Content-Length mismatch",t,{headers:e,data:{count:r}}):null}var Ja=class e{constructor(A,t){let{retryOptions:r,...n}=A,{retry:s,maxRetries:i,maxTimeout:o,minTimeout:a,timeoutFactor:c,methods:g,errorCodes:l,retryAfter:Q,statusCodes:B}=r??{};this.dispatch=t.dispatch,this.handler=t.handler,this.opts={...n,body:jD(A.body)},this.abort=null,this.aborted=!1,this.retryOpts={retry:s??e[UB],retryAfter:Q??!0,maxTimeout:o??30*1e3,minTimeout:a??500,timeoutFactor:c??2,maxRetries:i??5,methods:g??["GET","HEAD","OPTIONS","PUT","DELETE","TRACE"],statusCodes:B??[500,502,503,504,429],errorCodes:l??["ECONNRESET","ECONNREFUSED","ENOTFOUND","ENETDOWN","ENETUNREACH","EHOSTDOWN","EHOSTUNREACH","EPIPE","UND_ERR_SOCKET"]},this.retryCount=0,this.retryCountCheckpoint=0,this.start=0,this.end=null,this.etag=null,this.resume=null,this.handler.onConnect(E=>{this.aborted=!0,this.abort?this.abort(E):this.reason=E})}onRequestSent(){this.handler.onRequestSent&&this.handler.onRequestSent()}onUpgrade(A,t,r){this.handler.onUpgrade&&this.handler.onUpgrade(A,t,r)}onConnect(A){this.aborted?A(this.reason):this.abort=A}onBodySent(A){if(this.handler.onBodySent)return this.handler.onBodySent(A)}static[UB](A,{state:t,opts:r},n){let{statusCode:s,code:i,headers:o}=A,{method:a,retryOptions:c}=r,{maxRetries:g,minTimeout:l,maxTimeout:Q,timeoutFactor:B,statusCodes:E,errorCodes:I,methods:h}=c,{counter:u}=t;if(i&&i!=="UND_ERR_REQ_RETRY"&&!I.includes(i)){n(A);return}if(Array.isArray(h)&&!h.includes(a)){n(A);return}if(s!=null&&Array.isArray(E)&&!E.includes(s)){n(A);return}if(u>g){n(A);return}let C=o?.["retry-after"];C&&(C=Number(C),C=Number.isNaN(C)?$D(C):C*1e3);let m=C>0?Math.min(C,Q):Math.min(l*B**(u-1),Q);setTimeout(()=>n(null),m)}onHeaders(A,t,r,n){let s=XD(t);if(this.retryCount+=1,A>=300)return this.retryOpts.statusCodes.includes(A)===!1?this.handler.onHeaders(A,t,r,n):(this.abort(new er("Request failed",A,{headers:s,data:{count:this.retryCount}})),!1);if(this.resume!=null){if(this.resume=null,A!==206&&(this.start>0||A!==200))return this.abort(new er("server does not support the range header and the payload was partially consumed",A,{headers:s,data:{count:this.retryCount}})),!1;let o=xB(s["content-range"]);if(!o)return this.abort(new er("Content-Range mismatch",A,{headers:s,data:{count:this.retryCount}})),!1;if(this.etag!=null&&this.etag!==s.etag)return this.abort(new er("ETag mismatch",A,{headers:s,data:{count:this.retryCount}})),!1;let a=TB(s,o,A,this.retryCount);if(a!=null)return this.abort(a),!1;let{start:c,size:g,end:l=g-1}=o;return $t(this.start===c,"content-range mismatch"),$t(this.end==null||this.end===l,"content-range mismatch"),this.resume=r,!0}if(this.end==null){if(A===206){let o=xB(s["content-range"]);if(o==null)return this.handler.onHeaders(A,t,r,n);let a=TB(s,o,A,this.retryCount);if(a!=null)return this.abort(a),!1;let{start:c,size:g,end:l=g-1}=o;$t(c!=null&&Number.isFinite(c),"content-range mismatch"),$t(l!=null&&Number.isFinite(l),"invalid content-length"),this.start=c,this.end=l}if(this.end==null){let o=s["content-length"];this.end=o!=null?Number(o)-1:null}return $t(Number.isFinite(this.start)),$t(this.end==null||Number.isFinite(this.end),"invalid content-length"),this.resume=r,this.etag=s.etag!=null?s.etag:null,this.etag!=null&&this.etag.startsWith("W/")&&(this.etag=null),this.handler.onHeaders(A,t,r,n)}let i=new er("Request failed",A,{headers:s,data:{count:this.retryCount}});return this.abort(i),!1}onData(A){return this.start+=A.length,this.handler.onData(A)}onComplete(A){return this.retryCount=0,this.handler.onComplete(A)}onError(A){if(this.aborted||LB(this.opts.body))return this.handler.onError(A);this.retryCount-this.retryCountCheckpoint>0?this.retryCount=this.retryCountCheckpoint+(this.retryCount-this.retryCountCheckpoint):this.retryCount+=1,this.retryOpts.retry(A,{state:{counter:this.retryCount},opts:{retryOptions:this.retryOpts,...this.opts}},t.bind(this));function t(r){if(r!=null||this.aborted||LB(this.opts.body))return this.handler.onError(r);if(this.start!==0){let n={range:`bytes=${this.start}-${this.end??""}`};this.etag!=null&&(n["if-match"]=this.etag),this.opts={...this.opts,headers:{...this.opts.headers,...n}}}try{this.retryCountCheckpoint=this.retryCount,this.dispatch(this.opts,this)}catch(n){this.handler.onError(n)}}}};YB.exports=Ja});var JB=f((ax,GB)=>{"use strict";var ek=Sr(),Ak=xs(),Ha=class extends ek{#e=null;#A=null;constructor(A,t={}){super(t),this.#e=A,this.#A=t}dispatch(A,t){let r=new Ak({...A,retryOptions:this.#A},{dispatch:this.#e.dispatch.bind(this.#e),handler:t});return this.#e.dispatch(A,r)}close(){return this.#e.close()}destroy(){return this.#e.destroy()}};GB.exports=Ha});var Oa=f((cx,ZB)=>{"use strict";var WB=d("node:assert"),{Readable:tk}=d("node:stream"),{RequestAbortedError:PB,NotSupportedError:rk,InvalidArgumentError:nk,AbortError:va}=J(),OB=L(),{ReadableStreamFrom:sk}=L(),me=Symbol("kConsume"),rn=Symbol("kReading"),JA=Symbol("kBody"),HB=Symbol("kAbort"),zB=Symbol("kContentType"),vB=Symbol("kContentLength"),ik=()=>{},Va=class extends tk{constructor({resume:A,abort:t,contentType:r="",contentLength:n,highWaterMark:s=64*1024}){super({autoDestroy:!0,read:A,highWaterMark:s}),this._readableState.dataEmitted=!1,this[HB]=t,this[me]=null,this[JA]=null,this[zB]=r,this[vB]=n,this[rn]=!1}destroy(A){return!A&&!this._readableState.endEmitted&&(A=new PB),A&&this[HB](),super.destroy(A)}_destroy(A,t){this[rn]?t(A):setImmediate(()=>{t(A)})}on(A,...t){return(A==="data"||A==="readable")&&(this[rn]=!0),super.on(A,...t)}addListener(A,...t){return this.on(A,...t)}off(A,...t){let r=super.off(A,...t);return(A==="data"||A==="readable")&&(this[rn]=this.listenerCount("data")>0||this.listenerCount("readable")>0),r}removeListener(A,...t){return this.off(A,...t)}push(A){return this[me]&&A!==null?(Wa(this[me],A),this[rn]?super.push(A):!0):super.push(A)}async text(){return nn(this,"text")}async json(){return nn(this,"json")}async blob(){return nn(this,"blob")}async bytes(){return nn(this,"bytes")}async arrayBuffer(){return nn(this,"arrayBuffer")}async formData(){throw new rk}get bodyUsed(){return OB.isDisturbed(this)}get body(){return this[JA]||(this[JA]=sk(this),this[me]&&(this[JA].getReader(),WB(this[JA].locked))),this[JA]}async dump(A){let t=Number.isFinite(A?.limit)?A.limit:131072,r=A?.signal;if(r!=null&&(typeof r!="object"||!("aborted"in r)))throw new nk("signal must be an AbortSignal");return r?.throwIfAborted(),this._readableState.closeEmitted?null:await new Promise((n,s)=>{this[vB]>t&&this.destroy(new va);let i=()=>{this.destroy(r.reason??new va)};r?.addEventListener("abort",i),this.on("close",function(){r?.removeEventListener("abort",i),r?.aborted?s(r.reason??new va):n(null)}).on("error",ik).on("data",function(o){t-=o.length,t<=0&&this.destroy()}).resume()})}};function ok(e){return e[JA]&&e[JA].locked===!0||e[me]}function ak(e){return OB.isDisturbed(e)||ok(e)}async function nn(e,A){return WB(!e[me]),new Promise((t,r)=>{if(ak(e)){let n=e._readableState;n.destroyed&&n.closeEmitted===!1?e.on("error",s=>{r(s)}).on("close",()=>{r(new TypeError("unusable"))}):r(n.errored??new TypeError("unusable"))}else queueMicrotask(()=>{e[me]={type:A,stream:e,resolve:t,reject:r,length:0,body:[]},e.on("error",function(n){Pa(this[me],n)}).on("close",function(){this[me].body!==null&&Pa(this[me],new PB)}),ck(e[me])})})}function ck(e){if(e.body===null)return;let{_readableState:A}=e.stream;if(A.bufferIndex){let t=A.bufferIndex,r=A.buffer.length;for(let n=t;n<r;n++)Wa(e,A.buffer[n])}else for(let t of A.buffer)Wa(e,t);for(A.endEmitted?qB(this[me]):e.stream.on("end",function(){qB(this[me])}),e.stream.resume();e.stream.read()!=null;);}function qa(e,A){if(e.length===0||A===0)return"";let t=e.length===1?e[0]:Buffer.concat(e,A),r=t.length,n=r>2&&t[0]===239&&t[1]===187&&t[2]===191?3:0;return t.utf8Slice(n,r)}function VB(e,A){if(e.length===0||A===0)return new Uint8Array(0);if(e.length===1)return new Uint8Array(e[0]);let t=new Uint8Array(Buffer.allocUnsafeSlow(A).buffer),r=0;for(let n=0;n<e.length;++n){let s=e[n];t.set(s,r),r+=s.length}return t}function qB(e){let{type:A,body:t,resolve:r,stream:n,length:s}=e;try{A==="text"?r(qa(t,s)):A==="json"?r(JSON.parse(qa(t,s))):A==="arrayBuffer"?r(VB(t,s).buffer):A==="blob"?r(new Blob(t,{type:n[zB]})):A==="bytes"&&r(VB(t,s)),Pa(e)}catch(i){n.destroy(i)}}function Wa(e,A){e.length+=A.length,e.body.push(A)}function Pa(e,A){e.body!==null&&(A?e.reject(A):e.resolve(),e.type=null,e.stream=null,e.resolve=null,e.reject=null,e.length=0,e.body=null)}ZB.exports={Readable:Va,chunksDecode:qa}});var za=f((gx,$B)=>{var gk=d("node:assert"),{ResponseStatusCodeError:_B}=J(),{chunksDecode:KB}=Oa(),lk=128*1024;async function Qk({callback:e,body:A,contentType:t,statusCode:r,statusMessage:n,headers:s}){gk(A);let i=[],o=0;try{for await(let l of A)if(i.push(l),o+=l.length,o>lk){i=[],o=0;break}}catch{i=[],o=0}let a=`Response status code ${r}${n?`: ${n}`:""}`;if(r===204||!t||!o){queueMicrotask(()=>e(new _B(a,r,s)));return}let c=Error.stackTraceLimit;Error.stackTraceLimit=0;let g;try{XB(t)?g=JSON.parse(KB(i,o)):jB(t)&&(g=KB(i,o))}catch{}finally{Error.stackTraceLimit=c}queueMicrotask(()=>e(new _B(a,r,s,g)))}var XB=e=>e.length>15&&e[11]==="/"&&e[0]==="a"&&e[1]==="p"&&e[2]==="p"&&e[3]==="l"&&e[4]==="i"&&e[5]==="c"&&e[6]==="a"&&e[7]==="t"&&e[8]==="i"&&e[9]==="o"&&e[10]==="n"&&e[12]==="j"&&e[13]==="s"&&e[14]==="o"&&e[15]==="n",jB=e=>e.length>4&&e[4]==="/"&&e[0]==="t"&&e[1]==="e"&&e[2]==="x"&&e[3]==="t";$B.exports={getResolveErrorBodyCallback:Qk,isContentTypeApplicationJson:XB,isContentTypeText:jB}});var tu=f((lx,Za)=>{"use strict";var Ek=d("node:assert"),{Readable:Bk}=Oa(),{InvalidArgumentError:Ar,RequestAbortedError:eu}=J(),De=L(),{getResolveErrorBodyCallback:uk}=za(),{AsyncResource:Ik}=d("node:async_hooks"),Ts=class extends Ik{constructor(A,t){if(!A||typeof A!="object")throw new Ar("invalid opts");let{signal:r,method:n,opaque:s,body:i,onInfo:o,responseHeaders:a,throwOnError:c,highWaterMark:g}=A;try{if(typeof t!="function")throw new Ar("invalid callback");if(g&&(typeof g!="number"||g<0))throw new Ar("invalid highWaterMark");if(r&&typeof r.on!="function"&&typeof r.addEventListener!="function")throw new Ar("signal must be an EventEmitter or EventTarget");if(n==="CONNECT")throw new Ar("invalid method");if(o&&typeof o!="function")throw new Ar("invalid onInfo callback");super("UNDICI_REQUEST")}catch(l){throw De.isStream(i)&&De.destroy(i.on("error",De.nop),l),l}this.method=n,this.responseHeaders=a||null,this.opaque=s||null,this.callback=t,this.res=null,this.abort=null,this.body=i,this.trailers={},this.context=null,this.onInfo=o||null,this.throwOnError=c,this.highWaterMark=g,this.signal=r,this.reason=null,this.removeAbortListener=null,De.isStream(i)&&i.on("error",l=>{this.onError(l)}),this.signal&&(this.signal.aborted?this.reason=this.signal.reason??new eu:this.removeAbortListener=De.addAbortListener(this.signal,()=>{this.reason=this.signal.reason??new eu,this.res?De.destroy(this.res.on("error",De.nop),this.reason):this.abort&&this.abort(this.reason),this.removeAbortListener&&(this.res?.off("close",this.removeAbortListener),this.removeAbortListener(),this.removeAbortListener=null)}))}onConnect(A,t){if(this.reason){A(this.reason);return}Ek(this.callback),this.abort=A,this.context=t}onHeaders(A,t,r,n){let{callback:s,opaque:i,abort:o,context:a,responseHeaders:c,highWaterMark:g}=this,l=c==="raw"?De.parseRawHeaders(t):De.parseHeaders(t);if(A<200){this.onInfo&&this.onInfo({statusCode:A,headers:l});return}let Q=c==="raw"?De.parseHeaders(t):l,B=Q["content-type"],E=Q["content-length"],I=new Bk({resume:r,abort:o,contentType:B,contentLength:this.method!=="HEAD"&&E?Number(E):null,highWaterMark:g});this.removeAbortListener&&I.on("close",this.removeAbortListener),this.callback=null,this.res=I,s!==null&&(this.throwOnError&&A>=400?this.runInAsyncScope(uk,null,{callback:s,body:I,contentType:B,statusCode:A,statusMessage:n,headers:l}):this.runInAsyncScope(s,null,null,{statusCode:A,headers:l,trailers:this.trailers,opaque:i,body:I,context:a}))}onData(A){return this.res.push(A)}onComplete(A){De.parseHeaders(A,this.trailers),this.res.push(null)}onError(A){let{res:t,callback:r,body:n,opaque:s}=this;r&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(r,null,A,{opaque:s})})),t&&(this.res=null,queueMicrotask(()=>{De.destroy(t,A)})),n&&(this.body=null,De.destroy(n,A)),this.removeAbortListener&&(t?.off("close",this.removeAbortListener),this.removeAbortListener(),this.removeAbortListener=null)}};function Au(e,A){if(A===void 0)return new Promise((t,r)=>{Au.call(this,e,(n,s)=>n?r(n):t(s))});try{this.dispatch(e,new Ts(e,A))}catch(t){if(typeof A!="function")throw t;let r=e?.opaque;queueMicrotask(()=>A(t,{opaque:r}))}}Za.exports=Au;Za.exports.RequestHandler=Ts});var sn=f((Qx,su)=>{var{addAbortListener:hk}=L(),{RequestAbortedError:Ck}=J(),tr=Symbol("kListener"),nA=Symbol("kSignal");function ru(e){e.abort?e.abort(e[nA]?.reason):e.reason=e[nA]?.reason??new Ck,nu(e)}function dk(e,A){if(e.reason=null,e[nA]=null,e[tr]=null,!!A){if(A.aborted){ru(e);return}e[nA]=A,e[tr]=()=>{ru(e)},hk(e[nA],e[tr])}}function nu(e){e[nA]&&("removeEventListener"in e[nA]?e[nA].removeEventListener("abort",e[tr]):e[nA].removeListener("abort",e[tr]),e[nA]=null,e[tr]=null)}su.exports={addSignal:dk,removeSignal:nu}});var cu=f((Ex,au)=>{"use strict";var fk=d("node:assert"),{finished:wk,PassThrough:pk}=d("node:stream"),{InvalidArgumentError:rr,InvalidReturnValueError:yk}=J(),Oe=L(),{getResolveErrorBodyCallback:mk}=za(),{AsyncResource:Dk}=d("node:async_hooks"),{addSignal:kk,removeSignal:iu}=sn(),_a=class extends Dk{constructor(A,t,r){if(!A||typeof A!="object")throw new rr("invalid opts");let{signal:n,method:s,opaque:i,body:o,onInfo:a,responseHeaders:c,throwOnError:g}=A;try{if(typeof r!="function")throw new rr("invalid callback");if(typeof t!="function")throw new rr("invalid factory");if(n&&typeof n.on!="function"&&typeof n.addEventListener!="function")throw new rr("signal must be an EventEmitter or EventTarget");if(s==="CONNECT")throw new rr("invalid method");if(a&&typeof a!="function")throw new rr("invalid onInfo callback");super("UNDICI_STREAM")}catch(l){throw Oe.isStream(o)&&Oe.destroy(o.on("error",Oe.nop),l),l}this.responseHeaders=c||null,this.opaque=i||null,this.factory=t,this.callback=r,this.res=null,this.abort=null,this.context=null,this.trailers=null,this.body=o,this.onInfo=a||null,this.throwOnError=g||!1,Oe.isStream(o)&&o.on("error",l=>{this.onError(l)}),kk(this,n)}onConnect(A,t){if(this.reason){A(this.reason);return}fk(this.callback),this.abort=A,this.context=t}onHeaders(A,t,r,n){let{factory:s,opaque:i,context:o,callback:a,responseHeaders:c}=this,g=c==="raw"?Oe.parseRawHeaders(t):Oe.parseHeaders(t);if(A<200){this.onInfo&&this.onInfo({statusCode:A,headers:g});return}this.factory=null;let l;if(this.throwOnError&&A>=400){let E=(c==="raw"?Oe.parseHeaders(t):g)["content-type"];l=new pk,this.callback=null,this.runInAsyncScope(mk,null,{callback:a,body:l,contentType:E,statusCode:A,statusMessage:n,headers:g})}else{if(s===null)return;if(l=this.runInAsyncScope(s,null,{statusCode:A,headers:g,opaque:i,context:o}),!l||typeof l.write!="function"||typeof l.end!="function"||typeof l.on!="function")throw new yk("expected Writable");wk(l,{readable:!1},B=>{let{callback:E,res:I,opaque:h,trailers:u,abort:C}=this;this.res=null,(B||!I.readable)&&Oe.destroy(I,B),this.callback=null,this.runInAsyncScope(E,null,B||null,{opaque:h,trailers:u}),B&&C()})}return l.on("drain",r),this.res=l,(l.writableNeedDrain!==void 0?l.writableNeedDrain:l._writableState?.needDrain)!==!0}onData(A){let{res:t}=this;return t?t.write(A):!0}onComplete(A){let{res:t}=this;iu(this),t&&(this.trailers=Oe.parseHeaders(A),t.end())}onError(A){let{res:t,callback:r,opaque:n,body:s}=this;iu(this),this.factory=null,t?(this.res=null,Oe.destroy(t,A)):r&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(r,null,A,{opaque:n})})),s&&(this.body=null,Oe.destroy(s,A))}};function ou(e,A,t){if(t===void 0)return new Promise((r,n)=>{ou.call(this,e,A,(s,i)=>s?n(s):r(i))});try{this.dispatch(e,new _a(e,A,t))}catch(r){if(typeof t!="function")throw r;let n=e?.opaque;queueMicrotask(()=>t(r,{opaque:n}))}}au.exports=ou});var Eu=f((Bx,Qu)=>{"use strict";var{Readable:lu,Duplex:bk,PassThrough:Fk}=d("node:stream"),{InvalidArgumentError:on,InvalidReturnValueError:Rk,RequestAbortedError:Ka}=J(),Ye=L(),{AsyncResource:Nk}=d("node:async_hooks"),{addSignal:Sk,removeSignal:Mk}=sn(),gu=d("node:assert"),nr=Symbol("resume"),Xa=class extends lu{constructor(){super({autoDestroy:!0}),this[nr]=null}_read(){let{[nr]:A}=this;A&&(this[nr]=null,A())}_destroy(A,t){this._read(),t(A)}},ja=class extends lu{constructor(A){super({autoDestroy:!0}),this[nr]=A}_read(){this[nr]()}_destroy(A,t){!A&&!this._readableState.endEmitted&&(A=new Ka),t(A)}},$a=class extends Nk{constructor(A,t){if(!A||typeof A!="object")throw new on("invalid opts");if(typeof t!="function")throw new on("invalid handler");let{signal:r,method:n,opaque:s,onInfo:i,responseHeaders:o}=A;if(r&&typeof r.on!="function"&&typeof r.addEventListener!="function")throw new on("signal must be an EventEmitter or EventTarget");if(n==="CONNECT")throw new on("invalid method");if(i&&typeof i!="function")throw new on("invalid onInfo callback");super("UNDICI_PIPELINE"),this.opaque=s||null,this.responseHeaders=o||null,this.handler=t,this.abort=null,this.context=null,this.onInfo=i||null,this.req=new Xa().on("error",Ye.nop),this.ret=new bk({readableObjectMode:A.objectMode,autoDestroy:!0,read:()=>{let{body:a}=this;a?.resume&&a.resume()},write:(a,c,g)=>{let{req:l}=this;l.push(a,c)||l._readableState.destroyed?g():l[nr]=g},destroy:(a,c)=>{let{body:g,req:l,res:Q,ret:B,abort:E}=this;!a&&!B._readableState.endEmitted&&(a=new Ka),E&&a&&E(),Ye.destroy(g,a),Ye.destroy(l,a),Ye.destroy(Q,a),Mk(this),c(a)}}).on("prefinish",()=>{let{req:a}=this;a.push(null)}),this.res=null,Sk(this,r)}onConnect(A,t){let{ret:r,res:n}=this;if(this.reason){A(this.reason);return}gu(!n,"pipeline cannot be retried"),gu(!r.destroyed),this.abort=A,this.context=t}onHeaders(A,t,r){let{opaque:n,handler:s,context:i}=this;if(A<200){if(this.onInfo){let a=this.responseHeaders==="raw"?Ye.parseRawHeaders(t):Ye.parseHeaders(t);this.onInfo({statusCode:A,headers:a})}return}this.res=new ja(r);let o;try{this.handler=null;let a=this.responseHeaders==="raw"?Ye.parseRawHeaders(t):Ye.parseHeaders(t);o=this.runInAsyncScope(s,null,{statusCode:A,headers:a,opaque:n,body:this.res,context:i})}catch(a){throw this.res.on("error",Ye.nop),a}if(!o||typeof o.on!="function")throw new Rk("expected Readable");o.on("data",a=>{let{ret:c,body:g}=this;!c.push(a)&&g.pause&&g.pause()}).on("error",a=>{let{ret:c}=this;Ye.destroy(c,a)}).on("end",()=>{let{ret:a}=this;a.push(null)}).on("close",()=>{let{ret:a}=this;a._readableState.ended||Ye.destroy(a,new Ka)}),this.body=o}onData(A){let{res:t}=this;return t.push(A)}onComplete(A){let{res:t}=this;t.push(null)}onError(A){let{ret:t}=this;this.handler=null,Ye.destroy(t,A)}};function Uk(e,A){try{let t=new $a(e,A);return this.dispatch({...e,body:t.req},t),t.ret}catch(t){return new Fk().destroy(t)}}Qu.exports=Uk});var du=f((ux,Cu)=>{"use strict";var{InvalidArgumentError:ec,SocketError:Lk}=J(),{AsyncResource:xk}=d("node:async_hooks"),Bu=L(),{addSignal:Tk,removeSignal:uu}=sn(),Iu=d("node:assert"),Ac=class extends xk{constructor(A,t){if(!A||typeof A!="object")throw new ec("invalid opts");if(typeof t!="function")throw new ec("invalid callback");let{signal:r,opaque:n,responseHeaders:s}=A;if(r&&typeof r.on!="function"&&typeof r.addEventListener!="function")throw new ec("signal must be an EventEmitter or EventTarget");super("UNDICI_UPGRADE"),this.responseHeaders=s||null,this.opaque=n||null,this.callback=t,this.abort=null,this.context=null,Tk(this,r)}onConnect(A,t){if(this.reason){A(this.reason);return}Iu(this.callback),this.abort=A,this.context=null}onHeaders(){throw new Lk("bad upgrade",null)}onUpgrade(A,t,r){Iu(A===101);let{callback:n,opaque:s,context:i}=this;uu(this),this.callback=null;let o=this.responseHeaders==="raw"?Bu.parseRawHeaders(t):Bu.parseHeaders(t);this.runInAsyncScope(n,null,null,{headers:o,socket:r,opaque:s,context:i})}onError(A){let{callback:t,opaque:r}=this;uu(this),t&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(t,null,A,{opaque:r})}))}};function hu(e,A){if(A===void 0)return new Promise((t,r)=>{hu.call(this,e,(n,s)=>n?r(n):t(s))});try{let t=new Ac(e,A);this.dispatch({...e,method:e.method||"GET",upgrade:e.protocol||"Websocket"},t)}catch(t){if(typeof A!="function")throw t;let r=e?.opaque;queueMicrotask(()=>A(t,{opaque:r}))}}Cu.exports=hu});var mu=f((Ix,yu)=>{"use strict";var Yk=d("node:assert"),{AsyncResource:Gk}=d("node:async_hooks"),{InvalidArgumentError:tc,SocketError:Jk}=J(),fu=L(),{addSignal:Hk,removeSignal:wu}=sn(),rc=class extends Gk{constructor(A,t){if(!A||typeof A!="object")throw new tc("invalid opts");if(typeof t!="function")throw new tc("invalid callback");let{signal:r,opaque:n,responseHeaders:s}=A;if(r&&typeof r.on!="function"&&typeof r.addEventListener!="function")throw new tc("signal must be an EventEmitter or EventTarget");super("UNDICI_CONNECT"),this.opaque=n||null,this.responseHeaders=s||null,this.callback=t,this.abort=null,Hk(this,r)}onConnect(A,t){if(this.reason){A(this.reason);return}Yk(this.callback),this.abort=A,this.context=t}onHeaders(){throw new Jk("bad connect",null)}onUpgrade(A,t,r){let{callback:n,opaque:s,context:i}=this;wu(this),this.callback=null;let o=t;o!=null&&(o=this.responseHeaders==="raw"?fu.parseRawHeaders(t):fu.parseHeaders(t)),this.runInAsyncScope(n,null,null,{statusCode:A,headers:o,socket:r,opaque:s,context:i})}onError(A){let{callback:t,opaque:r}=this;wu(this),t&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(t,null,A,{opaque:r})}))}};function pu(e,A){if(A===void 0)return new Promise((t,r)=>{pu.call(this,e,(n,s)=>n?r(n):t(s))});try{let t=new rc(e,A);this.dispatch({...e,method:"CONNECT"},t)}catch(t){if(typeof A!="function")throw t;let r=e?.opaque;queueMicrotask(()=>A(t,{opaque:r}))}}yu.exports=pu});var Du=f((hx,sr)=>{"use strict";sr.exports.request=tu();sr.exports.stream=cu();sr.exports.pipeline=Eu();sr.exports.upgrade=du();sr.exports.connect=mu()});var sc=f((Cx,bu)=>{"use strict";var{UndiciError:vk}=J(),ku=Symbol.for("undici.error.UND_MOCK_ERR_MOCK_NOT_MATCHED"),nc=class e extends vk{constructor(A){super(A),Error.captureStackTrace(this,e),this.name="MockNotMatchedError",this.message=A||"The request does not match any registered mock dispatches",this.code="UND_MOCK_ERR_MOCK_NOT_MATCHED"}static[Symbol.hasInstance](A){return A&&A[ku]===!0}[ku]=!0};bu.exports={MockNotMatchedError:nc}});var ir=f((dx,Fu)=>{"use strict";Fu.exports={kAgent:Symbol("agent"),kOptions:Symbol("options"),kFactory:Symbol("factory"),kDispatches:Symbol("dispatches"),kDispatchKey:Symbol("dispatch key"),kDefaultHeaders:Symbol("default headers"),kDefaultTrailers:Symbol("default trailers"),kContentLength:Symbol("content length"),kMockAgent:Symbol("mock agent"),kMockAgentSet:Symbol("mock agent set"),kMockAgentGet:Symbol("mock agent get"),kMockDispatch:Symbol("mock dispatch"),kClose:Symbol("close"),kOriginalClose:Symbol("original agent close"),kOrigin:Symbol("origin"),kIsMockActive:Symbol("is mock active"),kNetConnect:Symbol("net connect"),kGetNetConnect:Symbol("get net connect"),kConnected:Symbol("connected")}});var an=f((fx,Ju)=>{"use strict";var{MockNotMatchedError:gt}=sc(),{kDispatches:Ys,kMockAgent:Vk,kOriginalDispatch:qk,kOrigin:Wk,kGetNetConnect:Pk}=ir(),{buildURL:Ok}=L(),{STATUS_CODES:zk}=d("node:http"),{types:{isPromise:Zk}}=d("node:util");function dA(e,A){return typeof e=="string"?e===A:e instanceof RegExp?e.test(A):typeof e=="function"?e(A)===!0:!1}function Nu(e){return Object.fromEntries(Object.entries(e).map(([A,t])=>[A.toLocaleLowerCase(),t]))}function Su(e,A){if(Array.isArray(e)){for(let t=0;t<e.length;t+=2)if(e[t].toLocaleLowerCase()===A.toLocaleLowerCase())return e[t+1];return}else return typeof e.get=="function"?e.get(A):Nu(e)[A.toLocaleLowerCase()]}function ac(e){let A=e.slice(),t=[];for(let r=0;r<A.length;r+=2)t.push([A[r],A[r+1]]);return Object.fromEntries(t)}function Mu(e,A){if(typeof e.headers=="function")return Array.isArray(A)&&(A=ac(A)),e.headers(A?Nu(A):{});if(typeof e.headers>"u")return!0;if(typeof A!="object"||typeof e.headers!="object")return!1;for(let[t,r]of Object.entries(e.headers)){let n=Su(A,t);if(!dA(r,n))return!1}return!0}function Ru(e){if(typeof e!="string")return e;let A=e.split("?");if(A.length!==2)return e;let t=new URLSearchParams(A.pop());return t.sort(),[...A,t.toString()].join("?")}function _k(e,{path:A,method:t,body:r,headers:n}){let s=dA(e.path,A),i=dA(e.method,t),o=typeof e.body<"u"?dA(e.body,r):!0,a=Mu(e,n);return s&&i&&o&&a}function Uu(e){return Buffer.isBuffer(e)||e instanceof Uint8Array||e instanceof ArrayBuffer?e:typeof e=="object"?JSON.stringify(e):e.toString()}function Lu(e,A){let t=A.query?Ok(A.path,A.query):A.path,r=typeof t=="string"?Ru(t):t,n=e.filter(({consumed:s})=>!s).filter(({path:s})=>dA(Ru(s),r));if(n.length===0)throw new gt(`Mock dispatch not matched for path '${r}'`);if(n=n.filter(({method:s})=>dA(s,A.method)),n.length===0)throw new gt(`Mock dispatch not matched for method '${A.method}' on path '${r}'`);if(n=n.filter(({body:s})=>typeof s<"u"?dA(s,A.body):!0),n.length===0)throw new gt(`Mock dispatch not matched for body '${A.body}' on path '${r}'`);if(n=n.filter(s=>Mu(s,A.headers)),n.length===0){let s=typeof A.headers=="object"?JSON.stringify(A.headers):A.headers;throw new gt(`Mock dispatch not matched for headers '${s}' on path '${r}'`)}return n[0]}function Kk(e,A,t){let r={timesInvoked:0,times:1,persist:!1,consumed:!1},n=typeof t=="function"?{callback:t}:{...t},s={...r,...A,pending:!0,data:{error:null,...n}};return e.push(s),s}function ic(e,A){let t=e.findIndex(r=>r.consumed?_k(r,A):!1);t!==-1&&e.splice(t,1)}function xu(e){let{path:A,method:t,body:r,headers:n,query:s}=e;return{path:A,method:t,body:r,headers:n,query:s}}function oc(e){let A=Object.keys(e),t=[];for(let r=0;r<A.length;++r){let n=A[r],s=e[n],i=Buffer.from(`${n}`);if(Array.isArray(s))for(let o=0;o<s.length;++o)t.push(i,Buffer.from(`${s[o]}`));else t.push(i,Buffer.from(`${s}`))}return t}function Tu(e){return zk[e]||"unknown"}async function Xk(e){let A=[];for await(let t of e)A.push(t);return Buffer.concat(A).toString("utf8")}function Yu(e,A){let t=xu(e),r=Lu(this[Ys],t);r.timesInvoked++,r.data.callback&&(r.data={...r.data,...r.data.callback(e)});let{data:{statusCode:n,data:s,headers:i,trailers:o,error:a},delay:c,persist:g}=r,{timesInvoked:l,times:Q}=r;if(r.consumed=!g&&l>=Q,r.pending=l<Q,a!==null)return ic(this[Ys],t),A.onError(a),!0;typeof c=="number"&&c>0?setTimeout(()=>{B(this[Ys])},c):B(this[Ys]);function B(I,h=s){let u=Array.isArray(e.headers)?ac(e.headers):e.headers,C=typeof h=="function"?h({...e,headers:u}):h;if(Zk(C)){C.then(Z=>B(I,Z));return}let m=Uu(C),y=oc(i),Y=oc(o);A.onConnect?.(Z=>A.onError(Z),null),A.onHeaders?.(n,y,E,Tu(n)),A.onData?.(Buffer.from(m)),A.onComplete?.(Y),ic(I,t)}function E(){}return!0}function jk(){let e=this[Vk],A=this[Wk],t=this[qk];return function(n,s){if(e.isMockActive)try{Yu.call(this,n,s)}catch(i){if(i instanceof gt){let o=e[Pk]();if(o===!1)throw new gt(`${i.message}: subsequent request to origin ${A} was not allowed (net.connect disabled)`);if(Gu(o,A))t.call(this,n,s);else throw new gt(`${i.message}: subsequent request to origin ${A} was not allowed (net.connect is not enabled for this origin)`)}else throw i}else t.call(this,n,s)}}function Gu(e,A){let t=new URL(A);return e===!0?!0:!!(Array.isArray(e)&&e.some(r=>dA(r,t.host)))}function $k(e){if(e){let{agent:A,...t}=e;return t}}Ju.exports={getResponseData:Uu,getMockDispatch:Lu,addMockDispatch:Kk,deleteMockDispatch:ic,buildKey:xu,generateKeyValues:oc,matchValue:dA,getResponse:Xk,getStatusText:Tu,mockDispatch:Yu,buildMockDispatch:jk,checkNetConnect:Gu,buildMockOptions:$k,getHeaderByName:Su,buildHeadersFromArray:ac}});var uc=f((wx,Bc)=>{"use strict";var{getResponseData:eb,buildKey:Ab,addMockDispatch:cc}=an(),{kDispatches:Gs,kDispatchKey:Js,kDefaultHeaders:gc,kDefaultTrailers:lc,kContentLength:Qc,kMockDispatch:Hs}=ir(),{InvalidArgumentError:sA}=J(),{buildURL:tb}=L(),or=class{constructor(A){this[Hs]=A}delay(A){if(typeof A!="number"||!Number.isInteger(A)||A<=0)throw new sA("waitInMs must be a valid integer > 0");return this[Hs].delay=A,this}persist(){return this[Hs].persist=!0,this}times(A){if(typeof A!="number"||!Number.isInteger(A)||A<=0)throw new sA("repeatTimes must be a valid integer > 0");return this[Hs].times=A,this}},Ec=class{constructor(A,t){if(typeof A!="object")throw new sA("opts must be an object");if(typeof A.path>"u")throw new sA("opts.path must be defined");if(typeof A.method>"u"&&(A.method="GET"),typeof A.path=="string")if(A.query)A.path=tb(A.path,A.query);else{let r=new URL(A.path,"data://");A.path=r.pathname+r.search}typeof A.method=="string"&&(A.method=A.method.toUpperCase()),this[Js]=Ab(A),this[Gs]=t,this[gc]={},this[lc]={},this[Qc]=!1}createMockScopeDispatchData({statusCode:A,data:t,responseOptions:r}){let n=eb(t),s=this[Qc]?{"content-length":n.length}:{},i={...this[gc],...s,...r.headers},o={...this[lc],...r.trailers};return{statusCode:A,data:t,headers:i,trailers:o}}validateReplyParameters(A){if(typeof A.statusCode>"u")throw new sA("statusCode must be defined");if(typeof A.responseOptions!="object"||A.responseOptions===null)throw new sA("responseOptions must be an object")}reply(A){if(typeof A=="function"){let s=o=>{let a=A(o);if(typeof a!="object"||a===null)throw new sA("reply options callback must return an object");let c={data:"",responseOptions:{},...a};return this.validateReplyParameters(c),{...this.createMockScopeDispatchData(c)}},i=cc(this[Gs],this[Js],s);return new or(i)}let t={statusCode:A,data:arguments[1]===void 0?"":arguments[1],responseOptions:arguments[2]===void 0?{}:arguments[2]};this.validateReplyParameters(t);let r=this.createMockScopeDispatchData(t),n=cc(this[Gs],this[Js],r);return new or(n)}replyWithError(A){if(typeof A>"u")throw new sA("error must be defined");let t=cc(this[Gs],this[Js],{error:A});return new or(t)}defaultReplyHeaders(A){if(typeof A>"u")throw new sA("headers must be defined");return this[gc]=A,this}defaultReplyTrailers(A){if(typeof A>"u")throw new sA("trailers must be defined");return this[lc]=A,this}replyContentLength(){return this[Qc]=!0,this}};Bc.exports.MockInterceptor=Ec;Bc.exports.MockScope=or});var Cc=f((px,Ou)=>{"use strict";var{promisify:rb}=d("node:util"),nb=_t(),{buildMockDispatch:sb}=an(),{kDispatches:Hu,kMockAgent:vu,kClose:Vu,kOriginalClose:qu,kOrigin:Wu,kOriginalDispatch:ib,kConnected:Ic}=ir(),{MockInterceptor:ob}=uc(),Pu=_(),{InvalidArgumentError:ab}=J(),hc=class extends nb{constructor(A,t){if(super(A,t),!t||!t.agent||typeof t.agent.dispatch!="function")throw new ab("Argument opts.agent must implement Agent");this[vu]=t.agent,this[Wu]=A,this[Hu]=[],this[Ic]=1,this[ib]=this.dispatch,this[qu]=this.close.bind(this),this.dispatch=sb.call(this),this.close=this[Vu]}get[Pu.kConnected](){return this[Ic]}intercept(A){return new ob(A,this[Hu])}async[Vu](){await rb(this[qu])(),this[Ic]=0,this[vu][Pu.kClients].delete(this[Wu])}};Ou.exports=hc});var wc=f((yx,$u)=>{"use strict";var{promisify:cb}=d("node:util"),gb=Kt(),{buildMockDispatch:lb}=an(),{kDispatches:zu,kMockAgent:Zu,kClose:_u,kOriginalClose:Ku,kOrigin:Xu,kOriginalDispatch:Qb,kConnected:dc}=ir(),{MockInterceptor:Eb}=uc(),ju=_(),{InvalidArgumentError:Bb}=J(),fc=class extends gb{constructor(A,t){if(super(A,t),!t||!t.agent||typeof t.agent.dispatch!="function")throw new Bb("Argument opts.agent must implement Agent");this[Zu]=t.agent,this[Xu]=A,this[zu]=[],this[dc]=1,this[Qb]=this.dispatch,this[Ku]=this.close.bind(this),this.dispatch=lb.call(this),this.close=this[_u]}get[ju.kConnected](){return this[dc]}intercept(A){return new Eb(A,this[zu])}async[_u](){await cb(this[Ku])(),this[dc]=0,this[Zu][ju.kClients].delete(this[Xu])}};$u.exports=fc});var AI=f((Dx,eI)=>{"use strict";var ub={pronoun:"it",is:"is",was:"was",this:"this"},Ib={pronoun:"they",is:"are",was:"were",this:"these"};eI.exports=class{constructor(A,t){this.singular=A,this.plural=t}pluralize(A){let t=A===1,r=t?ub:Ib,n=t?this.singular:this.plural;return{...r,count:A,noun:n}}}});var rI=f((bx,tI)=>{"use strict";var{Transform:hb}=d("node:stream"),{Console:Cb}=d("node:console"),db=process.versions.icu?"\u2705":"Y ",fb=process.versions.icu?"\u274C":"N ";tI.exports=class{constructor({disableColors:A}={}){this.transform=new hb({transform(t,r,n){n(null,t)}}),this.logger=new Cb({stdout:this.transform,inspectOptions:{colors:!A&&!process.env.CI}})}format(A){let t=A.map(({method:r,path:n,data:{statusCode:s},persist:i,times:o,timesInvoked:a,origin:c})=>({Method:r,Origin:c,Path:n,"Status code":s,Persistent:i?db:fb,Invocations:a,Remaining:i?1/0:o-a}));return this.logger.table(t),this.transform.read().toString()}}});var oI=f((Fx,iI)=>{"use strict";var{kClients:lt}=_(),wb=Xt(),{kAgent:pc,kMockAgentSet:vs,kMockAgentGet:nI,kDispatches:yc,kIsMockActive:Vs,kNetConnect:Qt,kGetNetConnect:pb,kOptions:qs,kFactory:Ws}=ir(),yb=Cc(),mb=wc(),{matchValue:Db,buildMockOptions:kb}=an(),{InvalidArgumentError:sI,UndiciError:bb}=J(),Fb=Sr(),Rb=AI(),Nb=rI(),mc=class extends Fb{constructor(A){if(super(A),this[Qt]=!0,this[Vs]=!0,A?.agent&&typeof A.agent.dispatch!="function")throw new sI("Argument opts.agent must implement Agent");let t=A?.agent?A.agent:new wb(A);this[pc]=t,this[lt]=t[lt],this[qs]=kb(A)}get(A){let t=this[nI](A);return t||(t=this[Ws](A),this[vs](A,t)),t}dispatch(A,t){return this.get(A.origin),this[pc].dispatch(A,t)}async close(){await this[pc].close(),this[lt].clear()}deactivate(){this[Vs]=!1}activate(){this[Vs]=!0}enableNetConnect(A){if(typeof A=="string"||typeof A=="function"||A instanceof RegExp)Array.isArray(this[Qt])?this[Qt].push(A):this[Qt]=[A];else if(typeof A>"u")this[Qt]=!0;else throw new sI("Unsupported matcher. Must be one of String|Function|RegExp.")}disableNetConnect(){this[Qt]=!1}get isMockActive(){return this[Vs]}[vs](A,t){this[lt].set(A,t)}[Ws](A){let t=Object.assign({agent:this},this[qs]);return this[qs]&&this[qs].connections===1?new yb(A,t):new mb(A,t)}[nI](A){let t=this[lt].get(A);if(t)return t;if(typeof A!="string"){let r=this[Ws]("http://localhost:9999");return this[vs](A,r),r}for(let[r,n]of Array.from(this[lt]))if(n&&typeof r!="string"&&Db(r,A)){let s=this[Ws](A);return this[vs](A,s),s[yc]=n[yc],s}}[pb](){return this[Qt]}pendingInterceptors(){let A=this[lt];return Array.from(A.entries()).flatMap(([t,r])=>r[yc].map(n=>({...n,origin:t}))).filter(({pending:t})=>t)}assertNoPendingInterceptors({pendingInterceptorsFormatter:A=new Nb}={}){let t=this.pendingInterceptors();if(t.length===0)return;let r=new Rb("interceptor","interceptors").pluralize(t.length);throw new bb(`
41
- ${r.count} ${r.noun} ${r.is} pending:
42
-
43
- ${A.format(t)}
44
- `.trim())}};iI.exports=mc});var Ps=f((Rx,lI)=>{"use strict";var aI=Symbol.for("undici.globalDispatcher.1"),{InvalidArgumentError:Sb}=J(),Mb=Xt();gI()===void 0&&cI(new Mb);function cI(e){if(!e||typeof e.dispatch!="function")throw new Sb("Argument agent must implement Agent");Object.defineProperty(globalThis,aI,{value:e,writable:!0,enumerable:!1,configurable:!1})}function gI(){return globalThis[aI]}lI.exports={setGlobalDispatcher:cI,getGlobalDispatcher:gI}});var Os=f((Sx,QI)=>{"use strict";QI.exports=class{#e;constructor(A){if(typeof A!="object"||A===null)throw new TypeError("handler must be an object");this.#e=A}onConnect(...A){return this.#e.onConnect?.(...A)}onError(...A){return this.#e.onError?.(...A)}onUpgrade(...A){return this.#e.onUpgrade?.(...A)}onResponseStarted(...A){return this.#e.onResponseStarted?.(...A)}onHeaders(...A){return this.#e.onHeaders?.(...A)}onData(...A){return this.#e.onData?.(...A)}onComplete(...A){return this.#e.onComplete?.(...A)}onBodySent(...A){return this.#e.onBodySent?.(...A)}}});var BI=f((Mx,EI)=>{"use strict";var Ub=ms();EI.exports=e=>{let A=e?.maxRedirections;return t=>function(n,s){let{maxRedirections:i=A,...o}=n;if(!i)return t(n,s);let a=new Ub(t,i,n,s);return t(o,a)}}});var II=f((Ux,uI)=>{"use strict";var Lb=xs();uI.exports=e=>A=>function(r,n){return A(r,new Lb({...r,retryOptions:{...e,...r.retryOptions}},{handler:n,dispatch:A}))}});var CI=f((Lx,hI)=>{"use strict";var xb=L(),{InvalidArgumentError:Tb,RequestAbortedError:Yb}=J(),Gb=Os(),Dc=class extends Gb{#e=1024*1024;#A=null;#t=!1;#s=!1;#n=0;#r=null;#i=null;constructor({maxSize:A},t){if(super(t),A!=null&&(!Number.isFinite(A)||A<1))throw new Tb("maxSize must be a number greater than 0");this.#e=A??this.#e,this.#i=t}onConnect(A){this.#A=A,this.#i.onConnect(this.#o.bind(this))}#o(A){this.#s=!0,this.#r=A}onHeaders(A,t,r,n){let i=xb.parseHeaders(t)["content-length"];if(i!=null&&i>this.#e)throw new Yb(`Response size (${i}) larger than maxSize (${this.#e})`);return this.#s?!0:this.#i.onHeaders(A,t,r,n)}onError(A){this.#t||(A=this.#r??A,this.#i.onError(A))}onData(A){return this.#n=this.#n+A.length,this.#n>=this.#e&&(this.#t=!0,this.#s?this.#i.onError(this.#r):this.#i.onComplete([])),!0}onComplete(A){if(!this.#t){if(this.#s){this.#i.onError(this.reason);return}this.#i.onComplete(A)}}};function Jb({maxSize:e}={maxSize:1024*1024}){return A=>function(r,n){let{dumpMaxSize:s=e}=r,i=new Dc({maxSize:s},n);return A(r,i)}}hI.exports=Jb});var wI=f((xx,fI)=>{"use strict";var{isIP:Hb}=d("node:net"),{lookup:vb}=d("node:dns"),Vb=Os(),{InvalidArgumentError:ar,InformationalError:qb}=J(),dI=Math.pow(2,31)-1,kc=class{#e=0;#A=0;#t=new Map;dualStack=!0;affinity=null;lookup=null;pick=null;constructor(A){this.#e=A.maxTTL,this.#A=A.maxItems,this.dualStack=A.dualStack,this.affinity=A.affinity,this.lookup=A.lookup??this.#s,this.pick=A.pick??this.#n}get full(){return this.#t.size===this.#A}runLookup(A,t,r){let n=this.#t.get(A.hostname);if(n==null&&this.full){r(null,A.origin);return}let s={affinity:this.affinity,dualStack:this.dualStack,lookup:this.lookup,pick:this.pick,...t.dns,maxTTL:this.#e,maxItems:this.#A};if(n==null)this.lookup(A,s,(i,o)=>{if(i||o==null||o.length===0){r(i??new qb("No DNS entries found"));return}this.setRecords(A,o);let a=this.#t.get(A.hostname),c=this.pick(A,a,s.affinity),g;typeof c.port=="number"?g=`:${c.port}`:A.port!==""?g=`:${A.port}`:g="",r(null,`${A.protocol}//${c.family===6?`[${c.address}]`:c.address}${g}`)});else{let i=this.pick(A,n,s.affinity);if(i==null){this.#t.delete(A.hostname),this.runLookup(A,t,r);return}let o;typeof i.port=="number"?o=`:${i.port}`:A.port!==""?o=`:${A.port}`:o="",r(null,`${A.protocol}//${i.family===6?`[${i.address}]`:i.address}${o}`)}}#s(A,t,r){vb(A.hostname,{all:!0,family:this.dualStack===!1?this.affinity:0,order:"ipv4first"},(n,s)=>{if(n)return r(n);let i=new Map;for(let o of s)i.set(`${o.address}:${o.family}`,o);r(null,i.values())})}#n(A,t,r){let n=null,{records:s,offset:i}=t,o;if(this.dualStack?(r==null&&(i==null||i===dI?(t.offset=0,r=4):(t.offset++,r=(t.offset&1)===1?6:4)),s[r]!=null&&s[r].ips.length>0?o=s[r]:o=s[r===4?6:4]):o=s[r],o==null||o.ips.length===0)return n;o.offset==null||o.offset===dI?o.offset=0:o.offset++;let a=o.offset%o.ips.length;return n=o.ips[a]??null,n==null?n:Date.now()-n.timestamp>n.ttl?(o.ips.splice(a,1),this.pick(A,t,r)):n}setRecords(A,t){let r=Date.now(),n={records:{4:null,6:null}};for(let s of t){s.timestamp=r,typeof s.ttl=="number"?s.ttl=Math.min(s.ttl,this.#e):s.ttl=this.#e;let i=n.records[s.family]??{ips:[]};i.ips.push(s),n.records[s.family]=i}this.#t.set(A.hostname,n)}getHandler(A,t){return new bc(this,A,t)}},bc=class extends Vb{#e=null;#A=null;#t=null;#s=null;#n=null;constructor(A,{origin:t,handler:r,dispatch:n},s){super(r),this.#n=t,this.#s=r,this.#A={...s},this.#e=A,this.#t=n}onError(A){switch(A.code){case"ETIMEDOUT":case"ECONNREFUSED":{if(this.#e.dualStack){this.#e.runLookup(this.#n,this.#A,(t,r)=>{if(t)return this.#s.onError(t);let n={...this.#A,origin:r};this.#t(n,this)});return}this.#s.onError(A);return}case"ENOTFOUND":this.#e.deleteRecord(this.#n);default:this.#s.onError(A);break}}};fI.exports=e=>{if(e?.maxTTL!=null&&(typeof e?.maxTTL!="number"||e?.maxTTL<0))throw new ar("Invalid maxTTL. Must be a positive number");if(e?.maxItems!=null&&(typeof e?.maxItems!="number"||e?.maxItems<1))throw new ar("Invalid maxItems. Must be a positive number and greater than zero");if(e?.affinity!=null&&e?.affinity!==4&&e?.affinity!==6)throw new ar("Invalid affinity. Must be either 4 or 6");if(e?.dualStack!=null&&typeof e?.dualStack!="boolean")throw new ar("Invalid dualStack. Must be a boolean");if(e?.lookup!=null&&typeof e?.lookup!="function")throw new ar("Invalid lookup. Must be a function");if(e?.pick!=null&&typeof e?.pick!="function")throw new ar("Invalid pick. Must be a function");let A=e?.dualStack??!0,t;A?t=e?.affinity??null:t=e?.affinity??4;let r={maxTTL:e?.maxTTL??1e4,lookup:e?.lookup??null,pick:e?.pick??null,dualStack:A,affinity:t,maxItems:e?.maxItems??1/0},n=new kc(r);return s=>function(o,a){let c=o.origin.constructor===URL?o.origin:new URL(o.origin);return Hb(c.hostname)!==0?s(o,a):(n.runLookup(c,o,(g,l)=>{if(g)return a.onError(g);let Q=null;Q={...o,servername:c.hostname,origin:l,headers:{host:c.hostname,...o.headers}},s(Q,n.getHandler({origin:c,dispatch:s,handler:a},o))}),!0)}}});var Et=f((Tx,FI)=>{"use strict";var{kConstruct:Wb}=_(),{kEnumerableProperty:cr}=L(),{iteratorMixin:Pb,isValidHeaderName:cn,isValidHeaderValue:yI}=pe(),{webidl:G}=oe(),Fc=d("node:assert"),zs=d("node:util"),re=Symbol("headers map"),ke=Symbol("headers map sorted");function pI(e){return e===10||e===13||e===9||e===32}function mI(e){let A=0,t=e.length;for(;t>A&&pI(e.charCodeAt(t-1));)--t;for(;t>A&&pI(e.charCodeAt(A));)++A;return A===0&&t===e.length?e:e.substring(A,t)}function DI(e,A){if(Array.isArray(A))for(let t=0;t<A.length;++t){let r=A[t];if(r.length!==2)throw G.errors.exception({header:"Headers constructor",message:`expected name/value pair to be length 2, found ${r.length}.`});Rc(e,r[0],r[1])}else if(typeof A=="object"&&A!==null){let t=Object.keys(A);for(let r=0;r<t.length;++r)Rc(e,t[r],A[t[r]])}else throw G.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence<sequence<ByteString>>","record<ByteString, ByteString>"]})}function Rc(e,A,t){if(t=mI(t),cn(A)){if(!yI(t))throw G.errors.invalidArgument({prefix:"Headers.append",value:t,type:"header value"})}else throw G.errors.invalidArgument({prefix:"Headers.append",value:A,type:"header name"});if(bI(e)==="immutable")throw new TypeError("immutable");return Nc(e).append(A,t,!1)}function kI(e,A){return e[0]<A[0]?-1:1}var Zs=class e{cookies=null;constructor(A){A instanceof e?(this[re]=new Map(A[re]),this[ke]=A[ke],this.cookies=A.cookies===null?null:[...A.cookies]):(this[re]=new Map(A),this[ke]=null)}contains(A,t){return this[re].has(t?A:A.toLowerCase())}clear(){this[re].clear(),this[ke]=null,this.cookies=null}append(A,t,r){this[ke]=null;let n=r?A:A.toLowerCase(),s=this[re].get(n);if(s){let i=n==="cookie"?"; ":", ";this[re].set(n,{name:s.name,value:`${s.value}${i}${t}`})}else this[re].set(n,{name:A,value:t});n==="set-cookie"&&(this.cookies??=[]).push(t)}set(A,t,r){this[ke]=null;let n=r?A:A.toLowerCase();n==="set-cookie"&&(this.cookies=[t]),this[re].set(n,{name:A,value:t})}delete(A,t){this[ke]=null,t||(A=A.toLowerCase()),A==="set-cookie"&&(this.cookies=null),this[re].delete(A)}get(A,t){return this[re].get(t?A:A.toLowerCase())?.value??null}*[Symbol.iterator](){for(let{0:A,1:{value:t}}of this[re])yield[A,t]}get entries(){let A={};if(this[re].size!==0)for(let{name:t,value:r}of this[re].values())A[t]=r;return A}rawValues(){return this[re].values()}get entriesList(){let A=[];if(this[re].size!==0)for(let{0:t,1:{name:r,value:n}}of this[re])if(t==="set-cookie")for(let s of this.cookies)A.push([r,s]);else A.push([r,n]);return A}toSortedArray(){let A=this[re].size,t=new Array(A);if(A<=32){if(A===0)return t;let r=this[re][Symbol.iterator](),n=r.next().value;t[0]=[n[0],n[1].value],Fc(n[1].value!==null);for(let s=1,i=0,o=0,a=0,c=0,g,l;s<A;++s){for(l=r.next().value,g=t[s]=[l[0],l[1].value],Fc(g[1]!==null),a=0,o=s;a<o;)c=a+(o-a>>1),t[c][0]<=g[0]?a=c+1:o=c;if(s!==c){for(i=s;i>a;)t[i]=t[--i];t[a]=g}}if(!r.next().done)throw new TypeError("Unreachable");return t}else{let r=0;for(let{0:n,1:{value:s}}of this[re])t[r++]=[n,s],Fc(s!==null);return t.sort(kI)}}},ze=class e{#e;#A;constructor(A=void 0){G.util.markAsUncloneable(this),A!==Wb&&(this.#A=new Zs,this.#e="none",A!==void 0&&(A=G.converters.HeadersInit(A,"Headers contructor","init"),DI(this,A)))}append(A,t){G.brandCheck(this,e),G.argumentLengthCheck(arguments,2,"Headers.append");let r="Headers.append";return A=G.converters.ByteString(A,r,"name"),t=G.converters.ByteString(t,r,"value"),Rc(this,A,t)}delete(A){if(G.brandCheck(this,e),G.argumentLengthCheck(arguments,1,"Headers.delete"),A=G.converters.ByteString(A,"Headers.delete","name"),!cn(A))throw G.errors.invalidArgument({prefix:"Headers.delete",value:A,type:"header name"});if(this.#e==="immutable")throw new TypeError("immutable");this.#A.contains(A,!1)&&this.#A.delete(A,!1)}get(A){G.brandCheck(this,e),G.argumentLengthCheck(arguments,1,"Headers.get");let t="Headers.get";if(A=G.converters.ByteString(A,t,"name"),!cn(A))throw G.errors.invalidArgument({prefix:t,value:A,type:"header name"});return this.#A.get(A,!1)}has(A){G.brandCheck(this,e),G.argumentLengthCheck(arguments,1,"Headers.has");let t="Headers.has";if(A=G.converters.ByteString(A,t,"name"),!cn(A))throw G.errors.invalidArgument({prefix:t,value:A,type:"header name"});return this.#A.contains(A,!1)}set(A,t){G.brandCheck(this,e),G.argumentLengthCheck(arguments,2,"Headers.set");let r="Headers.set";if(A=G.converters.ByteString(A,r,"name"),t=G.converters.ByteString(t,r,"value"),t=mI(t),cn(A)){if(!yI(t))throw G.errors.invalidArgument({prefix:r,value:t,type:"header value"})}else throw G.errors.invalidArgument({prefix:r,value:A,type:"header name"});if(this.#e==="immutable")throw new TypeError("immutable");this.#A.set(A,t,!1)}getSetCookie(){G.brandCheck(this,e);let A=this.#A.cookies;return A?[...A]:[]}get[ke](){if(this.#A[ke])return this.#A[ke];let A=[],t=this.#A.toSortedArray(),r=this.#A.cookies;if(r===null||r.length===1)return this.#A[ke]=t;for(let n=0;n<t.length;++n){let{0:s,1:i}=t[n];if(s==="set-cookie")for(let o=0;o<r.length;++o)A.push([s,r[o]]);else A.push([s,i])}return this.#A[ke]=A}[zs.inspect.custom](A,t){return t.depth??=A,`Headers ${zs.formatWithOptions(t,this.#A.entries)}`}static getHeadersGuard(A){return A.#e}static setHeadersGuard(A,t){A.#e=t}static getHeadersList(A){return A.#A}static setHeadersList(A,t){A.#A=t}},{getHeadersGuard:bI,setHeadersGuard:Ob,getHeadersList:Nc,setHeadersList:zb}=ze;Reflect.deleteProperty(ze,"getHeadersGuard");Reflect.deleteProperty(ze,"setHeadersGuard");Reflect.deleteProperty(ze,"getHeadersList");Reflect.deleteProperty(ze,"setHeadersList");Pb("Headers",ze,ke,0,1);Object.defineProperties(ze.prototype,{append:cr,delete:cr,get:cr,has:cr,set:cr,getSetCookie:cr,[Symbol.toStringTag]:{value:"Headers",configurable:!0},[zs.inspect.custom]:{enumerable:!1}});G.converters.HeadersInit=function(e,A,t){if(G.util.Type(e)==="Object"){let r=Reflect.get(e,Symbol.iterator);if(!zs.types.isProxy(e)&&r===ze.prototype.entries)try{return Nc(e).entriesList}catch{}return typeof r=="function"?G.converters["sequence<sequence<ByteString>>"](e,A,t,r.bind(e)):G.converters["record<ByteString, ByteString>"](e,A,t)}throw G.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence<sequence<ByteString>>","record<ByteString, ByteString>"]})};FI.exports={fill:DI,compareHeaderName:kI,Headers:ze,HeadersList:Zs,getHeadersGuard:bI,setHeadersGuard:Ob,setHeadersList:zb,getHeadersList:Nc}});var ln=f((Yx,HI)=>{"use strict";var{Headers:LI,HeadersList:RI,fill:Zb,getHeadersGuard:_b,setHeadersGuard:xI,setHeadersList:TI}=Et(),{extractBody:NI,cloneBody:Kb,mixinBody:Xb,hasFinalizationRegistry:YI,streamRegistry:GI,bodyUnusable:jb}=Vt(),Sc=L(),SI=d("node:util"),{kEnumerableProperty:be}=Sc,{isValidReasonPhrase:$b,isCancelled:eF,isAborted:AF,isBlobLike:tF,serializeJavascriptValueToJSONString:rF,isErrorLike:nF,isomorphicEncode:sF,environmentSettingsObject:iF}=pe(),{redirectStatusSet:oF,nullBodyStatus:aF}=Lr(),{kState:X,kHeaders:fA}=RA(),{webidl:U}=oe(),{FormData:cF}=Hr(),{URLSerializer:MI}=ue(),{kConstruct:Ks}=_(),Mc=d("node:assert"),{types:gF}=d("node:util"),lF=new TextEncoder("utf-8"),Bt=class e{static error(){return gn(Xs(),"immutable")}static json(A,t={}){U.argumentLengthCheck(arguments,1,"Response.json"),t!==null&&(t=U.converters.ResponseInit(t));let r=lF.encode(rF(A)),n=NI(r),s=gn(gr({}),"response");return UI(s,t,{body:n[0],type:"application/json"}),s}static redirect(A,t=302){U.argumentLengthCheck(arguments,1,"Response.redirect"),A=U.converters.USVString(A),t=U.converters["unsigned short"](t);let r;try{r=new URL(A,iF.settingsObject.baseUrl)}catch(i){throw new TypeError(`Failed to parse URL from ${A}`,{cause:i})}if(!oF.has(t))throw new RangeError(`Invalid status code ${t}`);let n=gn(gr({}),"immutable");n[X].status=t;let s=sF(MI(r));return n[X].headersList.append("location",s,!0),n}constructor(A=null,t={}){if(U.util.markAsUncloneable(this),A===Ks)return;A!==null&&(A=U.converters.BodyInit(A)),t=U.converters.ResponseInit(t),this[X]=gr({}),this[fA]=new LI(Ks),xI(this[fA],"response"),TI(this[fA],this[X].headersList);let r=null;if(A!=null){let[n,s]=NI(A);r={body:n,type:s}}UI(this,t,r)}get type(){return U.brandCheck(this,e),this[X].type}get url(){U.brandCheck(this,e);let A=this[X].urlList,t=A[A.length-1]??null;return t===null?"":MI(t,!0)}get redirected(){return U.brandCheck(this,e),this[X].urlList.length>1}get status(){return U.brandCheck(this,e),this[X].status}get ok(){return U.brandCheck(this,e),this[X].status>=200&&this[X].status<=299}get statusText(){return U.brandCheck(this,e),this[X].statusText}get headers(){return U.brandCheck(this,e),this[fA]}get body(){return U.brandCheck(this,e),this[X].body?this[X].body.stream:null}get bodyUsed(){return U.brandCheck(this,e),!!this[X].body&&Sc.isDisturbed(this[X].body.stream)}clone(){if(U.brandCheck(this,e),jb(this))throw U.errors.exception({header:"Response.clone",message:"Body has already been consumed."});let A=Uc(this[X]);return YI&&this[X].body?.stream&&GI.register(this,new WeakRef(this[X].body.stream)),gn(A,_b(this[fA]))}[SI.inspect.custom](A,t){t.depth===null&&(t.depth=2),t.colors??=!0;let r={status:this.status,statusText:this.statusText,headers:this.headers,body:this.body,bodyUsed:this.bodyUsed,ok:this.ok,redirected:this.redirected,type:this.type,url:this.url};return`Response ${SI.formatWithOptions(t,r)}`}};Xb(Bt);Object.defineProperties(Bt.prototype,{type:be,url:be,status:be,ok:be,redirected:be,statusText:be,headers:be,clone:be,body:be,bodyUsed:be,[Symbol.toStringTag]:{value:"Response",configurable:!0}});Object.defineProperties(Bt,{json:be,redirect:be,error:be});function Uc(e){if(e.internalResponse)return JI(Uc(e.internalResponse),e.type);let A=gr({...e,body:null});return e.body!=null&&(A.body=Kb(A,e.body)),A}function gr(e){return{aborted:!1,rangeRequested:!1,timingAllowPassed:!1,requestIncludesCredentials:!1,type:"default",status:200,timingInfo:null,cacheState:"",statusText:"",...e,headersList:e?.headersList?new RI(e?.headersList):new RI,urlList:e?.urlList?[...e.urlList]:[]}}function Xs(e){let A=nF(e);return gr({type:"error",status:0,error:A?e:new Error(e&&String(e)),aborted:e&&e.name==="AbortError"})}function QF(e){return e.type==="error"&&e.status===0}function _s(e,A){return A={internalResponse:e,...A},new Proxy(e,{get(t,r){return r in A?A[r]:t[r]},set(t,r,n){return Mc(!(r in A)),t[r]=n,!0}})}function JI(e,A){if(A==="basic")return _s(e,{type:"basic",headersList:e.headersList});if(A==="cors")return _s(e,{type:"cors",headersList:e.headersList});if(A==="opaque")return _s(e,{type:"opaque",urlList:Object.freeze([]),status:0,statusText:"",body:null});if(A==="opaqueredirect")return _s(e,{type:"opaqueredirect",status:0,statusText:"",headersList:[],body:null});Mc(!1)}function EF(e,A=null){return Mc(eF(e)),AF(e)?Xs(Object.assign(new DOMException("The operation was aborted.","AbortError"),{cause:A})):Xs(Object.assign(new DOMException("Request was cancelled."),{cause:A}))}function UI(e,A,t){if(A.status!==null&&(A.status<200||A.status>599))throw new RangeError('init["status"] must be in the range of 200 to 599, inclusive.');if("statusText"in A&&A.statusText!=null&&!$b(String(A.statusText)))throw new TypeError("Invalid statusText");if("status"in A&&A.status!=null&&(e[X].status=A.status),"statusText"in A&&A.statusText!=null&&(e[X].statusText=A.statusText),"headers"in A&&A.headers!=null&&Zb(e[fA],A.headers),t){if(aF.includes(e.status))throw U.errors.exception({header:"Response constructor",message:`Invalid response status code ${e.status}`});e[X].body=t.body,t.type!=null&&!e[X].headersList.contains("content-type",!0)&&e[X].headersList.append("content-type",t.type,!0)}}function gn(e,A){let t=new Bt(Ks);return t[X]=e,t[fA]=new LI(Ks),TI(t[fA],e.headersList),xI(t[fA],A),YI&&e.body?.stream&&GI.register(t,new WeakRef(e.body.stream)),t}U.converters.ReadableStream=U.interfaceConverter(ReadableStream);U.converters.FormData=U.interfaceConverter(cF);U.converters.URLSearchParams=U.interfaceConverter(URLSearchParams);U.converters.XMLHttpRequestBodyInit=function(e,A,t){return typeof e=="string"?U.converters.USVString(e,A,t):tF(e)?U.converters.Blob(e,A,t,{strict:!1}):ArrayBuffer.isView(e)||gF.isArrayBuffer(e)?U.converters.BufferSource(e,A,t):Sc.isFormDataLike(e)?U.converters.FormData(e,A,t,{strict:!1}):e instanceof URLSearchParams?U.converters.URLSearchParams(e,A,t):U.converters.DOMString(e,A,t)};U.converters.BodyInit=function(e,A,t){return e instanceof ReadableStream?U.converters.ReadableStream(e,A,t):e?.[Symbol.asyncIterator]?e:U.converters.XMLHttpRequestBodyInit(e,A,t)};U.converters.ResponseInit=U.dictionaryConverter([{key:"status",converter:U.converters["unsigned short"],defaultValue:()=>200},{key:"statusText",converter:U.converters.ByteString,defaultValue:()=>""},{key:"headers",converter:U.converters.HeadersInit}]);HI.exports={isNetworkError:QF,makeNetworkError:Xs,makeResponse:gr,makeAppropriateNetworkError:EF,filterResponse:JI,Response:Bt,cloneResponse:Uc,fromInnerResponse:gn}});var WI=f((Gx,qI)=>{"use strict";var{kConnected:vI,kSize:VI}=_(),Lc=class{constructor(A){this.value=A}deref(){return this.value[vI]===0&&this.value[VI]===0?void 0:this.value}},xc=class{constructor(A){this.finalizer=A}register(A,t){A.on&&A.on("disconnect",()=>{A[vI]===0&&A[VI]===0&&this.finalizer(t)})}unregister(A){}};qI.exports=function(){return process.env.NODE_V8_COVERAGE&&process.version.startsWith("v18")?(process._rawDebug("Using compatibility WeakRef and FinalizationRegistry"),{WeakRef:Lc,FinalizationRegistry:xc}):{WeakRef,FinalizationRegistry}}});var lr=f((Jx,sh)=>{"use strict";var{extractBody:BF,mixinBody:uF,cloneBody:IF,bodyUnusable:PI}=Vt(),{Headers:eh,fill:hF,HeadersList:Ai,setHeadersGuard:Yc,getHeadersGuard:CF,setHeadersList:Ah,getHeadersList:OI}=Et(),{FinalizationRegistry:dF}=WI()(),$s=L(),zI=d("node:util"),{isValidHTTPToken:fF,sameOrigin:ZI,environmentSettingsObject:js}=pe(),{forbiddenMethodsSet:wF,corsSafeListedMethodsSet:pF,referrerPolicy:yF,requestRedirect:mF,requestMode:DF,requestCredentials:kF,requestCache:bF,requestDuplex:FF}=Lr(),{kEnumerableProperty:ne,normalizedMethodRecordsBase:RF,normalizedMethodRecords:NF}=$s,{kHeaders:Fe,kSignal:ei,kState:z,kDispatcher:Tc}=RA(),{webidl:N}=oe(),{URLSerializer:SF}=ue(),{kConstruct:ti}=_(),MF=d("node:assert"),{getMaxListeners:_I,setMaxListeners:KI,getEventListeners:UF,defaultMaxListeners:XI}=d("node:events"),LF=Symbol("abortController"),th=new dF(({signal:e,abort:A})=>{e.removeEventListener("abort",A)}),ri=new WeakMap;function jI(e){return A;function A(){let t=e.deref();if(t!==void 0){th.unregister(A),this.removeEventListener("abort",A),t.abort(this.reason);let r=ri.get(t.signal);if(r!==void 0){if(r.size!==0){for(let n of r){let s=n.deref();s!==void 0&&s.abort(this.reason)}r.clear()}ri.delete(t.signal)}}}}var $I=!1,HA=class e{constructor(A,t={}){if(N.util.markAsUncloneable(this),A===ti)return;let r="Request constructor";N.argumentLengthCheck(arguments,1,r),A=N.converters.RequestInfo(A,r,"input"),t=N.converters.RequestInit(t,r,"init");let n=null,s=null,i=js.settingsObject.baseUrl,o=null;if(typeof A=="string"){this[Tc]=t.dispatcher;let u;try{u=new URL(A,i)}catch(C){throw new TypeError("Failed to parse URL from "+A,{cause:C})}if(u.username||u.password)throw new TypeError("Request cannot be constructed from a URL that includes credentials: "+A);n=ni({urlList:[u]}),s="cors"}else this[Tc]=t.dispatcher||A[Tc],MF(A instanceof e),n=A[z],o=A[ei];let a=js.settingsObject.origin,c="client";if(n.window?.constructor?.name==="EnvironmentSettingsObject"&&ZI(n.window,a)&&(c=n.window),t.window!=null)throw new TypeError(`'window' option '${c}' must be null`);"window"in t&&(c="no-window"),n=ni({method:n.method,headersList:n.headersList,unsafeRequest:n.unsafeRequest,client:js.settingsObject,window:c,priority:n.priority,origin:n.origin,referrer:n.referrer,referrerPolicy:n.referrerPolicy,mode:n.mode,credentials:n.credentials,cache:n.cache,redirect:n.redirect,integrity:n.integrity,keepalive:n.keepalive,reloadNavigation:n.reloadNavigation,historyNavigation:n.historyNavigation,urlList:[...n.urlList]});let g=Object.keys(t).length!==0;if(g&&(n.mode==="navigate"&&(n.mode="same-origin"),n.reloadNavigation=!1,n.historyNavigation=!1,n.origin="client",n.referrer="client",n.referrerPolicy="",n.url=n.urlList[n.urlList.length-1],n.urlList=[n.url]),t.referrer!==void 0){let u=t.referrer;if(u==="")n.referrer="no-referrer";else{let C;try{C=new URL(u,i)}catch(m){throw new TypeError(`Referrer "${u}" is not a valid URL.`,{cause:m})}C.protocol==="about:"&&C.hostname==="client"||a&&!ZI(C,js.settingsObject.baseUrl)?n.referrer="client":n.referrer=C}}t.referrerPolicy!==void 0&&(n.referrerPolicy=t.referrerPolicy);let l;if(t.mode!==void 0?l=t.mode:l=s,l==="navigate")throw N.errors.exception({header:"Request constructor",message:"invalid request mode navigate."});if(l!=null&&(n.mode=l),t.credentials!==void 0&&(n.credentials=t.credentials),t.cache!==void 0&&(n.cache=t.cache),n.cache==="only-if-cached"&&n.mode!=="same-origin")throw new TypeError("'only-if-cached' can be set only with 'same-origin' mode");if(t.redirect!==void 0&&(n.redirect=t.redirect),t.integrity!=null&&(n.integrity=String(t.integrity)),t.keepalive!==void 0&&(n.keepalive=!!t.keepalive),t.method!==void 0){let u=t.method,C=NF[u];if(C!==void 0)n.method=C;else{if(!fF(u))throw new TypeError(`'${u}' is not a valid HTTP method.`);let m=u.toUpperCase();if(wF.has(m))throw new TypeError(`'${u}' HTTP method is unsupported.`);u=RF[m]??u,n.method=u}!$I&&n.method==="patch"&&(process.emitWarning("Using `patch` is highly likely to result in a `405 Method Not Allowed`. `PATCH` is much more likely to succeed.",{code:"UNDICI-FETCH-patch"}),$I=!0)}t.signal!==void 0&&(o=t.signal),this[z]=n;let Q=new AbortController;if(this[ei]=Q.signal,o!=null){if(!o||typeof o.aborted!="boolean"||typeof o.addEventListener!="function")throw new TypeError("Failed to construct 'Request': member signal is not of type AbortSignal.");if(o.aborted)Q.abort(o.reason);else{this[LF]=Q;let u=new WeakRef(Q),C=jI(u);try{(typeof _I=="function"&&_I(o)===XI||UF(o,"abort").length>=XI)&&KI(1500,o)}catch{}$s.addAbortListener(o,C),th.register(Q,{signal:o,abort:C},C)}}if(this[Fe]=new eh(ti),Ah(this[Fe],n.headersList),Yc(this[Fe],"request"),l==="no-cors"){if(!pF.has(n.method))throw new TypeError(`'${n.method} is unsupported in no-cors mode.`);Yc(this[Fe],"request-no-cors")}if(g){let u=OI(this[Fe]),C=t.headers!==void 0?t.headers:new Ai(u);if(u.clear(),C instanceof Ai){for(let{name:m,value:y}of C.rawValues())u.append(m,y,!1);u.cookies=C.cookies}else hF(this[Fe],C)}let B=A instanceof e?A[z].body:null;if((t.body!=null||B!=null)&&(n.method==="GET"||n.method==="HEAD"))throw new TypeError("Request with GET/HEAD method cannot have body.");let E=null;if(t.body!=null){let[u,C]=BF(t.body,n.keepalive);E=u,C&&!OI(this[Fe]).contains("content-type",!0)&&this[Fe].append("content-type",C)}let I=E??B;if(I!=null&&I.source==null){if(E!=null&&t.duplex==null)throw new TypeError("RequestInit: duplex option is required when sending a body.");if(n.mode!=="same-origin"&&n.mode!=="cors")throw new TypeError('If request is made from ReadableStream, mode should be "same-origin" or "cors"');n.useCORSPreflightFlag=!0}let h=I;if(E==null&&B!=null){if(PI(A))throw new TypeError("Cannot construct a Request with a Request object that has already been used.");let u=new TransformStream;B.stream.pipeThrough(u),h={source:B.source,length:B.length,stream:u.readable}}this[z].body=h}get method(){return N.brandCheck(this,e),this[z].method}get url(){return N.brandCheck(this,e),SF(this[z].url)}get headers(){return N.brandCheck(this,e),this[Fe]}get destination(){return N.brandCheck(this,e),this[z].destination}get referrer(){return N.brandCheck(this,e),this[z].referrer==="no-referrer"?"":this[z].referrer==="client"?"about:client":this[z].referrer.toString()}get referrerPolicy(){return N.brandCheck(this,e),this[z].referrerPolicy}get mode(){return N.brandCheck(this,e),this[z].mode}get credentials(){return this[z].credentials}get cache(){return N.brandCheck(this,e),this[z].cache}get redirect(){return N.brandCheck(this,e),this[z].redirect}get integrity(){return N.brandCheck(this,e),this[z].integrity}get keepalive(){return N.brandCheck(this,e),this[z].keepalive}get isReloadNavigation(){return N.brandCheck(this,e),this[z].reloadNavigation}get isHistoryNavigation(){return N.brandCheck(this,e),this[z].historyNavigation}get signal(){return N.brandCheck(this,e),this[ei]}get body(){return N.brandCheck(this,e),this[z].body?this[z].body.stream:null}get bodyUsed(){return N.brandCheck(this,e),!!this[z].body&&$s.isDisturbed(this[z].body.stream)}get duplex(){return N.brandCheck(this,e),"half"}clone(){if(N.brandCheck(this,e),PI(this))throw new TypeError("unusable");let A=rh(this[z]),t=new AbortController;if(this.signal.aborted)t.abort(this.signal.reason);else{let r=ri.get(this.signal);r===void 0&&(r=new Set,ri.set(this.signal,r));let n=new WeakRef(t);r.add(n),$s.addAbortListener(t.signal,jI(n))}return nh(A,t.signal,CF(this[Fe]))}[zI.inspect.custom](A,t){t.depth===null&&(t.depth=2),t.colors??=!0;let r={method:this.method,url:this.url,headers:this.headers,destination:this.destination,referrer:this.referrer,referrerPolicy:this.referrerPolicy,mode:this.mode,credentials:this.credentials,cache:this.cache,redirect:this.redirect,integrity:this.integrity,keepalive:this.keepalive,isReloadNavigation:this.isReloadNavigation,isHistoryNavigation:this.isHistoryNavigation,signal:this.signal};return`Request ${zI.formatWithOptions(t,r)}`}};uF(HA);function ni(e){return{method:e.method??"GET",localURLsOnly:e.localURLsOnly??!1,unsafeRequest:e.unsafeRequest??!1,body:e.body??null,client:e.client??null,reservedClient:e.reservedClient??null,replacesClientId:e.replacesClientId??"",window:e.window??"client",keepalive:e.keepalive??!1,serviceWorkers:e.serviceWorkers??"all",initiator:e.initiator??"",destination:e.destination??"",priority:e.priority??null,origin:e.origin??"client",policyContainer:e.policyContainer??"client",referrer:e.referrer??"client",referrerPolicy:e.referrerPolicy??"",mode:e.mode??"no-cors",useCORSPreflightFlag:e.useCORSPreflightFlag??!1,credentials:e.credentials??"same-origin",useCredentials:e.useCredentials??!1,cache:e.cache??"default",redirect:e.redirect??"follow",integrity:e.integrity??"",cryptoGraphicsNonceMetadata:e.cryptoGraphicsNonceMetadata??"",parserMetadata:e.parserMetadata??"",reloadNavigation:e.reloadNavigation??!1,historyNavigation:e.historyNavigation??!1,userActivation:e.userActivation??!1,taintedOrigin:e.taintedOrigin??!1,redirectCount:e.redirectCount??0,responseTainting:e.responseTainting??"basic",preventNoCacheCacheControlHeaderModification:e.preventNoCacheCacheControlHeaderModification??!1,done:e.done??!1,timingAllowFailed:e.timingAllowFailed??!1,urlList:e.urlList,url:e.urlList[0],headersList:e.headersList?new Ai(e.headersList):new Ai}}function rh(e){let A=ni({...e,body:null});return e.body!=null&&(A.body=IF(A,e.body)),A}function nh(e,A,t){let r=new HA(ti);return r[z]=e,r[ei]=A,r[Fe]=new eh(ti),Ah(r[Fe],e.headersList),Yc(r[Fe],t),r}Object.defineProperties(HA.prototype,{method:ne,url:ne,headers:ne,redirect:ne,clone:ne,signal:ne,duplex:ne,destination:ne,body:ne,bodyUsed:ne,isHistoryNavigation:ne,isReloadNavigation:ne,keepalive:ne,integrity:ne,cache:ne,credentials:ne,attribute:ne,referrerPolicy:ne,referrer:ne,mode:ne,[Symbol.toStringTag]:{value:"Request",configurable:!0}});N.converters.Request=N.interfaceConverter(HA);N.converters.RequestInfo=function(e,A,t){return typeof e=="string"?N.converters.USVString(e,A,t):e instanceof HA?N.converters.Request(e,A,t):N.converters.USVString(e,A,t)};N.converters.AbortSignal=N.interfaceConverter(AbortSignal);N.converters.RequestInit=N.dictionaryConverter([{key:"method",converter:N.converters.ByteString},{key:"headers",converter:N.converters.HeadersInit},{key:"body",converter:N.nullableConverter(N.converters.BodyInit)},{key:"referrer",converter:N.converters.USVString},{key:"referrerPolicy",converter:N.converters.DOMString,allowedValues:yF},{key:"mode",converter:N.converters.DOMString,allowedValues:DF},{key:"credentials",converter:N.converters.DOMString,allowedValues:kF},{key:"cache",converter:N.converters.DOMString,allowedValues:bF},{key:"redirect",converter:N.converters.DOMString,allowedValues:mF},{key:"integrity",converter:N.converters.DOMString},{key:"keepalive",converter:N.converters.boolean},{key:"signal",converter:N.nullableConverter(e=>N.converters.AbortSignal(e,"RequestInit","signal",{strict:!1}))},{key:"window",converter:N.converters.any},{key:"duplex",converter:N.converters.DOMString,allowedValues:FF},{key:"dispatcher",converter:N.converters.any}]);sh.exports={Request:HA,makeRequest:ni,fromInnerRequest:nh,cloneRequest:rh}});var En=f((Hx,fh)=>{"use strict";var{makeNetworkError:V,makeAppropriateNetworkError:si,filterResponse:Gc,makeResponse:ii,fromInnerResponse:xF}=ln(),{HeadersList:ih}=Et(),{Request:TF,cloneRequest:YF}=lr(),vA=d("node:zlib"),{bytesMatch:GF,makePolicyContainer:JF,clonePolicyContainer:HF,requestBadPort:vF,TAOCheck:VF,appendRequestOriginHeader:qF,responseLocationURL:WF,requestCurrentURL:iA,setRequestReferrerPolicyOnRedirect:PF,tryUpgradeRequestToAPotentiallyTrustworthyURL:OF,createOpaqueTimingInfo:qc,appendFetchMetadata:zF,corsCheck:ZF,crossOriginResourcePolicyCheck:_F,determineRequestsReferrer:KF,coarsenedSharedCurrentTime:Qn,createDeferredPromise:XF,isBlobLike:jF,sameOrigin:Vc,isCancelled:ut,isAborted:oh,isErrorLike:$F,fullyReadBody:eR,readableStreamClose:AR,isomorphicEncode:oi,urlIsLocal:tR,urlIsHttpHttpsScheme:Wc,urlHasHttpsScheme:rR,clampAndCoarsenConnectionTimingInfo:nR,simpleRangeHeaderValue:sR,buildContentRange:iR,createInflate:oR,extractMimeType:aR}=pe(),{kState:lh,kDispatcher:cR}=RA(),It=d("node:assert"),{safelyExtractBody:Pc,extractBody:ah}=Vt(),{redirectStatusSet:Qh,nullBodyStatus:Eh,safeMethodsSet:gR,requestBodyHeader:lR,subresourceSet:QR}=Lr(),ER=d("node:events"),{Readable:BR,pipeline:uR,finished:IR}=d("node:stream"),{addAbortListener:hR,isErrored:CR,isReadable:ai,bufferToLowerCasedHeaderName:ch}=L(),{dataURLProcessor:dR,serializeAMimeType:fR,minimizeSupportedMimeType:wR}=ue(),{getGlobalDispatcher:pR}=Ps(),{webidl:yR}=oe(),{STATUS_CODES:mR}=d("node:http"),DR=["GET","HEAD"],kR=typeof __UNDICI_IS_NODE__<"u"||typeof esbuildDetection<"u"?"node":"undici",Jc,ci=class extends ER{constructor(A){super(),this.dispatcher=A,this.connection=null,this.dump=!1,this.state="ongoing"}terminate(A){this.state==="ongoing"&&(this.state="terminated",this.connection?.destroy(A),this.emit("terminated",A))}abort(A){this.state==="ongoing"&&(this.state="aborted",A||(A=new DOMException("The operation was aborted.","AbortError")),this.serializedAbortReason=A,this.connection?.destroy(A),this.emit("terminated",A))}};function bR(e){Bh(e,"fetch")}function FR(e,A=void 0){yR.argumentLengthCheck(arguments,1,"globalThis.fetch");let t=XF(),r;try{r=new TF(e,A)}catch(g){return t.reject(g),t.promise}let n=r[lh];if(r.signal.aborted)return Hc(t,n,null,r.signal.reason),t.promise;n.client.globalObject?.constructor?.name==="ServiceWorkerGlobalScope"&&(n.serviceWorkers="none");let i=null,o=!1,a=null;return hR(r.signal,()=>{o=!0,It(a!=null),a.abort(r.signal.reason);let g=i?.deref();Hc(t,n,g,r.signal.reason)}),a=Ih({request:n,processResponseEndOfBody:bR,processResponse:g=>{if(!o){if(g.aborted){Hc(t,n,i,a.serializedAbortReason);return}if(g.type==="error"){t.reject(new TypeError("fetch failed",{cause:g.error}));return}i=new WeakRef(xF(g,"immutable")),t.resolve(i.deref()),t=null}},dispatcher:r[cR]}),t.promise}function Bh(e,A="other"){if(e.type==="error"&&e.aborted||!e.urlList?.length)return;let t=e.urlList[0],r=e.timingInfo,n=e.cacheState;Wc(t)&&r!==null&&(e.timingAllowPassed||(r=qc({startTime:r.startTime}),n=""),r.endTime=Qn(),e.timingInfo=r,uh(r,t.href,A,globalThis,n))}var uh=performance.markResourceTiming;function Hc(e,A,t,r){if(e&&e.reject(r),A.body!=null&&ai(A.body?.stream)&&A.body.stream.cancel(r).catch(s=>{if(s.code!=="ERR_INVALID_STATE")throw s}),t==null)return;let n=t[lh];n.body!=null&&ai(n.body?.stream)&&n.body.stream.cancel(r).catch(s=>{if(s.code!=="ERR_INVALID_STATE")throw s})}function Ih({request:e,processRequestBodyChunkLength:A,processRequestEndOfBody:t,processResponse:r,processResponseEndOfBody:n,processResponseConsumeBody:s,useParallelQueue:i=!1,dispatcher:o=pR()}){It(o);let a=null,c=!1;e.client!=null&&(a=e.client.globalObject,c=e.client.crossOriginIsolatedCapability);let g=Qn(c),l=qc({startTime:g}),Q={controller:new ci(o),request:e,timingInfo:l,processRequestBodyChunkLength:A,processRequestEndOfBody:t,processResponse:r,processResponseConsumeBody:s,processResponseEndOfBody:n,taskDestination:a,crossOriginIsolatedCapability:c};return It(!e.body||e.body.stream),e.window==="client"&&(e.window=e.client?.globalObject?.constructor?.name==="Window"?e.client:"no-window"),e.origin==="client"&&(e.origin=e.client.origin),e.policyContainer==="client"&&(e.client!=null?e.policyContainer=HF(e.client.policyContainer):e.policyContainer=JF()),e.headersList.contains("accept",!0)||e.headersList.append("accept","*/*",!0),e.headersList.contains("accept-language",!0)||e.headersList.append("accept-language","*",!0),e.priority,QR.has(e.destination),hh(Q).catch(B=>{Q.controller.terminate(B)}),Q.controller}async function hh(e,A=!1){let t=e.request,r=null;if(t.localURLsOnly&&!tR(iA(t))&&(r=V("local URLs only")),OF(t),vF(t)==="blocked"&&(r=V("bad port")),t.referrerPolicy===""&&(t.referrerPolicy=t.policyContainer.referrerPolicy),t.referrer!=="no-referrer"&&(t.referrer=KF(t)),r===null&&(r=await(async()=>{let s=iA(t);return Vc(s,t.url)&&t.responseTainting==="basic"||s.protocol==="data:"||t.mode==="navigate"||t.mode==="websocket"?(t.responseTainting="basic",await gh(e)):t.mode==="same-origin"?V('request mode cannot be "same-origin"'):t.mode==="no-cors"?t.redirect!=="follow"?V('redirect mode cannot be "follow" for "no-cors" request'):(t.responseTainting="opaque",await gh(e)):Wc(iA(t))?(t.responseTainting="cors",await Ch(e)):V("URL scheme must be a HTTP(S) scheme")})()),A)return r;r.status!==0&&!r.internalResponse&&(t.responseTainting,t.responseTainting==="basic"?r=Gc(r,"basic"):t.responseTainting==="cors"?r=Gc(r,"cors"):t.responseTainting==="opaque"?r=Gc(r,"opaque"):It(!1));let n=r.status===0?r:r.internalResponse;if(n.urlList.length===0&&n.urlList.push(...t.urlList),t.timingAllowFailed||(r.timingAllowPassed=!0),r.type==="opaque"&&n.status===206&&n.rangeRequested&&!t.headers.contains("range",!0)&&(r=n=V()),r.status!==0&&(t.method==="HEAD"||t.method==="CONNECT"||Eh.includes(n.status))&&(n.body=null,e.controller.dump=!0),t.integrity){let s=o=>vc(e,V(o));if(t.responseTainting==="opaque"||r.body==null){s(r.error);return}let i=o=>{if(!GF(o,t.integrity)){s("integrity mismatch");return}r.body=Pc(o)[0],vc(e,r)};await eR(r.body,i,s)}else vc(e,r)}function gh(e){if(ut(e)&&e.request.redirectCount===0)return Promise.resolve(si(e));let{request:A}=e,{protocol:t}=iA(A);switch(t){case"about:":return Promise.resolve(V("about scheme is not supported"));case"blob:":{Jc||(Jc=d("node:buffer").resolveObjectURL);let r=iA(A);if(r.search.length!==0)return Promise.resolve(V("NetworkError when attempting to fetch resource."));let n=Jc(r.toString());if(A.method!=="GET"||!jF(n))return Promise.resolve(V("invalid method"));let s=ii(),i=n.size,o=oi(`${i}`),a=n.type;if(A.headersList.contains("range",!0)){s.rangeRequested=!0;let c=A.headersList.get("range",!0),g=sR(c,!0);if(g==="failure")return Promise.resolve(V("failed to fetch the data URL"));let{rangeStartValue:l,rangeEndValue:Q}=g;if(l===null)l=i-Q,Q=l+Q-1;else{if(l>=i)return Promise.resolve(V("Range start is greater than the blob's size."));(Q===null||Q>=i)&&(Q=i-1)}let B=n.slice(l,Q,a),E=ah(B);s.body=E[0];let I=oi(`${B.size}`),h=iR(l,Q,i);s.status=206,s.statusText="Partial Content",s.headersList.set("content-length",I,!0),s.headersList.set("content-type",a,!0),s.headersList.set("content-range",h,!0)}else{let c=ah(n);s.statusText="OK",s.body=c[0],s.headersList.set("content-length",o,!0),s.headersList.set("content-type",a,!0)}return Promise.resolve(s)}case"data:":{let r=iA(A),n=dR(r);if(n==="failure")return Promise.resolve(V("failed to fetch the data URL"));let s=fR(n.mimeType);return Promise.resolve(ii({statusText:"OK",headersList:[["content-type",{name:"Content-Type",value:s}]],body:Pc(n.body)[0]}))}case"file:":return Promise.resolve(V("not implemented... yet..."));case"http:":case"https:":return Ch(e).catch(r=>V(r));default:return Promise.resolve(V("unknown scheme"))}}function RR(e,A){e.request.done=!0,e.processResponseDone!=null&&queueMicrotask(()=>e.processResponseDone(A))}function vc(e,A){let t=e.timingInfo,r=()=>{let s=Date.now();e.request.destination==="document"&&(e.controller.fullTimingInfo=t),e.controller.reportTimingSteps=()=>{if(e.request.url.protocol!=="https:")return;t.endTime=s;let o=A.cacheState,a=A.bodyInfo;A.timingAllowPassed||(t=qc(t),o="");let c=0;if(e.request.mode!=="navigator"||!A.hasCrossOriginRedirects){c=A.status;let g=aR(A.headersList);g!=="failure"&&(a.contentType=wR(g))}e.request.initiatorType!=null&&uh(t,e.request.url.href,e.request.initiatorType,globalThis,o,a,c)};let i=()=>{e.request.done=!0,e.processResponseEndOfBody!=null&&queueMicrotask(()=>e.processResponseEndOfBody(A)),e.request.initiatorType!=null&&e.controller.reportTimingSteps()};queueMicrotask(()=>i())};e.processResponse!=null&&queueMicrotask(()=>{e.processResponse(A),e.processResponse=null});let n=A.type==="error"?A:A.internalResponse??A;n.body==null?r():IR(n.body.stream,()=>{r()})}async function Ch(e){let A=e.request,t=null,r=null,n=e.timingInfo;if(A.serviceWorkers,t===null){if(A.redirect==="follow"&&(A.serviceWorkers="none"),r=t=await dh(e),A.responseTainting==="cors"&&ZF(A,t)==="failure")return V("cors failure");VF(A,t)==="failure"&&(A.timingAllowFailed=!0)}return(A.responseTainting==="opaque"||t.type==="opaque")&&_F(A.origin,A.client,A.destination,r)==="blocked"?V("blocked"):(Qh.has(r.status)&&(A.redirect!=="manual"&&e.controller.connection.destroy(void 0,!1),A.redirect==="error"?t=V("unexpected redirect"):A.redirect==="manual"?t=r:A.redirect==="follow"?t=await NR(e,t):It(!1)),t.timingInfo=n,t)}function NR(e,A){let t=e.request,r=A.internalResponse?A.internalResponse:A,n;try{if(n=WF(r,iA(t).hash),n==null)return A}catch(i){return Promise.resolve(V(i))}if(!Wc(n))return Promise.resolve(V("URL scheme must be a HTTP(S) scheme"));if(t.redirectCount===20)return Promise.resolve(V("redirect count exceeded"));if(t.redirectCount+=1,t.mode==="cors"&&(n.username||n.password)&&!Vc(t,n))return Promise.resolve(V('cross origin not allowed for request mode "cors"'));if(t.responseTainting==="cors"&&(n.username||n.password))return Promise.resolve(V('URL cannot contain credentials for request mode "cors"'));if(r.status!==303&&t.body!=null&&t.body.source==null)return Promise.resolve(V());if([301,302].includes(r.status)&&t.method==="POST"||r.status===303&&!DR.includes(t.method)){t.method="GET",t.body=null;for(let i of lR)t.headersList.delete(i)}Vc(iA(t),n)||(t.headersList.delete("authorization",!0),t.headersList.delete("proxy-authorization",!0),t.headersList.delete("cookie",!0),t.headersList.delete("host",!0)),t.body!=null&&(It(t.body.source!=null),t.body=Pc(t.body.source)[0]);let s=e.timingInfo;return s.redirectEndTime=s.postRedirectStartTime=Qn(e.crossOriginIsolatedCapability),s.redirectStartTime===0&&(s.redirectStartTime=s.startTime),t.urlList.push(n),PF(t,r),hh(e,!0)}async function dh(e,A=!1,t=!1){let r=e.request,n=null,s=null,i=null,o=null,a=!1;r.window==="no-window"&&r.redirect==="error"?(n=e,s=r):(s=YF(r),n={...e},n.request=s);let c=r.credentials==="include"||r.credentials==="same-origin"&&r.responseTainting==="basic",g=s.body?s.body.length:null,l=null;if(s.body==null&&["POST","PUT"].includes(s.method)&&(l="0"),g!=null&&(l=oi(`${g}`)),l!=null&&s.headersList.append("content-length",l,!0),g!=null&&s.keepalive,s.referrer instanceof URL&&s.headersList.append("referer",oi(s.referrer.href),!0),qF(s),zF(s),s.headersList.contains("user-agent",!0)||s.headersList.append("user-agent",kR),s.cache==="default"&&(s.headersList.contains("if-modified-since",!0)||s.headersList.contains("if-none-match",!0)||s.headersList.contains("if-unmodified-since",!0)||s.headersList.contains("if-match",!0)||s.headersList.contains("if-range",!0))&&(s.cache="no-store"),s.cache==="no-cache"&&!s.preventNoCacheCacheControlHeaderModification&&!s.headersList.contains("cache-control",!0)&&s.headersList.append("cache-control","max-age=0",!0),(s.cache==="no-store"||s.cache==="reload")&&(s.headersList.contains("pragma",!0)||s.headersList.append("pragma","no-cache",!0),s.headersList.contains("cache-control",!0)||s.headersList.append("cache-control","no-cache",!0)),s.headersList.contains("range",!0)&&s.headersList.append("accept-encoding","identity",!0),s.headersList.contains("accept-encoding",!0)||(rR(iA(s))?s.headersList.append("accept-encoding","br, gzip, deflate",!0):s.headersList.append("accept-encoding","gzip, deflate",!0)),s.headersList.delete("host",!0),o==null&&(s.cache="no-store"),s.cache!=="no-store"&&s.cache,i==null){if(s.cache==="only-if-cached")return V("only if cached");let Q=await SR(n,c,t);!gR.has(s.method)&&Q.status>=200&&Q.status<=399,a&&Q.status,i==null&&(i=Q)}if(i.urlList=[...s.urlList],s.headersList.contains("range",!0)&&(i.rangeRequested=!0),i.requestIncludesCredentials=c,i.status===407)return r.window==="no-window"?V():ut(e)?si(e):V("proxy authentication required");if(i.status===421&&!t&&(r.body==null||r.body.source!=null)){if(ut(e))return si(e);e.controller.connection.destroy(),i=await dh(e,A,!0)}return i}async function SR(e,A=!1,t=!1){It(!e.controller.connection||e.controller.connection.destroyed),e.controller.connection={abort:null,destroyed:!1,destroy(E,I=!0){this.destroyed||(this.destroyed=!0,I&&this.abort?.(E??new DOMException("The operation was aborted.","AbortError")))}};let r=e.request,n=null,s=e.timingInfo;null==null&&(r.cache="no-store");let o=t?"yes":"no";r.mode;let a=null;if(r.body==null&&e.processRequestEndOfBody)queueMicrotask(()=>e.processRequestEndOfBody());else if(r.body!=null){let E=async function*(u){ut(e)||(yield u,e.processRequestBodyChunkLength?.(u.byteLength))},I=()=>{ut(e)||e.processRequestEndOfBody&&e.processRequestEndOfBody()},h=u=>{ut(e)||(u.name==="AbortError"?e.controller.abort():e.controller.terminate(u))};a=(async function*(){try{for await(let u of r.body.stream)yield*E(u);I()}catch(u){h(u)}})()}try{let{body:E,status:I,statusText:h,headersList:u,socket:C}=await B({body:a});if(C)n=ii({status:I,statusText:h,headersList:u,socket:C});else{let m=E[Symbol.asyncIterator]();e.controller.next=()=>m.next(),n=ii({status:I,statusText:h,headersList:u})}}catch(E){return E.name==="AbortError"?(e.controller.connection.destroy(),si(e,E)):V(E)}let c=async()=>{await e.controller.resume()},g=E=>{ut(e)||e.controller.abort(E)},l=new ReadableStream({async start(E){e.controller.controller=E},async pull(E){await c(E)},async cancel(E){await g(E)},type:"bytes"});n.body={stream:l,source:null,length:null},e.controller.onAborted=Q,e.controller.on("terminated",Q),e.controller.resume=async()=>{for(;;){let E,I;try{let{done:u,value:C}=await e.controller.next();if(oh(e))break;E=u?void 0:C}catch(u){e.controller.ended&&!s.encodedBodySize?E=void 0:(E=u,I=!0)}if(E===void 0){AR(e.controller.controller),RR(e,n);return}if(s.decodedBodySize+=E?.byteLength??0,I){e.controller.terminate(E);return}let h=new Uint8Array(E);if(h.byteLength&&e.controller.controller.enqueue(h),CR(l)){e.controller.terminate();return}if(e.controller.controller.desiredSize<=0)return}};function Q(E){oh(e)?(n.aborted=!0,ai(l)&&e.controller.controller.error(e.controller.serializedAbortReason)):ai(l)&&e.controller.controller.error(new TypeError("terminated",{cause:$F(E)?E:void 0})),e.controller.connection.destroy()}return n;function B({body:E}){let I=iA(r),h=e.controller.dispatcher;return new Promise((u,C)=>h.dispatch({path:I.pathname+I.search,origin:I.origin,method:r.method,body:h.isMockActive?r.body&&(r.body.source||r.body.stream):E,headers:r.headersList.entries,maxRedirections:0,upgrade:r.mode==="websocket"?"websocket":void 0},{body:null,abort:null,onConnect(m){let{connection:y}=e.controller;s.finalConnectionTimingInfo=nR(void 0,s.postRedirectStartTime,e.crossOriginIsolatedCapability),y.destroyed?m(new DOMException("The operation was aborted.","AbortError")):(e.controller.on("terminated",m),this.abort=y.abort=m),s.finalNetworkRequestStartTime=Qn(e.crossOriginIsolatedCapability)},onResponseStarted(){s.finalNetworkResponseStartTime=Qn(e.crossOriginIsolatedCapability)},onHeaders(m,y,Y,Z){if(m<200)return;let j="",Ke=new ih;for(let Be=0;Be<y.length;Be+=2)Ke.append(ch(y[Be]),y[Be+1].toString("latin1"),!0);j=Ke.get("location",!0),this.body=new BR({read:Y});let cA=[],Dt=j&&r.redirect==="follow"&&Qh.has(m);if(r.method!=="HEAD"&&r.method!=="CONNECT"&&!Eh.includes(m)&&!Dt){let Be=Ke.get("content-encoding",!0),kt=Be?Be.toLowerCase().split(","):[],bt=5;if(kt.length>bt)return C(new Error(`too many content-encodings in response: ${kt.length}, maximum allowed is ${bt}`)),!0;for(let Wi=kt.length-1;Wi>=0;--Wi){let Jn=kt[Wi].trim();if(Jn==="x-gzip"||Jn==="gzip")cA.push(vA.createGunzip({flush:vA.constants.Z_SYNC_FLUSH,finishFlush:vA.constants.Z_SYNC_FLUSH}));else if(Jn==="deflate")cA.push(oR({flush:vA.constants.Z_SYNC_FLUSH,finishFlush:vA.constants.Z_SYNC_FLUSH}));else if(Jn==="br")cA.push(vA.createBrotliDecompress({flush:vA.constants.BROTLI_OPERATION_FLUSH,finishFlush:vA.constants.BROTLI_OPERATION_FLUSH}));else{cA.length=0;break}}}let FA=this.onError.bind(this);return u({status:m,statusText:Z,headersList:Ke,body:cA.length?uR(this.body,...cA,Be=>{Be&&this.onError(Be)}).on("error",FA):this.body.on("error",FA)}),!0},onData(m){if(e.controller.dump)return;let y=m;return s.encodedBodySize+=y.byteLength,this.body.push(y)},onComplete(){this.abort&&e.controller.off("terminated",this.abort),e.controller.onAborted&&e.controller.off("terminated",e.controller.onAborted),e.controller.ended=!0,this.body.push(null)},onError(m){this.abort&&e.controller.off("terminated",this.abort),this.body?.destroy(m),e.controller.terminate(m),C(m)},onUpgrade(m,y,Y){if(m!==101)return;let Z=new ih;for(let j=0;j<y.length;j+=2)Z.append(ch(y[j]),y[j+1].toString("latin1"),!0);return u({status:m,statusText:mR[m],headersList:Z,socket:Y}),!0}}))}}fh.exports={fetch:FR,Fetch:ci,fetching:Ih,finalizeAndReportTiming:Bh}});var Oc=f((vx,wh)=>{"use strict";wh.exports={kState:Symbol("FileReader state"),kResult:Symbol("FileReader result"),kError:Symbol("FileReader error"),kLastProgressEventFired:Symbol("FileReader last progress event fired timestamp"),kEvents:Symbol("FileReader events"),kAborted:Symbol("FileReader aborted")}});var yh=f((Vx,ph)=>{"use strict";var{webidl:Re}=oe(),gi=Symbol("ProgressEvent state"),zc=class e extends Event{constructor(A,t={}){A=Re.converters.DOMString(A,"ProgressEvent constructor","type"),t=Re.converters.ProgressEventInit(t??{}),super(A,t),this[gi]={lengthComputable:t.lengthComputable,loaded:t.loaded,total:t.total}}get lengthComputable(){return Re.brandCheck(this,e),this[gi].lengthComputable}get loaded(){return Re.brandCheck(this,e),this[gi].loaded}get total(){return Re.brandCheck(this,e),this[gi].total}};Re.converters.ProgressEventInit=Re.dictionaryConverter([{key:"lengthComputable",converter:Re.converters.boolean,defaultValue:()=>!1},{key:"loaded",converter:Re.converters["unsigned long long"],defaultValue:()=>0},{key:"total",converter:Re.converters["unsigned long long"],defaultValue:()=>0},{key:"bubbles",converter:Re.converters.boolean,defaultValue:()=>!1},{key:"cancelable",converter:Re.converters.boolean,defaultValue:()=>!1},{key:"composed",converter:Re.converters.boolean,defaultValue:()=>!1}]);ph.exports={ProgressEvent:zc}});var Dh=f((qx,mh)=>{"use strict";function MR(e){if(!e)return"failure";switch(e.trim().toLowerCase()){case"unicode-1-1-utf-8":case"unicode11utf8":case"unicode20utf8":case"utf-8":case"utf8":case"x-unicode20utf8":return"UTF-8";case"866":case"cp866":case"csibm866":case"ibm866":return"IBM866";case"csisolatin2":case"iso-8859-2":case"iso-ir-101":case"iso8859-2":case"iso88592":case"iso_8859-2":case"iso_8859-2:1987":case"l2":case"latin2":return"ISO-8859-2";case"csisolatin3":case"iso-8859-3":case"iso-ir-109":case"iso8859-3":case"iso88593":case"iso_8859-3":case"iso_8859-3:1988":case"l3":case"latin3":return"ISO-8859-3";case"csisolatin4":case"iso-8859-4":case"iso-ir-110":case"iso8859-4":case"iso88594":case"iso_8859-4":case"iso_8859-4:1988":case"l4":case"latin4":return"ISO-8859-4";case"csisolatincyrillic":case"cyrillic":case"iso-8859-5":case"iso-ir-144":case"iso8859-5":case"iso88595":case"iso_8859-5":case"iso_8859-5:1988":return"ISO-8859-5";case"arabic":case"asmo-708":case"csiso88596e":case"csiso88596i":case"csisolatinarabic":case"ecma-114":case"iso-8859-6":case"iso-8859-6-e":case"iso-8859-6-i":case"iso-ir-127":case"iso8859-6":case"iso88596":case"iso_8859-6":case"iso_8859-6:1987":return"ISO-8859-6";case"csisolatingreek":case"ecma-118":case"elot_928":case"greek":case"greek8":case"iso-8859-7":case"iso-ir-126":case"iso8859-7":case"iso88597":case"iso_8859-7":case"iso_8859-7:1987":case"sun_eu_greek":return"ISO-8859-7";case"csiso88598e":case"csisolatinhebrew":case"hebrew":case"iso-8859-8":case"iso-8859-8-e":case"iso-ir-138":case"iso8859-8":case"iso88598":case"iso_8859-8":case"iso_8859-8:1988":case"visual":return"ISO-8859-8";case"csiso88598i":case"iso-8859-8-i":case"logical":return"ISO-8859-8-I";case"csisolatin6":case"iso-8859-10":case"iso-ir-157":case"iso8859-10":case"iso885910":case"l6":case"latin6":return"ISO-8859-10";case"iso-8859-13":case"iso8859-13":case"iso885913":return"ISO-8859-13";case"iso-8859-14":case"iso8859-14":case"iso885914":return"ISO-8859-14";case"csisolatin9":case"iso-8859-15":case"iso8859-15":case"iso885915":case"iso_8859-15":case"l9":return"ISO-8859-15";case"iso-8859-16":return"ISO-8859-16";case"cskoi8r":case"koi":case"koi8":case"koi8-r":case"koi8_r":return"KOI8-R";case"koi8-ru":case"koi8-u":return"KOI8-U";case"csmacintosh":case"mac":case"macintosh":case"x-mac-roman":return"macintosh";case"iso-8859-11":case"iso8859-11":case"iso885911":case"tis-620":case"windows-874":return"windows-874";case"cp1250":case"windows-1250":case"x-cp1250":return"windows-1250";case"cp1251":case"windows-1251":case"x-cp1251":return"windows-1251";case"ansi_x3.4-1968":case"ascii":case"cp1252":case"cp819":case"csisolatin1":case"ibm819":case"iso-8859-1":case"iso-ir-100":case"iso8859-1":case"iso88591":case"iso_8859-1":case"iso_8859-1:1987":case"l1":case"latin1":case"us-ascii":case"windows-1252":case"x-cp1252":return"windows-1252";case"cp1253":case"windows-1253":case"x-cp1253":return"windows-1253";case"cp1254":case"csisolatin5":case"iso-8859-9":case"iso-ir-148":case"iso8859-9":case"iso88599":case"iso_8859-9":case"iso_8859-9:1989":case"l5":case"latin5":case"windows-1254":case"x-cp1254":return"windows-1254";case"cp1255":case"windows-1255":case"x-cp1255":return"windows-1255";case"cp1256":case"windows-1256":case"x-cp1256":return"windows-1256";case"cp1257":case"windows-1257":case"x-cp1257":return"windows-1257";case"cp1258":case"windows-1258":case"x-cp1258":return"windows-1258";case"x-mac-cyrillic":case"x-mac-ukrainian":return"x-mac-cyrillic";case"chinese":case"csgb2312":case"csiso58gb231280":case"gb2312":case"gb_2312":case"gb_2312-80":case"gbk":case"iso-ir-58":case"x-gbk":return"GBK";case"gb18030":return"gb18030";case"big5":case"big5-hkscs":case"cn-big5":case"csbig5":case"x-x-big5":return"Big5";case"cseucpkdfmtjapanese":case"euc-jp":case"x-euc-jp":return"EUC-JP";case"csiso2022jp":case"iso-2022-jp":return"ISO-2022-JP";case"csshiftjis":case"ms932":case"ms_kanji":case"shift-jis":case"shift_jis":case"sjis":case"windows-31j":case"x-sjis":return"Shift_JIS";case"cseuckr":case"csksc56011987":case"euc-kr":case"iso-ir-149":case"korean":case"ks_c_5601-1987":case"ks_c_5601-1989":case"ksc5601":case"ksc_5601":case"windows-949":return"EUC-KR";case"csiso2022kr":case"hz-gb-2312":case"iso-2022-cn":case"iso-2022-cn-ext":case"iso-2022-kr":case"replacement":return"replacement";case"unicodefffe":case"utf-16be":return"UTF-16BE";case"csunicode":case"iso-10646-ucs-2":case"ucs-2":case"unicode":case"unicodefeff":case"utf-16":case"utf-16le":return"UTF-16LE";case"x-user-defined":return"x-user-defined";default:return"failure"}}mh.exports={getEncoding:MR}});var Uh=f((Wx,Mh)=>{"use strict";var{kState:Qr,kError:Zc,kResult:kh,kAborted:Bn,kLastProgressEventFired:_c}=Oc(),{ProgressEvent:UR}=yh(),{getEncoding:bh}=Dh(),{serializeAMimeType:LR,parseMIMEType:Fh}=ue(),{types:xR}=d("node:util"),{StringDecoder:Rh}=d("string_decoder"),{btoa:Nh}=d("node:buffer"),TR={enumerable:!0,writable:!1,configurable:!1};function YR(e,A,t,r){if(e[Qr]==="loading")throw new DOMException("Invalid state","InvalidStateError");e[Qr]="loading",e[kh]=null,e[Zc]=null;let s=A.stream().getReader(),i=[],o=s.read(),a=!0;(async()=>{for(;!e[Bn];)try{let{done:c,value:g}=await o;if(a&&!e[Bn]&&queueMicrotask(()=>{VA("loadstart",e)}),a=!1,!c&&xR.isUint8Array(g))i.push(g),(e[_c]===void 0||Date.now()-e[_c]>=50)&&!e[Bn]&&(e[_c]=Date.now(),queueMicrotask(()=>{VA("progress",e)})),o=s.read();else if(c){queueMicrotask(()=>{e[Qr]="done";try{let l=GR(i,t,A.type,r);if(e[Bn])return;e[kh]=l,VA("load",e)}catch(l){e[Zc]=l,VA("error",e)}e[Qr]!=="loading"&&VA("loadend",e)});break}}catch(c){if(e[Bn])return;queueMicrotask(()=>{e[Qr]="done",e[Zc]=c,VA("error",e),e[Qr]!=="loading"&&VA("loadend",e)});break}})()}function VA(e,A){let t=new UR(e,{bubbles:!1,cancelable:!1});A.dispatchEvent(t)}function GR(e,A,t,r){switch(A){case"DataURL":{let n="data:",s=Fh(t||"application/octet-stream");s!=="failure"&&(n+=LR(s)),n+=";base64,";let i=new Rh("latin1");for(let o of e)n+=Nh(i.write(o));return n+=Nh(i.end()),n}case"Text":{let n="failure";if(r&&(n=bh(r)),n==="failure"&&t){let s=Fh(t);s!=="failure"&&(n=bh(s.parameters.get("charset")))}return n==="failure"&&(n="UTF-8"),JR(e,n)}case"ArrayBuffer":return Sh(e).buffer;case"BinaryString":{let n="",s=new Rh("latin1");for(let i of e)n+=s.write(i);return n+=s.end(),n}}}function JR(e,A){let t=Sh(e),r=HR(t),n=0;r!==null&&(A=r,n=r==="UTF-8"?3:2);let s=t.slice(n);return new TextDecoder(A).decode(s)}function HR(e){let[A,t,r]=e;return A===239&&t===187&&r===191?"UTF-8":A===254&&t===255?"UTF-16BE":A===255&&t===254?"UTF-16LE":null}function Sh(e){let A=e.reduce((r,n)=>r+n.byteLength,0),t=0;return e.reduce((r,n)=>(r.set(n,t),t+=n.byteLength,r),new Uint8Array(A))}Mh.exports={staticPropertyDescriptors:TR,readOperation:YR,fireAProgressEvent:VA}});var Yh=f((Px,Th)=>{"use strict";var{staticPropertyDescriptors:Er,readOperation:li,fireAProgressEvent:Lh}=Uh(),{kState:ht,kError:xh,kResult:Qi,kEvents:H,kAborted:vR}=Oc(),{webidl:W}=oe(),{kEnumerableProperty:Ce}=L(),Ze=class e extends EventTarget{constructor(){super(),this[ht]="empty",this[Qi]=null,this[xh]=null,this[H]={loadend:null,error:null,abort:null,load:null,progress:null,loadstart:null}}readAsArrayBuffer(A){W.brandCheck(this,e),W.argumentLengthCheck(arguments,1,"FileReader.readAsArrayBuffer"),A=W.converters.Blob(A,{strict:!1}),li(this,A,"ArrayBuffer")}readAsBinaryString(A){W.brandCheck(this,e),W.argumentLengthCheck(arguments,1,"FileReader.readAsBinaryString"),A=W.converters.Blob(A,{strict:!1}),li(this,A,"BinaryString")}readAsText(A,t=void 0){W.brandCheck(this,e),W.argumentLengthCheck(arguments,1,"FileReader.readAsText"),A=W.converters.Blob(A,{strict:!1}),t!==void 0&&(t=W.converters.DOMString(t,"FileReader.readAsText","encoding")),li(this,A,"Text",t)}readAsDataURL(A){W.brandCheck(this,e),W.argumentLengthCheck(arguments,1,"FileReader.readAsDataURL"),A=W.converters.Blob(A,{strict:!1}),li(this,A,"DataURL")}abort(){if(this[ht]==="empty"||this[ht]==="done"){this[Qi]=null;return}this[ht]==="loading"&&(this[ht]="done",this[Qi]=null),this[vR]=!0,Lh("abort",this),this[ht]!=="loading"&&Lh("loadend",this)}get readyState(){switch(W.brandCheck(this,e),this[ht]){case"empty":return this.EMPTY;case"loading":return this.LOADING;case"done":return this.DONE}}get result(){return W.brandCheck(this,e),this[Qi]}get error(){return W.brandCheck(this,e),this[xh]}get onloadend(){return W.brandCheck(this,e),this[H].loadend}set onloadend(A){W.brandCheck(this,e),this[H].loadend&&this.removeEventListener("loadend",this[H].loadend),typeof A=="function"?(this[H].loadend=A,this.addEventListener("loadend",A)):this[H].loadend=null}get onerror(){return W.brandCheck(this,e),this[H].error}set onerror(A){W.brandCheck(this,e),this[H].error&&this.removeEventListener("error",this[H].error),typeof A=="function"?(this[H].error=A,this.addEventListener("error",A)):this[H].error=null}get onloadstart(){return W.brandCheck(this,e),this[H].loadstart}set onloadstart(A){W.brandCheck(this,e),this[H].loadstart&&this.removeEventListener("loadstart",this[H].loadstart),typeof A=="function"?(this[H].loadstart=A,this.addEventListener("loadstart",A)):this[H].loadstart=null}get onprogress(){return W.brandCheck(this,e),this[H].progress}set onprogress(A){W.brandCheck(this,e),this[H].progress&&this.removeEventListener("progress",this[H].progress),typeof A=="function"?(this[H].progress=A,this.addEventListener("progress",A)):this[H].progress=null}get onload(){return W.brandCheck(this,e),this[H].load}set onload(A){W.brandCheck(this,e),this[H].load&&this.removeEventListener("load",this[H].load),typeof A=="function"?(this[H].load=A,this.addEventListener("load",A)):this[H].load=null}get onabort(){return W.brandCheck(this,e),this[H].abort}set onabort(A){W.brandCheck(this,e),this[H].abort&&this.removeEventListener("abort",this[H].abort),typeof A=="function"?(this[H].abort=A,this.addEventListener("abort",A)):this[H].abort=null}};Ze.EMPTY=Ze.prototype.EMPTY=0;Ze.LOADING=Ze.prototype.LOADING=1;Ze.DONE=Ze.prototype.DONE=2;Object.defineProperties(Ze.prototype,{EMPTY:Er,LOADING:Er,DONE:Er,readAsArrayBuffer:Ce,readAsBinaryString:Ce,readAsText:Ce,readAsDataURL:Ce,abort:Ce,readyState:Ce,result:Ce,error:Ce,onloadstart:Ce,onprogress:Ce,onload:Ce,onabort:Ce,onerror:Ce,onloadend:Ce,[Symbol.toStringTag]:{value:"FileReader",writable:!1,enumerable:!1,configurable:!0}});Object.defineProperties(Ze,{EMPTY:Er,LOADING:Er,DONE:Er});Th.exports={FileReader:Ze}});var Ei=f((Ox,Gh)=>{"use strict";Gh.exports={kConstruct:_().kConstruct}});var vh=f((zx,Hh)=>{"use strict";var VR=d("node:assert"),{URLSerializer:Jh}=ue(),{isValidHeaderName:qR}=pe();function WR(e,A,t=!1){let r=Jh(e,t),n=Jh(A,t);return r===n}function PR(e){VR(e!==null);let A=[];for(let t of e.split(","))t=t.trim(),qR(t)&&A.push(t);return A}Hh.exports={urlEquals:WR,getFieldValues:PR}});var Wh=f((Zx,qh)=>{"use strict";var{kConstruct:OR}=Ei(),{urlEquals:zR,getFieldValues:Kc}=vh(),{kEnumerableProperty:Ct,isDisturbed:ZR}=L(),{webidl:k}=oe(),{Response:_R,cloneResponse:KR,fromInnerResponse:XR}=ln(),{Request:wA,fromInnerRequest:jR}=lr(),{kState:_e}=RA(),{fetching:$R}=En(),{urlIsHttpHttpsScheme:Bi,createDeferredPromise:Br,readAllBytes:eN}=pe(),Xc=d("node:assert"),ui=class e{#e;constructor(){arguments[0]!==OR&&k.illegalConstructor(),k.util.markAsUncloneable(this),this.#e=arguments[1]}async match(A,t={}){k.brandCheck(this,e);let r="Cache.match";k.argumentLengthCheck(arguments,1,r),A=k.converters.RequestInfo(A,r,"request"),t=k.converters.CacheQueryOptions(t,r,"options");let n=this.#n(A,t,1);if(n.length!==0)return n[0]}async matchAll(A=void 0,t={}){k.brandCheck(this,e);let r="Cache.matchAll";return A!==void 0&&(A=k.converters.RequestInfo(A,r,"request")),t=k.converters.CacheQueryOptions(t,r,"options"),this.#n(A,t)}async add(A){k.brandCheck(this,e);let t="Cache.add";k.argumentLengthCheck(arguments,1,t),A=k.converters.RequestInfo(A,t,"request");let r=[A];return await this.addAll(r)}async addAll(A){k.brandCheck(this,e);let t="Cache.addAll";k.argumentLengthCheck(arguments,1,t);let r=[],n=[];for(let Q of A){if(Q===void 0)throw k.errors.conversionFailed({prefix:t,argument:"Argument 1",types:["undefined is not allowed"]});if(Q=k.converters.RequestInfo(Q),typeof Q=="string")continue;let B=Q[_e];if(!Bi(B.url)||B.method!=="GET")throw k.errors.exception({header:t,message:"Expected http/s scheme when method is not GET."})}let s=[];for(let Q of A){let B=new wA(Q)[_e];if(!Bi(B.url))throw k.errors.exception({header:t,message:"Expected http/s scheme."});B.initiator="fetch",B.destination="subresource",n.push(B);let E=Br();s.push($R({request:B,processResponse(I){if(I.type==="error"||I.status===206||I.status<200||I.status>299)E.reject(k.errors.exception({header:"Cache.addAll",message:"Received an invalid status code or the request failed."}));else if(I.headersList.contains("vary")){let h=Kc(I.headersList.get("vary"));for(let u of h)if(u==="*"){E.reject(k.errors.exception({header:"Cache.addAll",message:"invalid vary field value"}));for(let C of s)C.abort();return}}},processResponseEndOfBody(I){if(I.aborted){E.reject(new DOMException("aborted","AbortError"));return}E.resolve(I)}})),r.push(E.promise)}let o=await Promise.all(r),a=[],c=0;for(let Q of o){let B={type:"put",request:n[c],response:Q};a.push(B),c++}let g=Br(),l=null;try{this.#A(a)}catch(Q){l=Q}return queueMicrotask(()=>{l===null?g.resolve(void 0):g.reject(l)}),g.promise}async put(A,t){k.brandCheck(this,e);let r="Cache.put";k.argumentLengthCheck(arguments,2,r),A=k.converters.RequestInfo(A,r,"request"),t=k.converters.Response(t,r,"response");let n=null;if(A instanceof wA?n=A[_e]:n=new wA(A)[_e],!Bi(n.url)||n.method!=="GET")throw k.errors.exception({header:r,message:"Expected an http/s scheme when method is not GET"});let s=t[_e];if(s.status===206)throw k.errors.exception({header:r,message:"Got 206 status"});if(s.headersList.contains("vary")){let B=Kc(s.headersList.get("vary"));for(let E of B)if(E==="*")throw k.errors.exception({header:r,message:"Got * vary field value"})}if(s.body&&(ZR(s.body.stream)||s.body.stream.locked))throw k.errors.exception({header:r,message:"Response body is locked or disturbed"});let i=KR(s),o=Br();if(s.body!=null){let E=s.body.stream.getReader();eN(E).then(o.resolve,o.reject)}else o.resolve(void 0);let a=[],c={type:"put",request:n,response:i};a.push(c);let g=await o.promise;i.body!=null&&(i.body.source=g);let l=Br(),Q=null;try{this.#A(a)}catch(B){Q=B}return queueMicrotask(()=>{Q===null?l.resolve():l.reject(Q)}),l.promise}async delete(A,t={}){k.brandCheck(this,e);let r="Cache.delete";k.argumentLengthCheck(arguments,1,r),A=k.converters.RequestInfo(A,r,"request"),t=k.converters.CacheQueryOptions(t,r,"options");let n=null;if(A instanceof wA){if(n=A[_e],n.method!=="GET"&&!t.ignoreMethod)return!1}else Xc(typeof A=="string"),n=new wA(A)[_e];let s=[],i={type:"delete",request:n,options:t};s.push(i);let o=Br(),a=null,c;try{c=this.#A(s)}catch(g){a=g}return queueMicrotask(()=>{a===null?o.resolve(!!c?.length):o.reject(a)}),o.promise}async keys(A=void 0,t={}){k.brandCheck(this,e);let r="Cache.keys";A!==void 0&&(A=k.converters.RequestInfo(A,r,"request")),t=k.converters.CacheQueryOptions(t,r,"options");let n=null;if(A!==void 0)if(A instanceof wA){if(n=A[_e],n.method!=="GET"&&!t.ignoreMethod)return[]}else typeof A=="string"&&(n=new wA(A)[_e]);let s=Br(),i=[];if(A===void 0)for(let o of this.#e)i.push(o[0]);else{let o=this.#t(n,t);for(let a of o)i.push(a[0])}return queueMicrotask(()=>{let o=[];for(let a of i){let c=jR(a,new AbortController().signal,"immutable");o.push(c)}s.resolve(Object.freeze(o))}),s.promise}#A(A){let t=this.#e,r=[...t],n=[],s=[];try{for(let i of A){if(i.type!=="delete"&&i.type!=="put")throw k.errors.exception({header:"Cache.#batchCacheOperations",message:'operation type does not match "delete" or "put"'});if(i.type==="delete"&&i.response!=null)throw k.errors.exception({header:"Cache.#batchCacheOperations",message:"delete operation should not have an associated response"});if(this.#t(i.request,i.options,n).length)throw new DOMException("???","InvalidStateError");let o;if(i.type==="delete"){if(o=this.#t(i.request,i.options),o.length===0)return[];for(let a of o){let c=t.indexOf(a);Xc(c!==-1),t.splice(c,1)}}else if(i.type==="put"){if(i.response==null)throw k.errors.exception({header:"Cache.#batchCacheOperations",message:"put operation should have an associated response"});let a=i.request;if(!Bi(a.url))throw k.errors.exception({header:"Cache.#batchCacheOperations",message:"expected http or https scheme"});if(a.method!=="GET")throw k.errors.exception({header:"Cache.#batchCacheOperations",message:"not get method"});if(i.options!=null)throw k.errors.exception({header:"Cache.#batchCacheOperations",message:"options must not be defined"});o=this.#t(i.request);for(let c of o){let g=t.indexOf(c);Xc(g!==-1),t.splice(g,1)}t.push([i.request,i.response]),n.push([i.request,i.response])}s.push([i.request,i.response])}return s}catch(i){throw this.#e.length=0,this.#e=r,i}}#t(A,t,r){let n=[],s=r??this.#e;for(let i of s){let[o,a]=i;this.#s(A,o,a,t)&&n.push(i)}return n}#s(A,t,r=null,n){let s=new URL(A.url),i=new URL(t.url);if(n?.ignoreSearch&&(i.search="",s.search=""),!zR(s,i,!0))return!1;if(r==null||n?.ignoreVary||!r.headersList.contains("vary"))return!0;let o=Kc(r.headersList.get("vary"));for(let a of o){if(a==="*")return!1;let c=t.headersList.get(a),g=A.headersList.get(a);if(c!==g)return!1}return!0}#n(A,t,r=1/0){let n=null;if(A!==void 0)if(A instanceof wA){if(n=A[_e],n.method!=="GET"&&!t.ignoreMethod)return[]}else typeof A=="string"&&(n=new wA(A)[_e]);let s=[];if(A===void 0)for(let o of this.#e)s.push(o[1]);else{let o=this.#t(n,t);for(let a of o)s.push(a[1])}let i=[];for(let o of s){let a=XR(o,"immutable");if(i.push(a.clone()),i.length>=r)break}return Object.freeze(i)}};Object.defineProperties(ui.prototype,{[Symbol.toStringTag]:{value:"Cache",configurable:!0},match:Ct,matchAll:Ct,add:Ct,addAll:Ct,put:Ct,delete:Ct,keys:Ct});var Vh=[{key:"ignoreSearch",converter:k.converters.boolean,defaultValue:()=>!1},{key:"ignoreMethod",converter:k.converters.boolean,defaultValue:()=>!1},{key:"ignoreVary",converter:k.converters.boolean,defaultValue:()=>!1}];k.converters.CacheQueryOptions=k.dictionaryConverter(Vh);k.converters.MultiCacheQueryOptions=k.dictionaryConverter([...Vh,{key:"cacheName",converter:k.converters.DOMString}]);k.converters.Response=k.interfaceConverter(_R);k.converters["sequence<RequestInfo>"]=k.sequenceConverter(k.converters.RequestInfo);qh.exports={Cache:ui}});var Oh=f((_x,Ph)=>{"use strict";var{kConstruct:un}=Ei(),{Cache:Ii}=Wh(),{webidl:ge}=oe(),{kEnumerableProperty:In}=L(),hi=class e{#e=new Map;constructor(){arguments[0]!==un&&ge.illegalConstructor(),ge.util.markAsUncloneable(this)}async match(A,t={}){if(ge.brandCheck(this,e),ge.argumentLengthCheck(arguments,1,"CacheStorage.match"),A=ge.converters.RequestInfo(A),t=ge.converters.MultiCacheQueryOptions(t),t.cacheName!=null){if(this.#e.has(t.cacheName)){let r=this.#e.get(t.cacheName);return await new Ii(un,r).match(A,t)}}else for(let r of this.#e.values()){let s=await new Ii(un,r).match(A,t);if(s!==void 0)return s}}async has(A){ge.brandCheck(this,e);let t="CacheStorage.has";return ge.argumentLengthCheck(arguments,1,t),A=ge.converters.DOMString(A,t,"cacheName"),this.#e.has(A)}async open(A){ge.brandCheck(this,e);let t="CacheStorage.open";if(ge.argumentLengthCheck(arguments,1,t),A=ge.converters.DOMString(A,t,"cacheName"),this.#e.has(A)){let n=this.#e.get(A);return new Ii(un,n)}let r=[];return this.#e.set(A,r),new Ii(un,r)}async delete(A){ge.brandCheck(this,e);let t="CacheStorage.delete";return ge.argumentLengthCheck(arguments,1,t),A=ge.converters.DOMString(A,t,"cacheName"),this.#e.delete(A)}async keys(){return ge.brandCheck(this,e),[...this.#e.keys()]}};Object.defineProperties(hi.prototype,{[Symbol.toStringTag]:{value:"CacheStorage",configurable:!0},match:In,has:In,open:In,delete:In,keys:In});Ph.exports={CacheStorage:hi}});var Zh=f((Kx,zh)=>{"use strict";zh.exports={maxAttributeValueSize:1024,maxNameValuePairSize:4096}});var eg=f((Xx,jh)=>{"use strict";function AN(e){for(let A=0;A<e.length;++A){let t=e.charCodeAt(A);if(t>=0&&t<=8||t>=10&&t<=31||t===127)return!0}return!1}function jc(e){for(let A=0;A<e.length;++A){let t=e.charCodeAt(A);if(t<33||t>126||t===34||t===40||t===41||t===60||t===62||t===64||t===44||t===59||t===58||t===92||t===47||t===91||t===93||t===63||t===61||t===123||t===125)throw new Error("Invalid cookie name")}}function $c(e){let A=e.length,t=0;if(e[0]==='"'){if(A===1||e[A-1]!=='"')throw new Error("Invalid cookie value");--A,++t}for(;t<A;){let r=e.charCodeAt(t++);if(r<33||r>126||r===34||r===44||r===59||r===92)throw new Error("Invalid cookie value")}}function Kh(e){for(let A=0;A<e.length;++A){let t=e.charCodeAt(A);if(t<32||t>126||t===59)throw new Error("Invalid cookie path")}}function _h(e){return e>=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122}function tN(e){if(e===" ")return;if(e.length>255)throw new Error("Invalid cookie domain");let A=0;for(let t=0;t<e.length;++t){let r=e.charCodeAt(t);if(r===46){if(A===0)throw new Error("Invalid cookie domain");if(e.charCodeAt(t-1)===45)throw new Error("Invalid cookie domain");A=0;continue}if(A===0&&!_h(r))throw new Error("Invalid cookie domain");if(!_h(r)&&r!==45)throw new Error("Invalid cookie domain");if(++A>63)throw new Error("Invalid cookie domain")}if(A===0||e.charCodeAt(e.length-1)===45)throw new Error("Invalid cookie domain")}var rN=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],nN=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Ci=Array(61).fill(0).map((e,A)=>A.toString().padStart(2,"0"));function Xh(e){return typeof e=="number"&&(e=new Date(e)),`${rN[e.getUTCDay()]}, ${Ci[e.getUTCDate()]} ${nN[e.getUTCMonth()]} ${e.getUTCFullYear()} ${Ci[e.getUTCHours()]}:${Ci[e.getUTCMinutes()]}:${Ci[e.getUTCSeconds()]} GMT`}function sN(e){if(e<0)throw new Error("Invalid cookie max-age")}function iN(e){if(e.name.length===0)return null;jc(e.name),$c(e.value);let A=[`${e.name}=${e.value}`];e.name.startsWith("__Secure-")&&(e.secure=!0),e.name.startsWith("__Host-")&&(e.secure=!0,e.domain=null,e.path="/"),e.secure&&A.push("Secure"),e.httpOnly&&A.push("HttpOnly"),typeof e.maxAge=="number"&&(sN(e.maxAge),A.push(`Max-Age=${e.maxAge}`)),e.domain&&(tN(e.domain),A.push(`Domain=${e.domain}`)),e.path&&(Kh(e.path),A.push(`Path=${e.path}`)),e.expires&&e.expires.toString()!=="Invalid Date"&&A.push(`Expires=${Xh(e.expires)}`),e.sameSite&&A.push(`SameSite=${e.sameSite}`);for(let t of e.unparsed){if(!t.includes("="))throw new Error("Invalid unparsed");let[r,...n]=t.split("="),s=r.trim(),i=n.join("=");jc(s),$c(i),A.push(`${s}=${i}`)}return A.join("; ")}jh.exports={isCTLExcludingHtab:AN,validateCookieName:jc,validateCookiePath:Kh,validateCookieValue:$c,toIMFDate:Xh,stringify:iN}});var eC=f((jx,$h)=>{"use strict";var{maxNameValuePairSize:oN,maxAttributeValueSize:aN}=Zh(),{isCTLExcludingHtab:cN}=eg(),{collectASequenceOfCodePointsFast:di}=ue(),gN=d("node:assert");function lN(e){if(cN(e))return null;let A="",t="",r="",n="";if(e.includes(";")){let s={position:0};A=di(";",e,s),t=e.slice(s.position)}else A=e;if(!A.includes("="))n=A;else{let s={position:0};r=di("=",A,s),n=A.slice(s.position+1)}return r=r.trim(),n=n.trim(),r.length+n.length>oN?null:{name:r,value:n,...ur(t)}}function ur(e,A={}){if(e.length===0)return A;gN(e[0]===";"),e=e.slice(1);let t="";e.includes(";")?(t=di(";",e,{position:0}),e=e.slice(t.length)):(t=e,e="");let r="",n="";if(t.includes("=")){let i={position:0};r=di("=",t,i),n=t.slice(i.position+1)}else r=t;if(r=r.trim(),n=n.trim(),n.length>aN)return ur(e,A);let s=r.toLowerCase();if(s==="expires"){let i=new Date(n);A.expires=i}else if(s==="max-age"){let i=n.charCodeAt(0);if((i<48||i>57)&&n[0]!=="-"||!/^\d+$/.test(n))return ur(e,A);let o=Number(n);A.maxAge=o}else if(s==="domain"){let i=n;i[0]==="."&&(i=i.slice(1)),i=i.toLowerCase(),A.domain=i}else if(s==="path"){let i="";n.length===0||n[0]!=="/"?i="/":i=n,A.path=i}else if(s==="secure")A.secure=!0;else if(s==="httponly")A.httpOnly=!0;else if(s==="samesite"){let i=n.toLowerCase();i==="none"?A.sameSite="None":i==="strict"?A.sameSite="Strict":i==="lax"&&(A.sameSite="Lax")}else A.unparsed??=[],A.unparsed.push(`${r}=${n}`);return ur(e,A)}$h.exports={parseSetCookie:lN,parseUnparsedAttributes:ur}});var rC=f(($x,tC)=>{"use strict";var{parseSetCookie:QN}=eC(),{stringify:EN}=eg(),{webidl:T}=oe(),{Headers:fi}=Et();function BN(e){T.argumentLengthCheck(arguments,1,"getCookies"),T.brandCheck(e,fi,{strict:!1});let A=e.get("cookie"),t={};if(!A)return t;for(let r of A.split(";")){let[n,...s]=r.split("=");t[n.trim()]=s.join("=")}return t}function uN(e,A,t){T.brandCheck(e,fi,{strict:!1});let r="deleteCookie";T.argumentLengthCheck(arguments,2,r),A=T.converters.DOMString(A,r,"name"),t=T.converters.DeleteCookieAttributes(t),AC(e,{name:A,value:"",expires:new Date(0),...t})}function IN(e){T.argumentLengthCheck(arguments,1,"getSetCookies"),T.brandCheck(e,fi,{strict:!1});let A=e.getSetCookie();return A?A.map(t=>QN(t)):[]}function AC(e,A){T.argumentLengthCheck(arguments,2,"setCookie"),T.brandCheck(e,fi,{strict:!1}),A=T.converters.Cookie(A);let t=EN(A);t&&e.append("Set-Cookie",t)}T.converters.DeleteCookieAttributes=T.dictionaryConverter([{converter:T.nullableConverter(T.converters.DOMString),key:"path",defaultValue:()=>null},{converter:T.nullableConverter(T.converters.DOMString),key:"domain",defaultValue:()=>null}]);T.converters.Cookie=T.dictionaryConverter([{converter:T.converters.DOMString,key:"name"},{converter:T.converters.DOMString,key:"value"},{converter:T.nullableConverter(e=>typeof e=="number"?T.converters["unsigned long long"](e):new Date(e)),key:"expires",defaultValue:()=>null},{converter:T.nullableConverter(T.converters["long long"]),key:"maxAge",defaultValue:()=>null},{converter:T.nullableConverter(T.converters.DOMString),key:"domain",defaultValue:()=>null},{converter:T.nullableConverter(T.converters.DOMString),key:"path",defaultValue:()=>null},{converter:T.nullableConverter(T.converters.boolean),key:"secure",defaultValue:()=>null},{converter:T.nullableConverter(T.converters.boolean),key:"httpOnly",defaultValue:()=>null},{converter:T.converters.USVString,key:"sameSite",allowedValues:["Strict","Lax","None"]},{converter:T.sequenceConverter(T.converters.DOMString),key:"unparsed",defaultValue:()=>new Array(0)}]);tC.exports={getCookies:BN,deleteCookie:uN,getSetCookies:IN,setCookie:AC}});var hr=f((eT,sC)=>{"use strict";var{webidl:D}=oe(),{kEnumerableProperty:de}=L(),{kConstruct:nC}=_(),{MessagePort:hN}=d("node:worker_threads"),Ir=class e extends Event{#e;constructor(A,t={}){if(A===nC){super(arguments[1],arguments[2]),D.util.markAsUncloneable(this);return}let r="MessageEvent constructor";D.argumentLengthCheck(arguments,1,r),A=D.converters.DOMString(A,r,"type"),t=D.converters.MessageEventInit(t,r,"eventInitDict"),super(A,t),this.#e=t,D.util.markAsUncloneable(this)}get data(){return D.brandCheck(this,e),this.#e.data}get origin(){return D.brandCheck(this,e),this.#e.origin}get lastEventId(){return D.brandCheck(this,e),this.#e.lastEventId}get source(){return D.brandCheck(this,e),this.#e.source}get ports(){return D.brandCheck(this,e),Object.isFrozen(this.#e.ports)||Object.freeze(this.#e.ports),this.#e.ports}initMessageEvent(A,t=!1,r=!1,n=null,s="",i="",o=null,a=[]){return D.brandCheck(this,e),D.argumentLengthCheck(arguments,1,"MessageEvent.initMessageEvent"),new e(A,{bubbles:t,cancelable:r,data:n,origin:s,lastEventId:i,source:o,ports:a})}static createFastMessageEvent(A,t){let r=new e(nC,A,t);return r.#e=t,r.#e.data??=null,r.#e.origin??="",r.#e.lastEventId??="",r.#e.source??=null,r.#e.ports??=[],r}},{createFastMessageEvent:CN}=Ir;delete Ir.createFastMessageEvent;var wi=class e extends Event{#e;constructor(A,t={}){let r="CloseEvent constructor";D.argumentLengthCheck(arguments,1,r),A=D.converters.DOMString(A,r,"type"),t=D.converters.CloseEventInit(t),super(A,t),this.#e=t,D.util.markAsUncloneable(this)}get wasClean(){return D.brandCheck(this,e),this.#e.wasClean}get code(){return D.brandCheck(this,e),this.#e.code}get reason(){return D.brandCheck(this,e),this.#e.reason}},pi=class e extends Event{#e;constructor(A,t){let r="ErrorEvent constructor";D.argumentLengthCheck(arguments,1,r),super(A,t),D.util.markAsUncloneable(this),A=D.converters.DOMString(A,r,"type"),t=D.converters.ErrorEventInit(t??{}),this.#e=t}get message(){return D.brandCheck(this,e),this.#e.message}get filename(){return D.brandCheck(this,e),this.#e.filename}get lineno(){return D.brandCheck(this,e),this.#e.lineno}get colno(){return D.brandCheck(this,e),this.#e.colno}get error(){return D.brandCheck(this,e),this.#e.error}};Object.defineProperties(Ir.prototype,{[Symbol.toStringTag]:{value:"MessageEvent",configurable:!0},data:de,origin:de,lastEventId:de,source:de,ports:de,initMessageEvent:de});Object.defineProperties(wi.prototype,{[Symbol.toStringTag]:{value:"CloseEvent",configurable:!0},reason:de,code:de,wasClean:de});Object.defineProperties(pi.prototype,{[Symbol.toStringTag]:{value:"ErrorEvent",configurable:!0},message:de,filename:de,lineno:de,colno:de,error:de});D.converters.MessagePort=D.interfaceConverter(hN);D.converters["sequence<MessagePort>"]=D.sequenceConverter(D.converters.MessagePort);var Ag=[{key:"bubbles",converter:D.converters.boolean,defaultValue:()=>!1},{key:"cancelable",converter:D.converters.boolean,defaultValue:()=>!1},{key:"composed",converter:D.converters.boolean,defaultValue:()=>!1}];D.converters.MessageEventInit=D.dictionaryConverter([...Ag,{key:"data",converter:D.converters.any,defaultValue:()=>null},{key:"origin",converter:D.converters.USVString,defaultValue:()=>""},{key:"lastEventId",converter:D.converters.DOMString,defaultValue:()=>""},{key:"source",converter:D.nullableConverter(D.converters.MessagePort),defaultValue:()=>null},{key:"ports",converter:D.converters["sequence<MessagePort>"],defaultValue:()=>new Array(0)}]);D.converters.CloseEventInit=D.dictionaryConverter([...Ag,{key:"wasClean",converter:D.converters.boolean,defaultValue:()=>!1},{key:"code",converter:D.converters["unsigned short"],defaultValue:()=>0},{key:"reason",converter:D.converters.USVString,defaultValue:()=>""}]);D.converters.ErrorEventInit=D.dictionaryConverter([...Ag,{key:"message",converter:D.converters.DOMString,defaultValue:()=>""},{key:"filename",converter:D.converters.USVString,defaultValue:()=>""},{key:"lineno",converter:D.converters["unsigned long"],defaultValue:()=>0},{key:"colno",converter:D.converters["unsigned long"],defaultValue:()=>0},{key:"error",converter:D.converters.any}]);sC.exports={MessageEvent:Ir,CloseEvent:wi,ErrorEvent:pi,createFastMessageEvent:CN}});var dt=f((AT,iC)=>{"use strict";var dN="258EAFA5-E914-47DA-95CA-C5AB0DC85B11",fN={enumerable:!0,writable:!1,configurable:!1},wN={CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3},pN={NOT_SENT:0,PROCESSING:1,SENT:2},yN={CONTINUATION:0,TEXT:1,BINARY:2,CLOSE:8,PING:9,PONG:10},mN=2**16-1,DN={INFO:0,PAYLOADLENGTH_16:2,PAYLOADLENGTH_64:3,READ_DATA:4},kN=Buffer.allocUnsafe(0),bN={string:1,typedArray:2,arrayBuffer:3,blob:4};iC.exports={uid:dN,sentCloseFrameState:pN,staticPropertyDescriptors:fN,states:wN,opcodes:yN,maxUnsigned16Bit:mN,parserStates:DN,emptyBuffer:kN,sendHints:bN}});var hn=f((tT,oC)=>{"use strict";oC.exports={kWebSocketURL:Symbol("url"),kReadyState:Symbol("ready state"),kController:Symbol("controller"),kResponse:Symbol("response"),kBinaryType:Symbol("binary type"),kSentClose:Symbol("sent close"),kReceivedClose:Symbol("received close"),kByteParser:Symbol("byte parser")}});var fn=f((rT,IC)=>{"use strict";var{kReadyState:Cn,kController:FN,kResponse:RN,kBinaryType:NN,kWebSocketURL:SN}=hn(),{states:dn,opcodes:qA}=dt(),{ErrorEvent:MN,createFastMessageEvent:UN}=hr(),{isUtf8:LN}=d("node:buffer"),{collectASequenceOfCodePointsFast:xN,removeHTTPWhitespace:aC}=ue();function TN(e){return e[Cn]===dn.CONNECTING}function YN(e){return e[Cn]===dn.OPEN}function GN(e){return e[Cn]===dn.CLOSING}function JN(e){return e[Cn]===dn.CLOSED}function tg(e,A,t=(n,s)=>new Event(n,s),r={}){let n=t(e,r);A.dispatchEvent(n)}function HN(e,A,t){if(e[Cn]!==dn.OPEN)return;let r;if(A===qA.TEXT)try{r=uC(t)}catch{gC(e,"Received invalid UTF-8 in text frame.");return}else A===qA.BINARY&&(e[NN]==="blob"?r=new Blob([t]):r=vN(t));tg("message",e,UN,{origin:e[SN].origin,data:r})}function vN(e){return e.byteLength===e.buffer.byteLength?e.buffer:e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)}function VN(e){if(e.length===0)return!1;for(let A=0;A<e.length;++A){let t=e.charCodeAt(A);if(t<33||t>126||t===34||t===40||t===41||t===44||t===47||t===58||t===59||t===60||t===61||t===62||t===63||t===64||t===91||t===92||t===93||t===123||t===125)return!1}return!0}function qN(e){return e>=1e3&&e<1015?e!==1004&&e!==1005&&e!==1006:e>=3e3&&e<=4999}function gC(e,A){let{[FN]:t,[RN]:r}=e;t.abort(),r?.socket&&!r.socket.destroyed&&r.socket.destroy(),A&&tg("error",e,(n,s)=>new MN(n,s),{error:new Error(A),message:A})}function lC(e){return e===qA.CLOSE||e===qA.PING||e===qA.PONG}function QC(e){return e===qA.CONTINUATION}function EC(e){return e===qA.TEXT||e===qA.BINARY}function WN(e){return EC(e)||QC(e)||lC(e)}function PN(e){let A={position:0},t=new Map;for(;A.position<e.length;){let r=xN(";",e,A),[n,s=""]=r.split("=");t.set(aC(n,!0,!1),aC(s,!1,!0)),A.position++}return t}function ON(e){if(e.length===0)return!1;for(let t=0;t<e.length;t++){let r=e.charCodeAt(t);if(r<48||r>57)return!1}let A=Number.parseInt(e,10);return A>=8&&A<=15}var BC=typeof process.versions.icu=="string",cC=BC?new TextDecoder("utf-8",{fatal:!0}):void 0,uC=BC?cC.decode.bind(cC):function(e){if(LN(e))return e.toString("utf-8");throw new TypeError("Invalid utf-8 received.")};IC.exports={isConnecting:TN,isEstablished:YN,isClosing:GN,isClosed:JN,fireEvent:tg,isValidSubprotocol:VN,isValidStatusCode:qN,failWebsocketConnection:gC,websocketMessageReceived:HN,utf8Decode:uC,isControlFrame:lC,isContinuationFrame:QC,isTextBinaryFrame:EC,isValidOpcode:WN,parseExtensions:PN,isValidClientWindowBits:ON}});var mi=f((nT,hC)=>{"use strict";var{maxUnsigned16Bit:zN}=dt(),yi=16386,rg,wn=null,Cr=yi;try{rg=d("node:crypto")}catch{rg={randomFillSync:function(A,t,r){for(let n=0;n<A.length;++n)A[n]=Math.random()*255|0;return A}}}function ZN(){return Cr===yi&&(Cr=0,rg.randomFillSync(wn??=Buffer.allocUnsafe(yi),0,yi)),[wn[Cr++],wn[Cr++],wn[Cr++],wn[Cr++]]}var ng=class{constructor(A){this.frameData=A}createFrame(A){let t=this.frameData,r=ZN(),n=t?.byteLength??0,s=n,i=6;n>zN?(i+=8,s=127):n>125&&(i+=2,s=126);let o=Buffer.allocUnsafe(n+i);o[0]=o[1]=0,o[0]|=128,o[0]=(o[0]&240)+A;o[i-4]=r[0],o[i-3]=r[1],o[i-2]=r[2],o[i-1]=r[3],o[1]=s,s===126?o.writeUInt16BE(n,2):s===127&&(o[2]=o[3]=0,o.writeUIntBE(n,4,6)),o[1]|=128;for(let a=0;a<n;++a)o[i+a]=t[a]^r[a&3];return o}};hC.exports={WebsocketFrameSend:ng}});var ig=f((sT,mC)=>{"use strict";var{uid:_N,states:pn,sentCloseFrameState:Di,emptyBuffer:KN,opcodes:XN}=dt(),{kReadyState:yn,kSentClose:ki,kByteParser:dC,kReceivedClose:CC,kResponse:fC}=hn(),{fireEvent:jN,failWebsocketConnection:WA,isClosing:$N,isClosed:eS,isEstablished:AS,parseExtensions:tS}=fn(),{channels:dr}=Rt(),{CloseEvent:rS}=hr(),{makeRequest:nS}=lr(),{fetching:sS}=En(),{Headers:iS,getHeadersList:oS}=Et(),{getDecodeSplit:aS}=pe(),{WebsocketFrameSend:cS}=mi(),sg;try{sg=d("node:crypto")}catch{}function gS(e,A,t,r,n,s){let i=e;i.protocol=e.protocol==="ws:"?"http:":"https:";let o=nS({urlList:[i],client:t,serviceWorkers:"none",referrer:"no-referrer",mode:"websocket",credentials:"include",cache:"no-store",redirect:"error"});if(s.headers){let l=oS(new iS(s.headers));o.headersList=l}let a=sg.randomBytes(16).toString("base64");o.headersList.append("sec-websocket-key",a),o.headersList.append("sec-websocket-version","13");for(let l of A)o.headersList.append("sec-websocket-protocol",l);return o.headersList.append("sec-websocket-extensions","permessage-deflate; client_max_window_bits"),sS({request:o,useParallelQueue:!0,dispatcher:s.dispatcher,processResponse(l){if(l.type==="error"||l.status!==101){WA(r,"Received network error or non-101 status code.");return}if(A.length!==0&&!l.headersList.get("Sec-WebSocket-Protocol")){WA(r,"Server did not respond with sent protocols.");return}if(l.headersList.get("Upgrade")?.toLowerCase()!=="websocket"){WA(r,'Server did not set Upgrade header to "websocket".');return}if(l.headersList.get("Connection")?.toLowerCase()!=="upgrade"){WA(r,'Server did not set Connection header to "upgrade".');return}let Q=l.headersList.get("Sec-WebSocket-Accept"),B=sg.createHash("sha1").update(a+_N).digest("base64");if(Q!==B){WA(r,"Incorrect hash received in Sec-WebSocket-Accept header.");return}let E=l.headersList.get("Sec-WebSocket-Extensions"),I;if(E!==null&&(I=tS(E),!I.has("permessage-deflate"))){WA(r,"Sec-WebSocket-Extensions header does not match.");return}let h=l.headersList.get("Sec-WebSocket-Protocol");if(h!==null&&!aS("sec-websocket-protocol",o.headersList).includes(h)){WA(r,"Protocol was not set in the opening handshake.");return}l.socket.on("data",wC),l.socket.on("close",pC),l.socket.on("error",yC),dr.open.hasSubscribers&&dr.open.publish({address:l.socket.address(),protocol:h,extensions:E}),n(l,I)}})}function lS(e,A,t,r){if(!($N(e)||eS(e)))if(!AS(e))WA(e,"Connection was closed before it was established."),e[yn]=pn.CLOSING;else if(e[ki]===Di.NOT_SENT){e[ki]=Di.PROCESSING;let n=new cS;A!==void 0&&t===void 0?(n.frameData=Buffer.allocUnsafe(2),n.frameData.writeUInt16BE(A,0)):A!==void 0&&t!==void 0?(n.frameData=Buffer.allocUnsafe(2+r),n.frameData.writeUInt16BE(A,0),n.frameData.write(t,2,"utf-8")):n.frameData=KN,e[fC].socket.write(n.createFrame(XN.CLOSE)),e[ki]=Di.SENT,e[yn]=pn.CLOSING}else e[yn]=pn.CLOSING}function wC(e){this.ws[dC].write(e)||this.pause()}function pC(){let{ws:e}=this,{[fC]:A}=e;A.socket.off("data",wC),A.socket.off("close",pC),A.socket.off("error",yC);let t=e[ki]===Di.SENT&&e[CC],r=1005,n="",s=e[dC].closingInfo;s&&!s.error?(r=s.code??1005,n=s.reason):e[CC]||(r=1006),e[yn]=pn.CLOSED,jN("close",e,(i,o)=>new rS(i,o),{wasClean:t,code:r,reason:n}),dr.close.hasSubscribers&&dr.close.publish({websocket:e,code:r,reason:n})}function yC(e){let{ws:A}=this;A[yn]=pn.CLOSING,dr.socketError.hasSubscribers&&dr.socketError.publish(e),this.destroy()}mC.exports={establishWebSocketConnection:gS,closeWebSocketConnection:lS}});var kC=f((iT,DC)=>{"use strict";var{createInflateRaw:QS,Z_DEFAULT_WINDOWBITS:ES}=d("node:zlib"),{isValidClientWindowBits:BS}=fn(),{MessageSizeExceededError:uS}=J(),IS=Buffer.from([0,0,255,255]),bi=Symbol("kBuffer"),mn=Symbol("kLength"),og=class{#e;#A={};#t=0;constructor(A,t){this.#A.serverNoContextTakeover=A.has("server_no_context_takeover"),this.#A.serverMaxWindowBits=A.get("server_max_window_bits"),this.#t=t.maxPayloadSize}decompress(A,t,r){if(!this.#e){let n=ES;if(this.#A.serverMaxWindowBits){if(!BS(this.#A.serverMaxWindowBits)){r(new Error("Invalid server_max_window_bits"));return}n=Number.parseInt(this.#A.serverMaxWindowBits)}try{this.#e=QS({windowBits:n})}catch(s){r(s);return}this.#e[bi]=[],this.#e[mn]=0,this.#e.on("data",s=>{if(this.#e[mn]+=s.length,this.#t>0&&this.#e[mn]>this.#t){r(new uS),this.#e.removeAllListeners(),this.#e=null;return}this.#e[bi].push(s)}),this.#e.on("error",s=>{this.#e=null,r(s)})}this.#e.write(A),t&&this.#e.write(IS),this.#e.flush(()=>{if(!this.#e)return;let n=Buffer.concat(this.#e[bi],this.#e[mn]);this.#e[bi].length=0,this.#e[mn]=0,r(null,n)})}};DC.exports={PerMessageDeflate:og}});var TC=f((oT,xC)=>{"use strict";var{Writable:hS}=d("node:stream"),CS=d("node:assert"),{parserStates:fe,opcodes:fr,states:dS,emptyBuffer:bC,sentCloseFrameState:FC}=dt(),{kReadyState:fS,kSentClose:RC,kResponse:NC,kReceivedClose:SC}=hn(),{channels:Fi}=Rt(),{isValidStatusCode:wS,isValidOpcode:pS,failWebsocketConnection:Ne,websocketMessageReceived:MC,utf8Decode:yS,isControlFrame:ag,isTextBinaryFrame:cg,isContinuationFrame:mS}=fn(),{WebsocketFrameSend:UC}=mi(),{closeWebSocketConnection:LC}=ig(),{PerMessageDeflate:DS}=kC(),{MessageSizeExceededError:gg}=J();function Dn(e,A,t){LC(e,A,t,Buffer.byteLength(t)),Ne(e,t)}var lg=class extends hS{#e=[];#A=0;#t=0;#s=!1;#n=fe.INFO;#r={};#i=[];#o;#c;#a;constructor(A,t,r={}){super(),this.ws=A,this.#o=t??new Map,this.#c=r.maxFragments??0,this.#a=r.maxPayloadSize??0,this.#o.has("permessage-deflate")&&this.#o.set("permessage-deflate",new DS(t,r))}_write(A,t,r){this.#e.push(A),this.#t+=A.length,this.#s=!0,this.run(r)}#g(){return this.#a>0&&!ag(this.#r.opcode)&&this.#r.payloadLength+this.#A>this.#a?(Dn(this.ws,1009,"Payload size exceeds maximum allowed size"),!1):!0}run(A){for(;this.#s;)if(this.#n===fe.INFO){if(this.#t<2)return A();let t=this.consume(2),r=(t[0]&128)!==0,n=t[0]&15,s=(t[1]&128)===128,i=!r&&n!==fr.CONTINUATION,o=t[1]&127,a=t[0]&64,c=t[0]&32,g=t[0]&16;if(!pS(n))return Ne(this.ws,"Invalid opcode received"),A();if(s)return Ne(this.ws,"Frame cannot be masked"),A();if(a!==0&&!this.#o.has("permessage-deflate")){Ne(this.ws,"Expected RSV1 to be clear.");return}if(c!==0||g!==0){Ne(this.ws,"RSV1, RSV2, RSV3 must be clear");return}if(i&&!cg(n)){Ne(this.ws,"Invalid frame type was fragmented.");return}if(cg(n)&&this.#i.length>0){Ne(this.ws,"Expected continuation frame");return}if(this.#r.fragmented&&i){Ne(this.ws,"Fragmented frame exceeded 125 bytes.");return}if((o>125||i)&&ag(n)){Ne(this.ws,"Control frame either too large or fragmented");return}if(mS(n)&&this.#i.length===0&&!this.#r.compressed){Ne(this.ws,"Unexpected continuation frame");return}if(o<=125){if(this.#r.payloadLength=o,this.#n=fe.READ_DATA,!this.#g())return}else o===126?this.#n=fe.PAYLOADLENGTH_16:o===127&&(this.#n=fe.PAYLOADLENGTH_64);cg(n)&&(this.#r.binaryType=n,this.#r.compressed=a!==0),this.#r.opcode=n,this.#r.masked=s,this.#r.fin=r,this.#r.fragmented=i}else if(this.#n===fe.PAYLOADLENGTH_16){if(this.#t<2)return A();let t=this.consume(2);if(this.#r.payloadLength=t.readUInt16BE(0),this.#n=fe.READ_DATA,!this.#g())return}else if(this.#n===fe.PAYLOADLENGTH_64){if(this.#t<8)return A();let t=this.consume(8),r=t.readUInt32BE(0),n=t.readUInt32BE(4);if(r!==0||n>2**31-1){Ne(this.ws,"Received payload length > 2^31 bytes.");return}if(this.#r.payloadLength=n,this.#n=fe.READ_DATA,!this.#g())return}else if(this.#n===fe.READ_DATA){if(this.#t<this.#r.payloadLength)return A();let t=this.consume(this.#r.payloadLength);if(ag(this.#r.opcode))this.#s=this.parseControlFrame(t),this.#n=fe.INFO;else if(this.#r.compressed){this.#o.get("permessage-deflate").decompress(t,this.#r.fin,(r,n)=>{if(r){let s=r instanceof gg?1009:1007;Dn(this.ws,s,r.message);return}if(this.writeFragments(n)){if(this.#a>0&&this.#A>this.#a){Dn(this.ws,1009,new gg().message);return}if(!this.#r.fin){this.#n=fe.INFO,this.#s=!0,this.run(A);return}MC(this.ws,this.#r.binaryType,this.consumeFragments()),this.#s=!0,this.#n=fe.INFO,this.run(A)}}),this.#s=!1;break}else{if(!this.writeFragments(t))return;if(this.#a>0&&this.#A>this.#a){Dn(this.ws,1009,new gg().message);return}!this.#r.fragmented&&this.#r.fin&&MC(this.ws,this.#r.binaryType,this.consumeFragments()),this.#n=fe.INFO}}}consume(A){if(A>this.#t)throw new Error("Called consume() before buffers satiated.");if(A===0)return bC;if(this.#e[0].length===A)return this.#t-=this.#e[0].length,this.#e.shift();let t=Buffer.allocUnsafe(A),r=0;for(;r!==A;){let n=this.#e[0],{length:s}=n;if(s+r===A){t.set(this.#e.shift(),r);break}else if(s+r>A){t.set(n.subarray(0,A-r),r),this.#e[0]=n.subarray(A-r);break}else t.set(this.#e.shift(),r),r+=n.length}return this.#t-=A,t}writeFragments(A){return this.#c>0&&this.#i.length===this.#c?(Dn(this.ws,1008,"Too many message fragments"),!1):(this.#A+=A.length,this.#i.push(A),!0)}consumeFragments(){let A=this.#i;if(A.length===1)return this.#A=0,A.shift();let t=Buffer.concat(A,this.#A);return this.#i=[],this.#A=0,t}parseCloseBody(A){CS(A.length!==1);let t;if(A.length>=2&&(t=A.readUInt16BE(0)),t!==void 0&&!wS(t))return{code:1002,reason:"Invalid status code",error:!0};let r=A.subarray(2);r[0]===239&&r[1]===187&&r[2]===191&&(r=r.subarray(3));try{r=yS(r)}catch{return{code:1007,reason:"Invalid UTF-8",error:!0}}return{code:t,reason:r,error:!1}}parseControlFrame(A){let{opcode:t,payloadLength:r}=this.#r;if(t===fr.CLOSE){if(r===1)return Ne(this.ws,"Received close frame with a 1-byte body."),!1;if(this.#r.closeInfo=this.parseCloseBody(A),this.#r.closeInfo.error){let{code:n,reason:s}=this.#r.closeInfo;return LC(this.ws,n,s,s.length),Ne(this.ws,s),!1}if(this.ws[RC]!==FC.SENT){let n=bC;this.#r.closeInfo.code&&(n=Buffer.allocUnsafe(2),n.writeUInt16BE(this.#r.closeInfo.code,0));let s=new UC(n);this.ws[NC].socket.write(s.createFrame(fr.CLOSE),i=>{i||(this.ws[RC]=FC.SENT)})}return this.ws[fS]=dS.CLOSING,this.ws[SC]=!0,!1}else if(t===fr.PING){if(!this.ws[SC]){let n=new UC(A);this.ws[NC].socket.write(n.createFrame(fr.PONG)),Fi.ping.hasSubscribers&&Fi.ping.publish({payload:A})}}else t===fr.PONG&&Fi.pong.hasSubscribers&&Fi.pong.publish({payload:A});return!0}get closingInfo(){return this.#r.closeInfo}};xC.exports={ByteParser:lg}});var vC=f((aT,HC)=>{"use strict";var{WebsocketFrameSend:kS}=mi(),{opcodes:YC,sendHints:wr}=dt(),bS=ha(),GC=Buffer[Symbol.species],Qg=class{#e=new bS;#A=!1;#t;constructor(A){this.#t=A}add(A,t,r){if(r!==wr.blob){let s=JC(A,r);if(!this.#A)this.#t.write(s,t);else{let i={promise:null,callback:t,frame:s};this.#e.push(i)}return}let n={promise:A.arrayBuffer().then(s=>{n.promise=null,n.frame=JC(s,r)}),callback:t,frame:null};this.#e.push(n),this.#A||this.#s()}async#s(){this.#A=!0;let A=this.#e;for(;!A.isEmpty();){let t=A.shift();t.promise!==null&&await t.promise,this.#t.write(t.frame,t.callback),t.callback=t.frame=null}this.#A=!1}};function JC(e,A){return new kS(FS(e,A)).createFrame(A===wr.string?YC.TEXT:YC.BINARY)}function FS(e,A){switch(A){case wr.string:return Buffer.from(e);case wr.arrayBuffer:case wr.blob:return new GC(e);case wr.typedArray:return new GC(e.buffer,e.byteOffset,e.byteLength)}}HC.exports={SendQueue:Qg}});var XC=f((cT,KC)=>{"use strict";var{webidl:M}=oe(),{URLSerializer:RS}=ue(),{environmentSettingsObject:VC}=pe(),{staticPropertyDescriptors:PA,states:kn,sentCloseFrameState:NS,sendHints:Ri}=dt(),{kWebSocketURL:qC,kReadyState:Eg,kController:WC,kBinaryType:Ni,kResponse:PC,kSentClose:SS,kByteParser:MS}=hn(),{isConnecting:US,isEstablished:LS,isClosing:xS,isValidSubprotocol:TS,fireEvent:OC}=fn(),{establishWebSocketConnection:YS,closeWebSocketConnection:zC}=ig(),{ByteParser:GS}=TC(),{kEnumerableProperty:Ge,isBlobLike:ZC}=L(),{getGlobalDispatcher:JS}=Ps(),{types:_C}=d("node:util"),{ErrorEvent:HS,CloseEvent:vS}=hr(),{SendQueue:VS}=vC(),Se=class e extends EventTarget{#e={open:null,error:null,close:null,message:null};#A=0;#t="";#s="";#n;constructor(A,t=[]){super(),M.util.markAsUncloneable(this);let r="WebSocket constructor";M.argumentLengthCheck(arguments,1,r);let n=M.converters["DOMString or sequence<DOMString> or WebSocketInit"](t,r,"options");A=M.converters.USVString(A,r,"url"),t=n.protocols;let s=VC.settingsObject.baseUrl,i;try{i=new URL(A,s)}catch(a){throw new DOMException(a,"SyntaxError")}if(i.protocol==="http:"?i.protocol="ws:":i.protocol==="https:"&&(i.protocol="wss:"),i.protocol!=="ws:"&&i.protocol!=="wss:")throw new DOMException(`Expected a ws: or wss: protocol, got ${i.protocol}`,"SyntaxError");if(i.hash||i.href.endsWith("#"))throw new DOMException("Got fragment","SyntaxError");if(typeof t=="string"&&(t=[t]),t.length!==new Set(t.map(a=>a.toLowerCase())).size)throw new DOMException("Invalid Sec-WebSocket-Protocol value","SyntaxError");if(t.length>0&&!t.every(a=>TS(a)))throw new DOMException("Invalid Sec-WebSocket-Protocol value","SyntaxError");this[qC]=new URL(i.href);let o=VC.settingsObject;this[WC]=YS(i,t,o,this,(a,c)=>this.#r(a,c),n),this[Eg]=e.CONNECTING,this[SS]=NS.NOT_SENT,this[Ni]="blob"}close(A=void 0,t=void 0){M.brandCheck(this,e);let r="WebSocket.close";if(A!==void 0&&(A=M.converters["unsigned short"](A,r,"code",{clamp:!0})),t!==void 0&&(t=M.converters.USVString(t,r,"reason")),A!==void 0&&A!==1e3&&(A<3e3||A>4999))throw new DOMException("invalid code","InvalidAccessError");let n=0;if(t!==void 0&&(n=Buffer.byteLength(t),n>123))throw new DOMException(`Reason must be less than 123 bytes; received ${n}`,"SyntaxError");zC(this,A,t,n)}send(A){M.brandCheck(this,e);let t="WebSocket.send";if(M.argumentLengthCheck(arguments,1,t),A=M.converters.WebSocketSendData(A,t,"data"),US(this))throw new DOMException("Sent before connected.","InvalidStateError");if(!(!LS(this)||xS(this)))if(typeof A=="string"){let r=Buffer.byteLength(A);this.#A+=r,this.#n.add(A,()=>{this.#A-=r},Ri.string)}else _C.isArrayBuffer(A)?(this.#A+=A.byteLength,this.#n.add(A,()=>{this.#A-=A.byteLength},Ri.arrayBuffer)):ArrayBuffer.isView(A)?(this.#A+=A.byteLength,this.#n.add(A,()=>{this.#A-=A.byteLength},Ri.typedArray)):ZC(A)&&(this.#A+=A.size,this.#n.add(A,()=>{this.#A-=A.size},Ri.blob))}get readyState(){return M.brandCheck(this,e),this[Eg]}get bufferedAmount(){return M.brandCheck(this,e),this.#A}get url(){return M.brandCheck(this,e),RS(this[qC])}get extensions(){return M.brandCheck(this,e),this.#s}get protocol(){return M.brandCheck(this,e),this.#t}get onopen(){return M.brandCheck(this,e),this.#e.open}set onopen(A){M.brandCheck(this,e),this.#e.open&&this.removeEventListener("open",this.#e.open),typeof A=="function"?(this.#e.open=A,this.addEventListener("open",A)):this.#e.open=null}get onerror(){return M.brandCheck(this,e),this.#e.error}set onerror(A){M.brandCheck(this,e),this.#e.error&&this.removeEventListener("error",this.#e.error),typeof A=="function"?(this.#e.error=A,this.addEventListener("error",A)):this.#e.error=null}get onclose(){return M.brandCheck(this,e),this.#e.close}set onclose(A){M.brandCheck(this,e),this.#e.close&&this.removeEventListener("close",this.#e.close),typeof A=="function"?(this.#e.close=A,this.addEventListener("close",A)):this.#e.close=null}get onmessage(){return M.brandCheck(this,e),this.#e.message}set onmessage(A){M.brandCheck(this,e),this.#e.message&&this.removeEventListener("message",this.#e.message),typeof A=="function"?(this.#e.message=A,this.addEventListener("message",A)):this.#e.message=null}get binaryType(){return M.brandCheck(this,e),this[Ni]}set binaryType(A){M.brandCheck(this,e),A!=="blob"&&A!=="arraybuffer"?this[Ni]="blob":this[Ni]=A}#r(A,t){this[PC]=A;let r=this[WC]?.dispatcher?.webSocketOptions,n=r?.maxFragments,s=r?.maxPayloadSize,i=new GS(this,t,{maxFragments:n,maxPayloadSize:s});i.on("drain",qS),i.on("error",WS.bind(this)),A.socket.ws=this,this[MS]=i,this.#n=new VS(A.socket),this[Eg]=kn.OPEN;let o=A.headersList.get("sec-websocket-extensions");o!==null&&(this.#s=o);let a=A.headersList.get("sec-websocket-protocol");a!==null&&(this.#t=a),OC("open",this)}};Se.CONNECTING=Se.prototype.CONNECTING=kn.CONNECTING;Se.OPEN=Se.prototype.OPEN=kn.OPEN;Se.CLOSING=Se.prototype.CLOSING=kn.CLOSING;Se.CLOSED=Se.prototype.CLOSED=kn.CLOSED;Object.defineProperties(Se.prototype,{CONNECTING:PA,OPEN:PA,CLOSING:PA,CLOSED:PA,url:Ge,readyState:Ge,bufferedAmount:Ge,onopen:Ge,onerror:Ge,onclose:Ge,close:Ge,onmessage:Ge,binaryType:Ge,send:Ge,extensions:Ge,protocol:Ge,[Symbol.toStringTag]:{value:"WebSocket",writable:!1,enumerable:!1,configurable:!0}});Object.defineProperties(Se,{CONNECTING:PA,OPEN:PA,CLOSING:PA,CLOSED:PA});M.converters["sequence<DOMString>"]=M.sequenceConverter(M.converters.DOMString);M.converters["DOMString or sequence<DOMString>"]=function(e,A,t){return M.util.Type(e)==="Object"&&Symbol.iterator in e?M.converters["sequence<DOMString>"](e):M.converters.DOMString(e,A,t)};M.converters.WebSocketInit=M.dictionaryConverter([{key:"protocols",converter:M.converters["DOMString or sequence<DOMString>"],defaultValue:()=>new Array(0)},{key:"dispatcher",converter:M.converters.any,defaultValue:()=>JS()},{key:"headers",converter:M.nullableConverter(M.converters.HeadersInit)}]);M.converters["DOMString or sequence<DOMString> or WebSocketInit"]=function(e){return M.util.Type(e)==="Object"&&!(Symbol.iterator in e)?M.converters.WebSocketInit(e):{protocols:M.converters["DOMString or sequence<DOMString>"](e)}};M.converters.WebSocketSendData=function(e){if(M.util.Type(e)==="Object"){if(ZC(e))return M.converters.Blob(e,{strict:!1});if(ArrayBuffer.isView(e)||_C.isArrayBuffer(e))return M.converters.BufferSource(e)}return M.converters.USVString(e)};function qS(){this.ws[PC].socket.resume()}function WS(e){let A,t;e instanceof vS?(A=e.reason,t=e.code):A=e.message,OC("error",this,()=>new HS("error",{error:e,message:A})),zC(this,t)}KC.exports={WebSocket:Se}});var Bg=f((gT,jC)=>{"use strict";function PS(e){return e.indexOf("\0")===-1}function OS(e){if(e.length===0)return!1;for(let A=0;A<e.length;A++)if(e.charCodeAt(A)<48||e.charCodeAt(A)>57)return!1;return!0}function zS(e){return new Promise(A=>{setTimeout(A,e).unref()})}jC.exports={isValidLastEventId:PS,isASCIINumber:OS,delay:zS}});var td=f((lT,Ad)=>{"use strict";var{Transform:ZS}=d("node:stream"),{isASCIINumber:$C,isValidLastEventId:ed}=Bg(),pA=[239,187,191],ug=10,Si=13,_S=58,KS=32,Ig=class extends ZS{state=null;checkBOM=!0;crlfCheck=!1;eventEndCheck=!1;buffer=null;pos=0;event={data:void 0,event:void 0,id:void 0,retry:void 0};constructor(A={}){A.readableObjectMode=!0,super(A),this.state=A.eventSourceSettings||{},A.push&&(this.push=A.push)}_transform(A,t,r){if(A.length===0){r();return}if(this.buffer?this.buffer=Buffer.concat([this.buffer,A]):this.buffer=A,this.checkBOM)switch(this.buffer.length){case 1:if(this.buffer[0]===pA[0]){r();return}this.checkBOM=!1,r();return;case 2:if(this.buffer[0]===pA[0]&&this.buffer[1]===pA[1]){r();return}this.checkBOM=!1;break;case 3:if(this.buffer[0]===pA[0]&&this.buffer[1]===pA[1]&&this.buffer[2]===pA[2]){this.buffer=Buffer.alloc(0),this.checkBOM=!1,r();return}this.checkBOM=!1;break;default:this.buffer[0]===pA[0]&&this.buffer[1]===pA[1]&&this.buffer[2]===pA[2]&&(this.buffer=this.buffer.subarray(3)),this.checkBOM=!1;break}for(;this.pos<this.buffer.length;){if(this.eventEndCheck){if(this.crlfCheck){if(this.buffer[this.pos]===ug){this.buffer=this.buffer.subarray(this.pos+1),this.pos=0,this.crlfCheck=!1;continue}this.crlfCheck=!1}if(this.buffer[this.pos]===ug||this.buffer[this.pos]===Si){this.buffer[this.pos]===Si&&(this.crlfCheck=!0),this.buffer=this.buffer.subarray(this.pos+1),this.pos=0,(this.event.data!==void 0||this.event.event||this.event.id||this.event.retry)&&this.processEvent(this.event),this.clearEvent();continue}this.eventEndCheck=!1;continue}if(this.buffer[this.pos]===ug||this.buffer[this.pos]===Si){this.buffer[this.pos]===Si&&(this.crlfCheck=!0),this.parseLine(this.buffer.subarray(0,this.pos),this.event),this.buffer=this.buffer.subarray(this.pos+1),this.pos=0,this.eventEndCheck=!0;continue}this.pos++}r()}parseLine(A,t){if(A.length===0)return;let r=A.indexOf(_S);if(r===0)return;let n="",s="";if(r!==-1){n=A.subarray(0,r).toString("utf8");let i=r+1;A[i]===KS&&++i,s=A.subarray(i).toString("utf8")}else n=A.toString("utf8"),s="";switch(n){case"data":t[n]===void 0?t[n]=s:t[n]+=`
45
- ${s}`;break;case"retry":$C(s)&&(t[n]=s);break;case"id":ed(s)&&(t[n]=s);break;case"event":s.length>0&&(t[n]=s);break}}processEvent(A){A.retry&&$C(A.retry)&&(this.state.reconnectionTime=parseInt(A.retry,10)),A.id&&ed(A.id)&&(this.state.lastEventId=A.id),A.data!==void 0&&this.push({type:A.event||"message",options:{data:A.data,lastEventId:this.state.lastEventId,origin:this.state.origin}})}clearEvent(){this.event={data:void 0,event:void 0,id:void 0,retry:void 0}}};Ad.exports={EventSourceStream:Ig}});var gd=f((QT,cd)=>{"use strict";var{pipeline:XS}=d("node:stream"),{fetching:jS}=En(),{makeRequest:$S}=lr(),{webidl:yA}=oe(),{EventSourceStream:eM}=td(),{parseMIMEType:AM}=ue(),{createFastMessageEvent:tM}=hr(),{isNetworkError:rd}=ln(),{delay:rM}=Bg(),{kEnumerableProperty:ft}=L(),{environmentSettingsObject:nd}=pe(),sd=!1,id=3e3,bn=0,od=1,Fn=2,nM="anonymous",sM="use-credentials",pr=class e extends EventTarget{#e={open:null,error:null,message:null};#A=null;#t=!1;#s=bn;#n=null;#r=null;#i;#o;constructor(A,t={}){super(),yA.util.markAsUncloneable(this);let r="EventSource constructor";yA.argumentLengthCheck(arguments,1,r),sd||(sd=!0,process.emitWarning("EventSource is experimental, expect them to change at any time.",{code:"UNDICI-ES"})),A=yA.converters.USVString(A,r,"url"),t=yA.converters.EventSourceInitDict(t,r,"eventSourceInitDict"),this.#i=t.dispatcher,this.#o={lastEventId:"",reconnectionTime:id};let n=nd,s;try{s=new URL(A,n.settingsObject.baseUrl),this.#o.origin=s.origin}catch(a){throw new DOMException(a,"SyntaxError")}this.#A=s.href;let i=nM;t.withCredentials&&(i=sM,this.#t=!0);let o={redirect:"follow",keepalive:!0,mode:"cors",credentials:i==="anonymous"?"same-origin":"omit",referrer:"no-referrer"};o.client=nd.settingsObject,o.headersList=[["accept",{name:"accept",value:"text/event-stream"}]],o.cache="no-store",o.initiator="other",o.urlList=[new URL(this.#A)],this.#n=$S(o),this.#c()}get readyState(){return this.#s}get url(){return this.#A}get withCredentials(){return this.#t}#c(){if(this.#s===Fn)return;this.#s=bn;let A={request:this.#n,dispatcher:this.#i},t=r=>{rd(r)&&(this.dispatchEvent(new Event("error")),this.close()),this.#a()};A.processResponseEndOfBody=t,A.processResponse=r=>{if(rd(r))if(r.aborted){this.close(),this.dispatchEvent(new Event("error"));return}else{this.#a();return}let n=r.headersList.get("content-type",!0),s=n!==null?AM(n):"failure",i=s!=="failure"&&s.essence==="text/event-stream";if(r.status!==200||i===!1){this.close(),this.dispatchEvent(new Event("error"));return}this.#s=od,this.dispatchEvent(new Event("open")),this.#o.origin=r.urlList[r.urlList.length-1].origin;let o=new eM({eventSourceSettings:this.#o,push:a=>{this.dispatchEvent(tM(a.type,a.options))}});XS(r.body.stream,o,a=>{a?.aborted===!1&&(this.close(),this.dispatchEvent(new Event("error")))})},this.#r=jS(A)}async#a(){this.#s!==Fn&&(this.#s=bn,this.dispatchEvent(new Event("error")),await rM(this.#o.reconnectionTime),this.#s===bn&&(this.#o.lastEventId.length&&this.#n.headersList.set("last-event-id",this.#o.lastEventId,!0),this.#c()))}close(){yA.brandCheck(this,e),this.#s!==Fn&&(this.#s=Fn,this.#r.abort(),this.#n=null)}get onopen(){return this.#e.open}set onopen(A){this.#e.open&&this.removeEventListener("open",this.#e.open),typeof A=="function"?(this.#e.open=A,this.addEventListener("open",A)):this.#e.open=null}get onmessage(){return this.#e.message}set onmessage(A){this.#e.message&&this.removeEventListener("message",this.#e.message),typeof A=="function"?(this.#e.message=A,this.addEventListener("message",A)):this.#e.message=null}get onerror(){return this.#e.error}set onerror(A){this.#e.error&&this.removeEventListener("error",this.#e.error),typeof A=="function"?(this.#e.error=A,this.addEventListener("error",A)):this.#e.error=null}},ad={CONNECTING:{__proto__:null,configurable:!1,enumerable:!0,value:bn,writable:!1},OPEN:{__proto__:null,configurable:!1,enumerable:!0,value:od,writable:!1},CLOSED:{__proto__:null,configurable:!1,enumerable:!0,value:Fn,writable:!1}};Object.defineProperties(pr,ad);Object.defineProperties(pr.prototype,ad);Object.defineProperties(pr.prototype,{close:ft,onerror:ft,onmessage:ft,onopen:ft,readyState:ft,url:ft,withCredentials:ft});yA.converters.EventSourceInitDict=yA.dictionaryConverter([{key:"withCredentials",converter:yA.converters.boolean,defaultValue:()=>!1},{key:"dispatcher",converter:yA.converters.any}]);cd.exports={EventSource:pr,defaultReconnectionTime:id}});var Bd=f((ET,S)=>{"use strict";var iM=_t(),ld=Sr(),oM=Kt(),aM=aB(),cM=Xt(),gM=Ya(),lM=MB(),QM=JB(),Qd=J(),Ui=L(),{InvalidArgumentError:Mi}=Qd,yr=Du(),EM=Ur(),BM=Cc(),uM=oI(),IM=wc(),hM=sc(),CM=xs(),{getGlobalDispatcher:Ed,setGlobalDispatcher:dM}=Ps(),fM=Os(),wM=ms(),pM=Ds();Object.assign(ld.prototype,yr);S.exports.Dispatcher=ld;S.exports.Client=iM;S.exports.Pool=oM;S.exports.BalancedPool=aM;S.exports.Agent=cM;S.exports.ProxyAgent=gM;S.exports.EnvHttpProxyAgent=lM;S.exports.RetryAgent=QM;S.exports.RetryHandler=CM;S.exports.DecoratorHandler=fM;S.exports.RedirectHandler=wM;S.exports.createRedirectInterceptor=pM;S.exports.interceptors={redirect:BI(),retry:II(),dump:CI(),dns:wI()};S.exports.buildConnector=EM;S.exports.errors=Qd;S.exports.util={parseHeaders:Ui.parseHeaders,headerNameToString:Ui.headerNameToString};function Rn(e){return(A,t,r)=>{if(typeof t=="function"&&(r=t,t=null),!A||typeof A!="string"&&typeof A!="object"&&!(A instanceof URL))throw new Mi("invalid url");if(t!=null&&typeof t!="object")throw new Mi("invalid opts");if(t&&t.path!=null){if(typeof t.path!="string")throw new Mi("invalid opts.path");let i=t.path;t.path.startsWith("/")||(i=`/${i}`),A=new URL(Ui.parseOrigin(A).origin+i)}else t||(t=typeof A=="object"?A:{}),A=Ui.parseURL(A);let{agent:n,dispatcher:s=Ed()}=t;if(n)throw new Mi("unsupported opts.agent. Did you mean opts.client?");return e.call(s,{...t,origin:A.origin,path:A.search?`${A.pathname}${A.search}`:A.pathname,method:t.method||(t.body?"PUT":"GET")},r)}}S.exports.setGlobalDispatcher=dM;S.exports.getGlobalDispatcher=Ed;var yM=En().fetch;S.exports.fetch=async function(A,t=void 0){try{return await yM(A,t)}catch(r){throw r&&typeof r=="object"&&Error.captureStackTrace(r),r}};S.exports.Headers=Et().Headers;S.exports.Response=ln().Response;S.exports.Request=lr().Request;S.exports.FormData=Hr().FormData;S.exports.File=globalThis.File??d("node:buffer").File;S.exports.FileReader=Yh().FileReader;var{setGlobalOrigin:mM,getGlobalOrigin:DM}=Go();S.exports.setGlobalOrigin=mM;S.exports.getGlobalOrigin=DM;var{CacheStorage:kM}=Oh(),{kConstruct:bM}=Ei();S.exports.caches=new kM(bM);var{deleteCookie:FM,getCookies:RM,getSetCookies:NM,setCookie:SM}=rC();S.exports.deleteCookie=FM;S.exports.getCookies=RM;S.exports.getSetCookies=NM;S.exports.setCookie=SM;var{parseMIMEType:MM,serializeAMimeType:UM}=ue();S.exports.parseMIMEType=MM;S.exports.serializeAMimeType=UM;var{CloseEvent:LM,ErrorEvent:xM,MessageEvent:TM}=hr();S.exports.WebSocket=XC().WebSocket;S.exports.CloseEvent=LM;S.exports.ErrorEvent=xM;S.exports.MessageEvent=TM;S.exports.request=Rn(yr.request);S.exports.stream=Rn(yr.stream);S.exports.pipeline=Rn(yr.pipeline);S.exports.connect=Rn(yr.connect);S.exports.upgrade=Rn(yr.upgrade);S.exports.MockClient=BM;S.exports.MockPool=IM;S.exports.MockAgent=uM;S.exports.mockErrors=hM;var{EventSource:YM}=gd();S.exports.EventSource=YM});import mr from"node:net";import GM from"node:dns";function Li(e){let A=String(e).toLowerCase().split("%")[0];if((A.match(/::/g)||[]).length>1)return null;let t=g=>{if(!g)return[];let l=g.split(":"),Q=l.at(-1);if(Q?.includes(".")){let B=Q.split(".").map(Number);if(B.length!==4||B.some(E=>!Number.isInteger(E)||E<0||E>255))return null;l.splice(l.length-1,1,(B[0]<<8|B[1]).toString(16),(B[2]<<8|B[3]).toString(16))}return l.some(B=>!/^[0-9a-f]{1,4}$/.test(B))?null:l.map(B=>Number.parseInt(B,16))},[r,n]=A.split("::"),s=t(r),i=t(n);if(!s||!i)return null;let o=A.includes("::"),a=8-s.length-i.length;if(!o&&a!==0||o&&a<1)return null;let c=[...s,...Array(Math.max(0,a)).fill(0),...i];return c.length!==8?null:Uint8Array.from(c.flatMap(g=>[g>>8,g&255]))}function hg(e,A,t){let r=Math.floor(t/8),n=t%8;for(let i=0;i<r;i+=1)if(e[i]!==A[i])return!1;if(!n)return!0;let s=255<<8-n;return(e[r]&s)===(A[r]&s)}function Cg(e){if(mr.isIPv4(e)){let A=e.split(".").map(Number);return!(A[0]===0||A[0]===10||A[0]===127||A[0]>=224||A[0]===100&&A[1]>=64&&A[1]<=127||A[0]===169&&A[1]===254||A[0]===172&&A[1]>=16&&A[1]<=31||A[0]===192&&(A[1]===0||A[1]===2||A[1]===168)||A[0]===192&&A[1]===88&&A[2]===99||A[0]===198&&(A[1]===18||A[1]===19||A[1]===51)||A[0]===203&&A[1]===0&&A[2]===113)}if(mr.isIPv6(e)){let A=Li(e);if(!A)return!1;let t=Li("::ffff:0:0");return hg(A,t,96)?Cg([...A.slice(12)].join(".")):hg(A,Li("2000::"),3)?![["2001::",23],["2001:db8::",32],["2001:10::",28],["2001:2::",48],["2002::",16],["3fff::",20]].some(([n,s])=>hg(A,Li(n),s)):!1}return!1}function HM(e){let A;try{A=new URL(String(e))}catch{return{ok:!1,error:`not a valid URL: ${String(e).slice(0,120)}`}}if(A.protocol!=="http:"&&A.protocol!=="https:")return{ok:!1,error:`refused protocol ${A.protocol} (only http/https)`};let t=A.hostname.toLowerCase().replace(/^\[|\]$/g,"").replace(/\.+$/,"");if(JM.has(t)||t.endsWith(".localhost")||t.endsWith(".internal"))return{ok:!1,error:`refused internal host ${t}`};let r=mr.isIP(t);return r!==0&&!Cg(t)?{ok:!1,error:`refused private address ${t}`}:{ok:!0,url:A,host:t,isLiteralIp:r!==0}}async function ud(e,{lookupFn:A=GM.promises.lookup}={}){let t=HM(e);if(!t.ok)return t;if(t.isLiteralIp)return{ok:!0,url:t.url};let r;try{r=await A(t.host,{all:!0,verbatim:!0})}catch{return{ok:!1,error:`refused: ${t.host} did not resolve`}}return!Array.isArray(r)||r.length===0||r.some(n=>!Cg(n.address))?{ok:!1,error:`refused: ${t.host} resolves to a non-public address`}:{ok:!0,url:t.url,addresses:r}}async function Id(){let e,A;try{let o=await Promise.resolve().then(()=>Sf(Bd(),1));e=o.Agent,A=o.fetch}catch{return null}if(typeof e!="function"||typeof A!="function")return null;let t=o=>String(o).toLowerCase().replace(/^\[|\]$/g,"").replace(/\.+$/,""),r=new Map,n=o=>(Array.isArray(o)?o:[o]).map(a=>typeof a=="string"?{address:a}:a).filter(a=>a&&a.address).map(a=>({address:a.address,family:a.family||(mr.isIPv6(a.address)?6:4)})),s=o=>{let a=t(o);if(mr.isIP(a))return[{address:a,family:mr.isIPv6(a)?6:4}];let c=r.get(a);if(!c||!c.length)throw new Error(`refused: unpinned host ${o} during pinned fetch`);return c},i=new e({connect:{lookup(o,a,c){let g;try{g=s(o)}catch(l){return c(l)}return a?.all?c(null,g):c(null,g[0].address,g[0].family)}}});return{dispatcher:i,fetch:(o,a={})=>A(o,{...a,dispatcher:i}),pin(o,a,c){r.set(t(o),n(typeof a=="string"?[{address:a,family:c}]:a))},resolve:s,async close(){try{await i.destroy()}catch{}}}}var JM,hd=Je(()=>{JM=new Set(["localhost","metadata.google.internal","metadata.goog"])});import{createHash as vM}from"node:crypto";function PM(e){let A=String(e||"").toLowerCase();return wd.includes(A)||/(^|-)(api[-_]?key|key|token|secret|auth|authorization|session|cookie|signature|access)(-|$)/.test(A)}function OM(e){let A={};for(let[t,r]of Object.entries(e||{}))PM(t)||(A[t]=r);return A}function zM(e,A){if(!e)throw new Error(`HTTP redirect from ${A} missing Location`);let t=new URL(String(e),String(A));if(t.protocol!=="http:"&&t.protocol!=="https:")throw new Error(`HTTP redirect from ${A} used unsupported protocol ${t.protocol}`);return t.toString()}function ZM(e,A){return new URL(String(e)).origin===new URL(String(A)).origin}function _M(e,A,t){let r={};for(let[a,c]of Object.entries(t||{}))r[a.toLowerCase()]=c;let n=Object.keys(r).filter(a=>/(^|-)(api[-_]?key|key|token|secret|auth|authorization|session|cookie|signature|access)(-|$)/.test(a)),i=[...new Set([...wd,...n])].sort().map(a=>`${a}=${r[a]??""}`).join(`
46
- `),o=vM("sha256").update(i).digest("hex").slice(0,32);return`${e} ${A} ${o}`}function KM(e,A){let t=Number(A);return Number.isFinite(t)&&t>0?Math.min(t*1e3,dd):Math.min(250*2**e,dd)+Math.floor(Math.random()*100)}async function jM(e,{fetchImpl:A,method:t,headers:r,body:n,timeoutMs:s,lookupFn:i,realFetch:o}){let a=new AbortController,c=setTimeout(()=>a.abort(),s),g=null,l=A;try{let Q=String(e),B={...r||{}};for(let E=0;E<=fd;E+=1){let I=await l(Q,{method:t,headers:B,body:n,signal:a.signal,redirect:"manual"}),h=await I.text(),u=null;if(h)try{u=JSON.parse(h)}catch{u=null}if(WM.has(I.status)){if(t!=="GET"&&t!=="HEAD"){let y=new Error(`HTTP ${I.status} ${t} ${Q} redirected non-idempotent request`);throw y.status=I.status,y.body=u??h.slice(0,300),y}if(E===fd)throw new Error(`HTTP redirect loop for ${e}`);let C=zM(I.headers?.get?.("location"),Q);if(!ZM(C,Q)){let y=await ud(C,i?{lookupFn:i}:{});if(!y.ok){let Y=new Error(`HTTP redirect from ${Q} ${y.error}`);throw Y.status=I.status,Y}B=OM(B),o&&y.addresses?.length&&(g||(g=await Id()),g&&(g.pin(new URL(C).hostname,y.addresses[0].address,y.addresses[0].family),l=g.fetch))}Q=C;continue}if(!I.ok){let C=new Error(`HTTP ${I.status} ${t} ${Q}`);throw C.status=I.status,C.retryAfter=I.headers?.get?.("retry-after")??null,C.body=u??h.slice(0,300),C}return u??h}throw new Error(`HTTP redirect loop for ${e}`)}finally{clearTimeout(c),g&&await g.close()}}async function wt(e,A={}){let t=A.fetchImpl||globalThis.fetch;if(typeof t!="function")throw new Error("fetch unavailable \u2014 pass opts.fetchImpl");let r=A.timeoutMs??12e3,n=(A.method||"GET").toUpperCase(),s={Accept:"application/json",...A.headers||{}},i=A.body;i!=null&&typeof i!="string"&&(s["Content-Type"]=s["Content-Type"]||"application/json",i=JSON.stringify(i));let o=Number.isInteger(A.retries)?Math.max(A.retries,0):qM,a=A.lookupFn,c=!A.fetchImpl,g=async()=>{let I;for(let h=0;h<=o;h++)try{return await jM(e,{fetchImpl:t,method:n,headers:s,body:i,timeoutMs:r,lookupFn:a,realFetch:c})}catch(u){I=u;let C=u?.status,m=u?.name==="AbortError",y=new Set([408,425,429]),Y=C!=null?y.has(C)||VM.has(C)&&Cd.has(n):!m&&Cd.has(n);if(h===o||!Y)throw u;await XM(KM(h,u?.retryAfter))}throw I};if(!(A.dedupe!==!1&&n==="GET"&&i==null))return g();let Q=_M(n,e,s),B=dg.get(Q);if(B)return B;let E=g().finally(()=>dg.delete(Q));return dg.set(Q,E),E}var VM,Cd,qM,dd,wd,WM,fd,dg,XM,xi=Je(()=>{hd();VM=new Set([408,425,429,500,502,503,504]),Cd=new Set(["GET","HEAD","OPTIONS","PUT","DELETE"]),qM=2,dd=4e3,wd=["authorization","x-api-key","x-tensor-api-key","0x-api-key","api-key","cookie","proxy-authorization"],WM=new Set([301,302,303,307,308]),fd=3;dg=new Map;XM=e=>new Promise(A=>setTimeout(A,e))});function aU({testnet:e,baseUrl:A}={}){if(A)return A.replace(/\/$/,"").endsWith("/info")?A:`${A.replace(/\/$/,"")}/info`;if(process.env.HL_INFO_URL)return process.env.HL_INFO_URL;if(process.env.HL_API_URL){let t=process.env.HL_API_URL.replace(/\/$/,"");return t.endsWith("/info")?t:`${t}/info`}return e||process.env.HL_TESTNET==="1"?oU:iU}async function yt(e,A={}){if(!e||!e.type)throw new Error("hlInfo requires body.type");let t=aU(A);return wt(t,{method:"POST",body:e,fetchImpl:A.fetchImpl,timeoutMs:A.timeoutMs})}async function Dd(e={}){return yt({type:"allMids"},e)}async function Sn(e={}){let A={type:"metaAndAssetCtxs"};return e.dex&&(A.dex=e.dex),yt(A,e)}var iU,oU,Ti=Je(()=>{xi();iU="https://api.hyperliquid.xyz/info",oU="https://api.hyperliquid-testnet.xyz/info"});import{createHash as cU,createHmac as gU,timingSafeEqual as bT}from"node:crypto";function fg(e){return e===null||typeof e!="object"?JSON.stringify(e):Array.isArray(e)?`[${e.map(fg).join(",")}]`:`{${Object.keys(e).sort().map(t=>`${JSON.stringify(t)}:${fg(e[t])}`).join(",")}}`}function kd(e){let A=String(e?.ORACLE_STAMP_HMAC_SECRET||"").trim();return A.length>=16?A:""}function bd(e=process.env){return kd(process.env)||kd(e)}function BU(e){let{prepareHash:A,prepareMac:t,note:r,...n}=e||{};return n}function uU(e){let A=BU(e);return cU("sha256").update(fg(A)).digest("hex")}function IU(e,A=bd()){return A?gU("sha256",A).update(String(e)).digest("hex"):""}function OA(e,{provider:A,kind:t,env:r=process.env,nowMs:n=Date.now(),expiresAtMs:s}={}){if(!e||typeof e!="object")throw new Error("stampPrepared: payload object required");let i=Object.prototype.hasOwnProperty.call(e,"oraclePrepared");if(i&&typeof e.oraclePrepared!="boolean")throw new Error("stampPrepared: oraclePrepared must be boolean");let o={...e,provider:e.provider||A,kind:e.kind||t,requiresUserSignature:e.requiresUserSignature!==!1,signingReady:!1,broadcastReady:!1,executionReady:!1,oraclePrepared:i?e.oraclePrepared:!0};if(!o.provider)throw new Error("stampPrepared: provider required");if(!o.kind)throw new Error("stampPrepared: kind required");let a=Number(n),c=s==null?a+QU:Number(s),g=c-a;if(!Number.isSafeInteger(a)||!Number.isSafeInteger(c)||g<=0||g>EU)throw new Error("stampPrepared: bounded preparedAt/expiresAt required");let Q={...o,preparedAt:a,expiresAt:c,prepareVersion:lU},B=uU(Q),E=bd(r),I=E?IU(B,E):void 0,h={...Q,prepareHash:B};return I&&(h.prepareMac=I),h}var lU,QU,EU,Yi=Je(()=>{lU=2,QU=300*1e3,EU=(()=>{let e=Number(process.env.ORACLE_PREPARE_HARD_MAX_AGE_MS);return Number.isFinite(e)&&e>0?e:1800*1e3})()});async function Nd(e={}){let A=Date.now();if(Un.dexs&&A-Un.at<6e4&&!e.fetchImpl)return Un.dexs;let t=await yt({type:"perpDexs"},e);return Un={at:A,dexs:Array.isArray(t)?t:[]},Un.dexs}async function Sd(e="",A={}){let t=e||"",r=Date.now(),n=Rd.get(t);if(n&&r-n.at<3e4&&!A.fetchImpl)return n;let s=e?await yt({type:"metaAndAssetCtxs",dex:e},A):await Sn(A),i=s?.[0]?.universe??s?.universe??[],o=Array.isArray(s?.[1])?s[1]:[],a={at:r,universe:i,ctxs:o};return Rd.set(t,a),a}function vi(e){if(typeof e!="string"||!/^#(?:0|[1-9]\d*)$/.test(e))return null;let A=Number(e.slice(1));if(!Number.isSafeInteger(A)||A<0)return null;let t=A%10;if(t!==0&&t!==1)return null;let r=Math.floor(A/10),n=Ud+A;return Number.isSafeInteger(n)?{encoding:A,outcome:r,side:t,coin:`#${A}`,assetId:n}:null}function Md(e,A){let t=pg(e),r=pg(A);if(t==null)throw new Error("hl-assets: outcome id must be a non-negative integer");if(r!==0&&r!==1)throw new Error("hl-assets: outcome side must be 0 or 1");let n=10*t+r;if(!Number.isSafeInteger(n))throw new Error("hl-assets: outcome encoding exceeds safe integer range");let s=Ud+n;if(!Number.isSafeInteger(s))throw new Error("hl-assets: outcome asset id exceeds safe integer range");return{encoding:n,outcome:t,side:r,coin:`#${n}`,assetId:s}}function pg(e){if(typeof e=="number")return Number.isSafeInteger(e)&&e>=0?e:null;if(typeof e!="string"||!/^(?:0|[1-9]\d*)$/.test(e))return null;let A=Number(e);return Number.isSafeInteger(A)?A:null}async function yg(e={},A={}){if(e.outcome!=null||typeof e.coin=="string"&&e.coin.startsWith("#")){let c=e.coin==null?null:vi(e.coin);if(e.coin!=null&&!c)throw new Error(`hl-assets: invalid outcome coin ${e.coin}`);let g=e.outcome==null?null:Md(e.outcome,0).outcome;if(g!=null&&c&&c.outcome!==g)throw new Error("hl-assets: coin does not match outcome");let l=e.outcomeSide==null?null:CU(e.outcomeSide,"outcomeSide"),Q=g??c?.outcome;if(e.outcome!=null&&e.coin==null&&l==null)throw new Error("hl-assets: outcomeSide required");let B=l??c?.side;if(B==null)throw new Error("hl-assets: outcomeSide required");if(Q==null)throw new Error("hl-assets: outcome identity required");let E=Md(Q,B);if(c&&(c.outcome!==E.outcome||c.side!==E.side))throw new Error("hl-assets: coin does not match outcome side");let I=e.szDecimals!=null?Number(e.szDecimals):2;return{kind:"outcome",coin:E.coin,assetId:E.assetId,encoding:E.encoding,outcome:E.outcome,side:E.side,szDecimals:I,maxLeverage:1,dex:null,markPx:null}}let t=String(e.coin||e.symbol||e.name||"").trim();if(!t)throw new Error("hl-assets: coin required");if(t.includes(":")){let[c,...g]=t.split(":"),l=g.join(":");if(!c||!l)throw new Error(`hl-assets: bad builder coin ${t}`);let B=(await Nd(A)).findIndex(y=>y&&y.name===c);if(B<1)throw new Error(`hl-assets: unknown builder dex "${c}"`);let{universe:E,ctxs:I}=await Sd(c,A),h=E.findIndex(y=>y.name===t||y.name===`${c}:${l}`||y.name.endsWith(`:${l}`));if(h<0)throw new Error(`hl-assets: ${t} not in dex ${c} meta`);let u=E[h];if(u.isDelisted)throw new Error(`hl-assets: ${t} is delisted`);let C=hU+B*1e4+h,m=I[h]||{};return{kind:"hip3",coin:u.name||t,assetId:C,szDecimals:u.szDecimals??0,maxLeverage:u.maxLeverage??null,dex:c,dexIndex:B,indexInMeta:h,markPx:m.markPx??null}}let{universe:r,ctxs:n}=await Sd("",A),s=t.toUpperCase(),i=r.findIndex(c=>c.name===s);if(i<0){if(A.allowBareBuilderLeaf===!0)try{let c=await Nd(A);for(let g=1;g<c.length;g++){let l=c[g];if(!l?.name)continue;let Q=`${l.name}:${s}`;try{return await yg({coin:Q},A)}catch{}}}catch{}throw new Error(`hl-perps: ${s} is not a listed perp`)}let o=r[i];if(o.isDelisted)throw new Error(`hl-assets: ${s} is delisted`);let a=n[i]||{};return{kind:"main",coin:o.name,assetId:i,szDecimals:o.szDecimals??0,maxLeverage:o.maxLeverage??null,dex:"",markPx:a.markPx??null}}function CU(e,A){let t=pg(e);if(t!==0&&t!==1)throw new Error(`hl-assets: ${A} must be 0 or 1`);return t}var Ud,hU,Un,Rd,mg=Je(()=>{Ti();Ud=1e8,hU=1e5,Un={at:0,dexs:null},Rd=new Map});function ae(e,A="value"){if(typeof e=="number"){if(!Number.isFinite(e))throw new Error(`${A} must be a finite number`);if(Math.abs(e)>Number.MAX_SAFE_INTEGER)throw new Error(`${A} exceeds safe integer precision \u2014 pass it as a decimal string or BigInt so the exact value is preserved`);if(Number.isInteger(e)&&!Number.isSafeInteger(e))throw new Error(`${A} exceeds safe integer precision \u2014 pass it as a decimal string or BigInt so the exact value is preserved`);return String(e)}if(typeof e=="string"){if(e!==e.trim())throw new Error(`${A} must be a number or decimal string`);return e}throw new Error(`${A} must be a number or decimal string`)}function Ld(e,A="value"){if(typeof e!="string"||e==="")throw new Error(`${A} must be a string`);return e}function mt(e,A="amount"){if(typeof e=="bigint")return e;if(typeof e=="number"){if(!Number.isInteger(e))throw new Error(`${A} must be an integer`);if(!Number.isSafeInteger(e))throw new Error(`${A} exceeds safe integer precision \u2014 pass it as a decimal string or BigInt so the exact value is preserved`);return BigInt(e)}let t=ae(e,A);if(t==="")throw new Error(`${A} is required`);if(!/^-?\d+$/.test(t)&&!/^0x[0-9a-fA-F]+$/.test(t))throw new Error(`${A} must be an integer in decimal or 0x-hex form, got ${JSON.stringify(t)}`);try{return BigInt(t)}catch{throw new Error(`${A} must be an integer, got ${JSON.stringify(t)}`)}}function Dg(e,A="amount"){let t=mt(e,A);if(t<=0n)throw new Error(`${A} must be positive`);return t}function Me(e,A,t="amount"){let r=ae(e,t);if(!/^-?\d*(\.\d+)?$/.test(r)||r===""||r==="."||r==="-")throw new Error(`${t} must be a decimal number, got ${JSON.stringify(r)}`);let n=r.startsWith("-"),s=n?r.slice(1):r,[i="0",o=""]=s.split(".");if(o.length>A)throw new Error(`${t} has more than ${A} decimal places, which would lose precision`);let a=BigInt((i||"0")+o.padEnd(A,"0"));return n?-a:a}var Vi=Je(()=>{});function yU(e,A){let t=e.toString().padStart(A+1,"0");if(A===0)return t;let r=t.slice(0,-A),n=t.slice(-A).replace(/0+$/,"");return n?`${r}.${n}`:r}function xd(e,A){let t=ae(e,`hl: ${A}`);if(!/^\d+(?:\.\d+)?$/.test(t))throw new Error(`hl: ${A} must be a positive decimal`);let[r,n=""]=t.split("."),s=BigInt(r+n);if(s<=0n)throw new Error(`hl: ${A} must be positive`);return{raw:s,decimals:n.length}}function aA(e,A){if(e===null||typeof e=="string"||typeof e=="boolean")return JSON.stringify(e);if(typeof e=="number"){if(!Number.isFinite(e))throw new Error(`hl: ${A} must be finite JSON`);return JSON.stringify(e)}if(Array.isArray(e))return`[${e.map(r=>aA(r,A)).join(",")}]`;if(!e||typeof e!="object")throw new Error(`hl: ${A} must be structured JSON`);return`{${Object.keys(e).sort().map(r=>`${JSON.stringify(r)}:${aA(e[r],A)}`).join(",")}}`}function mU(e){if(typeof e.orderType!="string"||!e.orderType)throw new Error("hl: order type must be a string");let A=e.orderType,t=e.orderWire;if(!t||typeof t!="object"||Array.isArray(t))throw new Error("hl: declared order wire required");if(A==="limit"){let s=t.limit?.tif;if(!["Gtc","Ioc","Alo"].includes(s)||aA(t,"declared order type")!==aA({limit:{tif:s}},"expected order type"))throw new Error("hl: limit order type must match its wire shape");return}if(A==="market"){if(aA(t,"declared order type")!==aA({limit:{tif:"Ioc"}},"expected order type"))throw new Error("hl: market order type must match its IOC wire shape");return}let r={stopMarket:{isMarket:!0,tpsl:"sl"},stopLimit:{isMarket:!1,tpsl:"sl"},takeProfitMarket:{isMarket:!0,tpsl:"tp"},takeProfitLimit:{isMarket:!1,tpsl:"tp"}}[A];if(!r)throw new Error("hl: unsupported declared order type");let n=t.trigger?.triggerPx;if(n==null||aA(t,"declared order type")!==aA({trigger:{isMarket:r.isMarket,triggerPx:n,tpsl:r.tpsl}},"expected order type"))throw new Error("hl: trigger order type must match its wire shape")}function DU(e,A,t){let r=xd(e.s,"signed size"),n=xd(e.p,"signed price"),s=r.decimals+n.decimals,i=r.raw*n.raw,o=Me(A.notionalUsd,s,"hl: notionalUsd");if(o<=0n||i!==o)throw new Error("hl: signed notional must match");let a=Me(t.maxNotionalUsd,s,"hl: maxNotionalUsd");if(i>a)throw new Error("hl: notional exceeds cap")}function kU(e,A){let t=e.action.builder;if(t==null){if(e.builder!=null)throw new Error("hl: declared builder requires a signed builder");return}if(!t||typeof t!="object"||Array.isArray(t))throw new Error("hl: signed order builder must be structured");let r=zA(t.b,"order builder",42).toLowerCase();if(!/^0x[0-9a-f]{40}$/.test(r))throw new Error("hl: order builder address required");if(Ld(e.builder||"","hl: builder").toLowerCase()!==r)throw new Error("hl: signed order builder must match");if(!(Array.isArray(A.hlBuilders)?A.hlBuilders.map(o=>String(o).toLowerCase()):[]).includes(r))throw new Error("hl: order builder not allowed");let s=mt(t.f,"hl: signed order builder fee");if(s<0n)throw new Error("hl: signed order builder fee must be non-negative");let i=Me(A.maxBuilderFeeBps??0,1,"hl: maxBuilderFeeBps");if(s>i)throw new Error("hl: order builder fee exceeds cap")}function Td(e,A,t){if(!Number.isSafeInteger(e.a)||e.a!==t)throw new Error("hl: signed asset must match assetId");if(typeof e.b!="boolean"||e.b!==(A.side==="buy"))throw new Error("hl: signed side must match exactly");if(ae(e.s,"hl: signed size")!==ae(A.size,"hl: size"))throw new Error("hl: signed size must match");if(ae(e.p,"hl: signed price")!==ae(A.price,"hl: price"))throw new Error("hl: signed price must match");if(typeof A.reduceOnly!="boolean"||typeof e.r!="boolean"||e.r!==A.reduceOnly)throw new Error("hl: signed reduceOnly must match exactly");if(aA(e.t,"signed order type")!==aA(A.orderWire,"declared order type"))throw new Error("hl: signed order type must match declared order type");let r=Object.prototype.hasOwnProperty.call(e,"c");if(A.clientOrderId==null){if(r)throw new Error("hl: undeclared signed client order id")}else if(!r||typeof e.c!="string"||e.c!==A.clientOrderId)throw new Error("hl: signed client order id must match")}function Yd(e,A,t,r,n){if(!Number.isSafeInteger(e.a)||e.a!==t)throw new Error("hl: bracket protection asset must match");if(typeof e.b!="boolean"||e.b===(A.side==="buy"))throw new Error("hl: bracket protection side must oppose entry");if(ae(e.s,"hl: bracket protection size")!==ae(A.size,"hl: size"))throw new Error("hl: bracket protection size must match");if(ae(e.p,"hl: bracket protection price")!==ae(r,"hl: protection price"))throw new Error("hl: bracket protection price must match");if(e.r!==!0)throw new Error("hl: bracket protection must be reduce-only");let s=e.t?.trigger;if(!s||s.isMarket!==!0||s.tpsl!==n)throw new Error("hl: bracket protection trigger must match");if(ae(s.triggerPx,"hl: triggerPx")!==ae(r,"hl: protection price"))throw new Error("hl: bracket protection trigger must match")}function bU(e){let A=String(e||"").replace(/\/$/,"");if(!dU.has(A))throw new Error("hl: submitTo must be the official Hyperliquid exchange");return A}function kg(e){return vi(e)!=null}function FU(e,A){let t=String(e||""),r=Array.isArray(A.coins)?A.coins.map(String):[];if(kg(t)){if(A.hip4!==!0)throw new Error("hl: HIP-4 outcome orders are disabled without explicit policy enablement");if(r.includes(t)||r.includes("#*")||r.includes("*")||r.length===0)return!0;throw new Error("hl: outcome coin not allowed")}if(r.length&&!r.includes(t)&&!r.includes("*"))throw new Error("hl: coin not allowed");return!0}function RU(e,A,t){let r=Array.isArray(t.hlMarkets)?t.hlMarkets:[];if(r.length){if(!r.some(i=>{if(typeof i=="string"){let[o,a]=String(i).split(":");return o===e&&Number(a)===A}return String(i?.coin)===e&&Number(i?.assetId)===A}))throw new Error("hl: coin/assetId pair not allowed");return!0}if(kg(e)){let s=Array.isArray(t.coins)?t.coins.map(String):[];if(s.includes("#*")||s.includes("*")||s.length===0)return!0;throw new Error("hl: restricted coin policy requires hlMarkets pairs")}let n=Array.isArray(t.coins)?t.coins.map(String):[];if(n.length&&!n.includes("*"))throw new Error("hl: restricted coin policy requires hlMarkets pairs");return!0}function Gd(e,A){if(e?.surface!=="hl")throw new Error("hl: surface hl required");let t=e.artifact;if(!t||typeof t!="object"||Array.isArray(t))throw new Error("hl: structured artifact required");let r=zA(t.kind,"kind",48),n=wU[r];if(!n)throw new Error("hl: unsupported Hyperliquid kind");if(e.action!==n)throw new Error("hl: surface/action/kind mismatch");if(String(e.destination).toLowerCase()!=="hyperliquid")throw new Error("hl: destination must be hyperliquid");if(!/^0x[0-9a-fA-F]{40}$/.test(String(e.owner||"")))throw new Error("hl: owner required");let s=bU(t.submitTo);if(Object.prototype.hasOwnProperty.call(t,"vaultAddress"))throw new Error("hl: vaultAddress is not public");if(Object.prototype.hasOwnProperty.call(t,"expiresAfter"))throw new Error("hl: expiresAfter is not public");let i=Number(t.nonce);if(!Number.isSafeInteger(i)||i<=0)throw new Error("hl: nonce must be a positive integer");if(!t.action||typeof t.action!="object")throw new Error("hl: signed action required");if(Object.prototype.hasOwnProperty.call(t.action,"vaultAddress"))throw new Error("hl: action vaultAddress is not public");if(Object.prototype.hasOwnProperty.call(t.action,"expiresAfter"))throw new Error("hl: action expiresAfter is not public");if(t.action.type!==pU[r])throw new Error("hl: action type must match kind");let o=t.notionalUsd??0;if(fU.has(r)||r==="perp-cancel"||r==="perp-leverage"||r==="perp-isolated-margin"){let a=zA(t.coin,"coin",64),c=t.assetId??t.assetIndex;if(!Number.isSafeInteger(c)||c<0)throw new Error("hl: assetId required");if(r==="hip4-order"||c>=1e8){let g=vi(a);if(!g||g.coin!==a)throw new Error("hl: HIP-4 actions must use a canonical outcome coin");if(g.assetId!==c)throw new Error("hl: HIP-4 coin must bind to its canonical assetId")}if(FU(a,A),RU(a,c,A),r==="hip4-order"&&!kg(a))throw new Error("hl: HIP-4 orders must use an outcome coin");if(r==="perp-order"||r==="hip3-order"||r==="hip4-order"||r==="perp-bracket"){if(t.side!=="buy"&&t.side!=="sell")throw new Error("hl: side must be buy or sell");if(t.action.type!=="order"||!Array.isArray(t.action.orders))throw new Error("hl: signed orders are required");mU(t);let g=t.action.orders;if(r==="perp-bracket"){let l=t.takeProfitPx,Q=t.stopLossPx,B=1+(l==null?0:1)+(Q==null?0:1);if(B<2||g.length!==B||t.grouping!=="normalTpsl"||t.action.grouping!==t.grouping)throw new Error("hl: bracket must contain exactly the declared entry and protection legs");Td(g[0],t,c);let E=1;l!=null&&Yd(g[E++],t,c,l,"tp"),Q!=null&&Yd(g[E],t,c,Q,"sl")}else{if(g.length!==1)throw new Error("hl: exactly one signed order is required");if(t.grouping!=="na"||t.action.grouping!==t.grouping)throw new Error("hl: signed grouping must match declared grouping");Td(g[0],t,c)}DU(g[0],t,A),kU(t,A),o=ae(t.notionalUsd,"hl: notionalUsd")}if(r==="perp-leverage"){let g=t.leverage;if(!Number.isSafeInteger(g)||g<1)throw new Error("hl: leverage must be a positive integer");let l=A.maxLeverage==null?50:A.maxLeverage;if(typeof l!="number"||!Number.isSafeInteger(l)||l<1)throw new Error("hl: maxLeverage must be a positive integer");if(g>l)throw new Error("hl: leverage exceeds cap")}if(r==="perp-cancel"){let g=t.action.cancels;if(!Array.isArray(g)||g.length!==1)throw new Error("hl: exactly one cancel is required");if(!Number.isSafeInteger(g[0].a)||g[0].a!==c)throw new Error("hl: signed cancel asset must match assetId");if(!Number.isSafeInteger(t.orderId)||t.orderId<0)throw new Error("hl: declared order id required");if(!Number.isSafeInteger(g[0].o)||g[0].o!==t.orderId)throw new Error("hl: signed cancel order id must match")}if(r==="perp-leverage"){if(!Number.isSafeInteger(t.action.asset)||t.action.asset!==c)throw new Error("hl: signed leverage asset must match assetId");if(!Number.isSafeInteger(t.action.leverage)||t.action.leverage!==t.leverage)throw new Error("hl: signed leverage must match");if(!["cross","isolated"].includes(t.marginMode))throw new Error("hl: declared margin mode required");let g=t.marginMode==="cross";if(typeof t.action.isCross!="boolean"||t.action.isCross!==g)throw new Error("hl: signed isCross must match declared margin mode")}if(r==="perp-isolated-margin"){if(!Number.isSafeInteger(t.action.asset)||t.action.asset!==c)throw new Error("hl: signed margin asset must match assetId");let g=zA(t.usd,"margin usd",64),l=Me(g,6,"hl: margin usd");if(mt(t.action.ntli,"hl: signed margin ntli")!==l)throw new Error("hl: signed margin amount must match usd");if(typeof t.isBuy!="boolean"||t.action.isBuy!==t.isBuy)throw new Error("hl: signed margin isBuy must match");let B=Me(A.maxNotionalUsd,6,"hl: maxNotionalUsd"),E=l<0n?-l:l;if(E>B)throw new Error("hl: margin notional exceeds cap");o=yU(E,6)}}if(r==="builder-fee-approval"){let a=zA(t.builder,"builder",42).toLowerCase();if(!/^0x[0-9a-f]{40}$/.test(a))throw new Error("hl: builder address required");if(zA(t.action.builder,"signed builder",42).toLowerCase()!==a)throw new Error("hl: signed builder must match");if(!(Array.isArray(A.hlBuilders)?A.hlBuilders.map(E=>String(E).toLowerCase()):[]).includes(a))throw new Error("hl: builder not allowed");let g=zA(t.maxFeeRate,"maxFeeRate",32);if(zA(t.action.maxFeeRate,"signed maxFeeRate",32)!==g)throw new Error("hl: signed builder fee must match");if(!/^\d+(?:\.\d+)?%$/.test(g))throw new Error("hl: builder fee rate must be a percent");let l=Me(g.slice(0,-1),12,"hl: builder fee percent"),Q=Me(A.maxBuilderFeeBps,12,"hl: maxBuilderFeeBps");if(Q<0n||l*100n>Q)throw new Error("hl: builder fee exceeds cap");if(Number(t.action.nonce)!==i)throw new Error("hl: signed builder nonce must match");let B=s.includes("testnet")?"Testnet":"Mainnet";if(t.hyperliquidChain!==B||t.action.hyperliquidChain!==t.hyperliquidChain)throw new Error("hl: signed Hyperliquid chain must match destination");if(t.signatureChainId!=="0x66eee"||t.action.signatureChainId!==t.signatureChainId)throw new Error("hl: signed signature chain id must match")}if(r.startsWith("hype-stake")||r==="hype-delegate"||r==="hype-undelegate"){if(r==="hype-delegate"||r==="hype-undelegate"){let a=r==="hype-undelegate";if(typeof t.action.isUndelegate!="boolean"||t.action.isUndelegate!==a)throw new Error("hl: signed isUndelegate must match delegate kind exactly")}if(A.maxHypeWei!=null&&BigInt(String(t.action.wei??t.caps?.amountHype??"0"))>BigInt(A.maxHypeWei))throw new Error("hl: stake amount exceeds cap")}return Object.freeze({unit:"usd",value:String(o??t.action.wei??0),notional:String(o??0),fee:"0",kind:r,actionType:t.action.type,amount:String(t.action.wei??o??0),coin:t.coin||null,submitTo:s})}var dU,fU,wU,pU,zA,Jd=Je(()=>{Vi();mg();dU=new Set(["https://api.hyperliquid.xyz/exchange","https://api.hyperliquid-testnet.xyz/exchange"]),fU=new Set(["perp-order","hip3-order","hip4-order","perp-bracket"]),wU=Object.freeze({"perp-order":"order","hip3-order":"order","hip4-order":"order","perp-bracket":"order","perp-cancel":"cancel","perp-leverage":"leverage","perp-isolated-margin":"margin","builder-fee-approval":"approveBuilder","hype-stake-deposit":"stake","hype-stake-withdraw":"unstake","hype-delegate":"delegate","hype-undelegate":"delegate"}),pU=Object.freeze({"perp-order":"order","hip3-order":"order","hip4-order":"order","perp-bracket":"order","perp-cancel":"cancel","perp-leverage":"updateLeverage","perp-isolated-margin":"updateIsolatedMargin","builder-fee-approval":"approveBuilderFee","hype-stake-deposit":"cDeposit","hype-stake-withdraw":"cWithdraw","hype-delegate":"tokenDelegate","hype-undelegate":"tokenDelegate"}),zA=(e,A,t=256)=>{if(typeof e!="string"||!e||e.length>t)throw new Error(`hl: bounded ${A} required`);return e}});function SU(e){let A=e.owner||e.user||e.from||e.recipient;if(!/^0x[0-9a-fA-F]{40}$/.test(String(A||"")))throw new Error("hl: owner/user address required for local-signer envelope");return String(A).toLowerCase()}function Hd(e,A={},t={}){let r=String(e?.kind||""),n=NU[r];if(!n)throw new Error("hl: prepared kind is not a local-signer surface");if(!e?.action||typeof e.action!="object")throw new Error("hl: prepared action required");let s=Number(t.nowMs??Date.now()),i=Math.min(6e4,Math.max(1e3,Number(A.ttlMs??A.expiresInMs??3e4)||3e4)),o=String(e.submitTo||"").replace(/\/$/,""),a={version:1,surface:"hl",action:n,owner:SU(A),destination:"hyperliquid",tradeId:String(A.tradeId||`hl:${r}:${e.nonce}`),expiresAtMs:s+i,slippageBps:Number(A.slippageBps??0),fee:{oracleFeeBps:0},provider:e.provider,artifact:{kind:r,coin:e.coin??null,assetId:e.assetId??e.assetIndex??null,side:e.side??null,size:e.size??null,price:e.price??null,reduceOnly:e.reduceOnly??null,orderType:e.orderType??null,orderWire:e.action?.orders?.[0]?.t??null,clientOrderId:e.action?.orders?.[0]?.c??null,grouping:e.action?.grouping??null,orderId:e.orderId??null,leverage:e.leverage??null,marginMode:e.marginMode??null,notionalUsd:e.notionalUsd??0,usd:e.usd??null,isBuy:e.isBuy??null,takeProfitPx:e.takeProfitPx??null,stopLossPx:e.stopLossPx??null,builder:e.builderFee?.address??e.action?.builder??null,maxFeeRate:e.builderFee?.percent??e.action?.maxFeeRate??null,nonce:e.nonce,hyperliquidChain:e.action?.hyperliquidChain??null,signatureChainId:e.signatureChainId||e.action?.signatureChainId||"0xa4b1",submitTo:o,action:e.action,typedData:e.typedData||null,caps:e.caps||null}};return Gd(a,{coins:A.coins||["*"],hip4:!0,maxNotionalUsd:A.maxNotionalUsd??Number.MAX_SAFE_INTEGER,maxLeverage:A.maxLeverage??50,hlBuilders:A.hlBuilders||(e.builderFee?.address?[e.builderFee.address]:[]),maxBuilderFeeBps:A.maxBuilderFeeBps??e.builderFee?.bps}),a}var NU,vd=Je(()=>{Jd();NU=Object.freeze({"perp-order":"order","hip3-order":"order","hip4-order":"order","perp-bracket":"order","perp-cancel":"cancel","perp-leverage":"leverage","perp-isolated-margin":"margin","builder-fee-approval":"approveBuilder","hype-stake-deposit":"stake","hype-stake-withdraw":"unstake","hype-delegate":"delegate","hype-undelegate":"delegate"})});import{Contract as MU,JsonRpcProvider as UU}from"ethers";function JU(e){return GU.test(String(e||""))}async function bg(e,{contract:A=LU,rpc:t=TU,chainId:r=xU,balanceOf:n}={}){if(!JU(e))throw new Error("invalid-address");if(n)return BigInt(await n(e));let s=new UU(t,r,{staticNetwork:!0}),i=new MU(A,YU,s);return BigInt(await i.balanceOf(e))}var LU,xU,TU,YU,GU,Fg=Je(()=>{LU="0x62FCFAf7573AD8B41a0FBF347AfEb85e06599A75",xU=999,TU="https://rpc.hyperliquid.xyz/evm",YU=["function balanceOf(address owner) view returns (uint256)"],GU=/^0x[a-fA-F0-9]{40}$/});import{existsSync as HU,readFileSync as vU,lstatSync as VU}from"node:fs";import{homedir as Vd}from"node:os";import{join as Rg}from"node:path";function qU(e=process.env){if(process.env.ORACLE_TEST_ISOLATE_SECRETS==="1"){if(e[qd])return String(e[qd]);let A=e.ORACLE_CONFIG_DIR||Rg(Vd(),".config","oracle");return Rg(A,"fee-recipient")}return Rg(Vd(),".config","oracle","fee-recipient")}function Wd(e=process.env){try{let A=qU(e);if(!HU(A)||VU(A).isSymbolicLink())return"";let t=vU(A,"utf8").trim().toLowerCase();return/^0x[a-f0-9]{40}$/.test(t)?t:""}catch{return""}}var WT,qd,Pd=Je(()=>{Fg();WT=Object.freeze({swap:5,bridge:5,perps:0,nft:0}),qd="ORACLE_INTEGRATOR_FEE_RECIPIENT_PIN"});var $d={};Rf($d,{HL_BUILDER_ADDRESS_ENV:()=>qi,HL_BUILDER_DEFAULT_FEE_BPS:()=>WU,HL_BUILDER_FEE_ENV:()=>Sg,HL_BUILDER_FEE_TIERS:()=>Ln,HL_BUILDER_MAX_FEE_BPS:()=>Ng,HL_PERP_MAX_SIG_FIGS:()=>Od,HL_PERP_PRICE_DECIMALS:()=>zd,HL_SIGNATURE_CHAIN_ID:()=>Ug,MARGIN_MODE:()=>xn,ORDER_TYPES:()=>we,TIF:()=>Tn,formatPerpPrice:()=>DA,formatPerpSize:()=>Xd,hlBuilderFeeBpsForKind:()=>Kd,hlPerpAssetInfo:()=>Dr,hlPrepareBracketOrder:()=>AL,hlPrepareBuilderApproval:()=>XU,hlPrepareCancelOrder:()=>jU,hlPreparePerpOrder:()=>jd,hlPrepareUpdateIsolatedMargin:()=>eL,hlPrepareUpdateLeverage:()=>$U,resolveBuilderFee:()=>Lg});function Zd(e,A){if(typeof e=="number"){if(Number.isSafeInteger(e)&&e>=0)return e}else if(typeof e=="string"&&/^(?:0|[1-9]\d*)$/.test(e)){let t=Number(e);if(Number.isSafeInteger(t))return t}throw new Error(`hl-perps: ${A} must be a non-negative safe integer`)}function PU(e,A){let t=Zd(e,A);if(t<1)throw new Error(`hl-perps: ${A} must be a positive integer`);return t}function OU(e={}){let A={...e};if(A.side==null)return A;if(A.side===0||A.side===1){if(A.outcomeSide!=null&&A.outcomeSide!==A.side)throw new Error("hl-perps: side conflict with outcomeSide");return A.outcomeSide=A.side,delete A.side,A}throw new Error("hl-assets: side must be 0 or 1")}function _d(e,{defaultBuy:A=!1}={}){if(e.side!=null){if(typeof e.side!="string")throw new Error("hl-perps: side must be buy or sell");let t=e.side.toLowerCase();if(t!=="buy"&&t!=="sell")throw new Error("hl-perps: side must be buy or sell");let r=t==="buy";if(e.isBuy!=null&&(typeof e.isBuy!="boolean"||e.isBuy!==r))throw new Error("hl-perps: side and isBuy conflict");return r}if(e.isBuy==null&&A)return!0;if(typeof e.isBuy!="boolean")throw new Error("hl-perps: isBuy must be boolean when side is omitted");return e.isBuy}function Kd(e="perp"){if(e==="perp"||e==="main")return Ln.perp;if(e==="spot")return Ln.spot;if(e==="hip3")return Ln.hip3;if(e==="outcome"||e==="hip4")return Ln.hip4;throw new Error(`hl-perps: unknown builder fee kind ${e}`)}function Lg({env:e=process.env,isHolder:A=!1,kind:t="perp"}={}){if(A)return null;let r=String(e?.[qi]||"").trim().toLowerCase();if(!r)return null;if(!/^0x[a-f0-9]{40}$/.test(r))throw new Error(`hl-perps: ${qi} must be an EVM address`);let n=Wd(e);if(!n||n!==r)return null;let s=e?.[Sg],i=Kd(t),o=s==null?i:Number(s);if(!Number.isFinite(o)||o<=0||Math.abs(o*10-Math.round(o*10))>1e-9)throw new Error(`hl-perps: ${Sg} must be a positive number in 0.1 bps increments`);if(o>Ng)throw new Error(`hl-perps: builder fee ${o} bps exceeds the ${Ng} bps cap`);if(o>i)throw new Error(`hl-perps: builder fee ${o} bps exceeds the ${i} bps product tier for ${t}`);let a=Math.round(o*10),c=(a/1e3).toFixed(3).replace(/0+$/,"").replace(/\.$/,"");return{wire:{b:r,f:a},disclosure:{address:r,bps:o,percent:`${c}%`}}}async function zU(e,A={},t={}){if(!e)return{approved:!1,approvedFeeBps:0,status:"not-configured"};let r=String(A.user||t.user||"").trim().toLowerCase();if(!/^0x[a-f0-9]{40}$/.test(r))return{approved:!1,approvedFeeBps:0,status:"wallet-required"};try{let n=Number(await yt({type:"maxBuilderFee",user:r,builder:e.disclosure.address},t));return!Number.isInteger(n)||n<0?{approved:!1,approvedFeeBps:0,status:"invalid-response"}:{approved:n>=e.wire.f,approvedFeeBps:n/10,status:n>=e.wire.f?"approved":"insufficient"}}catch{return{approved:!1,approvedFeeBps:0,status:"unavailable"}}}async function ZU(e,A={},t={}){if(!e)return{exempt:!1,status:"not-configured"};let r=String(A.user||t.user||"").trim().toLowerCase();if(!/^0x[a-f0-9]{40}$/.test(r))return{exempt:!1,status:"wallet-required"};try{let n=t.holderBalance||bg;return BigInt(await n(r))>0n?{exempt:!0,status:"holder"}:{exempt:!1,status:"non-holder"}}catch{return{exempt:!1,status:"unavailable"}}}function xg(e,A,{roundDown:t=null}={}){let r=typeof e=="number"?e.toFixed(Math.min(20,A+8)):e;if(typeof r!="string"||!/^-?\d+(\.\d+)?$/.test(r))throw new Error(`hl-perps: "${e}" is not a decimal number`);let n=r.startsWith("-"),[s,i=""]=r.replace(/^-/,"").split(".");if(i.length<=A){let E=i.replace(/0+$/,"");return(n?"-":"")+(E?`${s}.${E}`:s)}let o=i.slice(0,A),a=Number(i[A]),c=BigInt(s+o),g=i.slice(A).replace(/0+$/,"")!=="";t===!0||(t===!1?g&&(c+=1n):a>=5&&(c+=1n));let l=c.toString().padStart(A+1,"0"),B=(A===0?l:`${l.slice(0,-A)}.${l.slice(-A)}`).replace(/(\.\d*?)0+$/,"$1").replace(/\.$/,"");return(n?"-":"")+B}function _U(e,A,t={}){if(typeof e!="number"&&typeof e!="string")throw new Error(`hl-perps: "${e}" is not a decimal number`);let r=typeof e=="number"?String(e):e;if(!r.includes("."))return r;let n=Number(r);if(!Number.isFinite(n)||n===0)return r;let s=Math.floor(Math.log10(Math.abs(n))),i=Math.max(0,A-1-s);return xg(r,i,t)}function DA(e,A,t={}){let r=zd-Number(A??0);if(r<0)throw new Error("hl-perps: szDecimals out of range");return xg(_U(e,Od,t),r,t)}function Xd(e,A){let t=xg(e,Number(A??0));if(BigInt(t.split(".")[0])<0n)throw new Error("hl-perps: size must be positive");if(Number(t)<=0)throw new Error("hl-perps: size rounds to zero at this asset's precision");return t}function KU(e,A){let t=(g,l)=>{let Q=String(g).trim();if(!/^\d+(?:\.\d+)?$/.test(Q))throw new Error(`hl-perps: ${l} must be a positive decimal`);let[B,E=""]=Q.split(".");return{raw:BigInt(B+E),decimals:E.length}},r=t(e,"size"),n=t(A,"price"),s=r.raw*n.raw,i=r.decimals+n.decimals,o=s.toString().padStart(i+1,"0");if(i===0)return o;let a=o.slice(0,-i),c=o.slice(-i).replace(/0+$/,"");return c?`${a}.${c}`:a}async function Dr(e={},A={}){let t=await yg(e,A);return{coin:t.coin,assetId:t.assetId,szDecimals:t.szDecimals,maxLeverage:t.maxLeverage,markPx:t.markPx,kind:t.kind,dex:t.dex??null,outcome:t.outcome??null,side:t.side??null}}function Mg(e,{tif:A=Tn.GTC,triggerPx:t,isMarket:r,szDecimals:n}={}){switch(e){case we.LIMIT:return{limit:{tif:A}};case we.MARKET:return{limit:{tif:Tn.IOC}};case we.STOP_MARKET:case we.TAKE_PROFIT_MARKET:return{trigger:{isMarket:!0,triggerPx:DA(t,n),tpsl:e===we.STOP_MARKET?"sl":"tp"}};case we.STOP_LIMIT:case we.TAKE_PROFIT_LIMIT:return{trigger:{isMarket:!1,triggerPx:DA(t,n),tpsl:e===we.STOP_LIMIT?"sl":"tp"}};default:throw new Error(`hl-perps: unknown order type ${e}`)}}function kr(e,A,t={}){let r=t.testnet||process.env.HL_TESTNET==="1";return{action:e,nonce:A,signatureChainId:Ug,submitTo:r?"https://api.hyperliquid-testnet.xyz/exchange":"https://api.hyperliquid.xyz/exchange",note:"Sign locally via Oracle local-signer or a wallet. Hosted Oracle does not submit."}}function br(e,A={},t={}){let r={...e};try{r.localSignerEnvelope=Hd(r,A,t),r.prepared=!0,r.signing="awaiting-hl-signer"}catch(n){r.prepared=!1,r.localSignerEnvelope=null,r.localSignerBlockedReason=String(n?.message||n).slice(0,200),r.signing="blocked"}return r.oraclePrepared=!!r.localSignerEnvelope,OA(r,{provider:e.provider||"hl-perps",kind:e.kind})}function XU(e={},A={}){let t=Lg({env:A.env});if(!t)throw new Error(`hl-perps: ${qi} is required`);let r=Number(e.nonce??A.nonce??Date.now());if(!Number.isSafeInteger(r)||r<=0)throw new Error("hl-perps: nonce must be a positive integer");let n={type:"approveBuilderFee",hyperliquidChain:A.testnet||process.env.HL_TESTNET==="1"?"Testnet":"Mainnet",signatureChainId:Ug,maxFeeRate:t.disclosure.percent,builder:t.disclosure.address,nonce:r};return br({provider:"hl-perps",venue:"hyperliquid",kind:"builder-fee-approval",builderFee:t.disclosure,...kr(n,r,A)},e,A)}async function jd(e={},A={}){let t=await Dr(e,A);if(e.type!=null&&(typeof e.type!="string"||!e.type))throw new Error("hl-perps: order type must be a string");let r=e.type??we.LIMIT;if(typeof r!="string"||!r)throw new Error("hl-perps: order type must be a string");let n=_d(e);if(e.reduceOnly!=null&&typeof e.reduceOnly!="boolean")throw new Error("hl-perps: reduceOnly must be boolean");let s=e.reduceOnly===!0,i=Xd(e.size??e.sz,t.szDecimals),o;if(r===we.MARKET){let C=Number(t.markPx);if(!Number.isFinite(C)){let Z=await Dd(A);C=Number(Z?.[t.coin]??Z?.[String(t.assetId)]??NaN)}if(!Number.isFinite(C))throw new Error("hl-perps: no mark price available for a market order");let m=Number(e.maxSlippageBps??50);if(!Number.isInteger(m)||m<0)throw new Error("hl-perps: maxSlippageBps must be a non-negative integer");if(m>100)throw new Error(`hl-perps: maxSlippageBps ${m} exceeds the hard 100 bps cap`);let y=n?C*(1+m/1e4):C*(1-m/1e4);o=DA(y,t.szDecimals,{roundDown:n});let Y=Math.abs(Number(o)/C-1)*1e4;if(Y>m+1e-9)throw new Error(`hl-perps: tick rounding makes the limit ${Y.toFixed(2)} bps from mark, above the ${m} bps cap`)}else{if(e.price==null&&e.limitPx==null)throw new Error("hl-perps: a limit order requires an explicit price");o=DA(e.price??e.limitPx,t.szDecimals)}let a=Mg(r,{tif:e.tif??(r===we.MARKET?Tn.IOC:Tn.GTC),triggerPx:e.triggerPx,szDecimals:t.szDecimals}),c={a:t.assetId,b:n,p:o,s:i,r:s,t:a};if(e.clientOrderId!=null){if(typeof e.clientOrderId!="string"||!e.clientOrderId)throw new Error("hl-perps: clientOrderId must be a string");c.c=e.clientOrderId}if(e.grouping!=null&&(typeof e.grouping!="string"||!e.grouping))throw new Error("hl-perps: grouping must be a string");let g={type:"order",orders:[c],grouping:e.grouping??"na"},l=Lg({env:A.env,kind:t.kind}),Q=await ZU(l,e,A),B=Q.exempt?null:l,E=await zU(B,e,A),I=E.approved?B:null;I&&(g.builder=I.wire);let h=Number(e.nonce??Date.now()),u=KU(i,o);return br({provider:"hl-perps",venue:"hyperliquid",kind:t.kind==="outcome"?"hip4-order":t.kind==="hip3"?"hip3-order":"perp-order",coin:t.coin,assetId:t.assetId,assetKind:t.kind,outcome:t.outcome??null,outcomeSide:t.side??null,dex:t.dex??null,side:n?"buy":"sell",orderType:r,price:o,size:i,reduceOnly:s,notionalUsd:u,maxLeverage:t.maxLeverage,markPx:t.markPx,builderFee:I?.disclosure??null,holderExempt:Q.exempt,holderVerificationStatus:Q.status,builderApprovalRequired:B&&!I?{...l.disclosure,...E}:null,...kr(g,h,A)},e,A)}async function jU(e={},A={}){let t=await Dr(OU(e),A),r=e.orderId??e.oid;if(r==null)throw new Error("hl-perps: orderId required");let n=Zd(r,"orderId"),s={type:"cancel",cancels:[{a:t.assetId,o:n}]};return br({provider:"hl-perps",venue:"hyperliquid",kind:"perp-cancel",coin:t.coin,assetId:t.assetId,orderId:n,...kr(s,Number(e.nonce??Date.now()),A)},e,A)}async function $U(e={},A={}){let t=await Dr(e,A),r=PU(e.leverage,"leverage");if(t.maxLeverage!=null&&r>t.maxLeverage)throw new Error(`hl-perps: ${t.coin} allows at most ${t.maxLeverage}x, requested ${r}x`);if(e.marginMode!=null&&typeof e.marginMode!="string")throw new Error("hl-perps: marginMode must be a string");let n=(e.marginMode||xn.CROSS).toLowerCase();if(n!==xn.CROSS&&n!==xn.ISOLATED)throw new Error('hl-perps: marginMode must be "cross" or "isolated"');let s={type:"updateLeverage",asset:t.assetId,isCross:n===xn.CROSS,leverage:r};return br({provider:"hl-perps",venue:"hyperliquid",kind:"perp-leverage",coin:t.coin,assetId:t.assetId,leverage:r,marginMode:n,maxLeverage:t.maxLeverage,liquidationWarning:r>=20?`${r}x liquidates on roughly a ${(100/r).toFixed(2)}% adverse move before fees`:null,...kr(s,Number(e.nonce??Date.now()),A)},e,A)}async function eL(e={},A={}){let t=await Dr(e,A),r=e.usd??e.amountUsd;if(r==null)throw new Error("hl-perps: usd amount required");if(typeof r!="number"&&typeof r!="string")throw new Error("hl-perps: usd must be a decimal number");let n=typeof r=="number"?String(r):r;if(!/^-?\d+(\.\d+)?$/.test(n))throw new Error("hl-perps: usd must be a decimal number");let s=Me(n,6,"hl-perps: usd"),i=_d(e,{defaultBuy:!0}),o={type:"updateIsolatedMargin",asset:t.assetId,isBuy:i,ntli:s<=BigInt(Number.MAX_SAFE_INTEGER)?Number(s):s.toString()};return br({provider:"hl-perps",venue:"hyperliquid",kind:"perp-isolated-margin",coin:t.coin,assetId:t.assetId,isBuy:i,usd:n,...kr(o,Number(e.nonce??Date.now()),A)},e,A)}async function AL(e={},A={}){let t=await jd(e,A),r=await Dr(e,A),n=t.side==="buy",s=[t.action.orders[0]];if(e.takeProfitPx!=null&&s.push({a:r.assetId,b:!n,p:DA(e.takeProfitPx,r.szDecimals),s:t.size,r:!0,t:Mg(we.TAKE_PROFIT_MARKET,{triggerPx:e.takeProfitPx,szDecimals:r.szDecimals})}),e.stopLossPx!=null&&s.push({a:r.assetId,b:!n,p:DA(e.stopLossPx,r.szDecimals),s:t.size,r:!0,t:Mg(we.STOP_MARKET,{triggerPx:e.stopLossPx,szDecimals:r.szDecimals})}),s.length===1)throw new Error("hl-perps: a bracket needs takeProfitPx and/or stopLossPx");let i={type:"order",orders:s,grouping:"normalTpsl",...t.action.builder?{builder:t.action.builder}:{}};return br({provider:"hl-perps",venue:"hyperliquid",kind:"perp-bracket",coin:r.coin,assetId:r.assetId,side:t.side,price:t.price,size:t.size,reduceOnly:t.reduceOnly,orderType:t.orderType,notionalUsd:t.notionalUsd,legs:s.length,entry:{side:t.side,price:t.price,size:t.size},takeProfitPx:e.takeProfitPx==null?null:DA(e.takeProfitPx,r.szDecimals),stopLossPx:e.stopLossPx==null?null:DA(e.stopLossPx,r.szDecimals),builderFee:t.builderFee,...kr(i,Number(e.nonce??Date.now()),A)},e,A)}var Od,zd,Ug,WU,Ng,qi,Sg,Ln,we,Tn,xn,ef=Je(()=>{Ti();mg();Vi();Yi();vd();Fg();Pd();Od=5,zd=6,Ug="0x66eee",WU=2,Ng=10,qi="ORACLE_HL_BUILDER_ADDRESS",Sg="ORACLE_HL_BUILDER_FEE_BPS",Ln=Object.freeze({perp:2,spot:1,hip3:1,hip4:1}),we=Object.freeze({LIMIT:"limit",MARKET:"market",STOP_MARKET:"stopMarket",STOP_LIMIT:"stopLimit",TAKE_PROFIT_MARKET:"takeProfitMarket",TAKE_PROFIT_LIMIT:"takeProfitLimit"}),Tn=Object.freeze({GTC:"Gtc",IOC:"Ioc",ALO:"Alo"}),xn=Object.freeze({CROSS:"cross",ISOLATED:"isolated"})});xi();var $M="https://yields.llama.fi";async function pd(e={},A={}){let t=(A.yieldsBaseUrl||process.env.DEFILLAMA_YIELDS_URL||$M).replace(/\/$/,""),r=await wt(`${t}/pools`,{fetchImpl:A.fetchImpl,timeoutMs:A.timeoutMs??3e4}),n=Array.isArray(r?.data)?r.data:[];e.chain&&(n=n.filter(i=>String(i.chain).toLowerCase()===String(e.chain).toLowerCase())),e.project&&(n=n.filter(i=>String(i.project).toLowerCase()===String(e.project).toLowerCase())),e.stablecoin!=null&&(n=n.filter(i=>!!i.stablecoin==!!e.stablecoin)),n.sort((i,o)=>Number(o.tvlUsd||0)-Number(i.tvlUsd||0));let s=Math.min(5e3,Math.max(1,Number(e.limit||n.length||1)));return{...r,data:n.slice(0,s)}}var Nn=Object.freeze([{id:"stable-loop",label:"Stablecoin loop",risk:"Conservative",targetDelta:"0.00",setup:"Supply USDC, borrow a second major stable, redeposit inside the same protocol or campaign.",exposure:"Borrow APR spike, depeg, collateral-factor change, protocol cap change.",hedge:"No perp hedge by default. Cap leverage, diversify stables, and keep unwind triggers explicit.",monitor:"Borrow APR, utilization, oracle health, depeg distance, reward dilution.",exit:"Unwind if borrow APR exceeds reward-adjusted APR or any stable trades outside the defined band."},{id:"collateral-hedge",label:"Collateral plus perp hedge",risk:"Balanced",targetDelta:"~0.00",setup:"Supply a volatile asset as collateral, borrow stables, and short the collateral notional on a liquid perp venue.",exposure:"Liquidation risk, funding cost, hedge slippage, borrow APR drift.",hedge:"Short collateral notional on a liquid perp venue; rebalance when delta drifts past the band.",monitor:"Health factor, funding, mark price, borrow APR, hedge margin.",exit:"Cut when funding turns persistently negative against the position or health factor nears the floor."},{id:"lp-hedge",label:"LP incentive hedge",risk:"Aggressive",targetDelta:"range-dependent",setup:"Provide concentrated liquidity for incentives and short the estimated volatile-token delta.",exposure:"Impermanent loss, range breaks, reward dilution, exit slippage.",hedge:"Short the estimated volatile-token delta and recompute after material price or range moves.",monitor:"Position delta, range utilization, fee APR, rewards, funding, exit slippage.",exit:"Withdraw when incentives dilute, liquidity caps fill, or expected reward no longer beats IL plus opportunity cost."},{id:"quest-farming",label:"Testnet and quest farming",risk:"Conservative",targetDelta:"n/a",setup:"Complete real protocol tasks with consistent, genuine usage from wallets you actually control.",exposure:"Eligibility rules change, sybil filters, unpaid effort, opportunity cost.",hedge:"No financial hedge. Diversify across campaigns so no single ruleset dominates the outcome.",monitor:"Campaign rules, snapshot windows, task eligibility evidence, wallet hygiene.",exit:"Stop once snapshot risk rises, campaign rules change, or the probability-adjusted expected value turns negative."},{id:"liquidity-usage",label:"Liquidity and route usage",risk:"Balanced",targetDelta:"varies",setup:"Route genuine volume and provide liquidity where usage is a stated eligibility signal.",exposure:"IL, slippage, gas burn, bridge fees, lockup discount.",hedge:"Size positions so IL and fees stay inside the modelled reward, and hedge volatile legs when material.",monitor:"Volume attribution, fee drag, reward accrual, lockup terms.",exit:"Withdraw when incentives dilute or expected reward no longer beats IL plus opportunity cost."},{id:"governance-usage",label:"Governance and ecosystem usage",risk:"Conservative",targetDelta:"n/a",setup:"Participate in governance and ecosystem surfaces where real contribution is the eligibility signal.",exposure:"Vanity activity with no eligibility weight, lock-up of governance assets.",hedge:"No financial hedge. Weight effort toward actions with documented eligibility evidence.",monitor:"Proposal participation, delegation terms, lock durations, published criteria.",exit:"Stop contributing effort once criteria change or the probability-adjusted value turns negative."}]),eU={"stable-loop":"No default perp hedge. Bound leverage and monitor depeg plus borrow APR.","collateral-hedge":"Short the collateral notional on a liquid perp venue and rebalance when delta drifts.","lp-hedge":"Short the estimated volatile-token delta and recompute after material price or range moves."},AU={"stable-loop":"Borrow APR, utilization, stable peg, reward dilution, health factor.","collateral-hedge":"Health factor, funding, mark price, borrow APR, hedge margin.","lp-hedge":"Position delta, range utilization, fee APR, rewards, funding, exit slippage."},tU={"stable-loop":["Prepare supply for the stable collateral leg.","Prepare borrow only after health factor and borrow APR pass the method limits.","Prepare redeposit or unwind steps as separate wallet-signed actions."],"collateral-hedge":["Prepare collateral supply after sizing liquidation buffer.","Prepare stable borrow if borrow APR remains inside the method limit.","Open or adjust the perp short on the selected hedge venue, then record hedge size."],"lp-hedge":["Prepare LP add only after checking pool depth, range, and expected position delta.","Short the estimated volatile-token delta on the selected hedge venue.","Prepare LP remove if the range breaks or net APR turns negative."]};function pt(e){let A=typeof e=="number"?e:Number(e);return Number.isFinite(A)?A:null}function mA(e,A="unknown"){if(typeof e!="string")return A;let t=e.trim();return t===""?A:t.slice(0,96)}function rU(e){let A=mA(e.symbol,"").toUpperCase(),t=mA(e.exposure,"").toLowerCase(),r=pt(e.apy)??0,n=pt(e.tvlUsd)??0;return r<=0||n<=0?null:e.stablecoin===!0?"stable-loop":A.includes("-")||t.includes("multi")?"lp-hedge":/ETH|BTC|SOL|HYPE|BNB|AVAX|MATIC|OP|ARB/.test(A)?"collateral-hedge":null}function nU(e,A){let t=pt(e.tvlUsd)??0,r=mA(e.ilRisk,"").toLowerCase(),n=mA(e.predictions?.predictedClass,"").toLowerCase(),s=A==="stable-loop"?3:A==="collateral-hedge"?6:9;return t<1e6?s+=6:t<1e7&&(s+=3),(r.includes("yes")||r.includes("high"))&&(s+=3),n.includes("down")&&(s+=2),Math.min(35,Math.max(0,s))}function sU(e){let A=rU(e);if(!A)return null;let t=pt(e.apy)??0,r=pt(e.apyBase)??0,n=Math.max(0,pt(e.apyReward)??Math.max(0,t-r)),s=Math.max(0,pt(e.tvlUsd)??0),i=nU(e,A),o=A==="stable-loop"?4:A==="collateral-hedge"?6:0,a=A==="stable-loop"?0:A==="collateral-hedge"?4:5,c=s<5e6?1.2:.5,g=t-o-a-c-i,l=g<1?"Avoid":t>80||s<1e7?"Watchlist":g>=8?"Farmable":"Watchlist",Q=mA(e.project),B=mA(e.symbol),E=mA(e.chain);return{id:mA(e.pool,`${E}:${Q}:${B}`),recipe:A,label:`${Q} ${B}`,chain:E,project:Q,symbol:B,tvlUsd:s,rewardApr:n,nativeApr:r,estimatedBorrowApr:o,estimatedFundingApr:a,gasApr:c,riskHaircut:i,netApr:g,verdict:l,exposure:mA(e.exposure,A==="stable-loop"?"stablecoin":A==="lp-hedge"?"multi-asset LP":"single-asset collateral"),hedge:eU[A],monitor:AU[A],prepareSteps:[`Verify ${Q} contracts and reward terms on ${E}.`,"Set wallet grant with chain, protocol, max value, slippage, and TTL before preparing any transaction.",...tU[A]],source:"DeFiLlama yields"}}async function yd(e={},A={}){let t=Math.min(24,Math.max(3,Number(e.limit??12)||12)),r=Number(e.minTvl??2e6),n=new Date().toISOString(),s="read-only discovery and prepare-plan design; no signing or broadcast";try{let i=await pd({chain:e.chain&&e.chain!=="all"?e.chain:void 0,limit:5e3},A),o=Array.isArray(i?.data)?i.data:[],a=o.map(sU).filter(c=>c!==null).filter(c=>c.tvlUsd>=r).filter(c=>c.rewardApr+c.nativeApr<=300).sort((c,g)=>g.netApr-c.netApr||g.tvlUsd-c.tvlUsd).slice(0,t);return{configured:!0,live:!0,source:"DeFiLlama yields",generatedAt:n,chain:e.chain??"all",considered:o.length,consideredNote:"deepest pools by TVL from the DeFiLlama yields feed",candidates:a,posture:s}}catch(i){return{configured:!1,live:!1,source:"DeFiLlama yields",generatedAt:n,chain:e.chain??"all",considered:0,consideredNote:"deepest pools by TVL from the DeFiLlama yields feed",error:String(i?.message||i),candidates:[],posture:s}}}function oA(e,A,t,r){let n=typeof e=="number"?e:Number(e);return Number.isFinite(n)?Math.min(r,Math.max(t,n)):A}function md(e={}){let A=oA(e.wallets,5,1,500),t=oA(e.tasksWeekly,6,0,500),r=oA(e.hoursWeekly,4,0,168),n=oA(e.hourlyCost,25,0,1e4),s=oA(e.gasPerTask,.4,0,1e4),i=oA(e.bridgeMonthly,12,0,1e5),o=oA(e.expectedReward,900,0,1e7),a=oA(e.probability,22,0,100)/100,c=oA(e.sybilHaircut,25,0,100)/100,g=oA(e.lockupMonths,6,0,120),l=t*A*4.33,Q=l*s,B=r*4.33*n,E=Q+B+i,I=Math.max(0,1-g*.015),h=A*o*a,u=h*(1-c)*I,C=u-E,m=E>0?C/E*100:null,y=A*o>0?E/(A*o*(1-c)*(I||1))*100:null;return{inputs:{wallets:A,tasksWeekly:t,hoursWeekly:r,hourlyCost:n,gasPerTask:s,bridgeMonthly:i,expectedReward:o,probabilityPct:a*100,sybilHaircutPct:c*100,lockupMonths:g},monthlyTasks:l,monthlyGas:Q,laborMonthly:B,monthlyCost:E,lockupDiscount:I,grossExpectedValue:h,adjustedExpectedValue:u,netExpectedValue:C,roiPct:m,breakevenProbabilityPct:y,verdict:C>0?"positive-ev":"negative-ev",posture:"estimate on your own inputs; not a payout promise and not financial advice"}}Ti();Yi();function Fd(e={}){let A=e.spotSizes??e.spotHeldSizes;return A&&typeof A=="object"&&!Array.isArray(A)?A:null}function Ji(e={},A,t){let r=String(A||""),n=Fd(e);if(n){let i=Mn(n[r]);if(i==null)throw new Error(`${t}: held spot required for ${r}`);return i}let s=Mn(e.spotSize??e.spotHeldSize);if(s==null)throw new Error(`${t}: prepare requires spotSize of held spot`);return s}function Hi(e={},A=[],t){let r=Fd(e);if(A.length>1){if(!r)throw new Error(`${t}: multi-coin live loop requires spotSizes map`);for(let n of A)if(Mn(r[n])==null)throw new Error(`${t}: held spot required for ${n}`);return}if(r){let n=A[0];if(n&&Mn(r[n])==null)throw new Error(`${t}: held spot required for ${n}`);return}if(Mn(e.spotSize??e.spotHeldSize)==null)throw new Error(`${t}: live loop requires spotSize of held spot`)}var wg=Number.MAX_SAFE_INTEGER,Gi=String(wg);function Mn(e){if(typeof e=="number")return Number.isFinite(e)&&e>0&&e<=wg?e:null;if(typeof e!="string"||!/^(?:0|[1-9]\d*)(?:\.\d+)?$/.test(e))return null;let[A,t=""]=e.split(".");if(A.length>Gi.length||A.length===Gi.length&&A>Gi||A===Gi&&/[1-9]/.test(t))return null;let r=Number(e);return Number.isFinite(r)&&r>0&&r<=wg?r:null}function kA(e){let A=typeof e=="number"?e:Number(e);return Number.isFinite(A)?A:null}function Af(e){let A=kA(e);if(A==null)throw new Error("hl-delta-neutral: funding rate required");return A*24*365*100}function tL(e,A,t=4){let r=kA(e),n=kA(A),s=Number.isInteger(Number(t))?Number(t):4;if(!(r>0))throw new Error("hl-delta-neutral: notionalUsd must be > 0");if(!(n>0))throw new Error("hl-delta-neutral: markPx must be > 0");let i=10**s;return String(Math.floor(r/n*i+1e-12)/i)}function tf(e){let A=Array.isArray(e?.[0]?.universe)?e[0].universe:[],t=Array.isArray(e?.[1])?e[1]:[],r=[];for(let n=0;n<A.length;n+=1){let s=A[n]||{},i=t[n]||{},o=String(s.name||"").trim(),a=kA(i.funding),c=kA(i.markPx??i.oraclePx),g=kA(i.openInterest)??0;!o||a==null||!(c>0)||r.push({coin:o,szDecimals:Number.isInteger(Number(s.szDecimals))?Number(s.szDecimals):4,funding:a,markPx:c,oraclePx:kA(i.oraclePx),openInterest:g,fundingAprPct:Af(a)})}return r}function rf(e,A){if(!e?.coin)throw new Error("hl-delta-neutral: coin required");let t=kA(e.funding);if(t==null)throw new Error("hl-delta-neutral: funding required");let r=Af(t),n=t>0,s={coin:e.coin,notionalUsd:kA(A),markPx:e.markPx,fundingHourly:t,fundingAprPct:r,targetDelta:0,spot:n?"hold-existing":"short-spot-not-in-light-path",perpSide:n?"sell":"buy",perpSize:n?tL(A,e.markPx,e.szDecimals):"0",verdict:n?r>=5?"carry":"watch":"skip",posture:"light hold-spot / short-perp carry. A farm tick may prepare the perp hedge unsigned. Hosted stays prepare-only."};if(!(s.notionalUsd>0))throw new Error("hl-delta-neutral: notionalUsd must be > 0");return s}async function Tg(e={},A={}){let t=Math.min(24,Math.max(1,Number(e.limit??8)||8)),r=Number(e.minOpenInterest??0),n=await Sn(A),s=tf(n).filter(i=>i.funding>0&&i.openInterest>=r).sort((i,o)=>o.funding-i.funding||o.openInterest-i.openInterest).slice(0,t);return{live:!0,source:"Hyperliquid metaAndAssetCtxs",considered:Array.isArray(n?.[0]?.universe)?n[0].universe.length:0,candidates:s,posture:"read-only funding scan. Positive funding only. No signing."}}async function Yg(e={},A={}){let t=String(e.coin||"").trim();if(!t)throw new Error("hl-delta-neutral: coin required");let r=Number(e.notionalUsd??e.notional??1e3),n=await Sn(A),s=tf(n).find(i=>i.coin===t);if(!s)throw new Error(`hl-delta-neutral: ${t} not in Hyperliquid meta`);return rf(s,r)}async function rL(e={},A={}){sf(e,A,"hl-delta-neutral");let t=of(e.maxNotionalUsd??25e3,"hl-delta-neutral"),r=await Yg(e,A);if(r.verdict==="skip")return OA({...r,prepared:!1,oraclePrepared:!1,surface:"hl",reason:"negative funding is outside the light hold-spot path"},{provider:"hl-delta-neutral",kind:"hl-carry-hedge"});let n=Ji(e,r.coin,"hl-delta-neutral");if(!nf.test(String(e.owner||"")))throw new Error("hl-delta-neutral: prepare requires owner");if(Number(r.perpSize)-n>1e-12)throw new Error("hl-delta-neutral: hedge cannot exceed held spot");let{hlPreparePerpOrder:s}=await Promise.resolve().then(()=>(ef(),$d)),i=await s({coin:r.coin,side:r.perpSide,size:r.perpSize,type:e.orderType||"limit",price:e.price??r.markPx,owner:e.owner,maxNotionalUsd:t},{fetchImpl:A.fetchImpl,nowMs:A.nowMs});if(i?.signed===!0||i?.broadcast===!0)throw new Error("hl-delta-neutral: prepare cannot sign or broadcast");let o=i?.localSignerEnvelope||null,a=i?.localSignerBlockedReason||null;return OA({...r,prepared:!!o,surface:"hl",hedge:i,localSignerEnvelope:o,localSignerBlockedReason:a,signed:!1,broadcast:!1,signing:o?"awaiting-hl-signer":"blocked",oraclePrepared:!!o},{provider:"hl-delta-neutral",kind:"hl-carry-hedge"})}var nf=/^0x[0-9a-fA-F]{40}$/;function sf(e,A,t){if((A.hosted===!0||A.keyless===!0)&&(e.farming===!0||typeof A.signImpl=="function"))throw new Error(`${t}: hosted/keyless cannot sign`);if(e.farming===!0||typeof A.signImpl=="function"||typeof A.prepareImpl=="function")throw new Error(`${t}: farm cannot sign; use oracle signer`)}function nL(e,A,t){sf(e,A,t)}function sL(e={}){if(e.halted===!0)throw new Error("hl-delta-neutral: loop is halted");let A=e.mode==="live"?"live":"shadow",t=Array.isArray(e.coins||e.allowlist)?(e.coins||e.allowlist).map(String):[],r=e.maxCoins??1;if(typeof r!="number"&&!(typeof r=="string"&&/^(?:0|[1-9]\d*)$/.test(r)))throw new Error("hl-delta-neutral: maxCoins must be an integer");let n=Number(r);if(!Number.isSafeInteger(n))throw new Error("hl-delta-neutral: maxCoins must be an integer");if(n<1||n>8)throw new Error("hl-delta-neutral: maxCoins must be between 1 and 8");let s=of(e.maxNotionalUsd??e.notionalUsd??e.notional??1e3,"hl-delta-neutral");if(A==="live"&&t.length===0)throw new Error("hl-delta-neutral: live loop requires a coin allowlist");if(A==="live"&&Hi(e,t,"hl-delta-neutral"),A==="live"&&!nf.test(String(e.owner||"")))throw new Error("hl-delta-neutral: live loop requires owner");return{mode:A,allowlist:t,maxCoins:n,maxNotionalUsd:s,intervalMs:Math.max(3e4,Number(e.intervalMs??3e5)||3e5)}}function of(e,A){let t=typeof e=="string"&&e===e.trim()&&/^(?:0\.\d+|[1-9]\d*(?:\.\d+)?)$/.test(e);if(typeof e!="number"&&!t)throw new Error(`${A}: maxNotionalUsd out of bounds`);let r=Number(e);if(!(r>0)||r>25e3)throw new Error(`${A}: maxNotionalUsd out of bounds`);return r}async function af(e={},A={}){nL(e,A,"hl-delta-neutral");let t=sL(e),r=await Tg({limit:e.limit??16,minOpenInterest:e.minOpenInterest},A),n=new Set(t.allowlist),s=[],i=Math.floor(t.maxNotionalUsd/t.maxCoins);for(let o of r.candidates){if(n.size&&!n.has(o.coin))continue;let a=rf(o,i);if(a.verdict!=="carry")continue;if(s.length>=t.maxCoins)break;if(t.mode==="shadow"){s.push({...a,mode:"shadow",surface:"hl",prepared:!1,signed:!1,broadcast:!1});continue}let c=await rL({coin:a.coin,notionalUsd:a.notionalUsd,owner:e.owner,orderType:e.orderType,price:e.price,maxNotionalUsd:i,spotSize:e.spotSize??e.spotHeldSize,spotSizes:e.spotSizes??e.spotHeldSizes},{fetchImpl:A.fetchImpl,nowMs:A.nowMs});s.push({...c,mode:"live",surface:"hl"})}return{loop:!0,mode:t.mode,surface:"hl",signer:"hl",considered:r.considered,actions:s,nextWaitMs:t.intervalMs,signed:s.some(o=>o.signed===!0),broadcast:s.some(o=>o.broadcast===!0),posture:"one tick. Prepares an unsigned hedge for oracle signer. Armed, not automated. Farm loop never signs or broadcasts."}}xi();Yi();Vi();var iL=new Set(["https://mainnet.zklighter.elliot.ai/api/v1/sendTx","https://testnet.zklighter.elliot.ai/api/v1/sendTx"]),Yn=14,cf=(e,A,t=256)=>{if(typeof e!="string"||!e||e.length>t)throw new Error(`lighter: bounded ${A} required`);return e};function Fr(e,A,t){if(!Number.isSafeInteger(e)||e!==A)throw new Error(`lighter: ${t} must be exact numeric ${A}`)}function Gg(e){let A=String(e||"").replace(/\/$/,"");if(!iL.has(A))throw new Error("lighter: submitTo must be the official Lighter sendTx");return A}function gf(e,A={}){if(e?.surface!=="lighter")throw new Error("lighter: surface lighter required");let t=e.artifact;if(!t||typeof t!="object"||Array.isArray(t))throw new Error("lighter: structured artifact required");let r=cf(t.kind,"kind",48);if(r!=="lighter-order")throw new Error("lighter: unsupported Lighter kind");if(e.action!=="order")throw new Error("lighter: surface/action/kind mismatch");if(String(e.destination).toLowerCase()!=="lighter")throw new Error("lighter: destination must be lighter");let n=Gg(t.submitTo),s=t.marketIndex;if(typeof s!="number"||!Number.isSafeInteger(s)||s<0)throw new Error("lighter: marketIndex required");let i=Number(mt(t.accountIndex,"lighter: accountIndex"));if(!Number.isSafeInteger(i)||i<0)throw new Error("lighter: accountIndex required");let o=Number(mt(t.clientOrderIndex,"lighter: clientOrderIndex"));if(!Number.isSafeInteger(o)||o<0)throw new Error("lighter: clientOrderIndex required");Fr(t.orderType,0,"orderType"),Fr(t.timeInForce,1,"timeInForce"),Fr(t.reduceOnly,0,"reduceOnly"),Fr(t.triggerPrice,0,"triggerPrice"),Fr(t.orderExpiry,-1,"orderExpiry");let a=cf(t.symbol||t.coin,"symbol",32),c=Array.isArray(A.lighterMarkets)?A.lighterMarkets.map(String):[];if(c.length&&!c.includes(a)&&!c.includes(String(s))&&!c.includes("*"))throw new Error("lighter: market not allowed");if(t.side!=="buy"&&t.side!=="sell")throw new Error("lighter: side must be buy or sell");let g=Dg(t.baseAmount,"lighter: baseAmount"),l=Dg(t.price,"lighter: price");if(g>BigInt(Number.MAX_SAFE_INTEGER)||l>BigInt(Number.MAX_SAFE_INTEGER))throw new Error("lighter: baseAmount and price must be safe integers");let Q=Number(g),B=Number(l),E=Number(t.sizeDecimals??0),I=Number(t.priceDecimals??0);if(!Number.isInteger(E)||E<0||E>12)throw new Error("lighter: sizeDecimals required");if(!Number.isInteger(I)||I<0||I>12)throw new Error("lighter: priceDecimals required");let h=E+I,u=g*l,C=Me(t.notionalUsd,h,"lighter: notionalUsd");if(C<=0n)throw new Error("lighter: notionalUsd required");if(u!==C)throw new Error("lighter: notionalUsd must match size and price");let m=Me(A.maxNotionalUsd??Number.MAX_SAFE_INTEGER,h,"lighter: maxNotionalUsd");if(u>m)throw new Error("lighter: notional exceeds cap");let y=ae(t.notionalUsd,"lighter: notionalUsd");return Fr(t.txType,Yn,"txType"),Object.freeze({unit:"usd",value:String(y),notional:String(y),fee:"0",kind:r,symbol:a,marketIndex:s,side:t.side,baseAmount:Q,price:B,submitTo:n,actionType:"create-order",amount:String(y)})}function oL(e){let A=e.owner||e.user||e.from;if(!/^0x[0-9a-fA-F]{40}$/.test(String(A||"")))throw new Error("lighter: owner address required for local-signer envelope");return String(A).toLowerCase()}function lf(e,A={},t={}){if(String(e?.kind)!=="lighter-order")throw new Error("lighter: prepared kind is not a local-signer surface");let r=Number(t.nowMs??Date.now()),n=Math.min(6e4,Math.max(1e3,Number(A.ttlMs??A.expiresInMs??3e4)||3e4)),s=Gg(e.submitTo),i={version:1,surface:"lighter",action:"order",owner:oL(A),destination:"lighter",tradeId:String(A.tradeId||`lighter:${e.symbol}:${e.marketIndex}:${e.clientOrderIndex}`),expiresAtMs:r+n,slippageBps:Number(A.slippageBps??0),fee:{oracleFeeBps:0},provider:"lighter-delta-neutral",artifact:{kind:"lighter-order",symbol:e.symbol,marketIndex:e.marketIndex,side:e.side,baseAmount:e.baseAmount,price:e.price,notionalUsd:e.notionalUsd,sizeDecimals:e.sizeDecimals??0,priceDecimals:e.priceDecimals??0,clientOrderIndex:e.clientOrderIndex,txType:e.txType??Yn,submitTo:s,accountIndex:e.accountIndex??A.accountIndex??null,orderType:e.orderType,timeInForce:e.timeInForce,reduceOnly:e.reduceOnly,triggerPrice:e.triggerPrice,orderExpiry:e.orderExpiry}};return gf(i,{lighterMarkets:A.lighterMarkets||["*"],maxNotionalUsd:A.maxNotionalUsd??Number.MAX_SAFE_INTEGER}),i}var Ef="https://mainnet.zklighter.elliot.ai",Bf="https://testnet.zklighter.elliot.ai";function aL(e={}){return e.testnet||process.env.LIGHTER_TESTNET==="1"?Bf:Ef}function ZA(e){let A=typeof e=="number"?e:Number(e);return Number.isFinite(A)?A:null}function cL(e,A){let t=e.toString().padStart(A+1,"0");if(A===0)return t;let r=t.slice(0,-A),n=t.slice(-A).replace(/0+$/,"");return n?`${r}.${n}`:r}function uf(e){let A=ZA(e);if(A==null)throw new Error("lighter: funding rate required");return A*24*365*100}function gL(e,A,t=4){let r=ZA(e),n=ZA(A),s=Number.isInteger(Number(t))?Number(t):4;if(!(r>0))throw new Error("lighter: notionalUsd must be > 0");if(!(n>0))throw new Error("lighter: markPx must be > 0");let i=10**s;return Math.floor(r/n*i+1e-12)}function Qf(e){return typeof e=="number"&&Number.isSafeInteger(e)&&e>=0?e:null}function If(e,A){let t=Array.isArray(e?.funding_rates)?e.funding_rates:[],r=Array.isArray(A?.order_book_details)?A.order_book_details:[],n=new Map;for(let i of r){let o=Qf(i.market_id);o!=null&&n.set(o,i)}let s=[];for(let i of t){if(String(i.exchange||"")!=="lighter")continue;let o=Qf(i.market_id);if(o==null)continue;let a=n.get(o),c=ZA(a?.mark_price??a?.index_price),g=ZA(i.rate),l=String(i.symbol||a?.symbol||"").trim();!l||g==null||!(c>0)||s.push({coin:l,symbol:l,marketIndex:o,funding:g,markPx:c,openInterest:ZA(a?.open_interest)??0,sizeDecimals:Number(a?.supported_size_decimals??a?.size_decimals??4),priceDecimals:Number(a?.supported_price_decimals??a?.price_decimals??2),fundingAprPct:uf(g)})}return s}function hf(e,A){if(!e?.symbol&&!e?.coin)throw new Error("lighter: symbol required");let t=ZA(e.funding);if(t==null)throw new Error("lighter: funding required");let r=uf(t),n=t>0,s={coin:e.symbol||e.coin,symbol:e.symbol||e.coin,marketIndex:e.marketIndex,notionalUsd:ZA(A),markPx:e.markPx,fundingHourly:t,fundingAprPct:r,targetDelta:0,spot:n?"hold-existing":"short-spot-not-in-light-path",perpSide:n?"sell":"buy",baseAmount:n?gL(A,e.markPx,e.sizeDecimals):0,price:Math.round(Number(e.markPx)*10**Number(e.priceDecimals||0)),sizeDecimals:e.sizeDecimals,priceDecimals:e.priceDecimals,verdict:n?r>=5?"carry":"watch":"skip",posture:"light hold-spot / short-perp carry on Lighter. Armed via official sendTx. Not automated."};if(!(s.notionalUsd>0))throw new Error("lighter: notionalUsd must be > 0");return s}async function Cf(e={}){let A=aL(e),t=e.fetchImpl,r=await wt(`${A}/api/v1/funding-rates`,{fetchImpl:t,retries:0}),n=await wt(`${A}/api/v1/orderBookDetails`,{fetchImpl:t,retries:0});return{funding:r,books:n}}async function Jg(e={},A={}){let t=Math.min(24,Math.max(1,Number(e.limit??8)||8)),{funding:r,books:n}=await Cf(A),s=If(r,n).filter(i=>i.funding>0).sort((i,o)=>o.funding-i.funding||o.openInterest-i.openInterest).slice(0,t);return{live:!0,source:"Lighter funding-rates + orderBookDetails",considered:Array.isArray(r?.funding_rates)?r.funding_rates.filter(i=>i.exchange==="lighter").length:0,candidates:s,posture:"read-only Lighter funding scan. Positive funding only. No signing."}}async function Hg(e={},A={}){let t=String(e.coin||e.symbol||"").trim();if(!t)throw new Error("lighter: coin required");let r=Number(e.notionalUsd??e.notional??1e3),{funding:n,books:s}=await Cf(A),i=If(n,s).find(o=>o.symbol===t);if(!i)throw new Error(`lighter: ${t} not in Lighter funding`);return hf(i,r)}async function lL(e={},A={}){ff(e,A,"lighter");let t=wf(e.maxNotionalUsd??25e3,"lighter");if(typeof e.accountIndex!="number"||!Number.isSafeInteger(e.accountIndex)||e.accountIndex<0)throw new Error("lighter: accountIndex required");let r=e.accountIndex,n=await Hg(e,A);if(n.verdict==="skip")return OA({...n,prepared:!1,oraclePrepared:!1,surface:"lighter",reason:"negative funding is outside the light hold-spot path"},{provider:"lighter-delta-neutral",kind:"lighter-order"});let s=Ji(e,n.coin,"lighter");if(!df.test(String(e.owner||"")))throw new Error("lighter: prepare requires owner");if(n.baseAmount/10**Number(n.sizeDecimals||0)-s>1e-12)throw new Error("lighter: hedge cannot exceed held spot");let o=!!(A.testnet||process.env.LIGHTER_TESTNET==="1"),a=Number(n.sizeDecimals||0)+Number(n.priceDecimals||0),c=cL(BigInt(n.baseAmount)*BigInt(n.price),a);if(e.clientOrderIndex!=null&&(typeof e.clientOrderIndex!="number"||!Number.isSafeInteger(e.clientOrderIndex)||e.clientOrderIndex<0))throw new Error("lighter: clientOrderIndex must be a safe integer");let g={...n,targetNotionalUsd:n.notionalUsd,notionalUsd:c,kind:"lighter-order",surface:"lighter",side:n.perpSide,clientOrderIndex:e.clientOrderIndex??Date.now()%1e9,accountIndex:r,orderType:0,timeInForce:1,reduceOnly:0,triggerPrice:0,orderExpiry:-1,txType:Yn,submitTo:`${o?Bf:Ef}/api/v1/sendTx`,signed:!1,broadcast:!1},l=null,Q=null;try{l=lf(g,{...e,maxNotionalUsd:t},A)}catch(E){Q=String(E?.message||E).slice(0,200)}return OA({...g,prepared:!!l,signing:l?"awaiting-lighter-signer":"blocked",localSignerEnvelope:l,localSignerBlockedReason:Q,oraclePrepared:!!l},{provider:"lighter-delta-neutral",kind:"lighter-order"})}var df=/^0x[0-9a-fA-F]{40}$/;function ff(e,A,t){if((A.hosted===!0||A.keyless===!0)&&(e.farming===!0||typeof A.signImpl=="function"))throw new Error(`${t}: hosted/keyless cannot sign`);if(e.farming===!0||typeof A.signImpl=="function"||typeof A.prepareImpl=="function")throw new Error(`${t}: farm cannot sign; use oracle signer`)}function QL(e,A,t){ff(e,A,t)}function EL(e={}){if(e.halted===!0)throw new Error("lighter: loop is halted");let A=e.mode==="live"?"live":"shadow",t=Array.isArray(e.coins||e.allowlist)?(e.coins||e.allowlist).map(String):[],r=e.maxCoins??1;if(typeof r!="number"&&!(typeof r=="string"&&/^(?:0|[1-9]\d*)$/.test(r)))throw new Error("lighter: maxCoins must be an integer");let n=Number(r);if(!Number.isSafeInteger(n))throw new Error("lighter: maxCoins must be an integer");if(n<1||n>8)throw new Error("lighter: maxCoins must be between 1 and 8");let s=wf(e.maxNotionalUsd??e.notionalUsd??e.notional??1e3,"lighter");if(A==="live"&&t.length===0)throw new Error("lighter: live loop requires a coin allowlist");if(A==="live"&&Hi(e,t,"lighter"),A==="live"&&!df.test(String(e.owner||"")))throw new Error("lighter: live loop requires owner");let i=e.accountIndex;if(A==="live"&&(typeof i!="number"||!Number.isSafeInteger(i)||i<0))throw new Error("lighter: live loop requires accountIndex");return{mode:A,allowlist:t,maxCoins:n,maxNotionalUsd:s,accountIndex:i}}function wf(e,A){let t=typeof e=="string"&&e===e.trim()&&/^(?:0\.\d+|[1-9]\d*(?:\.\d+)?)$/.test(e);if(typeof e!="number"&&!t)throw new Error(`${A}: maxNotionalUsd out of bounds`);let r=Number(e);if(!(r>0)||r>25e3)throw new Error(`${A}: maxNotionalUsd out of bounds`);return r}async function pf(e={},A={}){QL(e,A,"lighter");let t=EL(e),r=await Jg({limit:e.limit??16},A),n=new Set(t.allowlist),s=[],i=Math.floor(t.maxNotionalUsd/t.maxCoins);for(let o of r.candidates){if(n.size&&!n.has(o.symbol)&&!n.has(o.coin))continue;let a=hf(o,i);if(a.verdict!=="carry")continue;if(s.length>=t.maxCoins)break;if(t.mode==="shadow"){s.push({...a,mode:"shadow",surface:"lighter",prepared:!1,signed:!1,broadcast:!1});continue}let c=await lL({coin:a.symbol,notionalUsd:a.notionalUsd,maxNotionalUsd:i,owner:e.owner,accountIndex:t.accountIndex,spotSize:e.spotSize??e.spotHeldSize,spotSizes:e.spotSizes??e.spotHeldSizes},{fetchImpl:A.fetchImpl,nowMs:A.nowMs,testnet:A.testnet});s.push({...c,mode:"live",surface:"lighter"})}return{loop:!0,mode:t.mode,surface:"lighter",signer:"lighter",considered:r.considered,actions:s,signed:s.some(o=>o.signed===!0),broadcast:s.some(o=>o.broadcast===!0),posture:"one tick. Prepares an unsigned official sendTx for oracle signer. Armed, not automated. Farm loop never signs or broadcasts."}}var vg=`oracle farm <methods|discover|airdrop|carry|loop|lighter> [options]
1
+ var nr=Object.defineProperty;var P=(e,t,r)=>()=>{if(r)throw r[0];try{return e&&(t=e(e=0)),t}catch(n){throw r=[n],n}};var or=(e,t)=>{for(var r in t)nr(e,r,{get:t[r],enumerable:!0})};import U from"node:net";import ir from"node:dns";function le(e){let t=String(e).toLowerCase().split("%")[0];if((t.match(/::/g)||[]).length>1)return null;let r=u=>{if(!u)return[];let d=u.split(":"),p=d.at(-1);if(p?.includes(".")){let f=p.split(".").map(Number);if(f.length!==4||f.some(h=>!Number.isInteger(h)||h<0||h>255))return null;d.splice(d.length-1,1,(f[0]<<8|f[1]).toString(16),(f[2]<<8|f[3]).toString(16))}return d.some(f=>!/^[0-9a-f]{1,4}$/.test(f))?null:d.map(f=>Number.parseInt(f,16))},[n,o]=t.split("::"),i=r(n),s=r(o);if(!i||!s)return null;let a=t.includes("::"),c=8-i.length-s.length;if(!a&&c!==0||a&&c<1)return null;let l=[...i,...Array(Math.max(0,c)).fill(0),...s];return l.length!==8?null:Uint8Array.from(l.flatMap(u=>[u>>8,u&255]))}function be(e,t,r){let n=Math.floor(r/8),o=r%8;for(let s=0;s<n;s+=1)if(e[s]!==t[s])return!1;if(!o)return!0;let i=255<<8-o;return(e[n]&i)===(t[n]&i)}function ye(e){if(U.isIPv4(e)){let t=e.split(".").map(Number);return!(t[0]===0||t[0]===10||t[0]===127||t[0]>=224||t[0]===100&&t[1]>=64&&t[1]<=127||t[0]===169&&t[1]===254||t[0]===172&&t[1]>=16&&t[1]<=31||t[0]===192&&(t[1]===0||t[1]===2||t[1]===168)||t[0]===192&&t[1]===88&&t[2]===99||t[0]===198&&(t[1]===18||t[1]===19||t[1]===51)||t[0]===203&&t[1]===0&&t[2]===113)}if(U.isIPv6(e)){let t=le(e);if(!t)return!1;let r=le("::ffff:0:0");return be(t,r,96)?ye([...t.slice(12)].join(".")):be(t,le("2000::"),3)?![["2001::",23],["2001:db8::",32],["2001:10::",28],["2001:2::",48],["2002::",16],["3fff::",20]].some(([o,i])=>be(t,le(o),i)):!1}return!1}function ar(e){let t;try{t=new URL(String(e))}catch{return{ok:!1,error:`not a valid URL: ${String(e).slice(0,120)}`}}if(t.protocol!=="http:"&&t.protocol!=="https:")return{ok:!1,error:`refused protocol ${t.protocol} (only http/https)`};let r=t.hostname.toLowerCase().replace(/^\[|\]$/g,"").replace(/\.+$/,"");if(sr.has(r)||r.endsWith(".localhost")||r.endsWith(".internal"))return{ok:!1,error:`refused internal host ${r}`};let n=U.isIP(r);return n!==0&&!ye(r)?{ok:!1,error:`refused private address ${r}`}:{ok:!0,url:t,host:r,isLiteralIp:n!==0}}async function xe(e,{lookupFn:t=ir.promises.lookup}={}){let r=ar(e);if(!r.ok)return r;if(r.isLiteralIp)return{ok:!0,url:r.url,addresses:[{address:r.host,family:U.isIPv6(r.host)?6:4}]};let n;try{n=await t(r.host,{all:!0,verbatim:!0})}catch{return{ok:!1,error:`refused: ${r.host} did not resolve`}}return!Array.isArray(n)||n.length===0||n.some(o=>!ye(o.address))?{ok:!1,error:`refused: ${r.host} resolves to a non-public address`}:{ok:!0,url:r.url,addresses:n}}async function Ee({requireUndici:e=!1,importUndici:t=()=>import("undici")}={}){let r,n;try{let d=await t();r=d.Agent,n=d.fetch}catch(d){if(e)throw new Error(`egress-guard: untrustedUrl pinning requires the undici package, which failed to load: ${d?.message||d}`);return null}if(typeof r!="function"||typeof n!="function"){if(e)throw new Error("egress-guard: untrustedUrl pinning requires undici's Agent and fetch exports, which were not found on the imported module");return null}let o=d=>String(d).toLowerCase().replace(/^\[|\]$/g,"").replace(/\.+$/,""),i=new Map,s=d=>(Array.isArray(d)?d:[d]).map(p=>typeof p=="string"?{address:p}:p).filter(p=>p&&p.address).map(p=>({address:p.address,family:p.family||(U.isIPv6(p.address)?6:4)})),a=(d,p,f)=>{i.set(o(d),s(typeof p=="string"?[{address:p,family:f}]:p))},c=d=>{let p=o(d);if(U.isIP(p))return[{address:p,family:U.isIPv6(p)?6:4}];let f=i.get(p);if(!f||!f.length)throw new Error(`refused: unpinned host ${d} during pinned fetch`);return f},l=new r({connect:{lookup(d,p,f){let h;try{h=c(d)}catch(w){return f(w)}return p?.all?f(null,h):f(null,h[0].address,h[0].family)}}}),u=lr((d,p={})=>n(d,{...p,dispatcher:l}),a);return{dispatcher:l,fetch:u,pin:a,resolve:c,async close(){try{await l.destroy()}catch{}}}}function lr(e,t){if(typeof e!="function")throw new Error("markPinCapableFetch: fetchImpl must be a function");if(typeof t!="function")throw new Error("markPinCapableFetch: pin must be a function");return e[Se]=Object.freeze({pin:t}),e}function Ie(e){return typeof e=="function"&&typeof e[Se]?.pin=="function"}function Je(e,t,r){if(!Ie(e))throw new Error("pinFetchToAddresses: fetchImpl is not pin-capable");e[Se].pin(t,r)}var sr,Se,Ke=P(()=>{sr=new Set(["localhost","metadata.google.internal","metadata.goog"]);Se=Symbol.for("oracle.egressGuard.pinCapableFetch")});import{createHash as cr}from"node:crypto";function fr(e){let t=String(e||"").toLowerCase();return tt.includes(t)||/(^|-)(api[-_]?key|key|token|secret|auth|authorization|session|cookie|signature|access)(-|$)/.test(t)}function mr(e){let t={};for(let[r,n]of Object.entries(e||{}))fr(r)||(t[r]=n);return t}function wr(e,t){if(!e)throw new Error(`HTTP redirect from ${t} missing Location`);let r=new URL(String(e),String(t));if(r.protocol!=="http:"&&r.protocol!=="https:")throw new Error(`HTTP redirect from ${t} used unsupported protocol ${r.protocol}`);return r.toString()}function gr(e,t){return new URL(String(e)).origin===new URL(String(t)).origin}function br(e,t,r,n={}){let o={};for(let[u,d]of Object.entries(r||{}))o[u.toLowerCase()]=d;let i=Object.keys(o).filter(u=>/(^|-)(api[-_]?key|key|token|secret|auth|authorization|session|cookie|signature|access)(-|$)/.test(u)),a=[...new Set([...tt,...i])].sort().map(u=>`${u}=${o[u]??""}`).join(`
2
+ `),c=cr("sha256").update(a).digest("hex").slice(0,32),l=`${n.untrustedUrl?"untrusted":"trusted"}:${n.maxResponseBytes??"unbounded"}`;return`${e} ${t} ${l} ${c}`}function yr(e,t){let r=Number(t);return Number.isFinite(r)&&r>0?Math.min(r*1e3,Ye):Math.min(250*2**e,Ye)+Math.floor(Math.random()*100)}function X(e,t={}){let r=new Error(e);return r.retryable=!1,Object.assign(r,t),r}function Ae(e,t,r){return X(`HTTP response from ${e} exceeded maxResponseBytes ${r} (${t})`,{oversize:!0})}function Y(e){try{let t=e?.body?.cancel?.();t&&typeof t.then=="function"&&t.catch(()=>{})}catch{}}function Er(e){return e?e.byteLength??e.length??0:0}async function Ze(e,t,{url:r,truncate:n=!1,onOversize:o}={}){if(t==null)return await e.text();let i=Number(e.headers?.get?.("content-length"));if(Number.isFinite(i)&&i>t&&(Y(e),!n))throw Ae(r,`content-length ${i}`,t);let s=e.body?.getReader?.();if(!s){let d=await e.text(),p=Buffer.byteLength(d,"utf8");if(p>t){if(!n)throw Ae(r,`body ${p} bytes`,t);return Buffer.from(d,"utf8").subarray(0,t).toString("utf8")}return d}let a=[],c=0,l=!1;try{for(;;){let{value:d,done:p}=await s.read();if(p)break;if(d&&(a.push(Buffer.from(d)),c+=Er(d),c>t)){l=!0;break}}}finally{if(l)try{await s.cancel()}catch{}try{s.releaseLock?.()}catch{}}if(l&&(typeof o=="function"&&o(),!n))throw Ae(r,`streamed ${c} bytes`,t);let u=Buffer.concat(a);return(l?u.subarray(0,t):u).toString("utf8")}function et(e){if(!e)return null;try{return JSON.parse(e)}catch{return null}}async function Sr(e,{fetchImpl:t,method:r,headers:n,body:o,timeoutMs:i,lookupFn:s,realFetch:a,untrustedUrl:c=!1,maxResponseBytes:l=null,importUndici:u,validateResponse:d}){let p=new AbortController,f=setTimeout(()=>p.abort(),i),h=null,w=t,x=s?{lookupFn:s}:{};if(c&&!a&&!Ie(w))throw X(`HTTP refused ${e}: untrustedUrl requires a pin-capable fetchImpl (see markPinCapableFetch in egress-guard.mjs) or no fetchImpl override so Oracle can pin the connection itself`);let E=async(m,{status:g=null}={})=>{let b=await xe(m,x);if(!b.ok)throw X(g==null?`HTTP refused ${m}: ${b.error}`:`HTTP redirect to ${m} ${b.error}`,g==null?{}:{status:g});let y=new URL(m).hostname;if(a){if(h&&(await h.close(),h=null),!h)try{h=await Ee({requireUndici:!0,...u?{importUndici:u}:{}})}catch(S){throw X(g==null?`HTTP refused ${m}: ${S?.message||S}`:`HTTP redirect to ${m} refused: ${S?.message||S}`,g==null?{}:{status:g})}h.pin(y,b.addresses),w=h.fetch}else Je(w,y,b.addresses);return b};try{let m=String(e),g={...n||{}};c&&await E(m);for(let b=0;b<=Qe;b+=1){let y=await w(m,{method:r,headers:g,body:o,signal:p.signal,redirect:"manual"});if(pr.has(y.status)){if(r!=="GET"&&r!=="HEAD"){let _=await Ze(y,l??hr,{url:m,truncate:!0}),D=new Error(`HTTP ${y.status} ${r} ${m} redirected non-idempotent request`);throw D.status=y.status,D.body=et(_)??_.slice(0,300),D}if(b===Qe)throw Y(y),new Error(`HTTP redirect loop for ${e}`);let N=y.headers?.get?.("location"),C;try{C=wr(N,m)}catch(_){throw Y(y),_}let ae=!gr(C,m);if(Y(y),ae&&(g=mr(g)),c)await E(C,{status:y.status});else if(ae){let _=await xe(C,x);if(!_.ok){let D=new Error(`HTTP redirect from ${m} ${_.error}`);throw D.status=y.status,D.retryable=!1,D}a&&_.addresses?.length&&(h||(h=await Ee(u?{importUndici:u}:{})),h&&(h.pin(new URL(C).hostname,_.addresses),w=h.fetch))}m=C;continue}if(typeof d=="function")try{await d(y,{url:m})}catch(N){throw Y(y),X(N?.message||String(N))}let S=await Ze(y,l,{url:m,onOversize:()=>p.abort()}),G=et(S);if(!y.ok){let N=new Error(`HTTP ${y.status} ${r} ${m}`);throw N.status=y.status,N.retryAfter=y.headers?.get?.("retry-after")??null,N.body=G??S.slice(0,300),N}return G??S}throw new Error(`HTTP redirect loop for ${e}`)}finally{clearTimeout(f),h&&await h.close()}}async function z(e,t={}){let r=t.fetchImpl||globalThis.fetch;if(typeof r!="function")throw new Error("fetch unavailable \u2014 pass opts.fetchImpl");let n=t.timeoutMs??12e3,o=(t.method||"GET").toUpperCase(),i={Accept:"application/json",...t.headers||{}},s=t.body;s!=null&&typeof s!="string"&&(i["Content-Type"]=i["Content-Type"]||"application/json",s=JSON.stringify(s));let a=Number.isInteger(t.retries)?Math.max(t.retries,0):dr,c=t.lookupFn,l=!t.fetchImpl,u=t.untrustedUrl===!0,d=t.importUndici,p=t.validateResponse,f=Number(t.maxResponseBytes),h=Number.isFinite(f)&&f>0?Math.floor(f):null,w=async()=>{let b;for(let y=0;y<=a;y++)try{return await Sr(e,{fetchImpl:r,method:o,headers:i,body:s,timeoutMs:n,lookupFn:c,realFetch:l,untrustedUrl:u,maxResponseBytes:h,importUndici:d,validateResponse:p})}catch(S){b=S;let G=S?.status,N=S?.name==="AbortError",C=new Set([408,425,429]),ae=S?.retryable===!1?!1:G!=null?C.has(G)||ur.has(G)&&Xe.has(o):!N&&Xe.has(o);if(y===a||!ae)throw S;await xr(yr(y,S?.retryAfter))}throw b};if(!(t.dedupe!==!1&&o==="GET"&&s==null))return w();let E=br(o,e,i,{untrustedUrl:u,maxResponseBytes:h}),m=ke.get(E);if(m)return m;let g=w().finally(()=>ke.delete(E));return ke.set(E,g),g}var ur,Xe,dr,Ye,tt,pr,Qe,hr,ke,xr,ce=P(()=>{Ke();ur=new Set([408,425,429,500,502,503,504]),Xe=new Set(["GET","HEAD","OPTIONS","PUT","DELETE"]),dr=2,Ye=4e3,tt=["authorization","x-api-key","x-tensor-api-key","0x-api-key","api-key","cookie","proxy-authorization"],pr=new Set([301,302,303,307,308]),Qe=3,hr=64*1024;ke=new Map;xr=e=>new Promise(t=>setTimeout(t,e))});function Mr({testnet:e,baseUrl:t}={}){if(t)return t.replace(/\/$/,"").endsWith("/info")?t:`${t.replace(/\/$/,"")}/info`;if(process.env.HL_INFO_URL)return process.env.HL_INFO_URL;if(process.env.HL_API_URL){let r=process.env.HL_API_URL.replace(/\/$/,"");return r.endsWith("/info")?r:`${r}/info`}return e||process.env.HL_TESTNET==="1"?Tr:_r}async function H(e,t={}){if(!e||!e.type)throw new Error("hlInfo requires body.type");let r=Mr(t);return z(r,{method:"POST",body:e,fetchImpl:t.fetchImpl,timeoutMs:t.timeoutMs})}async function it(e={}){return H({type:"allMids"},e)}async function Z(e={}){let t={type:"metaAndAssetCtxs"};return e.dex&&(t.dex=e.dex),H(t,e)}var _r,Tr,ue=P(()=>{ce();_r="https://api.hyperliquid.xyz/info",Tr="https://api.hyperliquid-testnet.xyz/info"});import{createHash as Lr,createHmac as Or,timingSafeEqual as oo}from"node:crypto";function Ne(e){return e===null||typeof e!="object"?JSON.stringify(e):Array.isArray(e)?`[${e.map(Ne).join(",")}]`:`{${Object.keys(e).sort().map(r=>`${JSON.stringify(r)}:${Ne(e[r])}`).join(",")}}`}function st(e){let t=String(e?.ORACLE_STAMP_HMAC_SECRET||"").trim();return t.length>=16?t:""}function at(e=process.env){return st(process.env)||st(e)}function Br(e){let{prepareHash:t,prepareMac:r,note:n,...o}=e||{};return o}function Dr(e){let t=Br(e);return Lr("sha256").update(Ne(t)).digest("hex")}function Ur(e,t=at()){return t?Or("sha256",t).update(String(e)).digest("hex"):""}function R(e,{provider:t,kind:r,env:n=process.env,nowMs:o=Date.now(),expiresAtMs:i}={}){if(!e||typeof e!="object")throw new Error("stampPrepared: payload object required");let s=Object.prototype.hasOwnProperty.call(e,"oraclePrepared");if(s&&typeof e.oraclePrepared!="boolean")throw new Error("stampPrepared: oraclePrepared must be boolean");let a={...e,provider:e.provider||t,kind:e.kind||r,requiresUserSignature:e.requiresUserSignature!==!1,signingReady:!1,broadcastReady:!1,executionReady:!1,oraclePrepared:s?e.oraclePrepared:!0};if(!a.provider)throw new Error("stampPrepared: provider required");if(!a.kind)throw new Error("stampPrepared: kind required");let c=Number(o),l=i==null?c+Rr:Number(i),u=l-c;if(!Number.isSafeInteger(c)||!Number.isSafeInteger(l)||u<=0||u>Fr)throw new Error("stampPrepared: bounded preparedAt/expiresAt required");let p={...a,preparedAt:c,expiresAt:l,prepareVersion:Cr},f=Dr(p),h=at(n),w=h?Ur(f,h):void 0,x={...p,prepareHash:f};return w&&(x.prepareMac=w),x}var Cr,Rr,Fr,de=P(()=>{Cr=2,Rr=300*1e3,Fr=(()=>{let e=Number(process.env.ORACLE_PREPARE_HARD_MAX_AGE_MS);return Number.isFinite(e)&&e>0?e:1800*1e3})()});async function ut(e={}){let t=Date.now();if(te.dexs&&t-te.at<6e4&&!e.fetchImpl)return te.dexs;let r=await H({type:"perpDexs"},e);return te={at:t,dexs:Array.isArray(r)?r:[]},te.dexs}async function dt(e="",t={}){let r=e||"",n=Date.now(),o=ct.get(r);if(o&&n-o.at<3e4&&!t.fetchImpl)return o;let i=e?await H({type:"metaAndAssetCtxs",dex:e},t):await Z(t),s=i?.[0]?.universe??i?.universe??[],a=Array.isArray(i?.[1])?i[1]:[],c={at:n,universe:s,ctxs:a};return ct.set(r,c),c}function me(e){if(typeof e!="string"||!/^#(?:0|[1-9]\d*)$/.test(e))return null;let t=Number(e.slice(1));if(!Number.isSafeInteger(t)||t<0)return null;let r=t%10;if(r!==0&&r!==1)return null;let n=Math.floor(t/10),o=ht+t;return Number.isSafeInteger(o)?{encoding:t,outcome:n,side:r,coin:`#${t}`,assetId:o}:null}function pt(e,t){let r=$e(e),n=$e(t);if(r==null)throw new Error("hl-assets: outcome id must be a non-negative integer");if(n!==0&&n!==1)throw new Error("hl-assets: outcome side must be 0 or 1");let o=10*r+n;if(!Number.isSafeInteger(o))throw new Error("hl-assets: outcome encoding exceeds safe integer range");let i=ht+o;if(!Number.isSafeInteger(i))throw new Error("hl-assets: outcome asset id exceeds safe integer range");return{encoding:o,outcome:r,side:n,coin:`#${o}`,assetId:i}}function $e(e){if(typeof e=="number")return Number.isSafeInteger(e)&&e>=0?e:null;if(typeof e!="string"||!/^(?:0|[1-9]\d*)$/.test(e))return null;let t=Number(e);return Number.isSafeInteger(t)?t:null}async function ve(e={},t={}){if(e.outcome!=null||typeof e.coin=="string"&&e.coin.startsWith("#")){let l=e.coin==null?null:me(e.coin);if(e.coin!=null&&!l)throw new Error(`hl-assets: invalid outcome coin ${e.coin}`);let u=e.outcome==null?null:pt(e.outcome,0).outcome;if(u!=null&&l&&l.outcome!==u)throw new Error("hl-assets: coin does not match outcome");let d=e.outcomeSide==null?null:qr(e.outcomeSide,"outcomeSide"),p=u??l?.outcome;if(e.outcome!=null&&e.coin==null&&d==null)throw new Error("hl-assets: outcomeSide required");let f=d??l?.side;if(f==null)throw new Error("hl-assets: outcomeSide required");if(p==null)throw new Error("hl-assets: outcome identity required");let h=pt(p,f);if(l&&(l.outcome!==h.outcome||l.side!==h.side))throw new Error("hl-assets: coin does not match outcome side");let w=e.szDecimals!=null?Number(e.szDecimals):2;return{kind:"outcome",coin:h.coin,assetId:h.assetId,encoding:h.encoding,outcome:h.outcome,side:h.side,szDecimals:w,maxLeverage:1,dex:null,markPx:null}}let r=String(e.coin||e.symbol||e.name||"").trim();if(!r)throw new Error("hl-assets: coin required");if(r.includes(":")){let[l,...u]=r.split(":"),d=u.join(":");if(!l||!d)throw new Error(`hl-assets: bad builder coin ${r}`);let f=(await ut(t)).findIndex(b=>b&&b.name===l);if(f<1)throw new Error(`hl-assets: unknown builder dex "${l}"`);let{universe:h,ctxs:w}=await dt(l,t),x=h.findIndex(b=>b.name===r||b.name===`${l}:${d}`||b.name.endsWith(`:${d}`));if(x<0)throw new Error(`hl-assets: ${r} not in dex ${l} meta`);let E=h[x];if(E.isDelisted)throw new Error(`hl-assets: ${r} is delisted`);let m=zr+f*1e4+x,g=w[x]||{};return{kind:"hip3",coin:E.name||r,assetId:m,szDecimals:E.szDecimals??0,maxLeverage:E.maxLeverage??null,dex:l,dexIndex:f,indexInMeta:x,markPx:g.markPx??null}}let{universe:n,ctxs:o}=await dt("",t),i=r.toUpperCase(),s=n.findIndex(l=>l.name===i);if(s<0){if(t.allowBareBuilderLeaf===!0)try{let l=await ut(t);for(let u=1;u<l.length;u++){let d=l[u];if(!d?.name)continue;let p=`${d.name}:${i}`;try{return await ve({coin:p},t)}catch{}}}catch{}throw new Error(`hl-perps: ${i} is not a listed perp`)}let a=n[s];if(a.isDelisted)throw new Error(`hl-assets: ${i} is delisted`);let c=o[s]||{};return{kind:"main",coin:a.name,assetId:s,szDecimals:a.szDecimals??0,maxLeverage:a.maxLeverage??null,dex:"",markPx:c.markPx??null}}function qr(e,t){let r=$e(e);if(r!==0&&r!==1)throw new Error(`hl-assets: ${t} must be 0 or 1`);return r}var ht,zr,te,ct,_e=P(()=>{ue();ht=1e8,zr=1e5,te={at:0,dexs:null},ct=new Map});function I(e,t="value"){if(typeof e=="number"){if(!Number.isFinite(e))throw new Error(`${t} must be a finite number`);if(Math.abs(e)>Number.MAX_SAFE_INTEGER)throw new Error(`${t} exceeds safe integer precision \u2014 pass it as a decimal string or BigInt so the exact value is preserved`);if(Number.isInteger(e)&&!Number.isSafeInteger(e))throw new Error(`${t} exceeds safe integer precision \u2014 pass it as a decimal string or BigInt so the exact value is preserved`);return String(e)}if(typeof e=="string"){if(e!==e.trim())throw new Error(`${t} must be a number or decimal string`);return e}throw new Error(`${t} must be a number or decimal string`)}function ft(e,t="value"){if(typeof e!="string"||e==="")throw new Error(`${t} must be a string`);return e}function j(e,t="amount"){if(typeof e=="bigint")return e;if(typeof e=="number"){if(!Number.isInteger(e))throw new Error(`${t} must be an integer`);if(!Number.isSafeInteger(e))throw new Error(`${t} exceeds safe integer precision \u2014 pass it as a decimal string or BigInt so the exact value is preserved`);return BigInt(e)}let r=I(e,t);if(r==="")throw new Error(`${t} is required`);if(!/^-?\d+$/.test(r)&&!/^0x[0-9a-fA-F]+$/.test(r))throw new Error(`${t} must be an integer in decimal or 0x-hex form, got ${JSON.stringify(r)}`);try{return BigInt(r)}catch{throw new Error(`${t} must be an integer, got ${JSON.stringify(r)}`)}}function Te(e,t="amount"){let r=j(e,t);if(r<=0n)throw new Error(`${t} must be positive`);return r}function A(e,t,r="amount"){let n=I(e,r);if(!/^-?\d*(\.\d+)?$/.test(n)||n===""||n==="."||n==="-")throw new Error(`${r} must be a decimal number, got ${JSON.stringify(n)}`);let o=n.startsWith("-"),i=o?n.slice(1):n,[s="0",a=""]=i.split(".");if(a.length>t)throw new Error(`${r} has more than ${t} decimal places, which would lose precision`);let c=BigInt((s||"0")+a.padEnd(t,"0"));return o?-c:c}var we=P(()=>{});function Wr(e,t){let r=e.toString().padStart(t+1,"0");if(t===0)return r;let n=r.slice(0,-t),o=r.slice(-t).replace(/0+$/,"");return o?`${n}.${o}`:n}function mt(e,t){let r=I(e,`hl: ${t}`);if(!/^\d+(?:\.\d+)?$/.test(r))throw new Error(`hl: ${t} must be a positive decimal`);let[n,o=""]=r.split("."),i=BigInt(n+o);if(i<=0n)throw new Error(`hl: ${t} must be positive`);return{raw:i,decimals:o.length}}function v(e,t){if(e===null||typeof e=="string"||typeof e=="boolean")return JSON.stringify(e);if(typeof e=="number"){if(!Number.isFinite(e))throw new Error(`hl: ${t} must be finite JSON`);return JSON.stringify(e)}if(Array.isArray(e))return`[${e.map(n=>v(n,t)).join(",")}]`;if(!e||typeof e!="object")throw new Error(`hl: ${t} must be structured JSON`);return`{${Object.keys(e).sort().map(n=>`${JSON.stringify(n)}:${v(e[n],t)}`).join(",")}}`}function Jr(e){if(typeof e.orderType!="string"||!e.orderType)throw new Error("hl: order type must be a string");let t=e.orderType,r=e.orderWire;if(!r||typeof r!="object"||Array.isArray(r))throw new Error("hl: declared order wire required");if(t==="limit"){let i=r.limit?.tif;if(!["Gtc","Ioc","Alo"].includes(i)||v(r,"declared order type")!==v({limit:{tif:i}},"expected order type"))throw new Error("hl: limit order type must match its wire shape");return}if(t==="market"){if(v(r,"declared order type")!==v({limit:{tif:"Ioc"}},"expected order type"))throw new Error("hl: market order type must match its IOC wire shape");return}let n={stopMarket:{isMarket:!0,tpsl:"sl"},stopLimit:{isMarket:!1,tpsl:"sl"},takeProfitMarket:{isMarket:!0,tpsl:"tp"},takeProfitLimit:{isMarket:!1,tpsl:"tp"}}[t];if(!n)throw new Error("hl: unsupported declared order type");let o=r.trigger?.triggerPx;if(o==null||v(r,"declared order type")!==v({trigger:{isMarket:n.isMarket,triggerPx:o,tpsl:n.tpsl}},"expected order type"))throw new Error("hl: trigger order type must match its wire shape")}function Kr(e,t,r){let n=mt(e.s,"signed size"),o=mt(e.p,"signed price"),i=n.decimals+o.decimals,s=n.raw*o.raw,a=A(t.notionalUsd,i,"hl: notionalUsd");if(a<=0n||s!==a)throw new Error("hl: signed notional must match");let c=A(r.maxNotionalUsd,i,"hl: maxNotionalUsd");if(s>c)throw new Error("hl: notional exceeds cap")}function Xr(e,t){let r=e.action.builder;if(r==null){if(e.builder!=null)throw new Error("hl: declared builder requires a signed builder");return}if(!r||typeof r!="object"||Array.isArray(r))throw new Error("hl: signed order builder must be structured");let n=F(r.b,"order builder",42).toLowerCase();if(!/^0x[0-9a-f]{40}$/.test(n))throw new Error("hl: order builder address required");if(ft(e.builder||"","hl: builder").toLowerCase()!==n)throw new Error("hl: signed order builder must match");if(!(Array.isArray(t.hlBuilders)?t.hlBuilders.map(a=>String(a).toLowerCase()):[]).includes(n))throw new Error("hl: order builder not allowed");let i=j(r.f,"hl: signed order builder fee");if(i<0n)throw new Error("hl: signed order builder fee must be non-negative");let s=A(t.maxBuilderFeeBps??0,1,"hl: maxBuilderFeeBps");if(i>s)throw new Error("hl: order builder fee exceeds cap")}function wt(e,t,r){if(!Number.isSafeInteger(e.a)||e.a!==r)throw new Error("hl: signed asset must match assetId");if(typeof e.b!="boolean"||e.b!==(t.side==="buy"))throw new Error("hl: signed side must match exactly");if(I(e.s,"hl: signed size")!==I(t.size,"hl: size"))throw new Error("hl: signed size must match");if(I(e.p,"hl: signed price")!==I(t.price,"hl: price"))throw new Error("hl: signed price must match");if(typeof t.reduceOnly!="boolean"||typeof e.r!="boolean"||e.r!==t.reduceOnly)throw new Error("hl: signed reduceOnly must match exactly");if(v(e.t,"signed order type")!==v(t.orderWire,"declared order type"))throw new Error("hl: signed order type must match declared order type");let n=Object.prototype.hasOwnProperty.call(e,"c");if(t.clientOrderId==null){if(n)throw new Error("hl: undeclared signed client order id")}else if(!n||typeof e.c!="string"||e.c!==t.clientOrderId)throw new Error("hl: signed client order id must match")}function gt(e,t,r,n,o){if(!Number.isSafeInteger(e.a)||e.a!==r)throw new Error("hl: bracket protection asset must match");if(typeof e.b!="boolean"||e.b===(t.side==="buy"))throw new Error("hl: bracket protection side must oppose entry");if(I(e.s,"hl: bracket protection size")!==I(t.size,"hl: size"))throw new Error("hl: bracket protection size must match");if(I(e.p,"hl: bracket protection price")!==I(n,"hl: protection price"))throw new Error("hl: bracket protection price must match");if(e.r!==!0)throw new Error("hl: bracket protection must be reduce-only");let i=e.t?.trigger;if(!i||i.isMarket!==!0||i.tpsl!==o)throw new Error("hl: bracket protection trigger must match");if(I(i.triggerPx,"hl: triggerPx")!==I(n,"hl: protection price"))throw new Error("hl: bracket protection trigger must match")}function Yr(e){let t=String(e||"").replace(/\/$/,"");if(!Hr.has(t))throw new Error("hl: submitTo must be the official Hyperliquid exchange");return t}function Me(e){return me(e)!=null}function Qr(e,t){let r=String(e||""),n=Array.isArray(t.coins)?t.coins.map(String):[];if(Me(r)){if(t.hip4!==!0)throw new Error("hl: HIP-4 outcome orders are disabled without explicit policy enablement");if(n.includes(r)||n.includes("#*")||n.includes("*")||n.length===0)return!0;throw new Error("hl: outcome coin not allowed")}if(n.length&&!n.includes(r)&&!n.includes("*"))throw new Error("hl: coin not allowed");return!0}function Zr(e,t,r){let n=Array.isArray(r.hlMarkets)?r.hlMarkets:[];if(n.length){if(!n.some(s=>{if(typeof s=="string"){let[a,c]=String(s).split(":");return a===e&&Number(c)===t}return String(s?.coin)===e&&Number(s?.assetId)===t}))throw new Error("hl: coin/assetId pair not allowed");return!0}if(Me(e)){let i=Array.isArray(r.coins)?r.coins.map(String):[];if(i.includes("#*")||i.includes("*")||i.length===0)return!0;throw new Error("hl: restricted coin policy requires hlMarkets pairs")}let o=Array.isArray(r.coins)?r.coins.map(String):[];if(o.length&&!o.includes("*"))throw new Error("hl: restricted coin policy requires hlMarkets pairs");return!0}function bt(e,t){if(e?.surface!=="hl")throw new Error("hl: surface hl required");let r=e.artifact;if(!r||typeof r!="object"||Array.isArray(r))throw new Error("hl: structured artifact required");let n=F(r.kind,"kind",48),o=Gr[n];if(!o)throw new Error("hl: unsupported Hyperliquid kind");if(e.action!==o)throw new Error("hl: surface/action/kind mismatch");if(String(e.destination).toLowerCase()!=="hyperliquid")throw new Error("hl: destination must be hyperliquid");if(!/^0x[0-9a-fA-F]{40}$/.test(String(e.owner||"")))throw new Error("hl: owner required");let i=Yr(r.submitTo);if(Object.prototype.hasOwnProperty.call(r,"vaultAddress"))throw new Error("hl: vaultAddress is not public");if(Object.prototype.hasOwnProperty.call(r,"expiresAfter"))throw new Error("hl: expiresAfter is not public");let s=Number(r.nonce);if(!Number.isSafeInteger(s)||s<=0)throw new Error("hl: nonce must be a positive integer");if(!r.action||typeof r.action!="object")throw new Error("hl: signed action required");if(Object.prototype.hasOwnProperty.call(r.action,"vaultAddress"))throw new Error("hl: action vaultAddress is not public");if(Object.prototype.hasOwnProperty.call(r.action,"expiresAfter"))throw new Error("hl: action expiresAfter is not public");if(r.action.type!==Vr[n])throw new Error("hl: action type must match kind");let a=r.notionalUsd??0;if(jr.has(n)||n==="perp-cancel"||n==="perp-leverage"||n==="perp-isolated-margin"){let c=F(r.coin,"coin",64),l=r.assetId??r.assetIndex;if(!Number.isSafeInteger(l)||l<0)throw new Error("hl: assetId required");if(n==="hip4-order"||l>=1e8){let u=me(c);if(!u||u.coin!==c)throw new Error("hl: HIP-4 actions must use a canonical outcome coin");if(u.assetId!==l)throw new Error("hl: HIP-4 coin must bind to its canonical assetId")}if(Qr(c,t),Zr(c,l,t),n==="hip4-order"&&!Me(c))throw new Error("hl: HIP-4 orders must use an outcome coin");if(n==="perp-order"||n==="hip3-order"||n==="hip4-order"||n==="perp-bracket"){if(r.side!=="buy"&&r.side!=="sell")throw new Error("hl: side must be buy or sell");if(r.action.type!=="order"||!Array.isArray(r.action.orders))throw new Error("hl: signed orders are required");Jr(r);let u=r.action.orders;if(n==="perp-bracket"){let d=r.takeProfitPx,p=r.stopLossPx,f=1+(d==null?0:1)+(p==null?0:1);if(f<2||u.length!==f||r.grouping!=="normalTpsl"||r.action.grouping!==r.grouping)throw new Error("hl: bracket must contain exactly the declared entry and protection legs");wt(u[0],r,l);let h=1;d!=null&&gt(u[h++],r,l,d,"tp"),p!=null&&gt(u[h],r,l,p,"sl")}else{if(u.length!==1)throw new Error("hl: exactly one signed order is required");if(r.grouping!=="na"||r.action.grouping!==r.grouping)throw new Error("hl: signed grouping must match declared grouping");wt(u[0],r,l)}Kr(u[0],r,t),Xr(r,t),a=I(r.notionalUsd,"hl: notionalUsd")}if(n==="perp-leverage"){let u=r.leverage;if(!Number.isSafeInteger(u)||u<1)throw new Error("hl: leverage must be a positive integer");let d=t.maxLeverage==null?50:t.maxLeverage;if(typeof d!="number"||!Number.isSafeInteger(d)||d<1)throw new Error("hl: maxLeverage must be a positive integer");if(u>d)throw new Error("hl: leverage exceeds cap")}if(n==="perp-cancel"){let u=r.action.cancels;if(!Array.isArray(u)||u.length!==1)throw new Error("hl: exactly one cancel is required");if(!Number.isSafeInteger(u[0].a)||u[0].a!==l)throw new Error("hl: signed cancel asset must match assetId");if(!Number.isSafeInteger(r.orderId)||r.orderId<0)throw new Error("hl: declared order id required");if(!Number.isSafeInteger(u[0].o)||u[0].o!==r.orderId)throw new Error("hl: signed cancel order id must match")}if(n==="perp-leverage"){if(!Number.isSafeInteger(r.action.asset)||r.action.asset!==l)throw new Error("hl: signed leverage asset must match assetId");if(!Number.isSafeInteger(r.action.leverage)||r.action.leverage!==r.leverage)throw new Error("hl: signed leverage must match");if(!["cross","isolated"].includes(r.marginMode))throw new Error("hl: declared margin mode required");let u=r.marginMode==="cross";if(typeof r.action.isCross!="boolean"||r.action.isCross!==u)throw new Error("hl: signed isCross must match declared margin mode")}if(n==="perp-isolated-margin"){if(!Number.isSafeInteger(r.action.asset)||r.action.asset!==l)throw new Error("hl: signed margin asset must match assetId");let u=F(r.usd,"margin usd",64),d=A(u,6,"hl: margin usd");if(j(r.action.ntli,"hl: signed margin ntli")!==d)throw new Error("hl: signed margin amount must match usd");if(typeof r.isBuy!="boolean"||r.action.isBuy!==r.isBuy)throw new Error("hl: signed margin isBuy must match");let f=A(t.maxNotionalUsd,6,"hl: maxNotionalUsd"),h=d<0n?-d:d;if(h>f)throw new Error("hl: margin notional exceeds cap");a=Wr(h,6)}}if(n==="builder-fee-approval"){let c=F(r.builder,"builder",42).toLowerCase();if(!/^0x[0-9a-f]{40}$/.test(c))throw new Error("hl: builder address required");if(F(r.action.builder,"signed builder",42).toLowerCase()!==c)throw new Error("hl: signed builder must match");if(!(Array.isArray(t.hlBuilders)?t.hlBuilders.map(h=>String(h).toLowerCase()):[]).includes(c))throw new Error("hl: builder not allowed");let u=F(r.maxFeeRate,"maxFeeRate",32);if(F(r.action.maxFeeRate,"signed maxFeeRate",32)!==u)throw new Error("hl: signed builder fee must match");if(!/^\d+(?:\.\d+)?%$/.test(u))throw new Error("hl: builder fee rate must be a percent");let d=A(u.slice(0,-1),12,"hl: builder fee percent"),p=A(t.maxBuilderFeeBps,12,"hl: maxBuilderFeeBps");if(p<0n||d*100n>p)throw new Error("hl: builder fee exceeds cap");if(Number(r.action.nonce)!==s)throw new Error("hl: signed builder nonce must match");let f=i.includes("testnet")?"Testnet":"Mainnet";if(r.hyperliquidChain!==f||r.action.hyperliquidChain!==r.hyperliquidChain)throw new Error("hl: signed Hyperliquid chain must match destination");if(r.signatureChainId!=="0x66eee"||r.action.signatureChainId!==r.signatureChainId)throw new Error("hl: signed signature chain id must match")}if(n.startsWith("hype-stake")||n==="hype-delegate"||n==="hype-undelegate"){if(n==="hype-delegate"||n==="hype-undelegate"){let c=n==="hype-undelegate";if(typeof r.action.isUndelegate!="boolean"||r.action.isUndelegate!==c)throw new Error("hl: signed isUndelegate must match delegate kind exactly")}if(t.maxHypeWei!=null&&BigInt(String(r.action.wei??r.caps?.amountHype??"0"))>BigInt(t.maxHypeWei))throw new Error("hl: stake amount exceeds cap")}return Object.freeze({unit:"usd",value:String(a??r.action.wei??0),notional:String(a??0),fee:"0",kind:n,actionType:r.action.type,amount:String(r.action.wei??a??0),coin:r.coin||null,submitTo:i})}var Hr,jr,Gr,Vr,F,yt=P(()=>{we();_e();Hr=new Set(["https://api.hyperliquid.xyz/exchange","https://api.hyperliquid-testnet.xyz/exchange"]),jr=new Set(["perp-order","hip3-order","hip4-order","perp-bracket"]),Gr=Object.freeze({"perp-order":"order","hip3-order":"order","hip4-order":"order","perp-bracket":"order","perp-cancel":"cancel","perp-leverage":"leverage","perp-isolated-margin":"margin","builder-fee-approval":"approveBuilder","hype-stake-deposit":"stake","hype-stake-withdraw":"unstake","hype-delegate":"delegate","hype-undelegate":"delegate"}),Vr=Object.freeze({"perp-order":"order","hip3-order":"order","hip4-order":"order","perp-bracket":"order","perp-cancel":"cancel","perp-leverage":"updateLeverage","perp-isolated-margin":"updateIsolatedMargin","builder-fee-approval":"approveBuilderFee","hype-stake-deposit":"cDeposit","hype-stake-withdraw":"cWithdraw","hype-delegate":"tokenDelegate","hype-undelegate":"tokenDelegate"}),F=(e,t,r=256)=>{if(typeof e!="string"||!e||e.length>r)throw new Error(`hl: bounded ${t} required`);return e}});function tn(e){let t=e.owner||e.user||e.from||e.recipient;if(!/^0x[0-9a-fA-F]{40}$/.test(String(t||"")))throw new Error("hl: owner/user address required for local-signer envelope");return String(t).toLowerCase()}function xt(e,t={},r={}){let n=String(e?.kind||""),o=en[n];if(!o)throw new Error("hl: prepared kind is not a local-signer surface");if(!e?.action||typeof e.action!="object")throw new Error("hl: prepared action required");let i=Number(r.nowMs??Date.now()),s=Math.min(6e4,Math.max(1e3,Number(t.ttlMs??t.expiresInMs??3e4)||3e4)),a=String(e.submitTo||"").replace(/\/$/,""),c={version:1,surface:"hl",action:o,owner:tn(t),destination:"hyperliquid",tradeId:String(t.tradeId||`hl:${n}:${e.nonce}`),expiresAtMs:i+s,slippageBps:Number(t.slippageBps??0),fee:{oracleFeeBps:0},provider:e.provider,artifact:{kind:n,coin:e.coin??null,assetId:e.assetId??e.assetIndex??null,side:e.side??null,size:e.size??null,price:e.price??null,reduceOnly:e.reduceOnly??null,orderType:e.orderType??null,orderWire:e.action?.orders?.[0]?.t??null,clientOrderId:e.action?.orders?.[0]?.c??null,grouping:e.action?.grouping??null,orderId:e.orderId??null,leverage:e.leverage??null,marginMode:e.marginMode??null,notionalUsd:e.notionalUsd??0,usd:e.usd??null,isBuy:e.isBuy??null,takeProfitPx:e.takeProfitPx??null,stopLossPx:e.stopLossPx??null,builder:e.builderFee?.address??e.action?.builder??null,maxFeeRate:e.builderFee?.percent??e.action?.maxFeeRate??null,nonce:e.nonce,hyperliquidChain:e.action?.hyperliquidChain??null,signatureChainId:e.signatureChainId||e.action?.signatureChainId||"0xa4b1",submitTo:a,action:e.action,typedData:e.typedData||null,caps:e.caps||null}};return bt(c,{coins:t.coins||["*"],hip4:!0,maxNotionalUsd:t.maxNotionalUsd??Number.MAX_SAFE_INTEGER,maxLeverage:t.maxLeverage??50,hlBuilders:t.hlBuilders||(e.builderFee?.address?[e.builderFee.address]:[]),maxBuilderFeeBps:t.maxBuilderFeeBps??e.builderFee?.bps}),c}var en,Et=P(()=>{yt();en=Object.freeze({"perp-order":"order","hip3-order":"order","hip4-order":"order","perp-bracket":"order","perp-cancel":"cancel","perp-leverage":"leverage","perp-isolated-margin":"margin","builder-fee-approval":"approveBuilder","hype-stake-deposit":"stake","hype-stake-withdraw":"unstake","hype-delegate":"delegate","hype-undelegate":"delegate"})});import{Contract as rn,JsonRpcProvider as nn}from"ethers";function un(e){return cn.test(String(e||""))}async function Le(e,{contract:t=on,rpc:r=an,chainId:n=sn,balanceOf:o}={}){if(!un(e))throw new Error("invalid-address");if(o)return BigInt(await o(e));let i=new nn(r,n,{staticNetwork:!0}),s=new rn(t,ln,i);return BigInt(await s.balanceOf(e))}var on,sn,an,ln,cn,Oe=P(()=>{on="0x62FCFAf7573AD8B41a0FBF347AfEb85e06599A75",sn=999,an="https://rpc.hyperliquid.xyz/evm",ln=["function balanceOf(address owner) view returns (uint256)"],cn=/^0x[a-fA-F0-9]{40}$/});import{existsSync as dn,readFileSync as pn,lstatSync as hn}from"node:fs";import{homedir as St}from"node:os";import{join as Ce}from"node:path";function fn(e=process.env){if(process.env.ORACLE_TEST_ISOLATE_SECRETS==="1"){if(e[It])return String(e[It]);let t=e.ORACLE_CONFIG_DIR||Ce(St(),".config","oracle");return Ce(t,"fee-recipient")}return Ce(St(),".config","oracle","fee-recipient")}function kt(e=process.env){try{let t=fn(e);if(!dn(t)||hn(t).isSymbolicLink())return"";let r=pn(t,"utf8").trim().toLowerCase();return/^0x[a-f0-9]{40}$/.test(r)?r:""}catch{return""}}var So,It,At=P(()=>{Oe();So=Object.freeze({swap:5,bridge:5,perps:0,nft:0}),It="ORACLE_INTEGRATOR_FEE_RECIPIENT_PIN"});var Lt={};or(Lt,{HL_BUILDER_ADDRESS_ENV:()=>ge,HL_BUILDER_DEFAULT_FEE_BPS:()=>mn,HL_BUILDER_FEE_ENV:()=>Fe,HL_BUILDER_FEE_TIERS:()=>re,HL_BUILDER_MAX_FEE_BPS:()=>Re,HL_PERP_MAX_SIG_FIGS:()=>Nt,HL_PERP_PRICE_DECIMALS:()=>Pt,HL_SIGNATURE_CHAIN_ID:()=>De,MARGIN_MODE:()=>ne,ORDER_TYPES:()=>k,TIF:()=>oe,formatPerpPrice:()=>M,formatPerpSize:()=>Tt,hlBuilderFeeBpsForKind:()=>_t,hlPerpAssetInfo:()=>V,hlPrepareBracketOrder:()=>Nn,hlPrepareBuilderApproval:()=>Sn,hlPrepareCancelOrder:()=>In,hlPreparePerpOrder:()=>Mt,hlPrepareUpdateIsolatedMargin:()=>An,hlPrepareUpdateLeverage:()=>kn,resolveBuilderFee:()=>Ue});function $t(e,t){if(typeof e=="number"){if(Number.isSafeInteger(e)&&e>=0)return e}else if(typeof e=="string"&&/^(?:0|[1-9]\d*)$/.test(e)){let r=Number(e);if(Number.isSafeInteger(r))return r}throw new Error(`hl-perps: ${t} must be a non-negative safe integer`)}function wn(e,t){let r=$t(e,t);if(r<1)throw new Error(`hl-perps: ${t} must be a positive integer`);return r}function gn(e={}){let t={...e};if(t.side==null)return t;if(t.side===0||t.side===1){if(t.outcomeSide!=null&&t.outcomeSide!==t.side)throw new Error("hl-perps: side conflict with outcomeSide");return t.outcomeSide=t.side,delete t.side,t}throw new Error("hl-assets: side must be 0 or 1")}function vt(e,{defaultBuy:t=!1}={}){if(e.side!=null){if(typeof e.side!="string")throw new Error("hl-perps: side must be buy or sell");let r=e.side.toLowerCase();if(r!=="buy"&&r!=="sell")throw new Error("hl-perps: side must be buy or sell");let n=r==="buy";if(e.isBuy!=null&&(typeof e.isBuy!="boolean"||e.isBuy!==n))throw new Error("hl-perps: side and isBuy conflict");return n}if(e.isBuy==null&&t)return!0;if(typeof e.isBuy!="boolean")throw new Error("hl-perps: isBuy must be boolean when side is omitted");return e.isBuy}function _t(e="perp"){if(e==="perp"||e==="main")return re.perp;if(e==="spot")return re.spot;if(e==="hip3")return re.hip3;if(e==="outcome"||e==="hip4")return re.hip4;throw new Error(`hl-perps: unknown builder fee kind ${e}`)}function Ue({env:e=process.env,isHolder:t=!1,kind:r="perp"}={}){if(t)return null;let n=String(e?.[ge]||"").trim().toLowerCase();if(!n)return null;if(!/^0x[a-f0-9]{40}$/.test(n))throw new Error(`hl-perps: ${ge} must be an EVM address`);let o=kt(e);if(!o||o!==n)return null;let i=e?.[Fe],s=_t(r),a=i==null?s:Number(i);if(!Number.isFinite(a)||a<=0||Math.abs(a*10-Math.round(a*10))>1e-9)throw new Error(`hl-perps: ${Fe} must be a positive number in 0.1 bps increments`);if(a>Re)throw new Error(`hl-perps: builder fee ${a} bps exceeds the ${Re} bps cap`);if(a>s)throw new Error(`hl-perps: builder fee ${a} bps exceeds the ${s} bps product tier for ${r}`);let c=Math.round(a*10),l=(c/1e3).toFixed(3).replace(/0+$/,"").replace(/\.$/,"");return{wire:{b:n,f:c},disclosure:{address:n,bps:a,percent:`${l}%`}}}async function bn(e,t={},r={}){if(!e)return{approved:!1,approvedFeeBps:0,status:"not-configured"};let n=String(t.user||r.user||"").trim().toLowerCase();if(!/^0x[a-f0-9]{40}$/.test(n))return{approved:!1,approvedFeeBps:0,status:"wallet-required"};try{let o=Number(await H({type:"maxBuilderFee",user:n,builder:e.disclosure.address},r));return!Number.isInteger(o)||o<0?{approved:!1,approvedFeeBps:0,status:"invalid-response"}:{approved:o>=e.wire.f,approvedFeeBps:o/10,status:o>=e.wire.f?"approved":"insufficient"}}catch{return{approved:!1,approvedFeeBps:0,status:"unavailable"}}}async function yn(e,t={},r={}){if(!e)return{exempt:!1,status:"not-configured"};let n=String(t.user||r.user||"").trim().toLowerCase();if(!/^0x[a-f0-9]{40}$/.test(n))return{exempt:!1,status:"wallet-required"};try{let o=r.holderBalance||Le;return BigInt(await o(n))>0n?{exempt:!0,status:"holder"}:{exempt:!1,status:"non-holder"}}catch{return{exempt:!1,status:"unavailable"}}}function ze(e,t,{roundDown:r=null}={}){let n=typeof e=="number"?e.toFixed(Math.min(20,t+8)):e;if(typeof n!="string"||!/^-?\d+(\.\d+)?$/.test(n))throw new Error(`hl-perps: "${e}" is not a decimal number`);let o=n.startsWith("-"),[i,s=""]=n.replace(/^-/,"").split(".");if(s.length<=t){let h=s.replace(/0+$/,"");return(o?"-":"")+(h?`${i}.${h}`:i)}let a=s.slice(0,t),c=Number(s[t]),l=BigInt(i+a),u=s.slice(t).replace(/0+$/,"")!=="";r===!0||(r===!1?u&&(l+=1n):c>=5&&(l+=1n));let d=l.toString().padStart(t+1,"0"),f=(t===0?d:`${d.slice(0,-t)}.${d.slice(-t)}`).replace(/(\.\d*?)0+$/,"$1").replace(/\.$/,"");return(o?"-":"")+f}function xn(e,t,r={}){if(typeof e!="number"&&typeof e!="string")throw new Error(`hl-perps: "${e}" is not a decimal number`);let n=typeof e=="number"?String(e):e;if(!n.includes("."))return n;let o=Number(n);if(!Number.isFinite(o)||o===0)return n;let i=Math.floor(Math.log10(Math.abs(o))),s=Math.max(0,t-1-i);return ze(n,s,r)}function M(e,t,r={}){let n=Pt-Number(t??0);if(n<0)throw new Error("hl-perps: szDecimals out of range");return ze(xn(e,Nt,r),n,r)}function Tt(e,t){let r=ze(e,Number(t??0));if(BigInt(r.split(".")[0])<0n)throw new Error("hl-perps: size must be positive");if(Number(r)<=0)throw new Error("hl-perps: size rounds to zero at this asset's precision");return r}function En(e,t){let r=(u,d)=>{let p=String(u).trim();if(!/^\d+(?:\.\d+)?$/.test(p))throw new Error(`hl-perps: ${d} must be a positive decimal`);let[f,h=""]=p.split(".");return{raw:BigInt(f+h),decimals:h.length}},n=r(e,"size"),o=r(t,"price"),i=n.raw*o.raw,s=n.decimals+o.decimals,a=i.toString().padStart(s+1,"0");if(s===0)return a;let c=a.slice(0,-s),l=a.slice(-s).replace(/0+$/,"");return l?`${c}.${l}`:c}async function V(e={},t={}){let r=await ve(e,t);return{coin:r.coin,assetId:r.assetId,szDecimals:r.szDecimals,maxLeverage:r.maxLeverage,markPx:r.markPx,kind:r.kind,dex:r.dex??null,outcome:r.outcome??null,side:r.side??null}}function Be(e,{tif:t=oe.GTC,triggerPx:r,isMarket:n,szDecimals:o}={}){switch(e){case k.LIMIT:return{limit:{tif:t}};case k.MARKET:return{limit:{tif:oe.IOC}};case k.STOP_MARKET:case k.TAKE_PROFIT_MARKET:return{trigger:{isMarket:!0,triggerPx:M(r,o),tpsl:e===k.STOP_MARKET?"sl":"tp"}};case k.STOP_LIMIT:case k.TAKE_PROFIT_LIMIT:return{trigger:{isMarket:!1,triggerPx:M(r,o),tpsl:e===k.STOP_LIMIT?"sl":"tp"}};default:throw new Error(`hl-perps: unknown order type ${e}`)}}function W(e,t,r={}){let n=r.testnet||process.env.HL_TESTNET==="1";return{action:e,nonce:t,signatureChainId:De,submitTo:n?"https://api.hyperliquid-testnet.xyz/exchange":"https://api.hyperliquid.xyz/exchange",note:"Sign locally via Oracle local-signer or a wallet. Hosted Oracle does not submit."}}function J(e,t={},r={}){let n={...e};try{n.localSignerEnvelope=xt(n,t,r),n.prepared=!0,n.signing="awaiting-hl-signer"}catch(o){n.prepared=!1,n.localSignerEnvelope=null,n.localSignerBlockedReason=String(o?.message||o).slice(0,200),n.signing="blocked"}return n.oraclePrepared=!!n.localSignerEnvelope,R(n,{provider:e.provider||"hl-perps",kind:e.kind})}function Sn(e={},t={}){let r=Ue({env:t.env});if(!r)throw new Error(`hl-perps: ${ge} is required`);let n=Number(e.nonce??t.nonce??Date.now());if(!Number.isSafeInteger(n)||n<=0)throw new Error("hl-perps: nonce must be a positive integer");let o={type:"approveBuilderFee",hyperliquidChain:t.testnet||process.env.HL_TESTNET==="1"?"Testnet":"Mainnet",signatureChainId:De,maxFeeRate:r.disclosure.percent,builder:r.disclosure.address,nonce:n};return J({provider:"hl-perps",venue:"hyperliquid",kind:"builder-fee-approval",builderFee:r.disclosure,...W(o,n,t)},e,t)}async function Mt(e={},t={}){let r=await V(e,t);if(e.type!=null&&(typeof e.type!="string"||!e.type))throw new Error("hl-perps: order type must be a string");let n=e.type??k.LIMIT;if(typeof n!="string"||!n)throw new Error("hl-perps: order type must be a string");let o=vt(e);if(e.reduceOnly!=null&&typeof e.reduceOnly!="boolean")throw new Error("hl-perps: reduceOnly must be boolean");let i=e.reduceOnly===!0,s=Tt(e.size??e.sz,r.szDecimals),a;if(n===k.MARKET){let m=Number(r.markPx);if(!Number.isFinite(m)){let S=await it(t);m=Number(S?.[r.coin]??S?.[String(r.assetId)]??NaN)}if(!Number.isFinite(m))throw new Error("hl-perps: no mark price available for a market order");let g=Number(e.maxSlippageBps??50);if(!Number.isInteger(g)||g<0)throw new Error("hl-perps: maxSlippageBps must be a non-negative integer");if(g>100)throw new Error(`hl-perps: maxSlippageBps ${g} exceeds the hard 100 bps cap`);let b=o?m*(1+g/1e4):m*(1-g/1e4);a=M(b,r.szDecimals,{roundDown:o});let y=Math.abs(Number(a)/m-1)*1e4;if(y>g+1e-9)throw new Error(`hl-perps: tick rounding makes the limit ${y.toFixed(2)} bps from mark, above the ${g} bps cap`)}else{if(e.price==null&&e.limitPx==null)throw new Error("hl-perps: a limit order requires an explicit price");a=M(e.price??e.limitPx,r.szDecimals)}let c=Be(n,{tif:e.tif??(n===k.MARKET?oe.IOC:oe.GTC),triggerPx:e.triggerPx,szDecimals:r.szDecimals}),l={a:r.assetId,b:o,p:a,s,r:i,t:c};if(e.clientOrderId!=null){if(typeof e.clientOrderId!="string"||!e.clientOrderId)throw new Error("hl-perps: clientOrderId must be a string");l.c=e.clientOrderId}if(e.grouping!=null&&(typeof e.grouping!="string"||!e.grouping))throw new Error("hl-perps: grouping must be a string");let u={type:"order",orders:[l],grouping:e.grouping??"na"},d=Ue({env:t.env,kind:r.kind}),p=await yn(d,e,t),f=p.exempt?null:d,h=await bn(f,e,t),w=h.approved?f:null;w&&(u.builder=w.wire);let x=Number(e.nonce??Date.now()),E=En(s,a);return J({provider:"hl-perps",venue:"hyperliquid",kind:r.kind==="outcome"?"hip4-order":r.kind==="hip3"?"hip3-order":"perp-order",coin:r.coin,assetId:r.assetId,assetKind:r.kind,outcome:r.outcome??null,outcomeSide:r.side??null,dex:r.dex??null,side:o?"buy":"sell",orderType:n,price:a,size:s,reduceOnly:i,notionalUsd:E,maxLeverage:r.maxLeverage,markPx:r.markPx,builderFee:w?.disclosure??null,holderExempt:p.exempt,holderVerificationStatus:p.status,builderApprovalRequired:f&&!w?{...d.disclosure,...h}:null,...W(u,x,t)},e,t)}async function In(e={},t={}){let r=await V(gn(e),t),n=e.orderId??e.oid;if(n==null)throw new Error("hl-perps: orderId required");let o=$t(n,"orderId"),i={type:"cancel",cancels:[{a:r.assetId,o}]};return J({provider:"hl-perps",venue:"hyperliquid",kind:"perp-cancel",coin:r.coin,assetId:r.assetId,orderId:o,...W(i,Number(e.nonce??Date.now()),t)},e,t)}async function kn(e={},t={}){let r=await V(e,t),n=wn(e.leverage,"leverage");if(r.maxLeverage!=null&&n>r.maxLeverage)throw new Error(`hl-perps: ${r.coin} allows at most ${r.maxLeverage}x, requested ${n}x`);if(e.marginMode!=null&&typeof e.marginMode!="string")throw new Error("hl-perps: marginMode must be a string");let o=(e.marginMode||ne.CROSS).toLowerCase();if(o!==ne.CROSS&&o!==ne.ISOLATED)throw new Error('hl-perps: marginMode must be "cross" or "isolated"');let i={type:"updateLeverage",asset:r.assetId,isCross:o===ne.CROSS,leverage:n};return J({provider:"hl-perps",venue:"hyperliquid",kind:"perp-leverage",coin:r.coin,assetId:r.assetId,leverage:n,marginMode:o,maxLeverage:r.maxLeverage,liquidationWarning:n>=20?`${n}x liquidates on roughly a ${(100/n).toFixed(2)}% adverse move before fees`:null,...W(i,Number(e.nonce??Date.now()),t)},e,t)}async function An(e={},t={}){let r=await V(e,t),n=e.usd??e.amountUsd;if(n==null)throw new Error("hl-perps: usd amount required");if(typeof n!="number"&&typeof n!="string")throw new Error("hl-perps: usd must be a decimal number");let o=typeof n=="number"?String(n):n;if(!/^-?\d+(\.\d+)?$/.test(o))throw new Error("hl-perps: usd must be a decimal number");let i=A(o,6,"hl-perps: usd"),s=vt(e,{defaultBuy:!0}),a={type:"updateIsolatedMargin",asset:r.assetId,isBuy:s,ntli:i<=BigInt(Number.MAX_SAFE_INTEGER)?Number(i):i.toString()};return J({provider:"hl-perps",venue:"hyperliquid",kind:"perp-isolated-margin",coin:r.coin,assetId:r.assetId,isBuy:s,usd:o,...W(a,Number(e.nonce??Date.now()),t)},e,t)}async function Nn(e={},t={}){let r=await Mt(e,t),n=await V(e,t),o=r.side==="buy",i=[r.action.orders[0]];if(e.takeProfitPx!=null&&i.push({a:n.assetId,b:!o,p:M(e.takeProfitPx,n.szDecimals),s:r.size,r:!0,t:Be(k.TAKE_PROFIT_MARKET,{triggerPx:e.takeProfitPx,szDecimals:n.szDecimals})}),e.stopLossPx!=null&&i.push({a:n.assetId,b:!o,p:M(e.stopLossPx,n.szDecimals),s:r.size,r:!0,t:Be(k.STOP_MARKET,{triggerPx:e.stopLossPx,szDecimals:n.szDecimals})}),i.length===1)throw new Error("hl-perps: a bracket needs takeProfitPx and/or stopLossPx");let s={type:"order",orders:i,grouping:"normalTpsl",...r.action.builder?{builder:r.action.builder}:{}};return J({provider:"hl-perps",venue:"hyperliquid",kind:"perp-bracket",coin:n.coin,assetId:n.assetId,side:r.side,price:r.price,size:r.size,reduceOnly:r.reduceOnly,orderType:r.orderType,notionalUsd:r.notionalUsd,legs:i.length,entry:{side:r.side,price:r.price,size:r.size},takeProfitPx:e.takeProfitPx==null?null:M(e.takeProfitPx,n.szDecimals),stopLossPx:e.stopLossPx==null?null:M(e.stopLossPx,n.szDecimals),builderFee:r.builderFee,...W(s,Number(e.nonce??Date.now()),t)},e,t)}var Nt,Pt,De,mn,Re,ge,Fe,re,k,oe,ne,Ot=P(()=>{ue();_e();we();de();Et();Oe();At();Nt=5,Pt=6,De="0x66eee",mn=2,Re=10,ge="ORACLE_HL_BUILDER_ADDRESS",Fe="ORACLE_HL_BUILDER_FEE_BPS",re=Object.freeze({perp:2,spot:1,hip3:1,hip4:1}),k=Object.freeze({LIMIT:"limit",MARKET:"market",STOP_MARKET:"stopMarket",STOP_LIMIT:"stopLimit",TAKE_PROFIT_MARKET:"takeProfitMarket",TAKE_PROFIT_LIMIT:"takeProfitLimit"}),oe=Object.freeze({GTC:"Gtc",IOC:"Ioc",ALO:"Alo"}),ne=Object.freeze({CROSS:"cross",ISOLATED:"isolated"})});ce();var Ir="https://yields.llama.fi";async function rt(e={},t={}){let r=(t.yieldsBaseUrl||process.env.DEFILLAMA_YIELDS_URL||Ir).replace(/\/$/,""),n=await z(`${r}/pools`,{fetchImpl:t.fetchImpl,timeoutMs:t.timeoutMs??3e4}),o=Array.isArray(n?.data)?n.data:[];e.chain&&(o=o.filter(s=>String(s.chain).toLowerCase()===String(e.chain).toLowerCase())),e.project&&(o=o.filter(s=>String(s.project).toLowerCase()===String(e.project).toLowerCase())),e.stablecoin!=null&&(o=o.filter(s=>!!s.stablecoin==!!e.stablecoin)),o.sort((s,a)=>Number(a.tvlUsd||0)-Number(s.tvlUsd||0));let i=Math.min(5e3,Math.max(1,Number(e.limit||o.length||1)));return{...n,data:o.slice(0,i)}}var Q=Object.freeze([{id:"stable-loop",label:"Stablecoin loop",risk:"Conservative",targetDelta:"0.00",setup:"Supply USDC, borrow a second major stable, redeposit inside the same protocol or campaign.",exposure:"Borrow APR spike, depeg, collateral-factor change, protocol cap change.",hedge:"No perp hedge by default. Cap leverage, diversify stables, and keep unwind triggers explicit.",monitor:"Borrow APR, utilization, oracle health, depeg distance, reward dilution.",exit:"Unwind if borrow APR exceeds reward-adjusted APR or any stable trades outside the defined band."},{id:"collateral-hedge",label:"Collateral plus perp hedge",risk:"Balanced",targetDelta:"~0.00",setup:"Supply a volatile asset as collateral, borrow stables, and short the collateral notional on a liquid perp venue.",exposure:"Liquidation risk, funding cost, hedge slippage, borrow APR drift.",hedge:"Short collateral notional on a liquid perp venue; rebalance when delta drifts past the band.",monitor:"Health factor, funding, mark price, borrow APR, hedge margin.",exit:"Cut when funding turns persistently negative against the position or health factor nears the floor."},{id:"lp-hedge",label:"LP incentive hedge",risk:"Aggressive",targetDelta:"range-dependent",setup:"Provide concentrated liquidity for incentives and short the estimated volatile-token delta.",exposure:"Impermanent loss, range breaks, reward dilution, exit slippage.",hedge:"Short the estimated volatile-token delta and recompute after material price or range moves.",monitor:"Position delta, range utilization, fee APR, rewards, funding, exit slippage.",exit:"Withdraw when incentives dilute, liquidity caps fill, or expected reward no longer beats IL plus opportunity cost."},{id:"quest-farming",label:"Testnet and quest farming",risk:"Conservative",targetDelta:"n/a",setup:"Complete real protocol tasks with consistent, genuine usage from wallets you actually control.",exposure:"Eligibility rules change, sybil filters, unpaid effort, opportunity cost.",hedge:"No financial hedge. Diversify across campaigns so no single ruleset dominates the outcome.",monitor:"Campaign rules, snapshot windows, task eligibility evidence, wallet hygiene.",exit:"Stop once snapshot risk rises, campaign rules change, or the probability-adjusted expected value turns negative."},{id:"liquidity-usage",label:"Liquidity and route usage",risk:"Balanced",targetDelta:"varies",setup:"Route genuine volume and provide liquidity where usage is a stated eligibility signal.",exposure:"IL, slippage, gas burn, bridge fees, lockup discount.",hedge:"Size positions so IL and fees stay inside the modelled reward, and hedge volatile legs when material.",monitor:"Volume attribution, fee drag, reward accrual, lockup terms.",exit:"Withdraw when incentives dilute or expected reward no longer beats IL plus opportunity cost."},{id:"governance-usage",label:"Governance and ecosystem usage",risk:"Conservative",targetDelta:"n/a",setup:"Participate in governance and ecosystem surfaces where real contribution is the eligibility signal.",exposure:"Vanity activity with no eligibility weight, lock-up of governance assets.",hedge:"No financial hedge. Weight effort toward actions with documented eligibility evidence.",monitor:"Proposal participation, delegation terms, lock durations, published criteria.",exit:"Stop contributing effort once criteria change or the probability-adjusted value turns negative."}]),kr={"stable-loop":"No default perp hedge. Bound leverage and monitor depeg plus borrow APR.","collateral-hedge":"Short the collateral notional on a liquid perp venue and rebalance when delta drifts.","lp-hedge":"Short the estimated volatile-token delta and recompute after material price or range moves."},Ar={"stable-loop":"Borrow APR, utilization, stable peg, reward dilution, health factor.","collateral-hedge":"Health factor, funding, mark price, borrow APR, hedge margin.","lp-hedge":"Position delta, range utilization, fee APR, rewards, funding, exit slippage."},Nr={"stable-loop":["Prepare supply for the stable collateral leg.","Prepare borrow only after health factor and borrow APR pass the method limits.","Prepare redeposit or unwind steps as separate wallet-signed actions."],"collateral-hedge":["Prepare collateral supply after sizing liquidation buffer.","Prepare stable borrow if borrow APR remains inside the method limit.","Open or adjust the perp short on the selected hedge venue, then record hedge size."],"lp-hedge":["Prepare LP add only after checking pool depth, range, and expected position delta.","Short the estimated volatile-token delta on the selected hedge venue.","Prepare LP remove if the range breaks or net APR turns negative."]};function q(e){let t=typeof e=="number"?e:Number(e);return Number.isFinite(t)?t:null}function T(e,t="unknown"){if(typeof e!="string")return t;let r=e.trim();return r===""?t:r.slice(0,96)}function Pr(e){let t=T(e.symbol,"").toUpperCase(),r=T(e.exposure,"").toLowerCase(),n=q(e.apy)??0,o=q(e.tvlUsd)??0;return n<=0||o<=0?null:e.stablecoin===!0?"stable-loop":t.includes("-")||r.includes("multi")?"lp-hedge":/ETH|BTC|SOL|HYPE|BNB|AVAX|MATIC|OP|ARB/.test(t)?"collateral-hedge":null}function $r(e,t){let r=q(e.tvlUsd)??0,n=T(e.ilRisk,"").toLowerCase(),o=T(e.predictions?.predictedClass,"").toLowerCase(),i=t==="stable-loop"?3:t==="collateral-hedge"?6:9;return r<1e6?i+=6:r<1e7&&(i+=3),(n.includes("yes")||n.includes("high"))&&(i+=3),o.includes("down")&&(i+=2),Math.min(35,Math.max(0,i))}function vr(e){let t=Pr(e);if(!t)return null;let r=q(e.apy)??0,n=q(e.apyBase)??0,o=Math.max(0,q(e.apyReward)??Math.max(0,r-n)),i=Math.max(0,q(e.tvlUsd)??0),s=$r(e,t),a=t==="stable-loop"?4:t==="collateral-hedge"?6:0,c=t==="stable-loop"?0:t==="collateral-hedge"?4:5,l=i<5e6?1.2:.5,u=r-a-c-l-s,d=u<1?"Avoid":r>80||i<1e7?"Watchlist":u>=8?"Farmable":"Watchlist",p=T(e.project),f=T(e.symbol),h=T(e.chain);return{id:T(e.pool,`${h}:${p}:${f}`),recipe:t,label:`${p} ${f}`,chain:h,project:p,symbol:f,tvlUsd:i,rewardApr:o,nativeApr:n,estimatedBorrowApr:a,estimatedFundingApr:c,gasApr:l,riskHaircut:s,netApr:u,verdict:d,exposure:T(e.exposure,t==="stable-loop"?"stablecoin":t==="lp-hedge"?"multi-asset LP":"single-asset collateral"),hedge:kr[t],monitor:Ar[t],prepareSteps:[`Verify ${p} contracts and reward terms on ${h}.`,"Set wallet grant with chain, protocol, max value, slippage, and TTL before preparing any transaction.",...Nr[t]],source:"DeFiLlama yields"}}async function nt(e={},t={}){let r=Math.min(24,Math.max(3,Number(e.limit??12)||12)),n=Number(e.minTvl??2e6),o=new Date().toISOString(),i="read-only discovery and prepare-plan design; no signing or broadcast";try{let s=await rt({chain:e.chain&&e.chain!=="all"?e.chain:void 0,limit:5e3},t),a=Array.isArray(s?.data)?s.data:[],c=a.map(vr).filter(l=>l!==null).filter(l=>l.tvlUsd>=n).filter(l=>l.rewardApr+l.nativeApr<=300).sort((l,u)=>u.netApr-l.netApr||u.tvlUsd-l.tvlUsd).slice(0,r);return{configured:!0,live:!0,source:"DeFiLlama yields",generatedAt:o,chain:e.chain??"all",considered:a.length,consideredNote:"deepest pools by TVL from the DeFiLlama yields feed",candidates:c,posture:i}}catch(s){return{configured:!1,live:!1,source:"DeFiLlama yields",generatedAt:o,chain:e.chain??"all",considered:0,consideredNote:"deepest pools by TVL from the DeFiLlama yields feed",error:String(s?.message||s),candidates:[],posture:i}}}function $(e,t,r,n){let o=typeof e=="number"?e:Number(e);return Number.isFinite(o)?Math.min(n,Math.max(r,o)):t}function ot(e={}){let t=$(e.wallets,5,1,500),r=$(e.tasksWeekly,6,0,500),n=$(e.hoursWeekly,4,0,168),o=$(e.hourlyCost,25,0,1e4),i=$(e.gasPerTask,.4,0,1e4),s=$(e.bridgeMonthly,12,0,1e5),a=$(e.expectedReward,900,0,1e7),c=$(e.probability,22,0,100)/100,l=$(e.sybilHaircut,25,0,100)/100,u=$(e.lockupMonths,6,0,120),d=r*t*4.33,p=d*i,f=n*4.33*o,h=p+f+s,w=Math.max(0,1-u*.015),x=t*a*c,E=x*(1-l)*w,m=E-h,g=h>0?m/h*100:null,b=t*a>0?h/(t*a*(1-l)*(w||1))*100:null;return{inputs:{wallets:t,tasksWeekly:r,hoursWeekly:n,hourlyCost:o,gasPerTask:i,bridgeMonthly:s,expectedReward:a,probabilityPct:c*100,sybilHaircutPct:l*100,lockupMonths:u},monthlyTasks:d,monthlyGas:p,laborMonthly:f,monthlyCost:h,lockupDiscount:w,grossExpectedValue:x,adjustedExpectedValue:E,netExpectedValue:m,roiPct:g,breakevenProbabilityPct:b,verdict:m>0?"positive-ev":"negative-ev",posture:"estimate on your own inputs; not a payout promise and not financial advice"}}ue();de();function lt(e={}){let t=e.spotSizes??e.spotHeldSizes;return t&&typeof t=="object"&&!Array.isArray(t)?t:null}function he(e={},t,r){let n=String(t||""),o=lt(e);if(o){let s=ee(o[n]);if(s==null)throw new Error(`${r}: held spot required for ${n}`);return s}let i=ee(e.spotSize??e.spotHeldSize);if(i==null)throw new Error(`${r}: prepare requires spotSize of held spot`);return i}function fe(e={},t=[],r){let n=lt(e);if(t.length>1){if(!n)throw new Error(`${r}: multi-coin live loop requires spotSizes map`);for(let o of t)if(ee(n[o])==null)throw new Error(`${r}: held spot required for ${o}`);return}if(n){let o=t[0];if(o&&ee(n[o])==null)throw new Error(`${r}: held spot required for ${o}`);return}if(ee(e.spotSize??e.spotHeldSize)==null)throw new Error(`${r}: live loop requires spotSize of held spot`)}var Pe=Number.MAX_SAFE_INTEGER,pe=String(Pe);function ee(e){if(typeof e=="number")return Number.isFinite(e)&&e>0&&e<=Pe?e:null;if(typeof e!="string"||!/^(?:0|[1-9]\d*)(?:\.\d+)?$/.test(e))return null;let[t,r=""]=e.split(".");if(t.length>pe.length||t.length===pe.length&&t>pe||t===pe&&/[1-9]/.test(r))return null;let n=Number(e);return Number.isFinite(n)&&n>0&&n<=Pe?n:null}function L(e){let t=typeof e=="number"?e:Number(e);return Number.isFinite(t)?t:null}function Ct(e){let t=L(e);if(t==null)throw new Error("hl-delta-neutral: funding rate required");return t*24*365*100}function Pn(e,t,r=4){let n=L(e),o=L(t),i=Number.isInteger(Number(r))?Number(r):4;if(!(n>0))throw new Error("hl-delta-neutral: notionalUsd must be > 0");if(!(o>0))throw new Error("hl-delta-neutral: markPx must be > 0");let s=10**i;return String(Math.floor(n/o*s+1e-12)/s)}function Rt(e){let t=Array.isArray(e?.[0]?.universe)?e[0].universe:[],r=Array.isArray(e?.[1])?e[1]:[],n=[];for(let o=0;o<t.length;o+=1){let i=t[o]||{},s=r[o]||{},a=String(i.name||"").trim(),c=L(s.funding),l=L(s.markPx??s.oraclePx),u=L(s.openInterest)??0;!a||c==null||!(l>0)||n.push({coin:a,szDecimals:Number.isInteger(Number(i.szDecimals))?Number(i.szDecimals):4,funding:c,markPx:l,oraclePx:L(s.oraclePx),openInterest:u,fundingAprPct:Ct(c)})}return n}function Ft(e,t){if(!e?.coin)throw new Error("hl-delta-neutral: coin required");let r=L(e.funding);if(r==null)throw new Error("hl-delta-neutral: funding required");let n=Ct(r),o=r>0,i={coin:e.coin,notionalUsd:L(t),markPx:e.markPx,fundingHourly:r,fundingAprPct:n,targetDelta:0,spot:o?"hold-existing":"short-spot-not-in-light-path",perpSide:o?"sell":"buy",perpSize:o?Pn(t,e.markPx,e.szDecimals):"0",verdict:o?n>=5?"carry":"watch":"skip",posture:"light hold-spot / short-perp carry. A farm tick may prepare the perp hedge unsigned. Hosted stays prepare-only."};if(!(i.notionalUsd>0))throw new Error("hl-delta-neutral: notionalUsd must be > 0");return i}async function qe(e={},t={}){let r=Math.min(24,Math.max(1,Number(e.limit??8)||8)),n=Number(e.minOpenInterest??0),o=await Z(t),i=Rt(o).filter(s=>s.funding>0&&s.openInterest>=n).sort((s,a)=>a.funding-s.funding||a.openInterest-s.openInterest).slice(0,r);return{live:!0,source:"Hyperliquid metaAndAssetCtxs",considered:Array.isArray(o?.[0]?.universe)?o[0].universe.length:0,candidates:i,posture:"read-only funding scan. Positive funding only. No signing."}}async function He(e={},t={}){let r=String(e.coin||"").trim();if(!r)throw new Error("hl-delta-neutral: coin required");let n=Number(e.notionalUsd??e.notional??1e3),o=await Z(t),i=Rt(o).find(s=>s.coin===r);if(!i)throw new Error(`hl-delta-neutral: ${r} not in Hyperliquid meta`);return Ft(i,n)}async function $n(e={},t={}){Dt(e,t,"hl-delta-neutral");let r=Ut(e.maxNotionalUsd??25e3,"hl-delta-neutral"),n=await He(e,t);if(n.verdict==="skip")return R({...n,prepared:!1,oraclePrepared:!1,surface:"hl",reason:"negative funding is outside the light hold-spot path"},{provider:"hl-delta-neutral",kind:"hl-carry-hedge"});let o=he(e,n.coin,"hl-delta-neutral");if(!Bt.test(String(e.owner||"")))throw new Error("hl-delta-neutral: prepare requires owner");if(Number(n.perpSize)-o>1e-12)throw new Error("hl-delta-neutral: hedge cannot exceed held spot");let{hlPreparePerpOrder:i}=await Promise.resolve().then(()=>(Ot(),Lt)),s=await i({coin:n.coin,side:n.perpSide,size:n.perpSize,type:e.orderType||"limit",price:e.price??n.markPx,owner:e.owner,maxNotionalUsd:r},{fetchImpl:t.fetchImpl,nowMs:t.nowMs});if(s?.signed===!0||s?.broadcast===!0)throw new Error("hl-delta-neutral: prepare cannot sign or broadcast");let a=s?.localSignerEnvelope||null,c=s?.localSignerBlockedReason||null;return R({...n,prepared:!!a,surface:"hl",hedge:s,localSignerEnvelope:a,localSignerBlockedReason:c,signed:!1,broadcast:!1,signing:a?"awaiting-hl-signer":"blocked",oraclePrepared:!!a},{provider:"hl-delta-neutral",kind:"hl-carry-hedge"})}var Bt=/^0x[0-9a-fA-F]{40}$/;function Dt(e,t,r){if((t.hosted===!0||t.keyless===!0)&&(e.farming===!0||typeof t.signImpl=="function"))throw new Error(`${r}: hosted/keyless cannot sign`);if(e.farming===!0||typeof t.signImpl=="function"||typeof t.prepareImpl=="function")throw new Error(`${r}: farm cannot sign; use oracle signer`)}function vn(e,t,r){Dt(e,t,r)}function _n(e={}){if(e.halted===!0)throw new Error("hl-delta-neutral: loop is halted");let t=e.mode==="live"?"live":"shadow",r=Array.isArray(e.coins||e.allowlist)?(e.coins||e.allowlist).map(String):[],n=e.maxCoins??1;if(typeof n!="number"&&!(typeof n=="string"&&/^(?:0|[1-9]\d*)$/.test(n)))throw new Error("hl-delta-neutral: maxCoins must be an integer");let o=Number(n);if(!Number.isSafeInteger(o))throw new Error("hl-delta-neutral: maxCoins must be an integer");if(o<1||o>8)throw new Error("hl-delta-neutral: maxCoins must be between 1 and 8");let i=Ut(e.maxNotionalUsd??e.notionalUsd??e.notional??1e3,"hl-delta-neutral");if(t==="live"&&r.length===0)throw new Error("hl-delta-neutral: live loop requires a coin allowlist");if(t==="live"&&fe(e,r,"hl-delta-neutral"),t==="live"&&!Bt.test(String(e.owner||"")))throw new Error("hl-delta-neutral: live loop requires owner");return{mode:t,allowlist:r,maxCoins:o,maxNotionalUsd:i,intervalMs:Math.max(3e4,Number(e.intervalMs??3e5)||3e5)}}function Ut(e,t){let r=typeof e=="string"&&e===e.trim()&&/^(?:0\.\d+|[1-9]\d*(?:\.\d+)?)$/.test(e);if(typeof e!="number"&&!r)throw new Error(`${t}: maxNotionalUsd out of bounds`);let n=Number(e);if(!(n>0)||n>25e3)throw new Error(`${t}: maxNotionalUsd out of bounds`);return n}async function zt(e={},t={}){vn(e,t,"hl-delta-neutral");let r=_n(e),n=await qe({limit:e.limit??16,minOpenInterest:e.minOpenInterest},t),o=new Set(r.allowlist),i=[],s=Math.floor(r.maxNotionalUsd/r.maxCoins);for(let a of n.candidates){if(o.size&&!o.has(a.coin))continue;let c=Ft(a,s);if(c.verdict!=="carry")continue;if(i.length>=r.maxCoins)break;if(r.mode==="shadow"){i.push({...c,mode:"shadow",surface:"hl",prepared:!1,signed:!1,broadcast:!1});continue}let l=await $n({coin:c.coin,notionalUsd:c.notionalUsd,owner:e.owner,orderType:e.orderType,price:e.price,maxNotionalUsd:s,spotSize:e.spotSize??e.spotHeldSize,spotSizes:e.spotSizes??e.spotHeldSizes},{fetchImpl:t.fetchImpl,nowMs:t.nowMs});i.push({...l,mode:"live",surface:"hl"})}return{loop:!0,mode:r.mode,surface:"hl",signer:"hl",considered:n.considered,actions:i,nextWaitMs:r.intervalMs,signed:i.some(a=>a.signed===!0),broadcast:i.some(a=>a.broadcast===!0),posture:"one tick. Prepares an unsigned hedge for oracle signer. Armed, not automated. Farm loop never signs or broadcasts."}}ce();de();we();var Tn=new Set(["https://mainnet.zklighter.elliot.ai/api/v1/sendTx","https://testnet.zklighter.elliot.ai/api/v1/sendTx"]),ie=14,qt=(e,t,r=256)=>{if(typeof e!="string"||!e||e.length>r)throw new Error(`lighter: bounded ${t} required`);return e};function K(e,t,r){if(!Number.isSafeInteger(e)||e!==t)throw new Error(`lighter: ${r} must be exact numeric ${t}`)}function je(e){let t=String(e||"").replace(/\/$/,"");if(!Tn.has(t))throw new Error("lighter: submitTo must be the official Lighter sendTx");return t}function Ht(e,t={}){if(e?.surface!=="lighter")throw new Error("lighter: surface lighter required");let r=e.artifact;if(!r||typeof r!="object"||Array.isArray(r))throw new Error("lighter: structured artifact required");let n=qt(r.kind,"kind",48);if(n!=="lighter-order")throw new Error("lighter: unsupported Lighter kind");if(e.action!=="order")throw new Error("lighter: surface/action/kind mismatch");if(String(e.destination).toLowerCase()!=="lighter")throw new Error("lighter: destination must be lighter");let o=je(r.submitTo),i=r.marketIndex;if(typeof i!="number"||!Number.isSafeInteger(i)||i<0)throw new Error("lighter: marketIndex required");let s=Number(j(r.accountIndex,"lighter: accountIndex"));if(!Number.isSafeInteger(s)||s<0)throw new Error("lighter: accountIndex required");let a=Number(j(r.clientOrderIndex,"lighter: clientOrderIndex"));if(!Number.isSafeInteger(a)||a<0)throw new Error("lighter: clientOrderIndex required");K(r.orderType,0,"orderType"),K(r.timeInForce,1,"timeInForce"),K(r.reduceOnly,0,"reduceOnly"),K(r.triggerPrice,0,"triggerPrice"),K(r.orderExpiry,-1,"orderExpiry");let c=qt(r.symbol||r.coin,"symbol",32),l=Array.isArray(t.lighterMarkets)?t.lighterMarkets.map(String):[];if(l.length&&!l.includes(c)&&!l.includes(String(i))&&!l.includes("*"))throw new Error("lighter: market not allowed");if(r.side!=="buy"&&r.side!=="sell")throw new Error("lighter: side must be buy or sell");let u=Te(r.baseAmount,"lighter: baseAmount"),d=Te(r.price,"lighter: price");if(u>BigInt(Number.MAX_SAFE_INTEGER)||d>BigInt(Number.MAX_SAFE_INTEGER))throw new Error("lighter: baseAmount and price must be safe integers");let p=Number(u),f=Number(d),h=Number(r.sizeDecimals??0),w=Number(r.priceDecimals??0);if(!Number.isInteger(h)||h<0||h>12)throw new Error("lighter: sizeDecimals required");if(!Number.isInteger(w)||w<0||w>12)throw new Error("lighter: priceDecimals required");let x=h+w,E=u*d,m=A(r.notionalUsd,x,"lighter: notionalUsd");if(m<=0n)throw new Error("lighter: notionalUsd required");if(E!==m)throw new Error("lighter: notionalUsd must match size and price");let g=A(t.maxNotionalUsd??Number.MAX_SAFE_INTEGER,x,"lighter: maxNotionalUsd");if(E>g)throw new Error("lighter: notional exceeds cap");let b=I(r.notionalUsd,"lighter: notionalUsd");return K(r.txType,ie,"txType"),Object.freeze({unit:"usd",value:String(b),notional:String(b),fee:"0",kind:n,symbol:c,marketIndex:i,side:r.side,baseAmount:p,price:f,submitTo:o,actionType:"create-order",amount:String(b)})}function Mn(e){let t=e.owner||e.user||e.from;if(!/^0x[0-9a-fA-F]{40}$/.test(String(t||"")))throw new Error("lighter: owner address required for local-signer envelope");return String(t).toLowerCase()}function jt(e,t={},r={}){if(String(e?.kind)!=="lighter-order")throw new Error("lighter: prepared kind is not a local-signer surface");let n=Number(r.nowMs??Date.now()),o=Math.min(6e4,Math.max(1e3,Number(t.ttlMs??t.expiresInMs??3e4)||3e4)),i=je(e.submitTo),s={version:1,surface:"lighter",action:"order",owner:Mn(t),destination:"lighter",tradeId:String(t.tradeId||`lighter:${e.symbol}:${e.marketIndex}:${e.clientOrderIndex}`),expiresAtMs:n+o,slippageBps:Number(t.slippageBps??0),fee:{oracleFeeBps:0},provider:"lighter-delta-neutral",artifact:{kind:"lighter-order",symbol:e.symbol,marketIndex:e.marketIndex,side:e.side,baseAmount:e.baseAmount,price:e.price,notionalUsd:e.notionalUsd,sizeDecimals:e.sizeDecimals??0,priceDecimals:e.priceDecimals??0,clientOrderIndex:e.clientOrderIndex,txType:e.txType??ie,submitTo:i,accountIndex:e.accountIndex??t.accountIndex??null,orderType:e.orderType,timeInForce:e.timeInForce,reduceOnly:e.reduceOnly,triggerPrice:e.triggerPrice,orderExpiry:e.orderExpiry}};return Ht(s,{lighterMarkets:t.lighterMarkets||["*"],maxNotionalUsd:t.maxNotionalUsd??Number.MAX_SAFE_INTEGER}),s}var Vt="https://mainnet.zklighter.elliot.ai",Wt="https://testnet.zklighter.elliot.ai";function Ln(e={}){return e.testnet||process.env.LIGHTER_TESTNET==="1"?Wt:Vt}function B(e){let t=typeof e=="number"?e:Number(e);return Number.isFinite(t)?t:null}function On(e,t){let r=e.toString().padStart(t+1,"0");if(t===0)return r;let n=r.slice(0,-t),o=r.slice(-t).replace(/0+$/,"");return o?`${n}.${o}`:n}function Jt(e){let t=B(e);if(t==null)throw new Error("lighter: funding rate required");return t*24*365*100}function Cn(e,t,r=4){let n=B(e),o=B(t),i=Number.isInteger(Number(r))?Number(r):4;if(!(n>0))throw new Error("lighter: notionalUsd must be > 0");if(!(o>0))throw new Error("lighter: markPx must be > 0");let s=10**i;return Math.floor(n/o*s+1e-12)}function Gt(e){return typeof e=="number"&&Number.isSafeInteger(e)&&e>=0?e:null}function Kt(e,t){let r=Array.isArray(e?.funding_rates)?e.funding_rates:[],n=Array.isArray(t?.order_book_details)?t.order_book_details:[],o=new Map;for(let s of n){let a=Gt(s.market_id);a!=null&&o.set(a,s)}let i=[];for(let s of r){if(String(s.exchange||"")!=="lighter")continue;let a=Gt(s.market_id);if(a==null)continue;let c=o.get(a),l=B(c?.mark_price??c?.index_price),u=B(s.rate),d=String(s.symbol||c?.symbol||"").trim();!d||u==null||!(l>0)||i.push({coin:d,symbol:d,marketIndex:a,funding:u,markPx:l,openInterest:B(c?.open_interest)??0,sizeDecimals:Number(c?.supported_size_decimals??c?.size_decimals??4),priceDecimals:Number(c?.supported_price_decimals??c?.price_decimals??2),fundingAprPct:Jt(u)})}return i}function Xt(e,t){if(!e?.symbol&&!e?.coin)throw new Error("lighter: symbol required");let r=B(e.funding);if(r==null)throw new Error("lighter: funding required");let n=Jt(r),o=r>0,i={coin:e.symbol||e.coin,symbol:e.symbol||e.coin,marketIndex:e.marketIndex,notionalUsd:B(t),markPx:e.markPx,fundingHourly:r,fundingAprPct:n,targetDelta:0,spot:o?"hold-existing":"short-spot-not-in-light-path",perpSide:o?"sell":"buy",baseAmount:o?Cn(t,e.markPx,e.sizeDecimals):0,price:Math.round(Number(e.markPx)*10**Number(e.priceDecimals||0)),sizeDecimals:e.sizeDecimals,priceDecimals:e.priceDecimals,verdict:o?n>=5?"carry":"watch":"skip",posture:"light hold-spot / short-perp carry on Lighter. Armed via official sendTx. Not automated."};if(!(i.notionalUsd>0))throw new Error("lighter: notionalUsd must be > 0");return i}async function Yt(e={}){let t=Ln(e),r=e.fetchImpl,n=await z(`${t}/api/v1/funding-rates`,{fetchImpl:r,retries:0}),o=await z(`${t}/api/v1/orderBookDetails`,{fetchImpl:r,retries:0});return{funding:n,books:o}}async function Ge(e={},t={}){let r=Math.min(24,Math.max(1,Number(e.limit??8)||8)),{funding:n,books:o}=await Yt(t),i=Kt(n,o).filter(s=>s.funding>0).sort((s,a)=>a.funding-s.funding||a.openInterest-s.openInterest).slice(0,r);return{live:!0,source:"Lighter funding-rates + orderBookDetails",considered:Array.isArray(n?.funding_rates)?n.funding_rates.filter(s=>s.exchange==="lighter").length:0,candidates:i,posture:"read-only Lighter funding scan. Positive funding only. No signing."}}async function Ve(e={},t={}){let r=String(e.coin||e.symbol||"").trim();if(!r)throw new Error("lighter: coin required");let n=Number(e.notionalUsd??e.notional??1e3),{funding:o,books:i}=await Yt(t),s=Kt(o,i).find(a=>a.symbol===r);if(!s)throw new Error(`lighter: ${r} not in Lighter funding`);return Xt(s,n)}async function Rn(e={},t={}){Zt(e,t,"lighter");let r=er(e.maxNotionalUsd??25e3,"lighter");if(typeof e.accountIndex!="number"||!Number.isSafeInteger(e.accountIndex)||e.accountIndex<0)throw new Error("lighter: accountIndex required");let n=e.accountIndex,o=await Ve(e,t);if(o.verdict==="skip")return R({...o,prepared:!1,oraclePrepared:!1,surface:"lighter",reason:"negative funding is outside the light hold-spot path"},{provider:"lighter-delta-neutral",kind:"lighter-order"});let i=he(e,o.coin,"lighter");if(!Qt.test(String(e.owner||"")))throw new Error("lighter: prepare requires owner");if(o.baseAmount/10**Number(o.sizeDecimals||0)-i>1e-12)throw new Error("lighter: hedge cannot exceed held spot");let a=!!(t.testnet||process.env.LIGHTER_TESTNET==="1"),c=Number(o.sizeDecimals||0)+Number(o.priceDecimals||0),l=On(BigInt(o.baseAmount)*BigInt(o.price),c);if(e.clientOrderIndex!=null&&(typeof e.clientOrderIndex!="number"||!Number.isSafeInteger(e.clientOrderIndex)||e.clientOrderIndex<0))throw new Error("lighter: clientOrderIndex must be a safe integer");let u={...o,targetNotionalUsd:o.notionalUsd,notionalUsd:l,kind:"lighter-order",surface:"lighter",side:o.perpSide,clientOrderIndex:e.clientOrderIndex??Date.now()%1e9,accountIndex:n,orderType:0,timeInForce:1,reduceOnly:0,triggerPrice:0,orderExpiry:-1,txType:ie,submitTo:`${a?Wt:Vt}/api/v1/sendTx`,signed:!1,broadcast:!1},d=null,p=null;try{d=jt(u,{...e,maxNotionalUsd:r},t)}catch(h){p=String(h?.message||h).slice(0,200)}return R({...u,prepared:!!d,signing:d?"awaiting-lighter-signer":"blocked",localSignerEnvelope:d,localSignerBlockedReason:p,oraclePrepared:!!d},{provider:"lighter-delta-neutral",kind:"lighter-order"})}var Qt=/^0x[0-9a-fA-F]{40}$/;function Zt(e,t,r){if((t.hosted===!0||t.keyless===!0)&&(e.farming===!0||typeof t.signImpl=="function"))throw new Error(`${r}: hosted/keyless cannot sign`);if(e.farming===!0||typeof t.signImpl=="function"||typeof t.prepareImpl=="function")throw new Error(`${r}: farm cannot sign; use oracle signer`)}function Fn(e,t,r){Zt(e,t,r)}function Bn(e={}){if(e.halted===!0)throw new Error("lighter: loop is halted");let t=e.mode==="live"?"live":"shadow",r=Array.isArray(e.coins||e.allowlist)?(e.coins||e.allowlist).map(String):[],n=e.maxCoins??1;if(typeof n!="number"&&!(typeof n=="string"&&/^(?:0|[1-9]\d*)$/.test(n)))throw new Error("lighter: maxCoins must be an integer");let o=Number(n);if(!Number.isSafeInteger(o))throw new Error("lighter: maxCoins must be an integer");if(o<1||o>8)throw new Error("lighter: maxCoins must be between 1 and 8");let i=er(e.maxNotionalUsd??e.notionalUsd??e.notional??1e3,"lighter");if(t==="live"&&r.length===0)throw new Error("lighter: live loop requires a coin allowlist");if(t==="live"&&fe(e,r,"lighter"),t==="live"&&!Qt.test(String(e.owner||"")))throw new Error("lighter: live loop requires owner");let s=e.accountIndex;if(t==="live"&&(typeof s!="number"||!Number.isSafeInteger(s)||s<0))throw new Error("lighter: live loop requires accountIndex");return{mode:t,allowlist:r,maxCoins:o,maxNotionalUsd:i,accountIndex:s}}function er(e,t){let r=typeof e=="string"&&e===e.trim()&&/^(?:0\.\d+|[1-9]\d*(?:\.\d+)?)$/.test(e);if(typeof e!="number"&&!r)throw new Error(`${t}: maxNotionalUsd out of bounds`);let n=Number(e);if(!(n>0)||n>25e3)throw new Error(`${t}: maxNotionalUsd out of bounds`);return n}async function tr(e={},t={}){Fn(e,t,"lighter");let r=Bn(e),n=await Ge({limit:e.limit??16},t),o=new Set(r.allowlist),i=[],s=Math.floor(r.maxNotionalUsd/r.maxCoins);for(let a of n.candidates){if(o.size&&!o.has(a.symbol)&&!o.has(a.coin))continue;let c=Xt(a,s);if(c.verdict!=="carry")continue;if(i.length>=r.maxCoins)break;if(r.mode==="shadow"){i.push({...c,mode:"shadow",surface:"lighter",prepared:!1,signed:!1,broadcast:!1});continue}let l=await Rn({coin:c.symbol,notionalUsd:c.notionalUsd,maxNotionalUsd:s,owner:e.owner,accountIndex:r.accountIndex,spotSize:e.spotSize??e.spotHeldSize,spotSizes:e.spotSizes??e.spotHeldSizes},{fetchImpl:t.fetchImpl,nowMs:t.nowMs,testnet:t.testnet});i.push({...l,mode:"live",surface:"lighter"})}return{loop:!0,mode:r.mode,surface:"lighter",signer:"lighter",considered:n.considered,actions:i,signed:i.some(a=>a.signed===!0),broadcast:i.some(a=>a.broadcast===!0),posture:"one tick. Prepares an unsigned official sendTx for oracle signer. Armed, not automated. Farm loop never signs or broadcasts."}}var We=`oracle farm <methods|discover|airdrop|carry|loop|lighter> [options]
47
3
 
48
4
  oracle farm methods list the delta-aware farming playbooks
49
5
  oracle farm methods --id stable-loop full setup/exposure/hedge/monitor/exit for one method
@@ -57,60 +13,60 @@ ${s}`;break;case"retry":$C(s)&&(t[n]=s);break;case"id":ed(s)&&(t[n]=s);break;cas
57
13
  oracle farm loop [--venue hl|lighter] [--mode shadow|live] [--coin BTC] [--notional 1000] [--spot-size 0.01] [--owner 0x...] [--json]
58
14
  oracle farm lighter [--coin BTC] [--notional 1000] [--json]
59
15
 
60
- Owner-operated. Carry/loop only prepare unsigned hedges. Signing is oracle signer after exact confirm. Farm loop never signs or broadcasts.`;function BL(e){let A={_:[]};for(let t=0;t<e.length;t+=1){let r=e[t];if(r==="--json"){A.json=!0;continue}if(r.startsWith("--")){let n=r.slice(2),s=e[t+1];if(s===void 0||s.startsWith("--")){A[n]=!0;continue}A[n]=s,t+=1;continue}A._.push(r)}return A}var bA=e=>`$${Math.round(Number(e)||0).toLocaleString("en-US")}`,Gn=e=>`${(Number(e)||0).toFixed(1)}%`;function uL(e){let A=typeof e.id=="string"?e.id:null;if(A){let t=Nn.find(r=>r.id===A);if(!t)return process.stderr.write(`oracle farm: unknown method '${A}'. Known: ${Nn.map(r=>r.id).join(", ")}
61
- `),1;if(e.json)return process.stdout.write(JSON.stringify(t,null,2)+`
16
+ Owner-operated. Carry/loop only prepare unsigned hedges. Signing is oracle signer after exact confirm. Farm loop never signs or broadcasts.`;function Dn(e){let t={_:[]};for(let r=0;r<e.length;r+=1){let n=e[r];if(n==="--json"){t.json=!0;continue}if(n.startsWith("--")){let o=n.slice(2),i=e[r+1];if(i===void 0||i.startsWith("--")){t[o]=!0;continue}t[o]=i,r+=1;continue}t._.push(n)}return t}var O=e=>`$${Math.round(Number(e)||0).toLocaleString("en-US")}`,se=e=>`${(Number(e)||0).toFixed(1)}%`;function Un(e){let t=typeof e.id=="string"?e.id:null;if(t){let r=Q.find(n=>n.id===t);if(!r)return process.stderr.write(`oracle farm: unknown method '${t}'. Known: ${Q.map(n=>n.id).join(", ")}
17
+ `),1;if(e.json)return process.stdout.write(JSON.stringify(r,null,2)+`
62
18
  `),0;process.stdout.write(`
63
- ${t.label} [${t.risk}] target delta ${t.targetDelta}
19
+ ${r.label} [${r.risk}] target delta ${r.targetDelta}
64
20
 
65
- `);for(let[r,n]of[["setup","setup"],["exposure","exposure"],["hedge","hedge"],["monitor","monitor"],["exit","exit"]])process.stdout.write(` ${r.padEnd(9)} ${t[n]}
21
+ `);for(let[n,o]of[["setup","setup"],["exposure","exposure"],["hedge","hedge"],["monitor","monitor"],["exit","exit"]])process.stdout.write(` ${n.padEnd(9)} ${r[o]}
66
22
  `);return process.stdout.write(`
67
- `),0}if(e.json)return process.stdout.write(JSON.stringify(Nn,null,2)+`
23
+ `),0}if(e.json)return process.stdout.write(JSON.stringify(Q,null,2)+`
68
24
  `),0;process.stdout.write(`
69
25
  farming methods
70
26
 
71
- `);for(let t of Nn)process.stdout.write(` ${t.id.padEnd(18)} ${t.label.padEnd(30)} ${t.risk}
27
+ `);for(let r of Q)process.stdout.write(` ${r.id.padEnd(18)} ${r.label.padEnd(30)} ${r.risk}
72
28
  `);return process.stdout.write(`
73
29
  oracle farm methods --id <id> for setup, exposure, hedge, monitor, and exit rules.
74
30
 
75
- `),0}async function IL(e){let A=await yd({chain:typeof e.chain=="string"?e.chain:null,limit:e.limit,minTvl:e["min-tvl"]});if(e.json)return process.stdout.write(JSON.stringify(A,null,2)+`
76
- `),0;if(!A.live)return process.stderr.write(`oracle farm: discovery unavailable \u2014 ${A.error}
31
+ `),0}async function zn(e){let t=await nt({chain:typeof e.chain=="string"?e.chain:null,limit:e.limit,minTvl:e["min-tvl"]});if(e.json)return process.stdout.write(JSON.stringify(t,null,2)+`
32
+ `),0;if(!t.live)return process.stderr.write(`oracle farm: discovery unavailable \u2014 ${t.error}
77
33
  `),1;process.stdout.write(`
78
- live farm discovery \u2014 ${A.source}, ${A.considered.toLocaleString("en-US")} pools considered (${A.consideredNote}), chain=${A.chain}
34
+ live farm discovery \u2014 ${t.source}, ${t.considered.toLocaleString("en-US")} pools considered (${t.consideredNote}), chain=${t.chain}
79
35
 
80
36
  `),process.stdout.write(` ${"verdict".padEnd(10)}${"net apr".padStart(9)} ${"tvl".padStart(12)} ${"chain".padEnd(12)}${"recipe".padEnd(18)}pool
81
- `);for(let t of A.candidates)process.stdout.write(` ${t.verdict.padEnd(10)}${Gn(t.netApr).padStart(9)} ${bA(t.tvlUsd).padStart(12)} ${t.chain.slice(0,11).padEnd(12)}${t.recipe.padEnd(18)}${t.label}
37
+ `);for(let r of t.candidates)process.stdout.write(` ${r.verdict.padEnd(10)}${se(r.netApr).padStart(9)} ${O(r.tvlUsd).padStart(12)} ${r.chain.slice(0,11).padEnd(12)}${r.recipe.padEnd(18)}${r.label}
82
38
  `);return process.stdout.write(`
83
39
  net apr = apy \u2212 borrow \u2212 funding \u2212 gas \u2212 risk haircut.
84
- ${A.posture}.
40
+ ${t.posture}.
85
41
 
86
- `),0}function hL(e){let A=md({wallets:e.wallets,tasksWeekly:e["tasks-weekly"],hoursWeekly:e["hours-weekly"],hourlyCost:e["hourly-cost"],gasPerTask:e["gas-per-task"],bridgeMonthly:e["bridge-monthly"],expectedReward:e["expected-reward"],probability:e.probability,sybilHaircut:e["sybil-haircut"],lockupMonths:e["lockup-months"]});if(e.json)return process.stdout.write(JSON.stringify(A,null,2)+`
87
- `),0;let t=A.inputs;return process.stdout.write(`
42
+ `),0}function qn(e){let t=ot({wallets:e.wallets,tasksWeekly:e["tasks-weekly"],hoursWeekly:e["hours-weekly"],hourlyCost:e["hourly-cost"],gasPerTask:e["gas-per-task"],bridgeMonthly:e["bridge-monthly"],expectedReward:e["expected-reward"],probability:e.probability,sybilHaircut:e["sybil-haircut"],lockupMonths:e["lockup-months"]});if(e.json)return process.stdout.write(JSON.stringify(t,null,2)+`
43
+ `),0;let r=t.inputs;return process.stdout.write(`
88
44
  airdrop expected value
89
45
 
90
- `),process.stdout.write(` ${t.wallets} wallets \xB7 ${t.tasksWeekly} tasks/wk \xB7 ${t.hoursWeekly} hrs/wk @ ${bA(t.hourlyCost)}/hr
91
- `),process.stdout.write(` ${Gn(t.probabilityPct)} eligibility \xB7 ${Gn(t.sybilHaircutPct)} sybil haircut \xB7 ${t.lockupMonths}mo lockup
46
+ `),process.stdout.write(` ${r.wallets} wallets \xB7 ${r.tasksWeekly} tasks/wk \xB7 ${r.hoursWeekly} hrs/wk @ ${O(r.hourlyCost)}/hr
47
+ `),process.stdout.write(` ${se(r.probabilityPct)} eligibility \xB7 ${se(r.sybilHaircutPct)} sybil haircut \xB7 ${r.lockupMonths}mo lockup
92
48
 
93
- `),process.stdout.write(` monthly cost ${bA(A.monthlyCost).padStart(12)} (gas ${bA(A.monthlyGas)} + labor ${bA(A.laborMonthly)} + bridges ${bA(t.bridgeMonthly)})
94
- `),process.stdout.write(` gross EV ${bA(A.grossExpectedValue).padStart(12)}
95
- `),process.stdout.write(` after haircuts ${bA(A.adjustedExpectedValue).padStart(12)} (lockup discount ${(A.lockupDiscount*100).toFixed(0)}%)
96
- `),process.stdout.write(` net EV ${bA(A.netExpectedValue).padStart(12)} ${A.verdict}
97
- `),A.roiPct!=null&&process.stdout.write(` ROI ${Gn(A.roiPct).padStart(12)}
98
- `),A.breakevenProbabilityPct!=null&&process.stdout.write(` breakeven odds ${Gn(A.breakevenProbabilityPct).padStart(12)} campaign must clear this to profit
49
+ `),process.stdout.write(` monthly cost ${O(t.monthlyCost).padStart(12)} (gas ${O(t.monthlyGas)} + labor ${O(t.laborMonthly)} + bridges ${O(r.bridgeMonthly)})
50
+ `),process.stdout.write(` gross EV ${O(t.grossExpectedValue).padStart(12)}
51
+ `),process.stdout.write(` after haircuts ${O(t.adjustedExpectedValue).padStart(12)} (lockup discount ${(t.lockupDiscount*100).toFixed(0)}%)
52
+ `),process.stdout.write(` net EV ${O(t.netExpectedValue).padStart(12)} ${t.verdict}
53
+ `),t.roiPct!=null&&process.stdout.write(` ROI ${se(t.roiPct).padStart(12)}
54
+ `),t.breakevenProbabilityPct!=null&&process.stdout.write(` breakeven odds ${se(t.breakevenProbabilityPct).padStart(12)} campaign must clear this to profit
99
55
  `),process.stdout.write(`
100
- ${A.posture}.
56
+ ${t.posture}.
101
57
 
102
- `),0}async function yf(e,A={}){let t=A.fetchImpl?{fetchImpl:A.fetchImpl}:{},r=typeof e.coin=="string"?e.coin:null,s=(e.venue==="lighter"?"lighter":"hl")==="lighter"?r?await Hg({coin:r,notionalUsd:e.notional},t):await Jg({limit:e.limit},t):r?await Yg({coin:r,notionalUsd:e.notional},t):await Tg({limit:e.limit},t);return e.json?(process.stdout.write(JSON.stringify(s,null,2)+`
58
+ `),0}async function rr(e,t={}){let r=t.fetchImpl?{fetchImpl:t.fetchImpl}:{},n=typeof e.coin=="string"?e.coin:null,i=(e.venue==="lighter"?"lighter":"hl")==="lighter"?n?await Ve({coin:n,notionalUsd:e.notional},r):await Ge({limit:e.limit},r):n?await He({coin:n,notionalUsd:e.notional},r):await qe({limit:e.limit},r);return e.json?(process.stdout.write(JSON.stringify(i,null,2)+`
103
59
  `),0):(process.stdout.write(`
104
- ${JSON.stringify(s)}
105
- `),0)}async function CL(e,A={}){let t=A.fetchImpl?{fetchImpl:A.fetchImpl}:{},r=typeof e.coin=="string"?[e.coin]:[],n=e.venue==="lighter"?"lighter":"hl",s={mode:e.mode==="live"?"live":"shadow",coins:r,notionalUsd:e.notional,limit:e.limit,spotSize:e["spot-size"],owner:e.owner},i=n==="lighter"?await pf(s,t):await af(s,t);if(e.json)return process.stdout.write(JSON.stringify(i,null,2)+`
60
+ ${JSON.stringify(i)}
61
+ `),0)}async function Hn(e,t={}){let r=t.fetchImpl?{fetchImpl:t.fetchImpl}:{},n=typeof e.coin=="string"?[e.coin]:[],o=e.venue==="lighter"?"lighter":"hl",i={mode:e.mode==="live"?"live":"shadow",coins:n,notionalUsd:e.notional,limit:e.limit,spotSize:e["spot-size"],owner:e.owner},s=o==="lighter"?await tr(i,r):await zt(i,r);if(e.json)return process.stdout.write(JSON.stringify(s,null,2)+`
106
62
  `),0;process.stdout.write(`
107
- farm loop ${i.mode} via ${i.signer}, ${i.actions.length} action(s)
108
- `);for(let o of i.actions)process.stdout.write(` ${o.coin||o.symbol} ${o.perpSide} ${o.perpSize||o.baseAmount} ${o.verdict} ${o.mode}
63
+ farm loop ${s.mode} via ${s.signer}, ${s.actions.length} action(s)
64
+ `);for(let a of s.actions)process.stdout.write(` ${a.coin||a.symbol} ${a.perpSide} ${a.perpSize||a.baseAmount} ${a.verdict} ${a.mode}
109
65
  `);return process.stdout.write(`
110
- ${i.posture}
66
+ ${s.posture}
111
67
 
112
- `),0}var hY={name:"farm",summary:"farming methods, live farm discovery, HL carry loop, airdrop EV",group:"read",usage:vg,async run(e){let A=BL(e.argv),t=A._[0];return!t||t==="help"?(process.stdout.write(vg+`
113
- `),0):t==="methods"?uL(A):t==="discover"?IL(A):t==="airdrop"?hL(A):t==="carry"?yf(A,e):t==="loop"?CL(A,e):t==="lighter"?yf({...A,venue:"lighter"},e):(process.stderr.write(`oracle farm: unknown subcommand '${t}'
68
+ `),0}var Ko={name:"farm",summary:"farming methods, live farm discovery, HL carry loop, airdrop EV",group:"read",usage:We,async run(e){let t=Dn(e.argv),r=t._[0];return!r||r==="help"?(process.stdout.write(We+`
69
+ `),0):r==="methods"?Un(t):r==="discover"?zn(t):r==="airdrop"?qn(t):r==="carry"?rr(t,e):r==="loop"?Hn(t,e):r==="lighter"?rr({...t,venue:"lighter"},e):(process.stderr.write(`oracle farm: unknown subcommand '${r}'
114
70
 
115
- ${vg}
116
- `),1)}};export{hY as default};
71
+ ${We}
72
+ `),1)}};export{Ko as default};